| Index: test/mjsunit/harmony/rest-params.js
|
| diff --git a/test/mjsunit/harmony/rest-params.js b/test/mjsunit/harmony/rest-params.js
|
| index 5bb258ee68ede31e86a6554f2756f00e01b4ac90..341cb3308755207438349ab57e7af42b24cfffdf 100644
|
| --- a/test/mjsunit/harmony/rest-params.js
|
| +++ b/test/mjsunit/harmony/rest-params.js
|
| @@ -2,7 +2,7 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -// Flags: --harmony-rest-parameters
|
| +// Flags: --harmony-rest-parameters --harmony-classes
|
|
|
| (function testRestIndex() {
|
| assertEquals(5, (function(...args) { return args.length; })(1,2,3,4,5));
|
| @@ -180,3 +180,35 @@ var O = {
|
| assertEquals([], ((...args) => args)());
|
| assertEquals([1,2,3], ((...args) => args)(1,2,3));
|
| })();*/
|
| +
|
| +
|
| +(function testRestParamsWithNewTarget() {
|
| + "use strict";
|
| + class Base {
|
| + constructor(...a) {
|
| + this.base = a;
|
| + assertEquals(arguments.length, a.length);
|
| + var args = [];
|
| + for (var i = 0; i < arguments.length; ++i) {
|
| + args.push(arguments[i]);
|
| + }
|
| + assertEquals(args, a);
|
| + }
|
| + }
|
| + class Child extends Base {
|
| + constructor(...b) {
|
| + super(1, 2, 3);
|
| + this.child = b;
|
| + assertEquals(arguments.length, b.length);
|
| + var args = [];
|
| + for (var i = 0; i < arguments.length; ++i) {
|
| + args.push(arguments[i]);
|
| + }
|
| + assertEquals(args, b);
|
| + }
|
| + }
|
| +
|
| + var c = new Child(1, 2, 3);
|
| + assertEquals([1, 2, 3], c.child);
|
| + assertEquals([1, 2, 3], c.base);
|
| +})();
|
|
|