X-Git-Url: https://git.saurik.com/apple/javascriptcore.git/blobdiff_plain/14957cd040308e3eeec43d26bae5d76da13fcd85..217a6308cd6a1dc049a0bb69263bd4c91f91c4d0:/runtime/DateConstructor.h diff --git a/runtime/DateConstructor.h b/runtime/DateConstructor.h index 63e78cf..5a6200e 100644 --- a/runtime/DateConstructor.h +++ b/runtime/DateConstructor.h @@ -29,24 +29,34 @@ namespace JSC { class DateConstructor : public InternalFunction { public: - DateConstructor(ExecState*, JSGlobalObject*, Structure*, DatePrototype*); + typedef InternalFunction Base; + + static DateConstructor* create(ExecState* exec, JSGlobalObject* globalObject, Structure* structure, DatePrototype* datePrototype) + { + DateConstructor* constructor = new (NotNull, allocateCell(*exec->heap())) DateConstructor(globalObject, structure); + constructor->finishCreation(exec, datePrototype); + return constructor; + } static const ClassInfo s_info; - static Structure* createStructure(JSGlobalData& globalData, JSValue prototype) + static Structure* createStructure(VM& vm, JSGlobalObject* globalObject, JSValue prototype) { - return Structure::create(globalData, prototype, TypeInfo(ObjectType, StructureFlags), AnonymousSlotCount, &s_info); + return Structure::create(vm, globalObject, prototype, TypeInfo(ObjectType, StructureFlags), &s_info); } protected: + void finishCreation(ExecState*, DatePrototype*); static const unsigned StructureFlags = OverridesGetOwnPropertySlot | InternalFunction::StructureFlags; private: - virtual ConstructType getConstructData(ConstructData&); - virtual CallType getCallData(CallData&); + DateConstructor(JSGlobalObject*, Structure*); + static ConstructType getConstructData(JSCell*, ConstructData&); + static CallType getCallData(JSCell*, CallData&); + + static bool getOwnPropertySlot(JSCell*, ExecState*, PropertyName, PropertySlot&); - virtual bool getOwnPropertySlot(ExecState*, const Identifier&, PropertySlot&); - virtual bool getOwnPropertyDescriptor(ExecState*, const Identifier&, PropertyDescriptor&); + static bool getOwnPropertyDescriptor(JSObject*, ExecState*, PropertyName, PropertyDescriptor&); }; JSObject* constructDate(ExecState*, JSGlobalObject*, const ArgList&);