X-Git-Url: https://git.saurik.com/apple/javascriptcore.git/blobdiff_plain/a253471d7f8e4d91bf6ebabab00155c3b387d3d0..93a3786624b2768d89bfa27e46598dc64e2fb70a:/runtime/StringObject.h diff --git a/runtime/StringObject.h b/runtime/StringObject.h index bad5595..6a92541 100644 --- a/runtime/StringObject.h +++ b/runtime/StringObject.h @@ -33,41 +33,43 @@ namespace JSC { static StringObject* create(ExecState* exec, Structure* structure) { JSString* string = jsEmptyString(exec); - StringObject* object = new (NotNull, allocateCell(*exec->heap())) StringObject(exec->globalData(), structure); - object->finishCreation(exec->globalData(), string); + StringObject* object = new (NotNull, allocateCell(*exec->heap())) StringObject(exec->vm(), structure); + object->finishCreation(exec->vm(), string); return object; } static StringObject* create(ExecState* exec, Structure* structure, JSString* string) { - StringObject* object = new (NotNull, allocateCell(*exec->heap())) StringObject(exec->globalData(), structure); - object->finishCreation(exec->globalData(), string); + StringObject* object = new (NotNull, allocateCell(*exec->heap())) StringObject(exec->vm(), structure); + object->finishCreation(exec->vm(), string); return object; } static StringObject* create(ExecState*, JSGlobalObject*, JSString*); - static bool getOwnPropertySlot(JSCell*, ExecState*, const Identifier& propertyName, PropertySlot&); + static bool getOwnPropertySlot(JSCell*, ExecState*, PropertyName, PropertySlot&); static bool getOwnPropertySlotByIndex(JSCell*, ExecState*, unsigned propertyName, PropertySlot&); - static bool getOwnPropertyDescriptor(JSObject*, ExecState*, const Identifier&, PropertyDescriptor&); + static bool getOwnPropertyDescriptor(JSObject*, ExecState*, PropertyName, PropertyDescriptor&); - static void put(JSCell*, ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&); + static void put(JSCell*, ExecState*, PropertyName, JSValue, PutPropertySlot&); + static void putByIndex(JSCell*, ExecState*, unsigned propertyName, JSValue, bool shouldThrow); - static bool deleteProperty(JSCell*, ExecState*, const Identifier& propertyName); + static bool deleteProperty(JSCell*, ExecState*, PropertyName); + static bool deletePropertyByIndex(JSCell*, ExecState*, unsigned propertyName); static void getOwnPropertyNames(JSObject*, ExecState*, PropertyNameArray&, EnumerationMode); - static bool defineOwnProperty(JSObject*, ExecState*, const Identifier& propertyName, PropertyDescriptor&, bool shouldThrow); + static bool defineOwnProperty(JSObject*, ExecState*, PropertyName, PropertyDescriptor&, bool shouldThrow); static const JS_EXPORTDATA ClassInfo s_info; JSString* internalValue() const { return asString(JSWrapperObject::internalValue());} - static Structure* createStructure(JSGlobalData& globalData, JSGlobalObject* globalObject, JSValue prototype) + static Structure* createStructure(VM& vm, JSGlobalObject* globalObject, JSValue prototype) { - return Structure::create(globalData, globalObject, prototype, TypeInfo(ObjectType, StructureFlags), &s_info); + return Structure::create(vm, globalObject, prototype, TypeInfo(ObjectType, StructureFlags), &s_info); } protected: - JS_EXPORT_PRIVATE void finishCreation(JSGlobalData&, JSString*); - static const unsigned StructureFlags = OverridesGetOwnPropertySlot | OverridesGetPropertyNames | JSWrapperObject::StructureFlags; - JS_EXPORT_PRIVATE StringObject(JSGlobalData&, Structure*); + JS_EXPORT_PRIVATE void finishCreation(VM&, JSString*); + static const unsigned StructureFlags = OverridesGetOwnPropertySlot | InterceptsGetOwnPropertySlotByIndexEvenWhenLengthIsNotZero | OverridesGetPropertyNames | JSWrapperObject::StructureFlags; + JS_EXPORT_PRIVATE StringObject(VM&, Structure*); }; StringObject* asStringObject(JSValue); @@ -78,6 +80,8 @@ namespace JSC { return static_cast(asObject(value)); } + JS_EXPORT_PRIVATE StringObject* constructString(ExecState*, JSGlobalObject*, JSValue); + } // namespace JSC #endif // StringObject_h