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-new-target --harmony-reflect --harmony-destructuring | 5 // Flags: --harmony-new-target --harmony-reflect --harmony-destructuring |
6 // Flags: --harmony-rest-parameters --harmony-arrow-functions | 6 // Flags: --harmony-rest-parameters --harmony-arrow-functions |
7 | 7 |
8 | 8 |
9 (function TestClass() { | 9 (function TestClass() { |
10 'use strict'; | 10 'use strict'; |
(...skipping 366 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
377 assertSame(f2, new f2); | 377 assertSame(f2, new f2); |
378 function f3({a}) { return new.target } | 378 function f3({a}) { return new.target } |
379 assertSame(f3, new f3({})); | 379 assertSame(f3, new f3({})); |
380 function f4(...a) { return new.target } | 380 function f4(...a) { return new.target } |
381 assertSame(f4, new f4); | 381 assertSame(f4, new f4); |
382 function f5() { 'use strict'; { let x; return new.target } } | 382 function f5() { 'use strict'; { let x; return new.target } } |
383 assertSame(f5, new f5); | 383 assertSame(f5, new f5); |
384 function f6() { with ({'new.target': 42}) return new.target } | 384 function f6() { with ({'new.target': 42}) return new.target } |
385 assertSame(f6, new f6); | 385 assertSame(f6, new f6); |
386 })(); | 386 })(); |
| 387 |
| 388 |
| 389 (function TestEarlyErrors() { |
| 390 assertThrows(function() { Function("new.target = 42"); }, ReferenceError); |
| 391 assertThrows(function() { Function("var foo = 1; new.target = foo = 42"); }, R
eferenceError); |
| 392 assertThrows(function() { Function("var foo = 1; foo = new.target = 42"); }, R
eferenceError); |
| 393 assertThrows(function() { Function("new.target--"); }, ReferenceError); |
| 394 assertThrows(function() { Function("--new.target"); }, ReferenceError); |
| 395 assertThrows(function() { Function("(new.target)++"); }, ReferenceError); |
| 396 assertThrows(function() { Function("++(new.target)"); }, ReferenceError); |
| 397 assertThrows(function() { Function("for (new.target of {});"); }, ReferenceErr
or); |
| 398 })(); |
OLD | NEW |