summaryrefslogtreecommitdiffstats
path: root/JavaScriptCore/runtime/JSActivation.h
diff options
context:
space:
mode:
Diffstat (limited to 'JavaScriptCore/runtime/JSActivation.h')
-rw-r--r--JavaScriptCore/runtime/JSActivation.h21
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); }