@@ -2246,7 +2246,7 @@ IR::Instr* Inline::InlineApply(IR::Instr *callInstr, Js::FunctionInfo *funcInfo,
2246
2246
IR::Instr * returnInstr = nullptr;
2247
2247
if (!PHASE_OFF(Js::InlineApplyTargetPhase, this->topFunc))
2248
2248
{
2249
- if (isArrayOpndArgumentsObject && InlineApplyTarget(callInstr, inlinerData, &inlineeData, funcInfo, symCallerThis, &returnInstr, recursiveInlineDepth))
2249
+ if (InlineApplyTarget(callInstr, inlinerData, &inlineeData, funcInfo, symCallerThis, &returnInstr, recursiveInlineDepth, isArrayOpndArgumentsObject ))
2250
2250
{
2251
2251
*pIsInlined = true;
2252
2252
Assert(returnInstr);
@@ -2471,7 +2471,7 @@ IR::Instr * Inline::InlineApplyWithArray(IR::Instr * callInstr, Js::FunctionInfo
2471
2471
}
2472
2472
2473
2473
bool Inline::InlineApplyTarget(IR::Instr *callInstr, const Js::FunctionCodeGenJitTimeData* inlinerData, const Js::FunctionCodeGenJitTimeData** pInlineeData, Js::FunctionInfo *applyFuncInfo,
2474
- const StackSym *symCallerThis, IR::Instr ** returnInstr, uint recursiveInlineDepth)
2474
+ const StackSym *symCallerThis, IR::Instr ** returnInstr, uint recursiveInlineDepth, bool isArrayOpndArgumentsObject )
2475
2475
{
2476
2476
#if ENABLE_DEBUG_CONFIG_OPTIONS
2477
2477
char16 debugStringBuffer[MAX_FUNCTION_BODY_DEBUG_STRING_SIZE];
@@ -2511,7 +2511,7 @@ bool Inline::InlineApplyTarget(IR::Instr *callInstr, const Js::FunctionCodeGenJi
2511
2511
const auto inlineCacheIndex = applyTargetLdOpnd->AsPropertySymOpnd()->m_inlineCacheIndex;
2512
2512
const auto inlineeData = inlinerData->GetLdFldInlinee(inlineCacheIndex);
2513
2513
2514
- if (SkipCallApplyTargetInlining_Shared(callInstr, inlinerData, inlineeData, /*isApplyTarget*/ true, /*isCallTarget*/ false))
2514
+ if (!isArrayOpndArgumentsObject || SkipCallApplyTargetInlining_Shared(callInstr, inlinerData, inlineeData, /*isApplyTarget*/ true, /*isCallTarget*/ false))
2515
2515
{
2516
2516
*pInlineeData = inlineeData;
2517
2517
return false;
0 commit comments