]> git.saurik.com Git - apple/javascriptcore.git/blobdiff - runtime/ErrorConstructor.h
JavaScriptCore-7601.1.46.3.tar.gz
[apple/javascriptcore.git] / runtime / ErrorConstructor.h
index ceec005be802fd3529141146072bf21c537eaf82..b11894dbe4b5614fd230b60f6ae3bc8bb35d292e 100644 (file)
 
 namespace JSC {
 
-    class ErrorPrototype;
-
-    class ErrorConstructor : public InternalFunction {
-    public:
-        ErrorConstructor(ExecState*, JSGlobalObject*, Structure*, ErrorPrototype*);
-
-    private:
-        virtual ConstructType getConstructData(ConstructData&);
-        virtual CallType getCallData(CallData&);
-    };
+class ErrorPrototype;
+
+class ErrorConstructor : public InternalFunction {
+public:
+    typedef InternalFunction Base;
+
+    static ErrorConstructor* create(VM& vm, Structure* structure, ErrorPrototype* errorPrototype)
+    {
+        ErrorConstructor* constructor = new (NotNull, allocateCell<ErrorConstructor>(vm.heap)) ErrorConstructor(vm, structure);
+        constructor->finishCreation(vm, errorPrototype);
+        return constructor;
+    }
+
+    DECLARE_INFO;
+
+    static Structure* createStructure(VM& vm, JSGlobalObject* globalObject, JSValue prototype) 
+    { 
+        return Structure::create(vm, globalObject, prototype, TypeInfo(ObjectType, StructureFlags), info()); 
+    }
+
+protected:
+    void finishCreation(VM&, ErrorPrototype*);
+        
+private:
+    ErrorConstructor(VM&, Structure*);
+    static ConstructType getConstructData(JSCell*, ConstructData&);
+    static CallType getCallData(JSCell*, CallData&);
+};
 
 } // namespace JSC