summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/webkit/JavaScriptCore/runtime/StringObject.cpp
diff options
context:
space:
mode:
authorDavid Boddie <dboddie@trolltech.com>2009-08-26 12:35:45 (GMT)
committerDavid Boddie <dboddie@trolltech.com>2009-08-26 12:35:45 (GMT)
commit7e30c92186878beb300a13093c3668ae8a10f2be (patch)
tree313aa7f7a8345e65b7803bae1cb68ad866bdadbc /src/3rdparty/webkit/JavaScriptCore/runtime/StringObject.cpp
parentb98042831f4f6f6c5844965731b2dd64f27c076e (diff)
parentaeb4251c76560a070ce22320be00e860950b4668 (diff)
downloadQt-7e30c92186878beb300a13093c3668ae8a10f2be.zip
Qt-7e30c92186878beb300a13093c3668ae8a10f2be.tar.gz
Qt-7e30c92186878beb300a13093c3668ae8a10f2be.tar.bz2
Merge branch 'master' of git@scm.dev.nokia.troll.no:qt/qt
Diffstat (limited to 'src/3rdparty/webkit/JavaScriptCore/runtime/StringObject.cpp')
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/StringObject.cpp19
1 files changed, 15 insertions, 4 deletions
diff --git a/src/3rdparty/webkit/JavaScriptCore/runtime/StringObject.cpp b/src/3rdparty/webkit/JavaScriptCore/runtime/StringObject.cpp
index fb44498..4745a98 100644
--- a/src/3rdparty/webkit/JavaScriptCore/runtime/StringObject.cpp
+++ b/src/3rdparty/webkit/JavaScriptCore/runtime/StringObject.cpp
@@ -68,19 +68,30 @@ void StringObject::put(ExecState* exec, const Identifier& propertyName, JSValue
JSObject::put(exec, propertyName, value, slot);
}
-bool StringObject::deleteProperty(ExecState* exec, const Identifier& propertyName)
+bool StringObject::deleteProperty(ExecState* exec, const Identifier& propertyName, bool checkDontDelete)
{
if (propertyName == exec->propertyNames().length)
return false;
- return JSObject::deleteProperty(exec, propertyName);
+ bool isStrictUInt32;
+ unsigned i = propertyName.toStrictUInt32(&isStrictUInt32);
+ if (isStrictUInt32 && internalValue()->canGetIndex(i))
+ return false;
+ return JSObject::deleteProperty(exec, propertyName, checkDontDelete);
}
-void StringObject::getPropertyNames(ExecState* exec, PropertyNameArray& propertyNames)
+void StringObject::getPropertyNames(ExecState* exec, PropertyNameArray& propertyNames, unsigned listedAttributes)
{
int size = internalValue()->value().size();
for (int i = 0; i < size; ++i)
propertyNames.add(Identifier(exec, UString::from(i)));
- return JSObject::getPropertyNames(exec, propertyNames);
+ return JSObject::getPropertyNames(exec, propertyNames, listedAttributes);
+}
+
+bool StringObject::getPropertyAttributes(ExecState* exec, const Identifier& propertyName, unsigned& attributes) const
+{
+ if (internalValue()->getStringPropertyAttributes(exec, propertyName, attributes))
+ return true;
+ return JSObject::getPropertyAttributes(exec, propertyName, attributes);
}
UString StringObject::toString(ExecState*) const