| Index: test/mjsunit/harmony/spread-call-new.js
|
| diff --git a/test/mjsunit/harmony/spread-call-new.js b/test/mjsunit/harmony/spread-call-new.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..9b00622148ee15ac4e5d3b9e85ccefe7b65c7bf1
|
| --- /dev/null
|
| +++ b/test/mjsunit/harmony/spread-call-new.js
|
| @@ -0,0 +1,62 @@
|
| +// Copyright 2014 the V8 project authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +// Flags: --harmony-spreadcalls
|
| +
|
| +(function testNonConstructorStrict() {
|
| + "use strict";
|
| + assertThrows(function() {
|
| + return new Math.cos(...[1,2,3]);
|
| + }, TypeError);
|
| +
|
| + assertThrows(function() {
|
| + var CallNull = null;
|
| + return new CallNull(...[1,2,3]);
|
| + }, TypeError);
|
| +})();
|
| +
|
| +
|
| +(function testNonConstructorSloppy() {
|
| + assertThrows(function() {
|
| + return new Math.cos(...[1,2,3]);
|
| + }, TypeError);
|
| +
|
| + assertThrows(function() {
|
| + var CallNull = null;
|
| + return new CallNull(...[1,2,3]);
|
| + }, TypeError);
|
| +})();
|
| +
|
| +
|
| +(function testConstructStrict() {
|
| + "use strict";
|
| + function TestClass(a, b, c) {
|
| + this.wasCalled = true;
|
| + this.args = [a, b, c];
|
| + }
|
| + TestClass.prototype.method = function() {
|
| + return this.args;
|
| + }
|
| +
|
| + assertInstanceof(new TestClass(...[1, 2, 3]), TestClass);
|
| + assertEquals([1, 2, 3], (new TestClass(...[1, 2, 3])).method());
|
| + assertEquals([1, 2, 3], (new TestClass(...[1, 2, 3])).args);
|
| + assertTrue((new TestClass(...[1, 2, 3])).wasCalled);
|
| +})();
|
| +
|
| +
|
| +(function testConstructSloppy() {
|
| + function TestClass(a, b, c) {
|
| + this.wasCalled = true;
|
| + this.args = [a, b, c];
|
| + }
|
| + TestClass.prototype.method = function() {
|
| + return this.args;
|
| + }
|
| +
|
| + assertInstanceof(new TestClass(...[1, 2, 3]), TestClass);
|
| + assertEquals([1, 2, 3], (new TestClass(...[1, 2, 3])).method());
|
| + assertEquals([1, 2, 3], (new TestClass(...[1, 2, 3])).args);
|
| + assertTrue((new TestClass(...[1, 2, 3])).wasCalled);
|
| +})();
|
|
|