@@ -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