void DFG_OPERATION operationPutByIdDirectNonStrictOptimizeWithReturnAddress(ExecState* exec, EncodedJSValue encodedValue, JSCell* base, Identifier* propertyName, ReturnAddressPtr returnAddress) { JSValue value = JSValue::decode(encodedValue); JSValue baseValue(base); PutPropertySlot slot(false); baseValue.putDirect(exec, *propertyName, value, slot); StructureStubInfo& stubInfo = exec->codeBlock()->getStubInfo(returnAddress); if (stubInfo.seen) dfgRepatchPutByID(exec, baseValue, *propertyName, slot, stubInfo, Direct); else stubInfo.seen = true; }
void DFG_OPERATION operationPutByIdDirectNonStrictOptimizeWithReturnAddress(ExecState* exec, EncodedJSValue encodedValue, JSCell* base, Identifier* propertyName, ReturnAddressPtr returnAddress) { JSGlobalData* globalData = &exec->globalData(); NativeCallFrameTracer tracer(globalData, exec); JSValue value = JSValue::decode(encodedValue); PutPropertySlot slot(false); ASSERT(base->isObject()); asObject(base)->putDirect(exec->globalData(), *propertyName, value, slot); StructureStubInfo& stubInfo = exec->codeBlock()->getStubInfo(returnAddress); if (stubInfo.seen) dfgRepatchPutByID(exec, base, *propertyName, slot, stubInfo, Direct); else stubInfo.seen = true; }