Fix slot access intrinsics for objects with > 16 reserved slots.
parent
8098b926f8
commit
317673d504
|
@ -2618,6 +2618,10 @@ IonBuilder::inlineUnsafeSetReservedSlot(CallInfo& callInfo)
|
|||
return InliningStatus_NotInlined;
|
||||
uint32_t slot = uint32_t(arg->toConstant()->toInt32());
|
||||
|
||||
// Don't inline if it's not a fixed slot.
|
||||
if (slot >= NativeObject::MAX_FIXED_SLOTS)
|
||||
return InliningStatus_NotInlined;
|
||||
|
||||
callInfo.setImplicitlyUsedUnchecked();
|
||||
|
||||
MStoreFixedSlot* store =
|
||||
|
@ -2649,6 +2653,10 @@ IonBuilder::inlineUnsafeGetReservedSlot(CallInfo& callInfo, MIRType knownValueTy
|
|||
return InliningStatus_NotInlined;
|
||||
uint32_t slot = uint32_t(arg->toConstant()->toInt32());
|
||||
|
||||
// Don't inline if it's not a fixed slot.
|
||||
if (slot >= NativeObject::MAX_FIXED_SLOTS)
|
||||
return InliningStatus_NotInlined;
|
||||
|
||||
callInfo.setImplicitlyUsedUnchecked();
|
||||
|
||||
MLoadFixedSlot* load = MLoadFixedSlot::New(alloc(), callInfo.getArg(0), slot);
|
||||
|
|
Loading…
Reference in New Issue