namespace JSC {
- class BooleanObject : public JSWrapperObject {
- public:
- explicit BooleanObject(NonNullPassRefPtr<Structure>);
+class BooleanObject : public JSWrapperObject {
+protected:
+ JS_EXPORT_PRIVATE BooleanObject(VM&, Structure*);
+ JS_EXPORT_PRIVATE void finishCreation(VM&);
- virtual const ClassInfo* classInfo() const { return &info; }
- static const ClassInfo info;
-
- static PassRefPtr<Structure> createStructure(JSValue prototype)
- {
- return Structure::create(prototype, TypeInfo(ObjectType, StructureFlags), AnonymousSlotCount);
- }
- };
-
- BooleanObject* asBooleanObject(JSValue);
+public:
+ typedef JSWrapperObject Base;
- inline BooleanObject* asBooleanObject(JSValue value)
+ static BooleanObject* create(VM& vm, Structure* structure)
+ {
+ BooleanObject* boolean = new (NotNull, allocateCell<BooleanObject>(vm.heap)) BooleanObject(vm, structure);
+ boolean->finishCreation(vm);
+ return boolean;
+ }
+
+ DECLARE_EXPORT_INFO;
+
+ static Structure* createStructure(VM& vm, JSGlobalObject* globalObject, JSValue prototype)
{
- ASSERT(asObject(value)->inherits(&BooleanObject::info));
- return static_cast<BooleanObject*>(asObject(value));
+ return Structure::create(vm, globalObject, prototype, TypeInfo(ObjectType, StructureFlags), info());
}
+};
+
+BooleanObject* asBooleanObject(JSValue);
+
+inline BooleanObject* asBooleanObject(JSValue value)
+{
+ ASSERT(asObject(value)->inherits(BooleanObject::info()));
+ return static_cast<BooleanObject*>(asObject(value));
+}
} // namespace JSC