Changeset 255365 in webkit for trunk/Source/JavaScriptCore/tools/JSDollarVM.cpp
- Timestamp:
- Jan 29, 2020, 10:07:40 AM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/tools/JSDollarVM.cpp
r253344 r255365 683 683 }; 684 684 685 class ObjectDoingSideEffectPutWithoutCorrectSlotStatus : public JSNonFinalObject { 686 using Base = JSNonFinalObject; 687 public: 688 ObjectDoingSideEffectPutWithoutCorrectSlotStatus(VM& vm, Structure* structure) 689 : Base(vm, structure) 690 { 691 DollarVMAssertScope assertScope; 692 } 693 694 DECLARE_INFO; 695 696 static Structure* createStructure(VM& vm, JSGlobalObject* globalObject, JSValue prototype) 697 { 698 DollarVMAssertScope assertScope; 699 return Structure::create(vm, globalObject, prototype, TypeInfo(ObjectType, StructureFlags), info()); 700 } 701 702 static ObjectDoingSideEffectPutWithoutCorrectSlotStatus* create(VM& vm, Structure* structure) 703 { 704 DollarVMAssertScope assertScope; 705 ObjectDoingSideEffectPutWithoutCorrectSlotStatus* accessor = new (NotNull, allocateCell<ObjectDoingSideEffectPutWithoutCorrectSlotStatus>(vm.heap)) ObjectDoingSideEffectPutWithoutCorrectSlotStatus(vm, structure); 706 accessor->finishCreation(vm); 707 return accessor; 708 } 709 710 static bool put(JSCell* cell, JSGlobalObject* globalObject, PropertyName propertyName, JSValue value, PutPropertySlot& slot) 711 { 712 DollarVMAssertScope assertScope; 713 auto* thisObject = jsCast<ObjectDoingSideEffectPutWithoutCorrectSlotStatus*>(cell); 714 auto throwScope = DECLARE_THROW_SCOPE(globalObject->vm()); 715 auto* string = value.toString(globalObject); 716 RETURN_IF_EXCEPTION(throwScope, false); 717 RELEASE_AND_RETURN(throwScope, Base::put(thisObject, globalObject, propertyName, string, slot)); 718 } 719 }; 720 685 721 class DOMJITNode : public JSNonFinalObject { 686 722 public: … … 1306 1342 1307 1343 const ClassInfo StaticCustomAccessor::s_info = { "StaticCustomAccessor", &Base::s_info, &staticCustomAccessorTable, nullptr, CREATE_METHOD_TABLE(StaticCustomAccessor) }; 1344 const ClassInfo ObjectDoingSideEffectPutWithoutCorrectSlotStatus::s_info = { "ObjectDoingSideEffectPutWithoutCorrectSlotStatus", &Base::s_info, &staticCustomAccessorTable, nullptr, CREATE_METHOD_TABLE(ObjectDoingSideEffectPutWithoutCorrectSlotStatus) }; 1308 1345 1309 1346 ElementHandleOwner* Element::handleOwner() … … 2257 2294 } 2258 2295 2296 static EncodedJSValue JSC_HOST_CALL functionCreateObjectDoingSideEffectPutWithoutCorrectSlotStatus(JSGlobalObject* globalObject, CallFrame* callFrame) 2297 { 2298 DollarVMAssertScope assertScope; 2299 VM& vm = globalObject->vm(); 2300 JSLockHolder lock(vm); 2301 2302 auto* dollarVM = jsDynamicCast<JSDollarVM*>(vm, callFrame->thisValue()); 2303 RELEASE_ASSERT(dollarVM); 2304 auto* result = ObjectDoingSideEffectPutWithoutCorrectSlotStatus::create(vm, dollarVM->objectDoingSideEffectPutWithoutCorrectSlotStatusStructure()); 2305 return JSValue::encode(result); 2306 } 2307 2259 2308 static EncodedJSValue JSC_HOST_CALL functionSetImpureGetterDelegate(JSGlobalObject* globalObject, CallFrame* callFrame) 2260 2309 { … … 2801 2850 #endif 2802 2851 addFunction(vm, "createStaticCustomAccessor", functionCreateStaticCustomAccessor, 0); 2852 addFunction(vm, "createObjectDoingSideEffectPutWithoutCorrectSlotStatus", functionCreateObjectDoingSideEffectPutWithoutCorrectSlotStatus, 0); 2803 2853 addFunction(vm, "getPrivateProperty", functionGetPrivateProperty, 2); 2804 2854 addFunction(vm, "setImpureGetterDelegate", functionSetImpureGetterDelegate, 2); … … 2847 2897 addFunction(vm, "isWasmSupported", functionIsWasmSupported, 0); 2848 2898 addFunction(vm, "make16BitStringIfPossible", functionMake16BitStringIfPossible, 1); 2899 2900 m_objectDoingSideEffectPutWithoutCorrectSlotStatusStructure.set(vm, this, ObjectDoingSideEffectPutWithoutCorrectSlotStatus::createStructure(vm, globalObject, jsNull())); 2849 2901 } 2850 2902 … … 2863 2915 } 2864 2916 2917 void JSDollarVM::visitChildren(JSCell* cell, SlotVisitor& visitor) 2918 { 2919 JSDollarVM* thisObject = jsCast<JSDollarVM*>(cell); 2920 Base::visitChildren(thisObject, visitor); 2921 visitor.append(thisObject->m_objectDoingSideEffectPutWithoutCorrectSlotStatusStructure); 2922 } 2923 2865 2924 } // namespace JSC 2866 2925
Note:
See TracChangeset
for help on using the changeset viewer.