OLD | NEW |
| (Empty) |
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 | |
3 // found in the LICENSE file. | |
4 | |
5 // Flags: --harmony-spread-calls | |
6 | |
7 (function testNonConstructorStrict() { | |
8 "use strict"; | |
9 assertThrows(function() { | |
10 return new Math.cos(...[1,2,3]); | |
11 }, TypeError); | |
12 | |
13 assertThrows(function() { | |
14 var CallNull = null; | |
15 return new CallNull(...[1,2,3]); | |
16 }, TypeError); | |
17 })(); | |
18 | |
19 | |
20 (function testNonConstructorSloppy() { | |
21 assertThrows(function() { | |
22 return new Math.cos(...[1,2,3]); | |
23 }, TypeError); | |
24 | |
25 assertThrows(function() { | |
26 var CallNull = null; | |
27 return new CallNull(...[1,2,3]); | |
28 }, TypeError); | |
29 })(); | |
30 | |
31 | |
32 (function testConstructStrict() { | |
33 "use strict"; | |
34 function TestClass(a, b, c) { | |
35 this.wasCalled = true; | |
36 this.args = [a, b, c]; | |
37 } | |
38 TestClass.prototype.method = function() { | |
39 return this.args; | |
40 } | |
41 | |
42 assertInstanceof(new TestClass(...[1, 2, 3]), TestClass); | |
43 assertEquals([1, 2, 3], (new TestClass(...[1, 2, 3])).method()); | |
44 assertEquals([1, 2, 3], (new TestClass(...[1, 2, 3])).args); | |
45 assertTrue((new TestClass(...[1, 2, 3])).wasCalled); | |
46 })(); | |
47 | |
48 | |
49 (function testConstructSloppy() { | |
50 function TestClass(a, b, c) { | |
51 this.wasCalled = true; | |
52 this.args = [a, b, c]; | |
53 } | |
54 TestClass.prototype.method = function() { | |
55 return this.args; | |
56 } | |
57 | |
58 assertInstanceof(new TestClass(...[1, 2, 3]), TestClass); | |
59 assertEquals([1, 2, 3], (new TestClass(...[1, 2, 3])).method()); | |
60 assertEquals([1, 2, 3], (new TestClass(...[1, 2, 3])).args); | |
61 assertTrue((new TestClass(...[1, 2, 3])).wasCalled); | |
62 })(); | |
OLD | NEW |