From d82e1075dbc2cec2d6598ade10c1f43805f690fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Zasso?= Date: Tue, 12 Sep 2017 11:34:59 +0200 Subject: deps: update V8 to 6.1.534.36 PR-URL: https://github.com/nodejs/node/pull/14730 Reviewed-By: Ben Noordhuis Reviewed-By: Ali Ijaz Sheikh Reviewed-By: Colin Ihrig Reviewed-By: Matteo Collina --- deps/v8/test/mjsunit/compiler/spread-call.js | 80 ++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 deps/v8/test/mjsunit/compiler/spread-call.js (limited to 'deps/v8/test/mjsunit/compiler/spread-call.js') diff --git a/deps/v8/test/mjsunit/compiler/spread-call.js b/deps/v8/test/mjsunit/compiler/spread-call.js new file mode 100644 index 0000000000..1b7ae6f301 --- /dev/null +++ b/deps/v8/test/mjsunit/compiler/spread-call.js @@ -0,0 +1,80 @@ +// 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. + +// Flags: --allow-natives-syntax + +function tests() { + "use strict" + function countArgs() { return arguments.length; } + + // Array params + assertEquals(3, countArgs(...[1, 2, 3])); // Smi + assertEquals(4, countArgs(...[1, 2, , 3])); // HoleySmi + assertEquals(3, countArgs(...[1.1, 2, 3])); // Double + assertEquals(4, countArgs(...[1.1, 2, , 3])); // HoleyDouble + assertEquals(3, countArgs(...[{valueOf: () => 0}, 1.1, '2'])); // Object + assertEquals( + 4, countArgs(...[{valueOf: () => 0}, 1.1, , '2'])); // HoleyObject + + // Smi param + assertThrows(() => countArgs(...1), TypeError); + + // Object param + assertThrows(() => countArgs(...{0: 0}), TypeError); + + // Strict arguments + assertEquals(0, countArgs(...arguments)); +} + +tests(); +tests(); +%OptimizeFunctionOnNextCall(tests); +tests(); + +function testRest(...args) { + function countArgs() { return arguments.length; } + assertEquals(3, countArgs(...args)); + assertEquals(4, countArgs(1, ...args)); + assertEquals(5, countArgs(1, 2, ...args)); +} +testRest(1, 2, 3); +testRest(1, 2, 3); +%OptimizeFunctionOnNextCall(testRest); +testRest(1, 2, 3); + +function testRestAndArgs(a, b, ...args) { + function countArgs() { return arguments.length; } + assertEquals(1, countArgs(...args)); + assertEquals(2, countArgs(b, ...args)); + assertEquals(3, countArgs(a, b, ...args)); + assertEquals(4, countArgs(1, a, b, ...args)); + assertEquals(5, countArgs(1, 2, a, b, ...args)); +} +testRestAndArgs(1, 2, 3); +testRestAndArgs(1, 2, 3); +%OptimizeFunctionOnNextCall(testRestAndArgs); +testRestAndArgs(1, 2, 3); + +function testArgumentsStrict() { + "use strict" + function countArgs() { return arguments.length; } + assertEquals(3, countArgs(...arguments)); + assertEquals(4, countArgs(1, ...arguments)); + assertEquals(5, countArgs(1, 2, ...arguments)); +} +testArgumentsStrict(1, 2, 3); +testArgumentsStrict(1, 2, 3); +%OptimizeFunctionOnNextCall(testArgumentsStrict); +testArgumentsStrict(1, 2, 3); + +function testArgumentsSloppy() { + function countArgs() { return arguments.length; } + assertEquals(3, countArgs(...arguments)); + assertEquals(4, countArgs(1, ...arguments)); + assertEquals(5, countArgs(1, 2, ...arguments)); +} +testArgumentsSloppy(1, 2, 3); +testArgumentsSloppy(1, 2, 3); +%OptimizeFunctionOnNextCall(testArgumentsSloppy); +testArgumentsSloppy(1, 2, 3); -- cgit v1.2.1