]> git.saurik.com Git - apple/javascriptcore.git/blobdiff - runtime/StrictEvalActivation.h
JavaScriptCore-7600.1.4.11.8.tar.gz
[apple/javascriptcore.git] / runtime / StrictEvalActivation.h
index e2885cc0c65685a9b83da42701986a69547c44d4..e02bb615d04fb15ec7f5cf147ab16991e0ac51d8 100644 (file)
 #ifndef StrictEvalActivation_h
 #define StrictEvalActivation_h
 
-#include "JSObject.h"
+#include "JSScope.h"
 
 namespace JSC {
 
-class StrictEvalActivation : public JSNonFinalObject {
+class StrictEvalActivation : public JSScope {
 public:
+    typedef JSScope Base;
+
+    static StrictEvalActivation* create(ExecState* exec)
+    {
+        StrictEvalActivation* activation = new (NotNull, allocateCell<StrictEvalActivation>(*exec->heap())) StrictEvalActivation(exec);
+        activation->finishCreation(exec->vm());
+        return activation;
+    }
+
+    static bool deleteProperty(JSCell*, ExecState*, PropertyName);
+    static JSValue toThis(JSCell*, ExecState*, ECMAMode);
+
+    static Structure* createStructure(VM& vm, JSGlobalObject* globalObject, JSValue prototype)
+    {
+        return Structure::create(vm, globalObject, prototype, TypeInfo(ObjectType, StructureFlags), info());
+    }
+    
+    DECLARE_INFO;
+
+protected:
+    static const unsigned StructureFlags = IsEnvironmentRecord | Base::StructureFlags;
+
+private:
     StrictEvalActivation(ExecState*);
-    virtual bool deleteProperty(ExecState*, const Identifier&);
-    virtual JSObject* toThisObject(ExecState*) const;
-    virtual JSValue toStrictThisObject(ExecState*) const;
 };
 
 } // namespace JSC