40 lines
1.2 KiB
JavaScript
40 lines
1.2 KiB
JavaScript
|
// Copyright 2016 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.
|
||
|
|
||
|
(function testNestedSpreadsInPatterns() {
|
||
|
(function () {
|
||
|
var [...[...x]] = [42, 17];
|
||
|
assertArrayEquals([42, 17], x);
|
||
|
})();
|
||
|
(function () {
|
||
|
let [...[...x]] = [42, 17];
|
||
|
assertArrayEquals([42, 17], x);
|
||
|
})();
|
||
|
(function () {
|
||
|
const [...[...x]] = [42, 17];
|
||
|
assertArrayEquals([42, 17], x);
|
||
|
})();
|
||
|
(function () {
|
||
|
var x; [...[...x]] = [42, 17];
|
||
|
assertArrayEquals([42, 17], x);
|
||
|
})();
|
||
|
|
||
|
function f1([...[...x]] = [42, 17]) { return x; }
|
||
|
assertArrayEquals([42, 17], f1());
|
||
|
assertArrayEquals([1, 2, 3], f1([1, 2, 3]));
|
||
|
|
||
|
var f2 = function ([...[...x]] = [42, 17]) { return x; }
|
||
|
assertArrayEquals([42, 17], f2());
|
||
|
assertArrayEquals([1, 2, 3], f2([1, 2, 3]));
|
||
|
|
||
|
// The following two were failing in debug mode, until v8:5337 was fixed.
|
||
|
var f3 = ([...[...x]] = [42, 17]) => { return x; };
|
||
|
assertArrayEquals([42, 17], f3());
|
||
|
assertArrayEquals([1, 2, 3], f3([1, 2, 3]));
|
||
|
|
||
|
var f4 = ([...[...x]] = [42, 17]) => x;
|
||
|
assertArrayEquals([42, 17], f4());
|
||
|
assertArrayEquals([1, 2, 3], f4([1, 2, 3]));
|
||
|
})();
|