summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/webkit/JavaScriptCore/runtime/Arguments.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/3rdparty/webkit/JavaScriptCore/runtime/Arguments.cpp')
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/Arguments.cpp18
1 files changed, 14 insertions, 4 deletions
diff --git a/src/3rdparty/webkit/JavaScriptCore/runtime/Arguments.cpp b/src/3rdparty/webkit/JavaScriptCore/runtime/Arguments.cpp
index f867fe81f..7cb4fe97e 100644
--- a/src/3rdparty/webkit/JavaScriptCore/runtime/Arguments.cpp
+++ b/src/3rdparty/webkit/JavaScriptCore/runtime/Arguments.cpp
@@ -227,7 +227,7 @@ void Arguments::put(ExecState* exec, const Identifier& propertyName, JSValue val
JSObject::put(exec, propertyName, value, slot);
}
-bool Arguments::deleteProperty(ExecState* exec, unsigned i)
+bool Arguments::deleteProperty(ExecState* exec, unsigned i, bool checkDontDelete)
{
if (i < d->numArguments) {
if (!d->deletedArguments) {
@@ -240,10 +240,10 @@ bool Arguments::deleteProperty(ExecState* exec, unsigned i)
}
}
- return JSObject::deleteProperty(exec, Identifier(exec, UString::from(i)));
+ return JSObject::deleteProperty(exec, Identifier(exec, UString::from(i)), checkDontDelete);
}
-bool Arguments::deleteProperty(ExecState* exec, const Identifier& propertyName)
+bool Arguments::deleteProperty(ExecState* exec, const Identifier& propertyName, bool checkDontDelete)
{
bool isArrayIndex;
unsigned i = propertyName.toArrayIndex(&isArrayIndex);
@@ -268,7 +268,17 @@ bool Arguments::deleteProperty(ExecState* exec, const Identifier& propertyName)
return true;
}
- return JSObject::deleteProperty(exec, propertyName);
+ return JSObject::deleteProperty(exec, propertyName, checkDontDelete);
+}
+
+bool Arguments::getPropertyAttributes(ExecState* exec, const Identifier& propertyName, unsigned& attributes) const
+{
+ if ((propertyName == exec->propertyNames().length)
+ || (propertyName == exec->propertyNames().callee)) {
+ attributes = DontEnum;
+ return true;
+ }
+ return JSObject::getPropertyAttributes(exec, propertyName, attributes);
}
} // namespace JSC