diff options
21 files changed, 52 insertions, 52 deletions
diff --git a/src/3rdparty/webkit/JavaScriptCore/API/JSCallbackObject.h b/src/3rdparty/webkit/JavaScriptCore/API/JSCallbackObject.h index 4f1d51c..853ce6d 100644 --- a/src/3rdparty/webkit/JavaScriptCore/API/JSCallbackObject.h +++ b/src/3rdparty/webkit/JavaScriptCore/API/JSCallbackObject.h @@ -61,8 +61,8 @@ private: virtual void put(ExecState*, const Identifier&, JSValue, PutPropertySlot&); - virtual bool deleteProperty(ExecState*, const Identifier&); - virtual bool deleteProperty(ExecState*, unsigned); + virtual bool deleteProperty(ExecState*, const Identifier&, bool checkDontDelete = true); + virtual bool deleteProperty(ExecState*, unsigned, bool checkDontDelete = true); virtual bool hasInstance(ExecState* exec, JSValue value, JSValue proto); diff --git a/src/3rdparty/webkit/JavaScriptCore/API/JSCallbackObjectFunctions.h b/src/3rdparty/webkit/JavaScriptCore/API/JSCallbackObjectFunctions.h index 8bcf8ad..cc59a71 100644 --- a/src/3rdparty/webkit/JavaScriptCore/API/JSCallbackObjectFunctions.h +++ b/src/3rdparty/webkit/JavaScriptCore/API/JSCallbackObjectFunctions.h @@ -224,7 +224,7 @@ void JSCallbackObject<Base>::put(ExecState* exec, const Identifier& propertyName } template <class Base> -bool JSCallbackObject<Base>::deleteProperty(ExecState* exec, const Identifier& propertyName) +bool JSCallbackObject<Base>::deleteProperty(ExecState* exec, const Identifier& propertyName, bool checkDontDelete) { JSContextRef ctx = toRef(exec); JSObjectRef thisRef = toRef(this); @@ -262,13 +262,13 @@ bool JSCallbackObject<Base>::deleteProperty(ExecState* exec, const Identifier& p } } - return Base::deleteProperty(exec, propertyName); + return Base::deleteProperty(exec, propertyName, checkDontDelete); } template <class Base> -bool JSCallbackObject<Base>::deleteProperty(ExecState* exec, unsigned propertyName) +bool JSCallbackObject<Base>::deleteProperty(ExecState* exec, unsigned propertyName, bool checkDontDelete) { - return deleteProperty(exec, Identifier::from(exec, propertyName)); + return deleteProperty(exec, Identifier::from(exec, propertyName), checkDontDelete); } template <class Base> diff --git a/src/3rdparty/webkit/JavaScriptCore/debugger/DebuggerActivation.cpp b/src/3rdparty/webkit/JavaScriptCore/debugger/DebuggerActivation.cpp index 1a1b2a1..f51b650 100644 --- a/src/3rdparty/webkit/JavaScriptCore/debugger/DebuggerActivation.cpp +++ b/src/3rdparty/webkit/JavaScriptCore/debugger/DebuggerActivation.cpp @@ -65,9 +65,9 @@ void DebuggerActivation::putWithAttributes(ExecState* exec, const Identifier& pr m_activation->putWithAttributes(exec, propertyName, value, attributes); } -bool DebuggerActivation::deleteProperty(ExecState* exec, const Identifier& propertyName) +bool DebuggerActivation::deleteProperty(ExecState* exec, const Identifier& propertyName, bool checkDontDelete) { - return m_activation->deleteProperty(exec, propertyName); + return m_activation->deleteProperty(exec, propertyName, checkDontDelete); } void DebuggerActivation::getPropertyNames(ExecState* exec, PropertyNameArray& propertyNames, bool includeNonEnumerable) diff --git a/src/3rdparty/webkit/JavaScriptCore/debugger/DebuggerActivation.h b/src/3rdparty/webkit/JavaScriptCore/debugger/DebuggerActivation.h index dcefe5e..4e5b60f 100644 --- a/src/3rdparty/webkit/JavaScriptCore/debugger/DebuggerActivation.h +++ b/src/3rdparty/webkit/JavaScriptCore/debugger/DebuggerActivation.h @@ -41,7 +41,7 @@ namespace JSC { virtual bool getOwnPropertySlot(ExecState*, const Identifier& propertyName, PropertySlot&); virtual void put(ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&); virtual void putWithAttributes(ExecState*, const Identifier& propertyName, JSValue, unsigned attributes); - virtual bool deleteProperty(ExecState*, const Identifier& propertyName); + virtual bool deleteProperty(ExecState*, const Identifier& propertyName, bool checkDontDelete = true); virtual void getPropertyNames(ExecState*, PropertyNameArray&, bool includeNonEnumerable = false); virtual bool getPropertyAttributes(ExecState*, const Identifier& propertyName, unsigned& attributes) const; virtual void defineGetter(ExecState*, const Identifier& propertyName, JSObject* getterFunction); diff --git a/src/3rdparty/webkit/JavaScriptCore/runtime/Arguments.cpp b/src/3rdparty/webkit/JavaScriptCore/runtime/Arguments.cpp index 424d96d..7cb4fe9 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,7 @@ 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 diff --git a/src/3rdparty/webkit/JavaScriptCore/runtime/Arguments.h b/src/3rdparty/webkit/JavaScriptCore/runtime/Arguments.h index 1f5b600..dc54dac 100644 --- a/src/3rdparty/webkit/JavaScriptCore/runtime/Arguments.h +++ b/src/3rdparty/webkit/JavaScriptCore/runtime/Arguments.h @@ -92,8 +92,8 @@ namespace JSC { virtual bool getOwnPropertySlot(ExecState*, unsigned propertyName, PropertySlot&); virtual void put(ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&); virtual void put(ExecState*, unsigned propertyName, JSValue, PutPropertySlot&); - virtual bool deleteProperty(ExecState*, const Identifier& propertyName); - virtual bool deleteProperty(ExecState*, unsigned propertyName); + virtual bool deleteProperty(ExecState*, const Identifier& propertyName, bool checkDontDelete = true); + virtual bool deleteProperty(ExecState*, unsigned propertyName, bool checkDontDelete = true); virtual bool getPropertyAttributes(ExecState*, const Identifier& propertyName, unsigned& attributes) const; virtual const ClassInfo* classInfo() const { return &info; } diff --git a/src/3rdparty/webkit/JavaScriptCore/runtime/JSActivation.cpp b/src/3rdparty/webkit/JavaScriptCore/runtime/JSActivation.cpp index 3bef263..184a9cb 100644 --- a/src/3rdparty/webkit/JavaScriptCore/runtime/JSActivation.cpp +++ b/src/3rdparty/webkit/JavaScriptCore/runtime/JSActivation.cpp @@ -133,12 +133,12 @@ void JSActivation::putWithAttributes(ExecState* exec, const Identifier& property JSObject::putWithAttributes(exec, propertyName, value, attributes, true, slot); } -bool JSActivation::deleteProperty(ExecState* exec, const Identifier& propertyName) +bool JSActivation::deleteProperty(ExecState* exec, const Identifier& propertyName, bool checkDontDelete) { if (propertyName == exec->propertyNames().arguments) return false; - return Base::deleteProperty(exec, propertyName); + return Base::deleteProperty(exec, propertyName, checkDontDelete); } JSObject* JSActivation::toThisObject(ExecState* exec) const diff --git a/src/3rdparty/webkit/JavaScriptCore/runtime/JSActivation.h b/src/3rdparty/webkit/JavaScriptCore/runtime/JSActivation.h index c183dac..b48ef25 100644 --- a/src/3rdparty/webkit/JavaScriptCore/runtime/JSActivation.h +++ b/src/3rdparty/webkit/JavaScriptCore/runtime/JSActivation.h @@ -57,7 +57,7 @@ namespace JSC { virtual void put(ExecState*, const Identifier&, JSValue, PutPropertySlot&); virtual void putWithAttributes(ExecState*, const Identifier&, JSValue, unsigned attributes); - virtual bool deleteProperty(ExecState*, const Identifier& propertyName); + virtual bool deleteProperty(ExecState*, const Identifier& propertyName, bool checkDontDelete = true); virtual JSObject* toThisObject(ExecState*) const; diff --git a/src/3rdparty/webkit/JavaScriptCore/runtime/JSArray.cpp b/src/3rdparty/webkit/JavaScriptCore/runtime/JSArray.cpp index a50fc86..3c83623 100644 --- a/src/3rdparty/webkit/JavaScriptCore/runtime/JSArray.cpp +++ b/src/3rdparty/webkit/JavaScriptCore/runtime/JSArray.cpp @@ -375,20 +375,20 @@ NEVER_INLINE void JSArray::putSlowCase(ExecState* exec, unsigned i, JSValue valu checkConsistency(); } -bool JSArray::deleteProperty(ExecState* exec, const Identifier& propertyName) +bool JSArray::deleteProperty(ExecState* exec, const Identifier& propertyName, bool checkDontDelete) { bool isArrayIndex; unsigned i = propertyName.toArrayIndex(&isArrayIndex); if (isArrayIndex) - return deleteProperty(exec, i); + return deleteProperty(exec, i, checkDontDelete); if (propertyName == exec->propertyNames().length) return false; - return JSObject::deleteProperty(exec, propertyName); + return JSObject::deleteProperty(exec, propertyName, checkDontDelete); } -bool JSArray::deleteProperty(ExecState* exec, unsigned i) +bool JSArray::deleteProperty(ExecState* exec, unsigned i, bool checkDontDelete) { checkConsistency(); @@ -422,7 +422,7 @@ bool JSArray::deleteProperty(ExecState* exec, unsigned i) checkConsistency(); if (i > MAX_ARRAY_INDEX) - return deleteProperty(exec, Identifier::from(exec, i)); + return deleteProperty(exec, Identifier::from(exec, i), checkDontDelete); return false; } diff --git a/src/3rdparty/webkit/JavaScriptCore/runtime/JSArray.h b/src/3rdparty/webkit/JavaScriptCore/runtime/JSArray.h index aaeb810..266edfc 100644 --- a/src/3rdparty/webkit/JavaScriptCore/runtime/JSArray.h +++ b/src/3rdparty/webkit/JavaScriptCore/runtime/JSArray.h @@ -85,8 +85,8 @@ namespace JSC { protected: virtual void put(ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&); - virtual bool deleteProperty(ExecState*, const Identifier& propertyName); - virtual bool deleteProperty(ExecState*, unsigned propertyName); + virtual bool deleteProperty(ExecState*, const Identifier& propertyName, bool checkDontDelete = true); + virtual bool deleteProperty(ExecState*, unsigned propertyName, bool checkDontDelete = true); virtual void getPropertyNames(ExecState*, PropertyNameArray&, bool includeNonEnumerable = false); virtual void mark(); diff --git a/src/3rdparty/webkit/JavaScriptCore/runtime/JSCell.cpp b/src/3rdparty/webkit/JavaScriptCore/runtime/JSCell.cpp index 8cf7943..10a91f7 100644 --- a/src/3rdparty/webkit/JavaScriptCore/runtime/JSCell.cpp +++ b/src/3rdparty/webkit/JavaScriptCore/runtime/JSCell.cpp @@ -167,14 +167,14 @@ void JSCell::put(ExecState* exec, unsigned identifier, JSValue value) toObject(exec)->put(exec, identifier, value); } -bool JSCell::deleteProperty(ExecState* exec, const Identifier& identifier) +bool JSCell::deleteProperty(ExecState* exec, const Identifier& identifier, bool checkDontDelete) { - return toObject(exec)->deleteProperty(exec, identifier); + return toObject(exec)->deleteProperty(exec, identifier, checkDontDelete); } -bool JSCell::deleteProperty(ExecState* exec, unsigned identifier) +bool JSCell::deleteProperty(ExecState* exec, unsigned identifier, bool checkDontDelete) { - return toObject(exec)->deleteProperty(exec, identifier); + return toObject(exec)->deleteProperty(exec, identifier, checkDontDelete); } JSObject* JSCell::toThisObject(ExecState* exec) const diff --git a/src/3rdparty/webkit/JavaScriptCore/runtime/JSCell.h b/src/3rdparty/webkit/JavaScriptCore/runtime/JSCell.h index 32aa22b..4743baf 100644 --- a/src/3rdparty/webkit/JavaScriptCore/runtime/JSCell.h +++ b/src/3rdparty/webkit/JavaScriptCore/runtime/JSCell.h @@ -90,8 +90,8 @@ namespace JSC { virtual const ClassInfo* classInfo() const; virtual void put(ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&); virtual void put(ExecState*, unsigned propertyName, JSValue); - virtual bool deleteProperty(ExecState*, const Identifier& propertyName); - virtual bool deleteProperty(ExecState*, unsigned propertyName); + virtual bool deleteProperty(ExecState*, const Identifier& propertyName, bool checkDontDelete = true); + virtual bool deleteProperty(ExecState*, unsigned propertyName, bool checkDontDelete = true); virtual JSObject* toThisObject(ExecState*) const; virtual UString toThisString(ExecState*) const; diff --git a/src/3rdparty/webkit/JavaScriptCore/runtime/JSFunction.cpp b/src/3rdparty/webkit/JavaScriptCore/runtime/JSFunction.cpp index b79074f..c8e137e 100644 --- a/src/3rdparty/webkit/JavaScriptCore/runtime/JSFunction.cpp +++ b/src/3rdparty/webkit/JavaScriptCore/runtime/JSFunction.cpp @@ -176,13 +176,13 @@ void JSFunction::put(ExecState* exec, const Identifier& propertyName, JSValue va Base::put(exec, propertyName, value, slot); } -bool JSFunction::deleteProperty(ExecState* exec, const Identifier& propertyName) +bool JSFunction::deleteProperty(ExecState* exec, const Identifier& propertyName, bool checkDontDelete) { if (isHostFunction()) - return Base::deleteProperty(exec, propertyName); + return Base::deleteProperty(exec, propertyName, checkDontDelete); if (propertyName == exec->propertyNames().arguments || propertyName == exec->propertyNames().length) return false; - return Base::deleteProperty(exec, propertyName); + return Base::deleteProperty(exec, propertyName, checkDontDelete); } // ECMA 13.2.2 [[Construct]] diff --git a/src/3rdparty/webkit/JavaScriptCore/runtime/JSFunction.h b/src/3rdparty/webkit/JavaScriptCore/runtime/JSFunction.h index b27e515..5ddd97c 100644 --- a/src/3rdparty/webkit/JavaScriptCore/runtime/JSFunction.h +++ b/src/3rdparty/webkit/JavaScriptCore/runtime/JSFunction.h @@ -56,7 +56,7 @@ namespace JSC { virtual bool getOwnPropertySlot(ExecState*, const Identifier&, PropertySlot&); virtual void put(ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&); - virtual bool deleteProperty(ExecState*, const Identifier& propertyName); + virtual bool deleteProperty(ExecState*, const Identifier& propertyName, bool checkDontDelete = true); JSObject* construct(ExecState*, const ArgList&); JSValue call(ExecState*, JSValue thisValue, const ArgList&); diff --git a/src/3rdparty/webkit/JavaScriptCore/runtime/JSObject.cpp b/src/3rdparty/webkit/JavaScriptCore/runtime/JSObject.cpp index 10efd59..ded842d 100644 --- a/src/3rdparty/webkit/JavaScriptCore/runtime/JSObject.cpp +++ b/src/3rdparty/webkit/JavaScriptCore/runtime/JSObject.cpp @@ -204,12 +204,12 @@ bool JSObject::hasProperty(ExecState* exec, unsigned propertyName) const } // ECMA 8.6.2.5 -bool JSObject::deleteProperty(ExecState* exec, const Identifier& propertyName) +bool JSObject::deleteProperty(ExecState* exec, const Identifier& propertyName, bool checkDontDelete) { unsigned attributes; JSCell* specificValue; if (m_structure->get(propertyName, attributes, specificValue) != WTF::notFound) { - if ((attributes & DontDelete)) + if ((attributes & DontDelete) && checkDontDelete) return false; removeDirect(propertyName); return true; @@ -217,7 +217,7 @@ bool JSObject::deleteProperty(ExecState* exec, const Identifier& propertyName) // Look in the static hashtable of properties const HashEntry* entry = findPropertyHashEntry(exec, propertyName); - if (entry && entry->attributes() & DontDelete) + if (entry && (entry->attributes() & DontDelete) && checkDontDelete) return false; // this builtin property can't be deleted // FIXME: Should the code here actually do some deletion? @@ -230,9 +230,9 @@ bool JSObject::hasOwnProperty(ExecState* exec, const Identifier& propertyName) c return const_cast<JSObject*>(this)->getOwnPropertySlot(exec, propertyName, slot); } -bool JSObject::deleteProperty(ExecState* exec, unsigned propertyName) +bool JSObject::deleteProperty(ExecState* exec, unsigned propertyName, bool checkDontDelete) { - return deleteProperty(exec, Identifier::from(exec, propertyName)); + return deleteProperty(exec, Identifier::from(exec, propertyName), checkDontDelete); } static ALWAYS_INLINE JSValue callDefaultValueFunction(ExecState* exec, const JSObject* object, const Identifier& propertyName) diff --git a/src/3rdparty/webkit/JavaScriptCore/runtime/JSObject.h b/src/3rdparty/webkit/JavaScriptCore/runtime/JSObject.h index f390f4a..09f038f 100644 --- a/src/3rdparty/webkit/JavaScriptCore/runtime/JSObject.h +++ b/src/3rdparty/webkit/JavaScriptCore/runtime/JSObject.h @@ -110,8 +110,8 @@ namespace JSC { bool hasProperty(ExecState*, unsigned propertyName) const; bool hasOwnProperty(ExecState*, const Identifier& propertyName) const; - virtual bool deleteProperty(ExecState*, const Identifier& propertyName); - virtual bool deleteProperty(ExecState*, unsigned propertyName); + virtual bool deleteProperty(ExecState*, const Identifier& propertyName, bool checkDontDelete = true); + virtual bool deleteProperty(ExecState*, unsigned propertyName, bool checkDontDelete = true); virtual JSValue defaultValue(ExecState*, PreferredPrimitiveType) const; diff --git a/src/3rdparty/webkit/JavaScriptCore/runtime/JSVariableObject.cpp b/src/3rdparty/webkit/JavaScriptCore/runtime/JSVariableObject.cpp index e67bca6..f873672 100644 --- a/src/3rdparty/webkit/JavaScriptCore/runtime/JSVariableObject.cpp +++ b/src/3rdparty/webkit/JavaScriptCore/runtime/JSVariableObject.cpp @@ -33,12 +33,12 @@ namespace JSC { -bool JSVariableObject::deleteProperty(ExecState* exec, const Identifier& propertyName) +bool JSVariableObject::deleteProperty(ExecState* exec, const Identifier& propertyName, bool checkDontDelete) { if (symbolTable().contains(propertyName.ustring().rep())) return false; - return JSObject::deleteProperty(exec, propertyName); + return JSObject::deleteProperty(exec, propertyName, checkDontDelete); } void JSVariableObject::getPropertyNames(ExecState* exec, PropertyNameArray& propertyNames, bool includeNonEnumerable) diff --git a/src/3rdparty/webkit/JavaScriptCore/runtime/JSVariableObject.h b/src/3rdparty/webkit/JavaScriptCore/runtime/JSVariableObject.h index 84ffe6c..35899aa 100644 --- a/src/3rdparty/webkit/JavaScriptCore/runtime/JSVariableObject.h +++ b/src/3rdparty/webkit/JavaScriptCore/runtime/JSVariableObject.h @@ -48,7 +48,7 @@ namespace JSC { virtual void putWithAttributes(ExecState*, const Identifier&, JSValue, unsigned attributes) = 0; - virtual bool deleteProperty(ExecState*, const Identifier&); + virtual bool deleteProperty(ExecState*, const Identifier&, bool checkDontDelete = true); virtual void getPropertyNames(ExecState*, PropertyNameArray&, bool includeNonEnumerable = false); virtual bool isVariableObject() const; diff --git a/src/3rdparty/webkit/JavaScriptCore/runtime/RegExpMatchesArray.h b/src/3rdparty/webkit/JavaScriptCore/runtime/RegExpMatchesArray.h index 479a82c..c891faa 100644 --- a/src/3rdparty/webkit/JavaScriptCore/runtime/RegExpMatchesArray.h +++ b/src/3rdparty/webkit/JavaScriptCore/runtime/RegExpMatchesArray.h @@ -58,18 +58,18 @@ namespace JSC { JSArray::put(exec, propertyName, v); } - virtual bool deleteProperty(ExecState* exec, const Identifier& propertyName) + virtual bool deleteProperty(ExecState* exec, const Identifier& propertyName, bool checkDontDelete = true) { if (lazyCreationData()) fillArrayInstance(exec); - return JSArray::deleteProperty(exec, propertyName); + return JSArray::deleteProperty(exec, propertyName, checkDontDelete); } - virtual bool deleteProperty(ExecState* exec, unsigned propertyName) + virtual bool deleteProperty(ExecState* exec, unsigned propertyName, bool checkDontDelete = true) { if (lazyCreationData()) fillArrayInstance(exec); - return JSArray::deleteProperty(exec, propertyName); + return JSArray::deleteProperty(exec, propertyName, checkDontDelete); } virtual void getPropertyNames(ExecState* exec, PropertyNameArray& arr, bool includeNonEnumerable = false) diff --git a/src/3rdparty/webkit/JavaScriptCore/runtime/StringObject.cpp b/src/3rdparty/webkit/JavaScriptCore/runtime/StringObject.cpp index 927ea73..36970b1 100644 --- a/src/3rdparty/webkit/JavaScriptCore/runtime/StringObject.cpp +++ b/src/3rdparty/webkit/JavaScriptCore/runtime/StringObject.cpp @@ -68,7 +68,7 @@ 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; @@ -76,7 +76,7 @@ bool StringObject::deleteProperty(ExecState* exec, const Identifier& propertyNam unsigned i = propertyName.toStrictUInt32(&isStrictUInt32); if (isStrictUInt32 && internalValue()->canGetIndex(i)) return false; - return JSObject::deleteProperty(exec, propertyName); + return JSObject::deleteProperty(exec, propertyName, checkDontDelete); } void StringObject::getPropertyNames(ExecState* exec, PropertyNameArray& propertyNames, bool includeNonEnumerable) diff --git a/src/3rdparty/webkit/JavaScriptCore/runtime/StringObject.h b/src/3rdparty/webkit/JavaScriptCore/runtime/StringObject.h index 8ed038b..c1cde15 100644 --- a/src/3rdparty/webkit/JavaScriptCore/runtime/StringObject.h +++ b/src/3rdparty/webkit/JavaScriptCore/runtime/StringObject.h @@ -37,7 +37,7 @@ namespace JSC { virtual bool getOwnPropertySlot(ExecState*, unsigned propertyName, PropertySlot&); virtual void put(ExecState* exec, const Identifier& propertyName, JSValue, PutPropertySlot&); - virtual bool deleteProperty(ExecState*, const Identifier& propertyName); + virtual bool deleteProperty(ExecState*, const Identifier& propertyName, bool checkDontDelete = true); virtual void getPropertyNames(ExecState*, PropertyNameArray&, bool includeNonEnumerable = false); virtual bool getPropertyAttributes(ExecState*, const Identifier& propertyName, unsigned& attributes) const; |