OLD | NEW |
1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 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: --harmony-sloppy --harmony-sloppy-function | |
6 // Flags: --no-harmony-restrictive-declarations | 5 // Flags: --no-harmony-restrictive-declarations |
7 | 6 |
8 (function() { | 7 (function() { |
9 var x = {a: 1} | 8 var x = {a: 1} |
10 assertEquals("undefined", typeof f); | 9 assertEquals("undefined", typeof f); |
11 with (x) | 10 with (x) |
12 function f() { return a; } | 11 function f() { return a; } |
13 assertEquals("function", typeof f); | 12 assertEquals("function", typeof f); |
14 assertEquals(1, f()); | 13 assertEquals(1, f()); |
15 x.a = 2; | 14 x.a = 2; |
16 assertEquals(2, f()); | 15 assertEquals(2, f()); |
17 })(); | 16 })(); |
18 | 17 |
19 var y = {b: 1} | 18 var y = {b: 1} |
20 assertEquals("undefined", typeof g); | 19 assertEquals("undefined", typeof g); |
21 with (y) | 20 with (y) |
22 function g() { return b; } | 21 function g() { return b; } |
23 assertEquals("function", typeof g); | 22 assertEquals("function", typeof g); |
24 assertEquals(1, g()); | 23 assertEquals(1, g()); |
25 y.b = 2; | 24 y.b = 2; |
26 assertEquals(2, g()); | 25 assertEquals(2, g()); |
OLD | NEW |