| Index: test/mjsunit/harmony/default-parameters.js
|
| diff --git a/test/mjsunit/harmony/default-parameters.js b/test/mjsunit/harmony/default-parameters.js
|
| deleted file mode 100644
|
| index e54b5a8822befef505eec3f12d0c116fdee2fffe..0000000000000000000000000000000000000000
|
| --- a/test/mjsunit/harmony/default-parameters.js
|
| +++ /dev/null
|
| @@ -1,143 +0,0 @@
|
| -// Copyright 2015 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-default-parameters --harmony-arrow-functions
|
| -
|
| -function return_specified() { return "specified"; }
|
| -
|
| -var method_returns_specified = {
|
| - method() { return "specified"; }
|
| -};
|
| -
|
| -
|
| -(function testDefaultFunctions() {
|
| - function optional_function(handler = function() { }) {
|
| - assertEquals("function", typeof handler);
|
| -
|
| - // TODO(caitp): infer function name correctly
|
| - // (https://code.google.com/p/v8/issues/detail?id=3699)
|
| - // assertEquals("handler", handler.name);
|
| -
|
| - return handler();
|
| - }
|
| - assertEquals(undefined, optional_function());
|
| - assertEquals(undefined, optional_function(undefined));
|
| - assertEquals("specified", optional_function(return_specified));
|
| -})();
|
| -
|
| -
|
| -(function testDefaultFunctionReferencesParameters() {
|
| - function fn1(handler = function() { return value; }, value) {
|
| - return handler();
|
| - }
|
| - assertEquals(undefined, fn1());
|
| - assertEquals(undefined, fn1(undefined, undefined));
|
| - assertEquals(1, fn1(undefined, 1));
|
| -
|
| - function fn2(value, handler = function() { return value; }) {
|
| - return handler();
|
| - }
|
| - assertEquals(undefined, fn2());
|
| - assertEquals(undefined, fn2(undefined));
|
| - assertEquals(1, fn2(1));
|
| -})();
|
| -
|
| -
|
| -(function testDefaultObjects() {
|
| - function optional_object(object = { method() { return "method"; } }) {
|
| - assertEquals("object", typeof object);
|
| -
|
| - assertEquals("function", typeof object.method);
|
| - return object.method();
|
| - }
|
| -
|
| - assertEquals("method", optional_object());
|
| - assertEquals("method", optional_object(undefined));
|
| - assertEquals("specified", optional_object(method_returns_specified));
|
| -
|
| -
|
| - assertEquals(4, (function(x = { a: 4 }) { return x.a; })());
|
| - assertEquals(5, (function(x, y = { a: x }) { return y.a; })(5));
|
| - assertEquals(6, (function(x, y = { a: eval("x") }) { return y.a; })(6));
|
| -})();
|
| -
|
| -
|
| -// TDZ
|
| -
|
| -(function testReferencesUninitializedParameter() {
|
| - assertThrows(function(a = b, b) {}, ReferenceError);
|
| -})();
|
| -
|
| -
|
| -(function testEvalReferencesUninitializedParameter() {
|
| - assertThrows( function(x = { a: y }, y) { return x.a; }, ReferenceError);
|
| - assertThrows(function(a = eval("b"), b = 0) { return a; }, ReferenceError);
|
| - assertThrows(
|
| - function(x = { a: eval("y") }, y) { return x.a; }, ReferenceError);
|
| -})();
|
| -
|
| -
|
| -(function testReferencesInitializedParameter() {
|
| - assertEquals(1, (function(a = 1, b = a) { return b; })());
|
| -})();
|
| -
|
| -
|
| -// Scoping
|
| -//
|
| -// TODO(caitp): fix scoping --- var declarations in function body can't be
|
| -// resolved in formal parameters
|
| -// assertThrows(function referencesVariableBodyDeclaration(a = body_var) {
|
| -// var body_var = true;
|
| -// return a;
|
| -// }, ReferenceError);
|
| -
|
| -
|
| -// TODO(caitp): default function length does not include any parameters
|
| -// following the first optional parameter
|
| -// assertEquals(0, (function(a = 1) {}).length);
|
| -// assertEquals(1, (function(a, b = 1) {}).length);
|
| -// assertEquals(2, (function(a, b, c = 1) {}).length);
|
| -// assertEquals(3, (function(a, b, c, d = 1) {}).length);
|
| -// assertEquals(1, (function(a, b = 1, c, d = 1) {}).length);
|
| -
|
| -
|
| -(function testInitializerReferencesThis() {
|
| - var O = {};
|
| - function fn(x = this) { return x; }
|
| - assertEquals(O, fn.call(O));
|
| -
|
| - function fn2(x = () => this) { return x(); }
|
| - assertEquals(O, fn2.call(O));
|
| -})();
|
| -
|
| -
|
| -(function testInitializerReferencesSelf() {
|
| - function fn(x, y = fn) { return x ? y(false) + 1 : 0 }
|
| - assertEquals(1, fn(true));
|
| -})();
|
| -
|
| -
|
| -(function testInitializerEvalParameter() {
|
| - assertEquals(7, (function(x, y = eval("x")) { return y; })(7));
|
| - assertEquals(9, (function(x = () => eval("y"), y = 9) { return x(); })());
|
| -})();
|
| -
|
| -
|
| -(function testContextAllocatedUsedInBody() {
|
| - assertEquals("Monkey!Monkey!Monkey!", (function(x, y = eval("x")) {
|
| - return "Mon" + x + "Mon" + eval("y") + "Mon" + y;
|
| - })("key!"));
|
| - assertEquals("Monkey!", (function(x = "Mon", y = "key!") {
|
| - return eval("x") + eval("y");
|
| - })());
|
| -})();
|
| -
|
| -
|
| -(function testContextAllocatedEscapesFunction() {
|
| - assertEquals("Monkey!", (function(x = "Monkey!") {
|
| - return function() {
|
| - return x;
|
| - };
|
| - })()());
|
| -})();
|
|
|