OLD | NEW |
1 // Copyright 2016 the V8 project authors. All rights reserved. | 1 // Copyright 2016 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
| 5 // Flags: --lazy-inner-functions |
| 6 |
5 (function TestLazyInnerFunctionCallsEval() { | 7 (function TestLazyInnerFunctionCallsEval() { |
6 var i = (function eager_outer() { | 8 var i = (function eager_outer() { |
7 var a = 41; // Should be context-allocated | 9 var outer_var = 41; // Should be context-allocated |
8 function lazy_inner() { | 10 function lazy_inner() { |
9 return eval("a"); | 11 return eval("outer_var"); |
10 } | 12 } |
11 return lazy_inner; | 13 return lazy_inner; |
12 })(); | 14 })(); |
| 15 assertEquals(41, i()); |
| 16 })(); |
| 17 |
| 18 (function TestLazyInnerFunctionDestructuring() { |
| 19 var i = (function eager_outer() { |
| 20 var outer_var = 41; // Should be context-allocated |
| 21 function lazy_inner() { |
| 22 // This introduces b and refers to outer_var. |
| 23 var {outer_var : b} = {outer_var}; |
| 24 return b; |
| 25 } |
| 26 return lazy_inner; |
| 27 })(); |
13 assertEquals(41, i()); | 28 assertEquals(41, i()); |
14 })(); | 29 })(); |
OLD | NEW |