File tree Expand file tree Collapse file tree 4 files changed +51
-1
lines changed Expand file tree Collapse file tree 4 files changed +51
-1
lines changed Original file line number Diff line number Diff line change @@ -4032,7 +4032,7 @@ BackwardPass::DeadStoreOrChangeInstrForScopeObjRemoval(IR::Instr ** pInstrPrev)
4032
4032
IR::Instr * instr = this ->currentInstr ;
4033
4033
Func * currFunc = instr->m_func ;
4034
4034
4035
- if (this ->tag == Js::DeadStorePhase && instr->m_func ->IsStackArgsEnabled () && ! IsPrePass ())
4035
+ if (this ->tag == Js::DeadStorePhase && instr->m_func ->IsStackArgsEnabled () && ( IsPrePass () || !currentBlock-> loop ))
4036
4036
{
4037
4037
switch (instr->m_opcode )
4038
4038
{
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 f ( ) {
7
+ var o_0 = { } ;
8
+ var o_1 = { } ;
9
+ var o_2 = { } ;
10
+ var arr_0 = Array ( ) ;
11
+ o_0 . length = 1 ;
12
+ for ( var i = 0 ; i < 2 ; i ++ ) {
13
+ Object . defineProperty ( o_2 , '' , { } ) ;
14
+ function g ( arr_1 ) {
15
+ for ( var j = 0 ; j < 3 ; j ++ ) {
16
+ arr_1 [ 0 ] = arr_0 ;
17
+ var a = 3 , k = 3 ;
18
+ for ( ; o_0 . length * 1214425553.2 ;
19
+ k -= 4 ) {
20
+ a -= 2 ;
21
+ if ( a < - 5 ) {
22
+ break ;
23
+ }
24
+ if ( false ) {
25
+ b = c ;
26
+ arguments ;
27
+ }
28
+ }
29
+ }
30
+ }
31
+ g ( o_1 ) ;
32
+ o_2 = o_0 ;
33
+ }
34
+ }
35
+ f ( ) ;
36
+ print ( "pass" ) ;
Original file line number Diff line number Diff line change
1
+ <?xml version =" 1.0" encoding =" utf-8" ?>
2
+ <regress-exe >
3
+ <test >
4
+ <default >
5
+ <files >RegAllocBug_0.js</files >
6
+ <compile-flags >-mic:1 -off:simplejit</compile-flags >
7
+ </default >
8
+ </test >
9
+ </regress-exe >
Original file line number Diff line number Diff line change 154
154
<files >Prototypes</files >
155
155
</default >
156
156
</dir >
157
+ <dir >
158
+ <default >
159
+ <files >RegAlloc</files >
160
+ </default >
161
+ </dir >
157
162
<dir >
158
163
<default >
159
164
<files >GlobalFunctions</files >
You can’t perform that action at this time.
0 commit comments