diff options
Diffstat (limited to 'deps/v8/test/mjsunit/compiler/varargs.js')
-rw-r--r-- | deps/v8/test/mjsunit/compiler/varargs.js | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/deps/v8/test/mjsunit/compiler/varargs.js b/deps/v8/test/mjsunit/compiler/varargs.js new file mode 100644 index 0000000000..ae636dc0f7 --- /dev/null +++ b/deps/v8/test/mjsunit/compiler/varargs.js @@ -0,0 +1,49 @@ +// Copyright 2017 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. + +x = "a"; + +function test_varargs(...args) { + var sum = this.x; + for (i in args) { + sum += "," + args[i]; + } + return sum; +} + +assertEquals("a", test_varargs()); +assertEquals("a,b", test_varargs("b")); +assertEquals("a,b,c", test_varargs("b", "c")); +assertEquals("a,b,c,d", test_varargs("b", "c", "d")); +assertEquals("a,b,c,d,e", test_varargs("b", "c", "d", "e")); + +function forward_varargs(...args) { + return test_varargs(...args); +} + +assertEquals("a", forward_varargs()); +assertEquals("a,b", forward_varargs("b")); +assertEquals("a,b,c", forward_varargs("b", "c")); +assertEquals("a,b,c,d", forward_varargs("b", "c", "d")); +assertEquals("a,b,c,d,e", forward_varargs("b", "c", "d", "e")); + +function forward_varargs_one_arg(x, ...args) { + return test_varargs(x, ...args); +} + +assertEquals("a,undefined", forward_varargs_one_arg()); +assertEquals("a,b", forward_varargs_one_arg("b")); +assertEquals("a,b,c", forward_varargs_one_arg("b", "c")); +assertEquals("a,b,c,d", forward_varargs_one_arg("b", "c", "d")); +assertEquals("a,b,c,d,e", forward_varargs_one_arg("b", "c", "d", "e")); + +function forward_varargs_two_args(x, y, ...args) { + return test_varargs(x, y, ...args); +} + +assertEquals("a,undefined,undefined", forward_varargs_two_args()); +assertEquals("a,b,undefined", forward_varargs_two_args("b")); +assertEquals("a,b,c", forward_varargs_two_args("b", "c")); +assertEquals("a,b,c,d", forward_varargs_two_args("b", "c", "d")); +assertEquals("a,b,c,d,e", forward_varargs_two_args("b", "c", "d", "e")); |