diff options
Diffstat (limited to 'JavaScriptCore/runtime/JSActivation.h')
| -rw-r--r-- | JavaScriptCore/runtime/JSActivation.h | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/JavaScriptCore/runtime/JSActivation.h b/JavaScriptCore/runtime/JSActivation.h index 761bee4..6dd6d70 100644 --- a/JavaScriptCore/runtime/JSActivation.h +++ b/JavaScriptCore/runtime/JSActivation.h @@ -31,7 +31,6 @@ #include "CodeBlock.h" #include "JSVariableObject.h" -#include "RegisterFile.h" #include "SymbolTable.h" #include "Nodes.h" @@ -48,11 +47,12 @@ namespace JSC { virtual void markChildren(MarkStack&); - virtual bool isDynamicScope() const; + virtual bool isDynamicScope(bool& requiresDynamicChecks) const; virtual bool isActivationObject() const { return true; } virtual bool getOwnPropertySlot(ExecState*, const Identifier&, PropertySlot&); + virtual void getOwnPropertyNames(ExecState*, PropertyNameArray&, EnumerationMode); virtual void put(ExecState*, const Identifier&, JSValue, PutPropertySlot&); @@ -60,8 +60,9 @@ namespace JSC { virtual bool deleteProperty(ExecState*, const Identifier& propertyName); virtual JSObject* toThisObject(ExecState*) const; + virtual JSValue toStrictThisObject(ExecState*) const; - void copyRegisters(Arguments* arguments); + void copyRegisters(); virtual const ClassInfo* classInfo() const { return &info; } static const ClassInfo info; @@ -74,12 +75,12 @@ namespace JSC { private: struct JSActivationData : public JSVariableObjectData { JSActivationData(NonNullPassRefPtr<FunctionExecutable> _functionExecutable, Register* registers) - : JSVariableObjectData(_functionExecutable->generatedBytecode().symbolTable(), registers) + : JSVariableObjectData(_functionExecutable->symbolTable(), registers) , functionExecutable(_functionExecutable) { // We have to manually ref and deref the symbol table as JSVariableObjectData // doesn't know about SharedSymbolTable - functionExecutable->generatedBytecode().sharedSymbolTable()->ref(); + functionExecutable->symbolTable()->ref(); } ~JSActivationData() { @@ -88,8 +89,14 @@ namespace JSC { RefPtr<FunctionExecutable> functionExecutable; }; - - static JSValue argumentsGetter(ExecState*, const Identifier&, const PropertySlot&); + + bool symbolTableGet(const Identifier&, PropertySlot&); + bool symbolTableGet(const Identifier&, PropertyDescriptor&); + bool symbolTableGet(const Identifier&, PropertySlot&, bool& slotIsWriteable); + bool symbolTablePut(const Identifier&, JSValue); + bool symbolTablePutWithAttributes(const Identifier&, JSValue, unsigned attributes); + + static JSValue argumentsGetter(ExecState*, JSValue, const Identifier&); NEVER_INLINE PropertySlot::GetValueFunc getArgumentsGetter(); JSActivationData* d() const { return static_cast<JSActivationData*>(JSVariableObject::d); } |
