X-Git-Url: https://git.saurik.com/apple/javascriptcore.git/blobdiff_plain/9dae56ea45a0f5f8136a5c93d6f3a7f99399ca73..217a6308cd6a1dc049a0bb69263bd4c91f91c4d0:/runtime/NumberConstructor.h diff --git a/runtime/NumberConstructor.h b/runtime/NumberConstructor.h index 070be5f..45883ed 100644 --- a/runtime/NumberConstructor.h +++ b/runtime/NumberConstructor.h @@ -29,25 +29,38 @@ namespace JSC { class NumberConstructor : public InternalFunction { public: - NumberConstructor(ExecState*, PassRefPtr, NumberPrototype*); + typedef InternalFunction Base; - virtual bool getOwnPropertySlot(ExecState*, const Identifier&, PropertySlot&); - JSValuePtr getValueProperty(ExecState*, int token) const; + static NumberConstructor* create(ExecState* exec, JSGlobalObject* globalObject, Structure* structure, NumberPrototype* numberPrototype) + { + NumberConstructor* constructor = new (NotNull, allocateCell(*exec->heap())) NumberConstructor(globalObject, structure); + constructor->finishCreation(exec, numberPrototype); + return constructor; + } + + static void put(JSCell*, ExecState*, PropertyName, JSValue, PutPropertySlot&); + + static bool getOwnPropertySlot(JSCell*, ExecState*, PropertyName, PropertySlot&); + static bool getOwnPropertyDescriptor(JSObject*, ExecState*, PropertyName, PropertyDescriptor&); + JSValue getValueProperty(ExecState*, int token) const; - static const ClassInfo info; + static const ClassInfo s_info; - static PassRefPtr createStructure(JSValuePtr proto) + static Structure* createStructure(VM& vm, JSGlobalObject* globalObject, JSValue proto) { - return Structure::create(proto, TypeInfo(ObjectType, ImplementsHasInstance)); + return Structure::create(vm, globalObject, proto, TypeInfo(ObjectType, StructureFlags), &s_info); } enum { NaNValue, NegInfinity, PosInfinity, MaxValue, MinValue }; - private: - virtual ConstructType getConstructData(ConstructData&); - virtual CallType getCallData(CallData&); + protected: + void finishCreation(ExecState*, NumberPrototype*); + static const unsigned StructureFlags = OverridesGetOwnPropertySlot | ImplementsHasInstance | InternalFunction::StructureFlags; - virtual const ClassInfo* classInfo() const { return &info; } + private: + NumberConstructor(JSGlobalObject*, Structure*); + static ConstructType getConstructData(JSCell*, ConstructData&); + static CallType getCallData(JSCell*, CallData&); }; } // namespace JSC