| 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 // Previously, this caused a CHECK fail in debug mode | 7 // Previously, this caused a CHECK fail in debug mode |
| 9 // https://code.google.com/p/chromium/issues/detail?id=542099 | 8 // https://code.google.com/p/chromium/issues/detail?id=542099 |
| 10 | 9 |
| 11 var foo = {}; | 10 var foo = {}; |
| 12 var bar = foo; | 11 var bar = foo; |
| 13 for (foo.x in {a: 1}) function foo() { return foo; } | 12 for (foo.x in {a: 1}) function foo() { return foo; } |
| 14 assertEquals("object", typeof bar); | 13 assertEquals("object", typeof bar); |
| 15 assertEquals("a", bar.x); | 14 assertEquals("a", bar.x); |
| 16 assertEquals("function", typeof foo); | 15 assertEquals("function", typeof foo); |
| 17 assertEquals("function", typeof foo()); | 16 assertEquals("function", typeof foo()); |
| 18 assertSame(foo, foo()); | 17 assertSame(foo, foo()); |
| 19 assertEquals(undefined, foo.x); | 18 assertEquals(undefined, foo.x); |
| OLD | NEW |