summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/webkit/JavaScriptCore/runtime/JSString.cpp
diff options
context:
space:
mode:
authorKent Hansen <khansen@trolltech.com>2009-07-03 12:00:27 (GMT)
committerKent Hansen <khansen@trolltech.com>2009-07-03 12:00:27 (GMT)
commitc23be3111ec279b4e19ca9c37a0d9eddb756f402 (patch)
tree5e90a4e111938dc01e405eae82baff8b12cdb88b /src/3rdparty/webkit/JavaScriptCore/runtime/JSString.cpp
parentd1cf24277dd736a873c20dd3aebea9d185636a78 (diff)
downloadQt-c23be3111ec279b4e19ca9c37a0d9eddb756f402.zip
Qt-c23be3111ec279b4e19ca9c37a0d9eddb756f402.tar.gz
Qt-c23be3111ec279b4e19ca9c37a0d9eddb756f402.tar.bz2
Attributes and deletion of String object properties
As per ECMA-262.
Diffstat (limited to 'src/3rdparty/webkit/JavaScriptCore/runtime/JSString.cpp')
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSString.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/3rdparty/webkit/JavaScriptCore/runtime/JSString.cpp b/src/3rdparty/webkit/JavaScriptCore/runtime/JSString.cpp
index 86f95e0..e1fc66d 100644
--- a/src/3rdparty/webkit/JavaScriptCore/runtime/JSString.cpp
+++ b/src/3rdparty/webkit/JavaScriptCore/runtime/JSString.cpp
@@ -112,6 +112,21 @@ bool JSString::getOwnPropertySlot(ExecState* exec, unsigned propertyName, Proper
return JSString::getOwnPropertySlot(exec, Identifier::from(exec, propertyName), slot);
}
+bool JSString::getStringPropertyAttributes(ExecState* exec, const Identifier& propertyName, unsigned& attributes) const
+{
+ if (propertyName == exec->propertyNames().length) {
+ attributes = DontEnum | DontDelete | ReadOnly;
+ return true;
+ }
+ bool isStrictUInt32;
+ unsigned i = propertyName.toStrictUInt32(&isStrictUInt32);
+ if (isStrictUInt32 && i < static_cast<unsigned>(m_value.size())) {
+ attributes = DontDelete | ReadOnly;
+ return true;
+ }
+ return false;
+}
+
JSString* jsString(JSGlobalData* globalData, const UString& s)
{
int size = s.size();