File tree Expand file tree Collapse file tree 5 files changed +57
-0
lines changed Expand file tree Collapse file tree 5 files changed +57
-0
lines changed Original file line number Diff line number Diff line change @@ -231,6 +231,13 @@ LowererMD::LowerCallHelper(IR::Instr *instrCall)
231
231
regArg->Free (this ->m_func );
232
232
instrArg->Remove ();
233
233
}
234
+ else if (instrArg->m_opcode == Js::OpCode::ExtendArg_A)
235
+ {
236
+ if (instrArg->GetSrc1 ()->IsRegOpnd ())
237
+ {
238
+ m_lowerer->addToLiveOnBackEdgeSyms ->Set (instrArg->GetSrc1 ()->AsRegOpnd ()->GetStackSym ()->m_id );
239
+ }
240
+ }
234
241
}
235
242
236
243
switch (helperMethod)
Original file line number Diff line number Diff line change @@ -227,6 +227,13 @@ LowererMD::LowerCallHelper(IR::Instr *instrCall)
227
227
regArg->Free (this ->m_func );
228
228
instrArg->Remove ();
229
229
}
230
+ else if (instrArg->m_opcode == Js::OpCode::ExtendArg_A)
231
+ {
232
+ if (instrArg->GetSrc1 ()->IsRegOpnd ())
233
+ {
234
+ m_lowerer->addToLiveOnBackEdgeSyms ->Set (instrArg->GetSrc1 ()->AsRegOpnd ()->GetStackSym ()->m_id );
235
+ }
236
+ }
230
237
}
231
238
232
239
switch (helperMethod)
Original file line number Diff line number Diff line change @@ -241,6 +241,13 @@ LowererMD::LowerCallHelper(IR::Instr *instrCall)
241
241
regArg->Free (this ->m_func );
242
242
instrArg->Remove ();
243
243
}
244
+ else if (instrArg->m_opcode == Js::OpCode::ExtendArg_A)
245
+ {
246
+ if (instrArg->GetSrc1 ()->IsRegOpnd ())
247
+ {
248
+ m_lowerer->addToLiveOnBackEdgeSyms ->Set (instrArg->GetSrc1 ()->AsRegOpnd ()->GetStackSym ()->m_id );
249
+ }
250
+ }
244
251
}
245
252
246
253
switch (helperMethod)
Original file line number Diff line number Diff line change
1
+ //-------------------------------------------------------------------------------------------------------
2
+ // Copyright (C) Microsoft. All rights reserved.
3
+ // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
4
+ //-------------------------------------------------------------------------------------------------------
5
+
6
+ function test0 ( ) {
7
+ var arrObj0 = { } ;
8
+ arrObj0 [ 0 ] = 1 ;
9
+
10
+ function v0 ( o )
11
+ {
12
+ for ( var v1 = 0 ; v1 < 8 ; v1 ++ )
13
+ {
14
+ class class7 {
15
+ func56 ( ) {
16
+ }
17
+ }
18
+ o [ v1 ] = v1 ;
19
+ }
20
+ }
21
+
22
+ v0 ( arrObj0 ) ;
23
+
24
+
25
+ } ;
26
+
27
+ test0 ( ) ;
28
+ test0 ( ) ;
29
+ test0 ( ) ;
30
+ print ( "pass" ) ;
Original file line number Diff line number Diff line change 477
477
<files >bug_OS17417473.js</files >
478
478
<compile-flags >-pageheap:2 -CollectGarbage -lic:4 -Sja:4 -Fja:6 -maxInterpretCount:2 -MinBailOutsBeforeRejit:2 -args summary -endargs</compile-flags >
479
479
</default >
480
+ </test >
481
+ <test >
482
+ <default >
483
+ <files >HomeObjInLoop.js</files >
484
+ <compile-flags >-forceNative -forcejitloopbody -off:aggressiveinttypespec -off:ArrayCheckHoist</compile-flags >
485
+ </default >
480
486
</test >
481
487
</regress-exe >
You can’t perform that action at this time.
0 commit comments