]> git.saurik.com Git - apple/javascriptcore.git/blobdiff - runtime/BooleanObject.h
JavaScriptCore-1097.13.tar.gz
[apple/javascriptcore.git] / runtime / BooleanObject.h
index cfd55fe4da5c55746d528b164b36de09a1f31ed2..2704ff3cd4f92a34eff18a4f0c1cf40466ca5249 100644 (file)
 namespace JSC {
 
     class BooleanObject : public JSWrapperObject {
-    public:
-        explicit BooleanObject(PassRefPtr<Structure>);
+    protected:
+        BooleanObject(JSGlobalData&, Structure*);
+        void finishCreation(JSGlobalData&);
 
-        virtual const ClassInfo* classInfo() const { return &info; }
-        static const ClassInfo info;
+    public:
+        typedef JSWrapperObject Base;
+
+        static BooleanObject* create(JSGlobalData& globalData, Structure* structure)
+        {
+            BooleanObject* boolean = new (NotNull, allocateCell<BooleanObject>(globalData.heap)) BooleanObject(globalData, structure);
+            boolean->finishCreation(globalData);
+            return boolean;
+        }
+        
+        static const ClassInfo s_info;
+        
+        static Structure* createStructure(JSGlobalData& globalData, JSGlobalObject* globalObject, JSValue prototype)
+        {
+            return Structure::create(globalData, globalObject, prototype, TypeInfo(ObjectType, StructureFlags), &s_info);
+        }
     };
 
     BooleanObject* asBooleanObject(JSValue);
 
     inline BooleanObject* asBooleanObject(JSValue value)
     {
-        ASSERT(asObject(value)->inherits(&BooleanObject::info));
+        ASSERT(asObject(value)->inherits(&BooleanObject::s_info));
         return static_cast<BooleanObject*>(asObject(value));
     }