#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