]> git.saurik.com Git - apple/javascriptcore.git/blobdiff - runtime/StrictEvalActivation.h
JavaScriptCore-1218.34.tar.gz
[apple/javascriptcore.git] / runtime / StrictEvalActivation.h
index e2885cc0c65685a9b83da42701986a69547c44d4..df490d5e723864113bbe0a94ca51bf7379acfbe4 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 JSObject* toThisObject(JSCell*, ExecState*);
+
+    static Structure* createStructure(VM& vm, JSGlobalObject* globalObject, JSValue prototype)
+    {
+        return Structure::create(vm, globalObject, prototype, TypeInfo(ObjectType, StructureFlags), &s_info);
+    }
+    
+    static const ClassInfo s_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