diff --git a/src/arguments/trailing-comma-multiple-args.case b/src/arguments/args-trailing-comma-multiple.case similarity index 100% rename from src/arguments/trailing-comma-multiple-args.case rename to src/arguments/args-trailing-comma-multiple.case diff --git a/src/arguments/trailing-comma-null.case b/src/arguments/args-trailing-comma-null.case similarity index 100% rename from src/arguments/trailing-comma-null.case rename to src/arguments/args-trailing-comma-null.case diff --git a/src/arguments/trailing-comma-single-args.case b/src/arguments/args-trailing-comma-single-args.case similarity index 100% rename from src/arguments/trailing-comma-single-args.case rename to src/arguments/args-trailing-comma-single-args.case diff --git a/src/arguments/trailing-comma-undefined.case b/src/arguments/args-trailing-comma-undefined.case similarity index 100% rename from src/arguments/trailing-comma-undefined.case rename to src/arguments/args-trailing-comma-undefined.case diff --git a/src/arguments/default/async-gen-func-decl.template b/src/arguments/default/async-gen-func-decl.template new file mode 100644 index 0000000000000000000000000000000000000000..246b59921ec1297333e869854bde931c081a13f8 --- /dev/null +++ b/src/arguments/default/async-gen-func-decl.template @@ -0,0 +1,29 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +path: language/statements/async-generator/ +name: async generator function declaration +esid: sec-asyncgenerator-definitions-instantiatefunctionobject +info: | + AsyncGeneratorDeclaration : async [no LineTerminator here] function * BindingIdentifier + ( FormalParameters ) { AsyncGeneratorBody } + + [...] + 3. Let F be ! AsyncGeneratorFunctionCreate(Normal, FormalParameters, AsyncGeneratorBody, + scope, strict). + [...] +flags: [async] +features: [async-iteration] +---*/ + +var callCount = 0; +// Stores a reference `ref` for case evaluation +async function* ref() { + /*{ body }*/ + callCount = callCount + 1; +} + +ref(/*{ args }*/).next().then(() => { + assert.sameValue(callCount, 1, 'generator function invoked exactly once'); +}).then($DONE, $DONE); diff --git a/src/arguments/default/async-gen-func-expr.template b/src/arguments/default/async-gen-func-expr.template new file mode 100644 index 0000000000000000000000000000000000000000..0647ade7f9dd030da19f2044d773d71babd26caf --- /dev/null +++ b/src/arguments/default/async-gen-func-expr.template @@ -0,0 +1,30 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +path: language/expressions/async-generator/ +name: async generator function expression +esid: sec-asyncgenerator-definitions-evaluation +info: | + AsyncGeneratorExpression : async [no LineTerminator here] function * ( FormalParameters ) { + AsyncGeneratorBody } + + [...] + 3. Let closure be ! AsyncGeneratorFunctionCreate(Normal, FormalParameters, + AsyncGeneratorBody, scope, strict). + [...] +flags: [async] +features: [async-iteration] +---*/ + +var callCount = 0; +// Stores a reference `ref` for case evaluation +var ref; +ref = async function*() { + /*{ body }*/ + callCount = callCount + 1; +}; + +ref(/*{ args }*/).next().then(() => { + assert.sameValue(callCount, 1, 'generator function invoked exactly once'); +}).then($DONE, $DONE); diff --git a/src/arguments/default/async-gen-meth.template b/src/arguments/default/async-gen-meth.template new file mode 100644 index 0000000000000000000000000000000000000000..bc726b34531b8e45723814b80c388f9342f41740 --- /dev/null +++ b/src/arguments/default/async-gen-meth.template @@ -0,0 +1,37 @@ +// Copyright (C) 2016 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +path: language/expressions/object/method-definition/async-gen-meth- +name: async generator method +esid: sec-asyncgenerator-definitions-propertydefinitionevaluation +info: | + AsyncGeneratorMethod : + async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) + { AsyncGeneratorBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true. + Otherwise let strict be false. + 4. Let scope be the running execution context's LexicalEnvironment. + 5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters, + AsyncGeneratorBody, scope, strict). + [...] +flags: [async] +features: [async-iteration] +---*/ + +var callCount = 0; +var obj = { + async *method() { + /*{ body }*/ + callCount = callCount + 1; + } +}; + +// Stores a reference `ref` for case evaluation +var ref = obj.method; + +ref(/*{ args }*/).next().then(() => { + assert.sameValue(callCount, 1, 'generator method invoked exactly once'); +}).then($DONE, $DONE); diff --git a/src/arguments/default/async-gen-named-func-expr.template b/src/arguments/default/async-gen-named-func-expr.template new file mode 100644 index 0000000000000000000000000000000000000000..a196a6dc954e61f6d4964290990898ec03a19a69 --- /dev/null +++ b/src/arguments/default/async-gen-named-func-expr.template @@ -0,0 +1,30 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +path: language/expressions/async-generator/named- +name: async generator named function expression +esid: sec-asyncgenerator-definitions-evaluation +info: | + AsyncGeneratorExpression : async [no LineTerminator here] function * BindingIdentifier + ( FormalParameters ) { AsyncGeneratorBody } + + [...] + 7. Let closure be ! AsyncGeneratorFunctionCreate(Normal, FormalParameters, + AsyncGeneratorBody, funcEnv, strict). + [...] +flags: [async] +features: [async-iteration] +---*/ + +var callCount = 0; +// Stores a reference `ref` for case evaluation +var ref; +ref = async function* g() { + /*{ body }*/ + callCount = callCount + 1; +}; + +ref(/*{ args }*/).next().then(() => { + assert.sameValue(callCount, 1, 'generator function invoked exactly once'); +}).then($DONE, $DONE); diff --git a/src/params/default/cls-decl-async-gen-meth-static.template b/src/arguments/default/cls-decl-async-gen-meth-static.template similarity index 94% rename from src/params/default/cls-decl-async-gen-meth-static.template rename to src/arguments/default/cls-decl-async-gen-meth-static.template index 896c1a4d0bc7c28b4530ff5845dbf58a43bcbac9..75d27616b06d33ffee9b10e89fa29f5cce9947e4 100644 --- a/src/params/default/cls-decl-async-gen-meth-static.template +++ b/src/arguments/default/cls-decl-async-gen-meth-static.template @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/statements/class/params-async-gen-meth-static- +path: language/statements/class/async-gen-meth-static- name: static class expression generator method esid: sec-runtime-semantics-bindingclassdeclarationevaluation info: | @@ -42,7 +42,7 @@ features: [async-iteration] var callCount = 0; class C { - static async *method(/*{ params }*/) { + static async *method() { /*{ body }*/ callCount = callCount + 1; } diff --git a/src/params/default/cls-decl-async-gen-meth.template b/src/arguments/default/cls-decl-async-gen-meth.template similarity index 95% rename from src/params/default/cls-decl-async-gen-meth.template rename to src/arguments/default/cls-decl-async-gen-meth.template index 045c679440480ae78ae9f385a6b9ee84398f7f9e..f0eac2cff4c726d6bf96c7ccad911d4e65b812a1 100644 --- a/src/params/default/cls-decl-async-gen-meth.template +++ b/src/arguments/default/cls-decl-async-gen-meth.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/statements/class/params-async-gen-meth- +path: language/statements/class/async-gen-meth- name: class expression method esid: sec-class-definitions-runtime-semantics-evaluation info: | @@ -41,7 +41,7 @@ features: [async-iteration] var callCount = 0; class C { - async *method(/*{ params }*/) { + async *method() { /*{ body }*/ callCount = callCount + 1; } diff --git a/src/arguments/default/cls-decl-gen-meth-static.template b/src/arguments/default/cls-decl-gen-meth-static.template index e57381376df083c218e8db9caa683af5fa8d9e28..29a505cd954c975142363ca8259c1cd95f3b1790 100644 --- a/src/arguments/default/cls-decl-gen-meth-static.template +++ b/src/arguments/default/cls-decl-gen-meth-static.template @@ -15,7 +15,7 @@ info: | var callCount = 0; class C { - static *method(/*{ params }*/) { + static *method() { /*{ body }*/ callCount = callCount + 1; } diff --git a/src/arguments/default/cls-decl-gen-meth.template b/src/arguments/default/cls-decl-gen-meth.template index d24c31401ffe2dc249888634ae74710bd108da5b..3e7033e0b860328de9a7c662fb168ff090980e59 100644 --- a/src/arguments/default/cls-decl-gen-meth.template +++ b/src/arguments/default/cls-decl-gen-meth.template @@ -15,7 +15,7 @@ info: | var callCount = 0; class C { - *method(/*{ params }*/) { + *method() { /*{ body }*/ callCount = callCount + 1; } diff --git a/src/arguments/default/cls-decl-meth-static.template b/src/arguments/default/cls-decl-meth-static.template index ea045e283accf7b9757bb20ea5880f24a4efb416..ddd3875d95b585ff39f751007d1644a9cd23615b 100644 --- a/src/arguments/default/cls-decl-meth-static.template +++ b/src/arguments/default/cls-decl-meth-static.template @@ -15,7 +15,7 @@ info: | var callCount = 0; class C { - static method(/*{ params }*/) { + static method() { /*{ body }*/ callCount = callCount + 1; } diff --git a/src/arguments/default/cls-decl-meth.template b/src/arguments/default/cls-decl-meth.template index b7f09f8ddb0da761c822f3ce6dadf551df02560a..ed91693c140efd6d26bd3c9b2f1efd72da468b1d 100644 --- a/src/arguments/default/cls-decl-meth.template +++ b/src/arguments/default/cls-decl-meth.template @@ -15,7 +15,7 @@ info: | var callCount = 0; class C { - method(/*{ params }*/) { + method() { /*{ body }*/ callCount = callCount + 1; } diff --git a/src/arguments/default/cls-expr-async-gen-meth-static.template b/src/arguments/default/cls-expr-async-gen-meth-static.template new file mode 100644 index 0000000000000000000000000000000000000000..9f0b4bddf52d83ff1ca99d609b59d07cb1365310 --- /dev/null +++ b/src/arguments/default/cls-expr-async-gen-meth-static.template @@ -0,0 +1,57 @@ +// Copyright (C) 2016 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +path: language/expressions/class/async-gen-meth-static- +name: static class expression async generator method +esid: sec-class-definitions-runtime-semantics-evaluation +info: | + ClassExpression : class BindingIdentifieropt ClassTail + + 1. If BindingIdentifieropt is not present, let className be undefined. + 2. Else, let className be StringValue of BindingIdentifier. + 3. Let value be the result of ClassDefinitionEvaluation of ClassTail + with argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + b. Else, + Let status be the result of performing PropertyDefinitionEvaluation + for m with arguments F and false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncGeneratorMethod : + async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) + { AsyncGeneratorBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true. + Otherwise let strict be false. + 4. Let scope be the running execution context's LexicalEnvironment. + 5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters, + AsyncGeneratorBody, scope, strict). + [...] +flags: [async] +features: [async-iteration] +---*/ + +var callCount = 0; +var C = class { + static async *method() { + /*{ body }*/ + callCount = callCount + 1; + } +}; + +// Stores a reference `ref` for case evaluation +var ref = C.method; + +ref(/*{ args }*/).next().then(() => { + assert.sameValue(callCount, 1, 'method invoked exactly once'); +}).then($DONE, $DONE); diff --git a/src/arguments/default/cls-expr-async-gen-meth.template b/src/arguments/default/cls-expr-async-gen-meth.template new file mode 100644 index 0000000000000000000000000000000000000000..4bcf442bb5a8007b08bbdb1848ae6898d3f2065f --- /dev/null +++ b/src/arguments/default/cls-expr-async-gen-meth.template @@ -0,0 +1,58 @@ +// Copyright (C) 2016 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +path: language/expressions/class/async-gen-meth- +name: class expression async generator method +esid: sec-class-definitions-runtime-semantics-evaluation +info: | + ClassExpression : class BindingIdentifieropt ClassTail + + 1. If BindingIdentifieropt is not present, let className be undefined. + 2. Else, let className be StringValue of BindingIdentifier. + 3. Let value be the result of ClassDefinitionEvaluation of ClassTail + with argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + i. Let status be the result of performing + PropertyDefinitionEvaluation for m with arguments proto and + false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncGeneratorMethod : + async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) + { AsyncGeneratorBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true. + Otherwise let strict be false. + 4. Let scope be the running execution context's LexicalEnvironment. + 5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters, + AsyncGeneratorBody, scope, strict). + [...] +flags: [async] +features: [async-iteration] +---*/ + +var callCount = 0; +var C = class { + async *method() { + /*{ body }*/ + callCount = callCount + 1; + } +}; + +// Stores a reference `ref` for case evaluation +var ref = C.prototype.method; + +ref(/*{ args }*/).next().then(() => { + assert.sameValue(callCount, 1, 'method invoked exactly once'); +}).then($DONE, $DONE); + diff --git a/src/arguments/default/cls-expr-gen-meth-static.template b/src/arguments/default/cls-expr-gen-meth-static.template index 1fefb34eef1bac07747f793569b9c97098dcfb25..bf800123e14cad048b4f6131ab5e7cde8f4864fb 100644 --- a/src/arguments/default/cls-expr-gen-meth-static.template +++ b/src/arguments/default/cls-expr-gen-meth-static.template @@ -15,7 +15,7 @@ info: | var callCount = 0; var C = class { - static *method(/*{ params }*/) { + static *method() { /*{ body }*/ callCount = callCount + 1; } diff --git a/src/arguments/default/cls-expr-gen-meth.template b/src/arguments/default/cls-expr-gen-meth.template index 0781417d6e63cd3bb0976ff281c9b4b79fce09ff..3f6cbe6ced763f495cd9e2a8a63d1cecd12a6c92 100644 --- a/src/arguments/default/cls-expr-gen-meth.template +++ b/src/arguments/default/cls-expr-gen-meth.template @@ -15,7 +15,7 @@ info: | var callCount = 0; var C = class { - *method(/*{ params }*/) { + *method() { /*{ body }*/ callCount = callCount + 1; } diff --git a/src/arguments/default/cls-expr-meth-static.template b/src/arguments/default/cls-expr-meth-static.template index 57dfc2293c192aa3cb52090c1ab025055402f261..0bb00a0cbf4ff5accc27c0fe80d5f05a091b1256 100644 --- a/src/arguments/default/cls-expr-meth-static.template +++ b/src/arguments/default/cls-expr-meth-static.template @@ -15,7 +15,7 @@ info: | var callCount = 0; var C = class { - static method(/*{ params }*/) { + static method() { /*{ body }*/ callCount = callCount + 1; } diff --git a/src/arguments/default/cls-expr-meth.template b/src/arguments/default/cls-expr-meth.template index 99d5c56878bcc1edfb00b989ff93c99beb76cfec..3e1c6222129684727a9f76bd49e6ced039147148 100644 --- a/src/arguments/default/cls-expr-meth.template +++ b/src/arguments/default/cls-expr-meth.template @@ -15,7 +15,7 @@ info: | var callCount = 0; var C = class { - method(/*{ params }*/) { + method() { /*{ body }*/ callCount = callCount + 1; } diff --git a/src/arguments/default/func-decl.template b/src/arguments/default/func-decl.template index 271dac007565b6a9d49fc5d60087205169a9dadc..6b37285f6e48982bd4eb167eb39605c7e9598896 100644 --- a/src/arguments/default/func-decl.template +++ b/src/arguments/default/func-decl.template @@ -15,7 +15,7 @@ info: | var callCount = 0; // Stores a reference `ref` for case evaluation -function ref(/*{ params }*/) { +function ref() { /*{ body }*/ callCount = callCount + 1; } diff --git a/src/arguments/default/func-expr.template b/src/arguments/default/func-expr.template index 58fc7228590be06a63b75484c548aee627f82432..32d7108931d8ccc7311f311419650b128c2a3dab 100644 --- a/src/arguments/default/func-expr.template +++ b/src/arguments/default/func-expr.template @@ -16,7 +16,7 @@ info: | var callCount = 0; // Stores a reference `ref` for case evaluation var ref; -ref = function(/*{ params }*/) { +ref = function() { /*{ body }*/ callCount = callCount + 1; }; diff --git a/src/arguments/default/gen-func-decl.template b/src/arguments/default/gen-func-decl.template index b9e7fdcc9c3e356eb1d947d2dcced075de41ab0f..36bd0e796319c2d92c32db9a0230f2eb927be360 100644 --- a/src/arguments/default/gen-func-decl.template +++ b/src/arguments/default/gen-func-decl.template @@ -15,7 +15,7 @@ info: | var callCount = 0; // Stores a reference `ref` for case evaluation -function* ref(/*{ params }*/) { +function* ref() { /*{ body }*/ callCount = callCount + 1; } diff --git a/src/arguments/default/gen-func-expr.template b/src/arguments/default/gen-func-expr.template index 70baf6f7a783862533de512aa5ab4bd42918fa00..6d3392264fa0978c942605f3343097bb60e5e8d1 100644 --- a/src/arguments/default/gen-func-expr.template +++ b/src/arguments/default/gen-func-expr.template @@ -16,7 +16,7 @@ info: | var callCount = 0; // Stores a reference `ref` for case evaluation var ref; -ref = function*(/*{ params }*/) { +ref = function*() { /*{ body }*/ callCount = callCount + 1; }; diff --git a/src/arguments/default/gen-meth.template b/src/arguments/default/gen-meth.template index a459aecf61909a88861f8dded7cf8d7c5b0b51a3..2919dae1ef9a04fd139ef45d2ae1757ae159eb0c 100644 --- a/src/arguments/default/gen-meth.template +++ b/src/arguments/default/gen-meth.template @@ -15,7 +15,7 @@ info: | var callCount = 0; var obj = { - *method(/*{ params }*/) { + *method() { /*{ body }*/ callCount = callCount + 1; } diff --git a/src/arguments/default/meth.template b/src/arguments/default/meth.template index 5cbe57184181d222860e805f37e33b57e1ef4298..ef2a2dda2cbe9539f5af1b2727e6936cc1cd0951 100644 --- a/src/arguments/default/meth.template +++ b/src/arguments/default/meth.template @@ -15,7 +15,7 @@ info: | var callCount = 0; var obj = { - method(/*{ params }*/) { + method() { /*{ body }*/ callCount = callCount + 1; } diff --git a/src/params/default/arrow-function.template b/src/function-forms/default/arrow-function.template similarity index 96% rename from src/params/default/arrow-function.template rename to src/function-forms/default/arrow-function.template index fd20b024015e641c39fa737d423a450856e53168..62fb7e5b657c97ebb534bc8f8f64a424c188d655 100644 --- a/src/params/default/arrow-function.template +++ b/src/function-forms/default/arrow-function.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/expressions/arrow-function/params- +path: language/expressions/arrow-function/ name: arrow function expression esid: sec-arrow-function-definitions-runtime-semantics-evaluation info: | diff --git a/src/function-forms/default/async-arrow-function.template b/src/function-forms/default/async-arrow-function.template new file mode 100644 index 0000000000000000000000000000000000000000..cdeec6f3e45065f0af39bbd575435f34c55d70b1 --- /dev/null +++ b/src/function-forms/default/async-arrow-function.template @@ -0,0 +1,41 @@ +// Copyright (C) 2017 Leo Balter. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +path: language/expressions/async-arrow-function/ +name: async arrow function expression +esid: sec-async-arrow-function-definitions +info: | + 14.7 Async Arrow Function Definitions + + AsyncArrowFunction : + ... + CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody + + AsyncConciseBody : + { AsyncFunctionBody } + + ... + + Supplemental Syntax + + When processing an instance of the production AsyncArrowFunction : + CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody the interpretation of + CoverCallExpressionAndAsyncArrowHead is refined using the following grammar: + + AsyncArrowHead : + async ArrowFormalParameters +flags: [async] +---*/ + +var callCount = 0; + +// Stores a reference `ref` for case evaluation +var ref = async (/*{ params }*/) => { + /*{ body }*/ + callCount = callCount + 1; +}; + +ref(/*{ args }*/).then(() => { + assert.sameValue(callCount, 1, 'async arrow function invoked exactly once') +}).then($DONE, $DONE); diff --git a/src/function-forms/default/async-func-decl.template b/src/function-forms/default/async-func-decl.template new file mode 100644 index 0000000000000000000000000000000000000000..b9a21de58a29dddfd77073d00c4fa53b1a28581e --- /dev/null +++ b/src/function-forms/default/async-func-decl.template @@ -0,0 +1,26 @@ +// Copyright (C) 2017 Leo Balter. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +path: language/statements/async-function/ +name: async function declaration +esid: sec-async-function-definitions +info: | + 14.6 Async Function Definitions + + AsyncFunctionDeclaration : + async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody } +flags: [async] +---*/ + +var callCount = 0; + +// Stores a reference `ref` for case evaluation +async function ref(/*{ params }*/) { + /*{ body }*/ + callCount = callCount + 1; +} + +ref(/*{ args }*/).then(() => { + assert.sameValue(callCount, 1, 'function invoked exactly once'); +}).then($DONE, $DONE); diff --git a/src/function-forms/default/async-func-expr-named.template b/src/function-forms/default/async-func-expr-named.template new file mode 100644 index 0000000000000000000000000000000000000000..daf87b2f1f6a088aed9fa66b74716aa979d035fd --- /dev/null +++ b/src/function-forms/default/async-func-expr-named.template @@ -0,0 +1,27 @@ +// Copyright (C) 2017 Leo Balter. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +path: language/expressions/async-function/named- +name: async function named expression +esid: sec-async-function-definitions +info: | + 14.6 Async Function Definitions + + AsyncFunctionExpression : + async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody } +flags: [async] +---*/ + +var callCount = 0; + +// Stores a reference `ref` for case evaluation +var ref; +ref = async function ref(/*{ params }*/) { + /*{ body }*/ + callCount = callCount + 1; +}; + +ref(/*{ args }*/).then(() => { + assert.sameValue(callCount, 1, 'function invoked exactly once'); +}).then($DONE, $DONE); diff --git a/src/function-forms/default/async-func-expr-nameless.template b/src/function-forms/default/async-func-expr-nameless.template new file mode 100644 index 0000000000000000000000000000000000000000..cade1a007f50698cc34640fa6ce272c726e2e9f1 --- /dev/null +++ b/src/function-forms/default/async-func-expr-nameless.template @@ -0,0 +1,27 @@ +// Copyright (C) 2017 Leo Balter. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +path: language/expressions/async-function/nameless- +name: async function nameless expression +esid: sec-async-function-definitions +info: | + 14.6 Async Function Definitions + + AsyncFunctionExpression : + async function ( FormalParameters ) { AsyncFunctionBody } +flags: [async] +---*/ + +var callCount = 0; + +// Stores a reference `ref` for case evaluation +var ref; +ref = async function(/*{ params }*/) { + /*{ body }*/ + callCount = callCount + 1; +}; + +ref(/*{ args }*/).then(() => { + assert.sameValue(callCount, 1, 'function invoked exactly once'); +}).then($DONE, $DONE); diff --git a/src/params/default/async-gen-func-decl.template b/src/function-forms/default/async-gen-func-decl.template similarity index 94% rename from src/params/default/async-gen-func-decl.template rename to src/function-forms/default/async-gen-func-decl.template index ad18e33c2058f638f38a39c784a7c07fb07d5399..9fa27aecd5b10f4ea3931ab93c6fa7d43a68782d 100644 --- a/src/params/default/async-gen-func-decl.template +++ b/src/function-forms/default/async-gen-func-decl.template @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/statements/async-generator/params- +path: language/statements/async-generator/ name: async generator function declaration esid: sec-asyncgenerator-definitions-instantiatefunctionobject info: | diff --git a/src/params/default/async-gen-func-expr.template b/src/function-forms/default/async-gen-func-expr.template similarity index 94% rename from src/params/default/async-gen-func-expr.template rename to src/function-forms/default/async-gen-func-expr.template index bf472577229021df25236f20117ea6dfcd713d18..e42fe98fcb94720ef4d29e470ec4f4ab1056cd2f 100644 --- a/src/params/default/async-gen-func-expr.template +++ b/src/function-forms/default/async-gen-func-expr.template @@ -2,13 +2,13 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/expressions/async-generator/params- +path: language/expressions/async-generator/ name: async generator function expression esid: sec-asyncgenerator-definitions-evaluation info: | AsyncGeneratorExpression : async [no LineTerminator here] function * ( FormalParameters ) { AsyncGeneratorBody } - + [...] 3. Let closure be ! AsyncGeneratorFunctionCreate(Normal, FormalParameters, AsyncGeneratorBody, scope, strict). diff --git a/src/params/default/async-gen-meth.template b/src/function-forms/default/async-gen-meth.template similarity index 94% rename from src/params/default/async-gen-meth.template rename to src/function-forms/default/async-gen-meth.template index 88531de653b351ef9ac3f46d351706f23067dbfd..69678ea9eb155dd48057d7fa45bfaab509147bb7 100644 --- a/src/params/default/async-gen-meth.template +++ b/src/function-forms/default/async-gen-meth.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/expressions/object/method-definition/params-async-gen-meth- +path: language/expressions/object/method-definition/async-gen-meth- name: async generator method esid: sec-asyncgenerator-definitions-propertydefinitionevaluation info: | diff --git a/src/params/default/async-gen-named-func-expr.template b/src/function-forms/default/async-gen-named-func-expr.template similarity index 94% rename from src/params/default/async-gen-named-func-expr.template rename to src/function-forms/default/async-gen-named-func-expr.template index 4d8aa531e6224efdbeb88f5e727f93cdf7aaf4cf..acb8edb4fb6bb0d037c66c8f0c3456168e2c9278 100644 --- a/src/params/default/async-gen-named-func-expr.template +++ b/src/function-forms/default/async-gen-named-func-expr.template @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/expressions/async-generator/params-named- +path: language/expressions/async-generator/named- name: async generator named function expression esid: sec-asyncgenerator-definitions-evaluation info: | diff --git a/src/function-forms/default/async-meth.template b/src/function-forms/default/async-meth.template new file mode 100644 index 0000000000000000000000000000000000000000..7e0d3d9ee15d772446a0a5ff8275c7e52da84fd1 --- /dev/null +++ b/src/function-forms/default/async-meth.template @@ -0,0 +1,29 @@ +// Copyright (C) 2017 Leo Balter. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +path: language/expressions/object/method-definition/async-meth- +name: async method +esid: sec-async-function-definitions +info: | + 14.6 Async Function Definitions + + AsyncMethod : + async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } +flags: [async] +---*/ + +var callCount = 0; +var __obj = { + async method(/*{ params }*/) { + /*{ body }*/ + callCount = callCount + 1; + } +}; + +// Stores a reference `ref` for case evaluation +var ref = __obj.method; + +ref(/*{ args }*/).then(() => { + assert.sameValue(callCount, 1, 'async method invoked exactly once'); +}).then($DONE, $DONE); diff --git a/src/function-forms/default/cls-decl-async-gen-meth-static.template b/src/function-forms/default/cls-decl-async-gen-meth-static.template new file mode 100644 index 0000000000000000000000000000000000000000..ae172b8eb6e5d99e72cb8dab2809f324b15eb912 --- /dev/null +++ b/src/function-forms/default/cls-decl-async-gen-meth-static.template @@ -0,0 +1,56 @@ +// Copyright (C) 2017 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +path: language/statements/class/async-gen-meth-static- +name: static class declaration async generator method +esid: sec-runtime-semantics-bindingclassdeclarationevaluation +info: | + ClassDeclaration : class BindingIdentifier ClassTail + + 1. Let className be StringValue of BindingIdentifier. + 2. Let value be the result of ClassDefinitionEvaluation of ClassTail with + argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + b. Else, + Let status be the result of performing PropertyDefinitionEvaluation for + m with arguments F and false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncGeneratorMethod : + async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) + { AsyncGeneratorBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true. + Otherwise let strict be false. + 4. Let scope be the running execution context's LexicalEnvironment. + 5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters, + AsyncGeneratorBody, scope, strict). + [...] +flags: [async] +features: [async-iteration] +---*/ + +var callCount = 0; +class C { + static async *method(/*{ params }*/) { + /*{ body }*/ + callCount = callCount + 1; + } +} + +// Stores a reference `ref` for case evaluation +var ref = C.method; + +ref(/*{ args }*/).next().then(() => { + assert.sameValue(callCount, 1, 'method invoked exactly once'); +}).then($DONE, $DONE); diff --git a/src/function-forms/default/cls-decl-async-gen-meth.template b/src/function-forms/default/cls-decl-async-gen-meth.template new file mode 100644 index 0000000000000000000000000000000000000000..400ad4c6cdbe9ce7d4853827a4ce0d8270a0edc8 --- /dev/null +++ b/src/function-forms/default/cls-decl-async-gen-meth.template @@ -0,0 +1,55 @@ +// Copyright (C) 2016 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +path: language/statements/class/async-gen-meth- +name: class declaration async generator method +esid: sec-class-definitions-runtime-semantics-evaluation +info: | + ClassDeclaration : class BindingIdentifier ClassTail + + 1. Let className be StringValue of BindingIdentifier. + 2. Let value be the result of ClassDefinitionEvaluation of ClassTail with + argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + i. Let status be the result of performing + PropertyDefinitionEvaluation for m with arguments proto and + false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncGeneratorMethod : + async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) + { AsyncGeneratorBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true. + Otherwise let strict be false. + 4. Let scope be the running execution context's LexicalEnvironment. + 5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters, + AsyncGeneratorBody, scope, strict). + [...] +flags: [async] +features: [async-iteration] +---*/ + +var callCount = 0; +class C { + async *method(/*{ params }*/) { + /*{ body }*/ + callCount = callCount + 1; + } +} + +// Stores a reference `ref` for case evaluation +var ref = C.prototype.method; + +ref(/*{ args }*/).next().then(() => { + assert.sameValue(callCount, 1, 'method invoked exactly once'); +}).then($DONE, $DONE); diff --git a/src/function-forms/default/cls-decl-async-meth-static.template b/src/function-forms/default/cls-decl-async-meth-static.template new file mode 100644 index 0000000000000000000000000000000000000000..70e1bd38b4021a94e47e3295e5a4d8cbb3dd78e6 --- /dev/null +++ b/src/function-forms/default/cls-decl-async-meth-static.template @@ -0,0 +1,53 @@ +// Copyright (C) 2017 Leo Balter. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +path: language/statements/class/async-meth-static- +name: static class declaration async method +esid: sec-runtime-semantics-bindingclassdeclarationevaluation +info: | + ClassDeclaration : class BindingIdentifier ClassTail + + 1. Let className be StringValue of BindingIdentifier. + 2. Let value be the result of ClassDefinitionEvaluation of ClassTail with + argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + b. Else, + Let status be the result of performing PropertyDefinitionEvaluation for + m with arguments F and false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] +flags: [async] +---*/ + +var callCount = 0; +class C { + static async method(/*{ params }*/) { + /*{ body }*/ + callCount = callCount + 1; + } +} + +// Stores a reference `ref` for case evaluation +var ref = C.method; + +ref(/*{ args }*/).then(() => { + assert.sameValue(callCount, 1, 'method invoked exactly once'); +}).then($DONE, $DONE); diff --git a/src/function-forms/default/cls-decl-async-meth.template b/src/function-forms/default/cls-decl-async-meth.template new file mode 100644 index 0000000000000000000000000000000000000000..a646af8834e2af7a6adbb42caeb8b9526cdcb570 --- /dev/null +++ b/src/function-forms/default/cls-decl-async-meth.template @@ -0,0 +1,53 @@ +// Copyright (C) 2017 Leo Balter. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +path: language/statements/class/async-meth- +name: class declaration async method +esid: sec-class-definitions-runtime-semantics-evaluation +info: | + ClassDeclaration : class BindingIdentifier ClassTail + + 1. Let className be StringValue of BindingIdentifier. + 2. Let value be the result of ClassDefinitionEvaluation of ClassTail with + argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + i. Let status be the result of performing + PropertyDefinitionEvaluation for m with arguments proto and + false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] +flags: [async] +---*/ + +var callCount = 0; +class C { + async method(/*{ params }*/) { + /*{ body }*/ + callCount = callCount + 1; + } +} + +// Stores a reference `ref` for case evaluation +var ref = C.prototype.method; + +ref(/*{ args }*/).then(() => { + assert.sameValue(callCount, 1, 'method invoked exactly once'); +}).then($DONE, $DONE); diff --git a/src/params/default/cls-decl-gen-meth-static.template b/src/function-forms/default/cls-decl-gen-meth-static.template similarity index 97% rename from src/params/default/cls-decl-gen-meth-static.template rename to src/function-forms/default/cls-decl-gen-meth-static.template index 27c85fe30df3f7ae62ff52cec48a1bb17a103a72..fd8639a30cf821d697be8cc62be090ddea858f73 100644 --- a/src/params/default/cls-decl-gen-meth-static.template +++ b/src/function-forms/default/cls-decl-gen-meth-static.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/statements/class/params-gen-meth-static- +path: language/statements/class/gen-meth-static- name: static class expression generator method esid: sec-runtime-semantics-bindingclassdeclarationevaluation info: | diff --git a/src/params/default/cls-decl-gen-meth.template b/src/function-forms/default/cls-decl-gen-meth.template similarity index 97% rename from src/params/default/cls-decl-gen-meth.template rename to src/function-forms/default/cls-decl-gen-meth.template index f44f7eb8977adcf9aaccc1cf71c5d0420693e0a3..731f437302590d0ad848873b1d03c001fbe79caf 100644 --- a/src/params/default/cls-decl-gen-meth.template +++ b/src/function-forms/default/cls-decl-gen-meth.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/statements/class/params-gen-meth- +path: language/statements/class/gen-meth- name: class expression method esid: sec-class-definitions-runtime-semantics-evaluation info: | diff --git a/src/params/default/cls-decl-meth-static.template b/src/function-forms/default/cls-decl-meth-static.template similarity index 97% rename from src/params/default/cls-decl-meth-static.template rename to src/function-forms/default/cls-decl-meth-static.template index c6287aa2031f7b687eaf41d16e6d7baa1fd49261..4f97319d45a5b249bba4fec375e71fd06a5f466e 100644 --- a/src/params/default/cls-decl-meth-static.template +++ b/src/function-forms/default/cls-decl-meth-static.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/statements/class/params-meth-static- +path: language/statements/class/meth-static- name: static class expression method esid: sec-runtime-semantics-bindingclassdeclarationevaluation info: | diff --git a/src/params/default/cls-decl-meth.template b/src/function-forms/default/cls-decl-meth.template similarity index 97% rename from src/params/default/cls-decl-meth.template rename to src/function-forms/default/cls-decl-meth.template index 695624b95037b0dc08d1a1efd457cd9f53e3a514..7cff1cd0d99a1f9243d669c3dc81aa102ccbc8ec 100644 --- a/src/params/default/cls-decl-meth.template +++ b/src/function-forms/default/cls-decl-meth.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/statements/class/params-meth- +path: language/statements/class/meth- name: class expression method esid: sec-runtime-semantics-bindingclassdeclarationevaluation info: | diff --git a/src/params/default/cls-expr-async-gen-meth-static.template b/src/function-forms/default/cls-expr-async-gen-meth-static.template similarity index 96% rename from src/params/default/cls-expr-async-gen-meth-static.template rename to src/function-forms/default/cls-expr-async-gen-meth-static.template index 345191dd4405fa0ac834008133fcd49eeb6a65eb..2f44f8fff2378842e7e6a65481683cbb49df2f89 100644 --- a/src/params/default/cls-expr-async-gen-meth-static.template +++ b/src/function-forms/default/cls-expr-async-gen-meth-static.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/expressions/class/params-async-gen-meth-static- +path: language/expressions/class/async-gen-meth-static- name: static class expression async generator method esid: sec-class-definitions-runtime-semantics-evaluation info: | diff --git a/src/params/default/cls-expr-async-gen-meth.template b/src/function-forms/default/cls-expr-async-gen-meth.template similarity index 97% rename from src/params/default/cls-expr-async-gen-meth.template rename to src/function-forms/default/cls-expr-async-gen-meth.template index ca94df65a2ecc5494025d40426c782d5f1f3f8be..4829b7ffe9f99276b2a4bc06b5bca2127763a8c9 100644 --- a/src/params/default/cls-expr-async-gen-meth.template +++ b/src/function-forms/default/cls-expr-async-gen-meth.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/expressions/class/params-async-gen-meth- +path: language/expressions/class/async-gen-meth- name: class expression async generator method esid: sec-class-definitions-runtime-semantics-evaluation info: | diff --git a/src/function-forms/default/cls-expr-async-meth-static.template b/src/function-forms/default/cls-expr-async-meth-static.template new file mode 100644 index 0000000000000000000000000000000000000000..0d5214165b24de60f45de33b2f45dc9c50fffc0d --- /dev/null +++ b/src/function-forms/default/cls-expr-async-meth-static.template @@ -0,0 +1,53 @@ +// Copyright (C) 2017 Leo Balter. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +path: language/expressions/class/async-meth-static- +name: static class expression async method +esid: sec-class-definitions-runtime-semantics-evaluation +info: | + ClassExpression : class BindingIdentifieropt ClassTail + + 1. If BindingIdentifieropt is not present, let className be undefined. + 2. Else, let className be StringValue of BindingIdentifier. + 3. Let value be the result of ClassDefinitionEvaluation of ClassTail + with argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + b. Else, + Let status be the result of performing PropertyDefinitionEvaluation + for m with arguments F and false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] +flags: [async] +---*/ + +var callCount = 0; +var C = class { + static async method(/*{ params }*/) { + /*{ body }*/ + callCount = callCount + 1; + } +} + +// Stores a reference `ref` for case evaluation +var ref = C.method; + +ref(/*{ args }*/).then(() => { + assert.sameValue(callCount, 1, 'method invoked exactly once'); +}).then($DONE, $DONE); diff --git a/src/function-forms/default/cls-expr-async-meth.template b/src/function-forms/default/cls-expr-async-meth.template new file mode 100644 index 0000000000000000000000000000000000000000..58c351c57314569537e36a9ff94ecffcfef550db --- /dev/null +++ b/src/function-forms/default/cls-expr-async-meth.template @@ -0,0 +1,53 @@ +// Copyright (C) 2017 Leo Balter. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +path: language/expressions/class/async-meth- +name: class expression async method +esid: sec-class-definitions-runtime-semantics-evaluation +info: | + ClassExpression : class BindingIdentifieropt ClassTail + + 1. If BindingIdentifieropt is not present, let className be undefined. + 2. Else, let className be StringValue of BindingIdentifier. + 3. Let value be the result of ClassDefinitionEvaluation of ClassTail + with argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + i. Let status be the result of performing + PropertyDefinitionEvaluation for m with arguments proto and + false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] +flags: [async] +---*/ + +var callCount = 0; +var C = class { + async method(/*{ params }*/) { + /*{ body }*/ + callCount = callCount + 1; + } +} + +// Stores a reference `ref` for case evaluation +var ref = C.prototype.method; + +ref(/*{ args }*/).then(() => { + assert.sameValue(callCount, 1, 'method invoked exactly once'); +}).then($DONE, $DONE); diff --git a/src/params/default/cls-expr-gen-meth-static.template b/src/function-forms/default/cls-expr-gen-meth-static.template similarity index 97% rename from src/params/default/cls-expr-gen-meth-static.template rename to src/function-forms/default/cls-expr-gen-meth-static.template index 05ed9a797cbdc211d47a69160d3c26e312d50405..7cd524ed305a5fe1a73d0d070c09375a9114207b 100644 --- a/src/params/default/cls-expr-gen-meth-static.template +++ b/src/function-forms/default/cls-expr-gen-meth-static.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/expressions/class/params-gen-meth-static- +path: language/expressions/class/gen-meth-static- name: static class expression generator method esid: sec-class-definitions-runtime-semantics-evaluation info: | diff --git a/src/params/default/cls-expr-gen-meth.template b/src/function-forms/default/cls-expr-gen-meth.template similarity index 97% rename from src/params/default/cls-expr-gen-meth.template rename to src/function-forms/default/cls-expr-gen-meth.template index 0e7cf0d161db4509b9212d2c8354e079729bdf67..bc863bfd3bbc8fd40c5f3b1907d2c66761e876f4 100644 --- a/src/params/default/cls-expr-gen-meth.template +++ b/src/function-forms/default/cls-expr-gen-meth.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/expressions/class/params-gen-meth- +path: language/expressions/class/gen-meth- name: class expression method esid: sec-class-definitions-runtime-semantics-evaluation info: | diff --git a/src/params/default/cls-expr-meth-static.template b/src/function-forms/default/cls-expr-meth-static.template similarity index 97% rename from src/params/default/cls-expr-meth-static.template rename to src/function-forms/default/cls-expr-meth-static.template index 789a94b13c0cd526f77ed991dd0ac2b6d41b8ed7..50906f462d55faf73212ca3fb0ffc66aa9e228da 100644 --- a/src/params/default/cls-expr-meth-static.template +++ b/src/function-forms/default/cls-expr-meth-static.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/expressions/class/params-meth-static- +path: language/expressions/class/meth-static- name: static class expression method esid: sec-class-definitions-runtime-semantics-evaluation info: | diff --git a/src/params/default/cls-expr-meth.template b/src/function-forms/default/cls-expr-meth.template similarity index 97% rename from src/params/default/cls-expr-meth.template rename to src/function-forms/default/cls-expr-meth.template index 9dba08c1e658edbc49232618ea1c64e282f000f8..68ccff1cb81b50820403a4f0722ef1eb2544e54f 100644 --- a/src/params/default/cls-expr-meth.template +++ b/src/function-forms/default/cls-expr-meth.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/expressions/class/params-meth- +path: language/expressions/class/meth- name: class expression method esid: sec-class-definitions-runtime-semantics-evaluation info: | diff --git a/src/params/default/func-decl.template b/src/function-forms/default/func-decl.template similarity index 97% rename from src/params/default/func-decl.template rename to src/function-forms/default/func-decl.template index 8ef8a19e8691428d9c8e2b7c0b97bbf63793cecd..a35e250c73be8c56a886ba987c0a01474b472583 100644 --- a/src/params/default/func-decl.template +++ b/src/function-forms/default/func-decl.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/statements/function/params- +path: language/statements/function/ name: function declaration esid: sec-function-definitions-runtime-semantics-instantiatefunctionobject info: | diff --git a/src/params/default/func-expr.template b/src/function-forms/default/func-expr.template similarity index 96% rename from src/params/default/func-expr.template rename to src/function-forms/default/func-expr.template index 43df028a9e56252a35952df355b3cbea71d53fd0..be20064ae87b369968a570731b961313f1b40cad 100644 --- a/src/params/default/func-expr.template +++ b/src/function-forms/default/func-expr.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/expressions/function/params- +path: language/expressions/function/ name: function expression esid: sec-function-definitions-runtime-semantics-evaluation info: | diff --git a/src/params/default/gen-func-decl.template b/src/function-forms/default/gen-func-decl.template similarity index 96% rename from src/params/default/gen-func-decl.template rename to src/function-forms/default/gen-func-decl.template index e35835e7bfa9cbc5c49030fa5add5a5d5d2ad163..14e737972156098a11c58e8d0d7b77949df4f0e2 100644 --- a/src/params/default/gen-func-decl.template +++ b/src/function-forms/default/gen-func-decl.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/statements/generators/params- +path: language/statements/generators/ name: generator function declaration esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject info: | diff --git a/src/params/default/gen-func-expr.template b/src/function-forms/default/gen-func-expr.template similarity index 96% rename from src/params/default/gen-func-expr.template rename to src/function-forms/default/gen-func-expr.template index 5ba0714cff3a46d25982a7d6734971b17f7e6dfd..a59300437a19935a6836375aeb06df11f7b02890 100644 --- a/src/params/default/gen-func-expr.template +++ b/src/function-forms/default/gen-func-expr.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/expressions/generators/params- +path: language/expressions/generators/ name: generator function expression esid: sec-generator-function-definitions-runtime-semantics-evaluation info: | diff --git a/src/params/default/gen-meth.template b/src/function-forms/default/gen-meth.template similarity index 96% rename from src/params/default/gen-meth.template rename to src/function-forms/default/gen-meth.template index 17caf8cf9ec1b736a09536d2be9f94c389aa6b65..3e2fe8ac614e9c70051592d932fcb014c8d38ee4 100644 --- a/src/params/default/gen-meth.template +++ b/src/function-forms/default/gen-meth.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/expressions/object/method-definition/params-gen-meth- +path: language/expressions/object/method-definition/gen-meth- name: generator method esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation info: | diff --git a/src/params/default/meth.template b/src/function-forms/default/meth.template similarity index 95% rename from src/params/default/meth.template rename to src/function-forms/default/meth.template index bafbfe807aaaeda8f70c71bfbab30422a07b73dc..c4accbb3c6474cda591930ee481f9b480086deb8 100644 --- a/src/params/default/meth.template +++ b/src/function-forms/default/meth.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/expressions/object/method-definition/params-meth- +path: language/expressions/object/method-definition/meth- name: method esid: sec-runtime-semantics-definemethod info: | diff --git a/src/params/dflt-abrupt.case b/src/function-forms/dflt-params-abrupt.case similarity index 100% rename from src/params/dflt-abrupt.case rename to src/function-forms/dflt-params-abrupt.case diff --git a/src/params/dflt-arg-val-not-undefined.case b/src/function-forms/dflt-params-arg-val-not-undefined.case similarity index 100% rename from src/params/dflt-arg-val-not-undefined.case rename to src/function-forms/dflt-params-arg-val-not-undefined.case diff --git a/src/params/dflt-arg-val-undefined.case b/src/function-forms/dflt-params-arg-val-undefined.case similarity index 100% rename from src/params/dflt-arg-val-undefined.case rename to src/function-forms/dflt-params-arg-val-undefined.case diff --git a/src/params/dflt-duplicates.case b/src/function-forms/dflt-params-duplicates.case similarity index 100% rename from src/params/dflt-duplicates.case rename to src/function-forms/dflt-params-duplicates.case diff --git a/src/params/dflt-ref-later.case b/src/function-forms/dflt-params-ref-later.case similarity index 100% rename from src/params/dflt-ref-later.case rename to src/function-forms/dflt-params-ref-later.case diff --git a/src/params/dflt-ref-prior.case b/src/function-forms/dflt-params-ref-prior.case similarity index 100% rename from src/params/dflt-ref-prior.case rename to src/function-forms/dflt-params-ref-prior.case diff --git a/src/params/dflt-ref-self.case b/src/function-forms/dflt-params-ref-self.case similarity index 100% rename from src/params/dflt-ref-self.case rename to src/function-forms/dflt-params-ref-self.case diff --git a/src/params/dflt-rest.case b/src/function-forms/dflt-params-rest.case similarity index 100% rename from src/params/dflt-rest.case rename to src/function-forms/dflt-params-rest.case diff --git a/src/params/trailing-comma-dflt-param.case b/src/function-forms/dflt-params-trailing-comma.case similarity index 100% rename from src/params/trailing-comma-dflt-param.case rename to src/function-forms/dflt-params-trailing-comma.case diff --git a/src/params/error/arrow-function.template b/src/function-forms/error/arrow-function.template similarity index 96% rename from src/params/error/arrow-function.template rename to src/function-forms/error/arrow-function.template index a91cc38364e2a255226dfbf1d82556341f1a0ff4..735e025bff75ac7601fce32bbca2ea458148cf60 100644 --- a/src/params/error/arrow-function.template +++ b/src/function-forms/error/arrow-function.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/expressions/arrow-function/params- +path: language/expressions/arrow-function/ name: arrow function expression esid: sec-arrow-function-definitions-runtime-semantics-evaluation info: | diff --git a/src/function-forms/error/async-arrow-function.template b/src/function-forms/error/async-arrow-function.template new file mode 100644 index 0000000000000000000000000000000000000000..a64737742cab8f751a851bbe4a1969ccc32fd1bd --- /dev/null +++ b/src/function-forms/error/async-arrow-function.template @@ -0,0 +1,45 @@ +// Copyright (C) 2017 Leo Balter. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +path: language/expressions/async-arrow-function/ +name: async arrow function expression +esid: sec-async-arrow-function-definitions +info: | + 14.7 Async Arrow Function Definitions + + AsyncArrowFunction : + ... + CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody + + AsyncConciseBody : + { AsyncFunctionBody } + + ... + + Supplemental Syntax + + When processing an instance of the production AsyncArrowFunction : + CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody the interpretation of + CoverCallExpressionAndAsyncArrowHead is refined using the following grammar: + + AsyncArrowHead : + async ArrowFormalParameters +flags: [async] +---*/ + +var callCount = 0; +var f; +f = async (/*{ params }*/) => { + /*{ body }*/ + callCount = callCount + 1; +}; + +f(/*{ args }*/) + .then(_ => { + throw new Test262Error('function should not be resolved'); + }, error => assert.sameValue(error.constructor, /*{ error }*/)) + .then(() => { + assert.sameValue(callCount, 0, 'function body is not evaluated'); + }, $DONE) + .then($DONE, $DONE); diff --git a/src/function-forms/error/async-func-decl.template b/src/function-forms/error/async-func-decl.template new file mode 100644 index 0000000000000000000000000000000000000000..35057673eaa757a0e15e0df8edb720cd9f8751fe --- /dev/null +++ b/src/function-forms/error/async-func-decl.template @@ -0,0 +1,29 @@ +// Copyright (C) 2017 Leo Balter. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +path: language/statements/async-function/ +name: async function declaration +esid: sec-async-function-definitions +info: | + 14.6 Async Function Definitions + + AsyncFunctionDeclaration : + async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody } +flags: [async] +---*/ + +var callCount = 0; +async function f(/*{ params }*/) { + /*{ body }*/ + callCount = callCount + 1; +} + +f(/*{ args }*/) + .then(_ => { + throw new Test262Error('function should not be resolved'); + }, error => assert.sameValue(error.constructor, /*{ error }*/)) + .then(() => { + assert.sameValue(callCount, 0, 'function body is not evaluated'); + }, $DONE) + .then($DONE, $DONE); diff --git a/src/function-forms/error/async-func-expr-named.template b/src/function-forms/error/async-func-expr-named.template new file mode 100644 index 0000000000000000000000000000000000000000..142d6ae79ff091229084271744ca4464dcf3d4f3 --- /dev/null +++ b/src/function-forms/error/async-func-expr-named.template @@ -0,0 +1,29 @@ +// Copyright (C) 2017 Leo Balter. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +path: language/expressions/async-function/named- +name: async function named expression +esid: sec-async-function-definitions +info: | + 14.6 Async Function Definitions + + AsyncFunctionExpression : + async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody } +flags: [async] +---*/ + +var callCount = 0; +var f = async function f(/*{ params }*/) { + /*{ body }*/ + callCount = callCount + 1; +} + +f(/*{ args }*/) + .then(_ => { + throw new Test262Error('function should not be resolved'); + }, error => assert.sameValue(error.constructor, /*{ error }*/)) + .then(() => { + assert.sameValue(callCount, 0, 'function body is not evaluated'); + }, $DONE) + .then($DONE, $DONE); diff --git a/src/function-forms/error/async-func-expr-nameless.template b/src/function-forms/error/async-func-expr-nameless.template new file mode 100644 index 0000000000000000000000000000000000000000..40d5dc04149a509845de800b2c058e01aa5b7114 --- /dev/null +++ b/src/function-forms/error/async-func-expr-nameless.template @@ -0,0 +1,29 @@ +// Copyright (C) 2017 Leo Balter. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +path: language/expressions/async-function/nameless- +name: async function nameless expression +esid: sec-async-function-definitions +info: | + 14.6 Async Function Definitions + + AsyncFunctionExpression : + async function ( FormalParameters ) { AsyncFunctionBody } +flags: [async] +---*/ + +var callCount = 0; +var f = async function(/*{ params }*/) { + /*{ body }*/ + callCount = callCount + 1; +} + +f(/*{ args }*/) + .then(_ => { + throw new Test262Error('function should not be resolved'); + }, error => assert.sameValue(error.constructor, /*{ error }*/)) + .then(() => { + assert.sameValue(callCount, 0, 'function body is not evaluated'); + }, $DONE) + .then($DONE, $DONE); diff --git a/src/params/error/async-gen-func-decl.template b/src/function-forms/error/async-gen-func-decl.template similarity index 94% rename from src/params/error/async-gen-func-decl.template rename to src/function-forms/error/async-gen-func-decl.template index 913d2b61d8b5be776a8d1667156397e9af8aaa93..c5e61f1aab007613a706db0eac756387ece4a9b2 100644 --- a/src/params/error/async-gen-func-decl.template +++ b/src/function-forms/error/async-gen-func-decl.template @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/statements/async-generator/params- +path: language/statements/async-generator/ name: async generator function declaration esid: sec-asyncgenerator-definitions-instantiatefunctionobject info: | diff --git a/src/params/error/async-gen-func-expr.template b/src/function-forms/error/async-gen-func-expr.template similarity index 93% rename from src/params/error/async-gen-func-expr.template rename to src/function-forms/error/async-gen-func-expr.template index 2f2c9e44aa0959b94074f298478e62d30a5cc8d3..994b234da3be6452dd251e6b1bdb15a4ea2496f2 100644 --- a/src/params/error/async-gen-func-expr.template +++ b/src/function-forms/error/async-gen-func-expr.template @@ -2,13 +2,13 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/expressions/async-generator/params- +path: language/expressions/async-generator/ name: async generator function expression esid: sec-asyncgenerator-definitions-evaluation info: | AsyncGeneratorExpression : async [no LineTerminator here] function * ( FormalParameters ) { AsyncGeneratorBody } - + [...] 3. Let closure be ! AsyncGeneratorFunctionCreate(Normal, FormalParameters, AsyncGeneratorBody, scope, strict). diff --git a/src/params/error/async-gen-meth.template b/src/function-forms/error/async-gen-meth.template similarity index 93% rename from src/params/error/async-gen-meth.template rename to src/function-forms/error/async-gen-meth.template index 8fc908ea6594cb423f4c61639a0f95aa56360e0a..486f4ba0f2ed57aead8e8e656aeda8dce841b83d 100644 --- a/src/params/error/async-gen-meth.template +++ b/src/function-forms/error/async-gen-meth.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/expressions/object/method-definition/params-async-gen-meth- +path: language/expressions/object/method-definition/async-gen-meth- name: async generator method esid: sec-asyncgenerator-definitions-propertydefinitionevaluation info: | diff --git a/src/params/error/async-gen-named-func-expr.template b/src/function-forms/error/async-gen-named-func-expr.template similarity index 93% rename from src/params/error/async-gen-named-func-expr.template rename to src/function-forms/error/async-gen-named-func-expr.template index 852b2c1a7d0ab9bb893dcc83d91f9497cc07e7df..77a85c4669c73bf5a9a63556f20bc43ecb20f285 100644 --- a/src/params/error/async-gen-named-func-expr.template +++ b/src/function-forms/error/async-gen-named-func-expr.template @@ -2,13 +2,13 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/expressions/async-generator/params-named- +path: language/expressions/async-generator/named- name: async generator named function expression esid: sec-asyncgenerator-definitions-evaluation info: | AsyncGeneratorExpression : async [no LineTerminator here] function * BindingIdentifier ( FormalParameters ) { AsyncGeneratorBody } - + [...] 7. Let closure be ! AsyncGeneratorFunctionCreate(Normal, FormalParameters, AsyncGeneratorBody, funcEnv, strict). diff --git a/src/function-forms/error/async-meth.template b/src/function-forms/error/async-meth.template new file mode 100644 index 0000000000000000000000000000000000000000..315f7ace49e4daa1d92d5abcafb23dc2111b9835 --- /dev/null +++ b/src/function-forms/error/async-meth.template @@ -0,0 +1,32 @@ +// Copyright (C) 2017 Leo Balter. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +path: language/expressions/object/method-definition/async-meth- +name: async method +esid: sec-async-function-definitions +info: | + 14.6 Async Function Definitions + + AsyncMethod : + async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } +flags: [async] +---*/ + +var callCount = 0; + +var obj = { + async method(/*{ params }*/) { + /*{ body }*/ + callCount = callCount + 1; + } +}; + +obj.method(/*{ args }*/) + .then(_ => { + throw new Test262Error('function should not be resolved'); + }, error => assert.sameValue(error.constructor, /*{ error }*/)) + .then(() => { + assert.sameValue(callCount, 0, 'function body is not evaluated'); + }, $DONE) + .then($DONE, $DONE); diff --git a/src/params/error/cls-decl-async-gen-meth-static.template b/src/function-forms/error/cls-decl-async-gen-meth-static.template similarity index 96% rename from src/params/error/cls-decl-async-gen-meth-static.template rename to src/function-forms/error/cls-decl-async-gen-meth-static.template index 5c89cf028c4b4f8c2e0d98c1fdff9104b0c4f5f6..3fd1feb0c199f68c746378e31f4a7a8f47db8592 100644 --- a/src/params/error/cls-decl-async-gen-meth-static.template +++ b/src/function-forms/error/cls-decl-async-gen-meth-static.template @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/statements/class/params-async-gen-meth-static- +path: language/statements/class/async-gen-meth-static- name: static class expression generator method esid: sec-runtime-semantics-bindingclassdeclarationevaluation info: | diff --git a/src/params/error/cls-decl-async-gen-meth.template b/src/function-forms/error/cls-decl-async-gen-meth.template similarity index 96% rename from src/params/error/cls-decl-async-gen-meth.template rename to src/function-forms/error/cls-decl-async-gen-meth.template index a8295f8df346f02b3d0095263306dc38d9d0b976..540b641e33c52818a580cf147fd12cd17873b60d 100644 --- a/src/params/error/cls-decl-async-gen-meth.template +++ b/src/function-forms/error/cls-decl-async-gen-meth.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/statements/class/params-async-gen-meth- +path: language/statements/class/async-gen-meth- name: class expression method esid: sec-class-definitions-runtime-semantics-evaluation info: | diff --git a/src/function-forms/error/cls-decl-async-meth-static.template b/src/function-forms/error/cls-decl-async-meth-static.template new file mode 100644 index 0000000000000000000000000000000000000000..2056b336af2f7b4214cfa52518528f785c929cec --- /dev/null +++ b/src/function-forms/error/cls-decl-async-meth-static.template @@ -0,0 +1,55 @@ +// Copyright (C) 2017 Leo Balter. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +path: language/statements/class/async-meth-static- +name: static class declaration async method +esid: sec-runtime-semantics-bindingclassdeclarationevaluation +info: | + ClassDeclaration : class BindingIdentifier ClassTail + + 1. Let className be StringValue of BindingIdentifier. + 2. Let value be the result of ClassDefinitionEvaluation of ClassTail with + argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + b. Else, + Let status be the result of performing PropertyDefinitionEvaluation for + m with arguments F and false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] +flags: [async] +---*/ + +var callCount = 0; +class C { + static async method(/*{ params }*/) { + /*{ body }*/ + callCount = callCount + 1; + } +} + +C.method(/*{ args }*/) + .then(_ => { + throw new Test262Error('function should not be resolved'); + }, error => assert.sameValue(error.constructor, /*{ error }*/)) + .then(() => { + assert.sameValue(callCount, 0, 'function body is not evaluated'); + }, $DONE) + .then($DONE, $DONE); diff --git a/src/function-forms/error/cls-decl-async-meth.template b/src/function-forms/error/cls-decl-async-meth.template new file mode 100644 index 0000000000000000000000000000000000000000..4a119e4971480c86168688f07090de06f10dcdfd --- /dev/null +++ b/src/function-forms/error/cls-decl-async-meth.template @@ -0,0 +1,55 @@ +// Copyright (C) 2017 Leo Balter. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +path: language/statements/class/async-meth- +name: class declaration async method +esid: sec-class-definitions-runtime-semantics-evaluation +info: | + ClassDeclaration : class BindingIdentifier ClassTail + + 1. Let className be StringValue of BindingIdentifier. + 2. Let value be the result of ClassDefinitionEvaluation of ClassTail with + argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + i. Let status be the result of performing + PropertyDefinitionEvaluation for m with arguments proto and + false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] +flags: [async] +---*/ + +var callCount = 0; +class C { + async method(/*{ params }*/) { + /*{ body }*/ + callCount = callCount + 1; + } +} + +C.prototype.method(/*{ args }*/) + .then(_ => { + throw new Test262Error('function should not be resolved'); + }, error => assert.sameValue(error.constructor, /*{ error }*/)) + .then(() => { + assert.sameValue(callCount, 0, 'function body is not evaluated'); + }, $DONE) + .then($DONE, $DONE); diff --git a/src/params/error/cls-decl-gen-meth-static.template b/src/function-forms/error/cls-decl-gen-meth-static.template similarity index 97% rename from src/params/error/cls-decl-gen-meth-static.template rename to src/function-forms/error/cls-decl-gen-meth-static.template index 25d450673c980c4bc9e65d466fc27298ba8cfd12..272f03796895d005849160de855e0c2c50bd6f0c 100644 --- a/src/params/error/cls-decl-gen-meth-static.template +++ b/src/function-forms/error/cls-decl-gen-meth-static.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/statements/class/params-gen-meth-static- +path: language/statements/class/gen-meth-static- name: static class expression generator method esid: sec-runtime-semantics-bindingclassdeclarationevaluation info: | diff --git a/src/params/error/cls-decl-gen-meth.template b/src/function-forms/error/cls-decl-gen-meth.template similarity index 97% rename from src/params/error/cls-decl-gen-meth.template rename to src/function-forms/error/cls-decl-gen-meth.template index 13a8e27890cfb3c81bb55b23b5169c472623b10f..31389ed892ab1837480fc52aec8c7f9ef9746bbd 100644 --- a/src/params/error/cls-decl-gen-meth.template +++ b/src/function-forms/error/cls-decl-gen-meth.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/statements/class/params-gen-meth- +path: language/statements/class/gen-meth- name: class expression method esid: sec-class-definitions-runtime-semantics-evaluation info: | diff --git a/src/params/error/cls-decl-meth-static.template b/src/function-forms/error/cls-decl-meth-static.template similarity index 97% rename from src/params/error/cls-decl-meth-static.template rename to src/function-forms/error/cls-decl-meth-static.template index 0252314e07900862399a968073275b0b007f4dff..2e8bf54df7fd8dacea401da6ac06656b7752d22b 100644 --- a/src/params/error/cls-decl-meth-static.template +++ b/src/function-forms/error/cls-decl-meth-static.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/statements/class/params-meth-static- +path: language/statements/class/meth-static- name: static class expression method esid: sec-runtime-semantics-bindingclassdeclarationevaluation info: | diff --git a/src/params/error/cls-decl-meth.template b/src/function-forms/error/cls-decl-meth.template similarity index 97% rename from src/params/error/cls-decl-meth.template rename to src/function-forms/error/cls-decl-meth.template index 9f688960386f1d78af0fbd2e9a3e2641670291ab..dad78b2184389ff36214a8f40a28358cec4c9f73 100644 --- a/src/params/error/cls-decl-meth.template +++ b/src/function-forms/error/cls-decl-meth.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/statements/class/params-meth- +path: language/statements/class/meth- name: class expression method esid: sec-runtime-semantics-bindingclassdeclarationevaluation info: | diff --git a/src/params/error/cls-expr-async-gen-meth-static.template b/src/function-forms/error/cls-expr-async-gen-meth-static.template similarity index 96% rename from src/params/error/cls-expr-async-gen-meth-static.template rename to src/function-forms/error/cls-expr-async-gen-meth-static.template index c01742a081d575aedbd3894a74b5e99fb70e8118..f7f3534e365b7837df7ddcfabd86079aadc9f884 100644 --- a/src/params/error/cls-expr-async-gen-meth-static.template +++ b/src/function-forms/error/cls-expr-async-gen-meth-static.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/expressions/class/params-async-gen-meth-static- +path: language/expressions/class/async-gen-meth-static- name: static class expression async generator method esid: sec-class-definitions-runtime-semantics-evaluation info: | diff --git a/src/params/error/cls-expr-async-gen-meth.template b/src/function-forms/error/cls-expr-async-gen-meth.template similarity index 97% rename from src/params/error/cls-expr-async-gen-meth.template rename to src/function-forms/error/cls-expr-async-gen-meth.template index 2f8735d2895f65438e12e526092c0a3baf10a352..d702eca1a431557d8f9ccf0a7ed026219ea17762 100644 --- a/src/params/error/cls-expr-async-gen-meth.template +++ b/src/function-forms/error/cls-expr-async-gen-meth.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/expressions/class/params-async-gen-meth- +path: language/expressions/class/async-gen-meth- name: class expression async generator method esid: sec-class-definitions-runtime-semantics-evaluation info: | diff --git a/src/function-forms/error/cls-expr-async-meth-static.template b/src/function-forms/error/cls-expr-async-meth-static.template new file mode 100644 index 0000000000000000000000000000000000000000..e64dc3276db4229eb873666feb5c36176a19b3fb --- /dev/null +++ b/src/function-forms/error/cls-expr-async-meth-static.template @@ -0,0 +1,57 @@ +// Copyright (C) 2017 Leo Balter. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +path: language/expressions/class/async-meth-static- +name: static class expression async method +esid: sec-class-definitions-runtime-semantics-evaluation +info: | + ClassExpression : class BindingIdentifieropt ClassTail + + 1. If BindingIdentifieropt is not present, let className be undefined. + 2. Else, let className be StringValue of BindingIdentifier. + 3. Let value be the result of ClassDefinitionEvaluation of ClassTail + with argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + b. Else, + Let status be the result of performing PropertyDefinitionEvaluation + for m with arguments F and false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] +flags: [async] +---*/ + +var callCount = 0; + +var C = class { + static async method(/*{ params }*/) { + /*{ body }*/ + callCount = callCount + 1; + } +}; + +C.method(/*{ args }*/) + .then(_ => { + throw new Test262Error('function should not be resolved'); + }, error => assert.sameValue(error.constructor, /*{ error }*/)) + .then(() => { + assert.sameValue(callCount, 0, 'function body is not evaluated'); + }, $DONE) + .then($DONE, $DONE); diff --git a/src/function-forms/error/cls-expr-async-meth.template b/src/function-forms/error/cls-expr-async-meth.template new file mode 100644 index 0000000000000000000000000000000000000000..e77de2411760c26a2101ce51e1943868e97dae15 --- /dev/null +++ b/src/function-forms/error/cls-expr-async-meth.template @@ -0,0 +1,56 @@ +// Copyright (C) 2017 Leo Balter. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +path: language/expressions/class/async-meth- +name: class expression async method +esid: sec-class-definitions-runtime-semantics-evaluation +info: | + ClassExpression : class BindingIdentifieropt ClassTail + + 1. If BindingIdentifieropt is not present, let className be undefined. + 2. Else, let className be StringValue of BindingIdentifier. + 3. Let value be the result of ClassDefinitionEvaluation of ClassTail + with argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + i. Let status be the result of performing + PropertyDefinitionEvaluation for m with arguments proto and + false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] +flags: [async] +---*/ + +var callCount = 0; +var C = class { + async method(/*{ params }*/) { + /*{ body }*/ + callCount = callCount + 1; + } +}; + +C.prototype.method(/*{ args }*/) + .then(_ => { + throw new Test262Error('function should not be resolved'); + }, error => assert.sameValue(error.constructor, /*{ error }*/)) + .then(() => { + assert.sameValue(callCount, 0, 'function body is not evaluated'); + }, $DONE) + .then($DONE, $DONE); diff --git a/src/params/error/cls-expr-gen-meth-static.template b/src/function-forms/error/cls-expr-gen-meth-static.template similarity index 97% rename from src/params/error/cls-expr-gen-meth-static.template rename to src/function-forms/error/cls-expr-gen-meth-static.template index 14c8afc662b4a4bab0d73b6f6c154cf3679e4135..ac61f1c024b92e5fa86a5fa775f0c4348d67dbdd 100644 --- a/src/params/error/cls-expr-gen-meth-static.template +++ b/src/function-forms/error/cls-expr-gen-meth-static.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/expressions/class/params-gen-meth-static- +path: language/expressions/class/gen-meth-static- name: static class expression generator method esid: sec-class-definitions-runtime-semantics-evaluation info: | diff --git a/src/params/error/cls-expr-gen-meth.template b/src/function-forms/error/cls-expr-gen-meth.template similarity index 97% rename from src/params/error/cls-expr-gen-meth.template rename to src/function-forms/error/cls-expr-gen-meth.template index 5dbf2727a60670df7905c842e2959310814cd28e..804d2d8a1cdab7ee648222cd070349fc5a51104e 100644 --- a/src/params/error/cls-expr-gen-meth.template +++ b/src/function-forms/error/cls-expr-gen-meth.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/expressions/class/params-gen-meth- +path: language/expressions/class/gen-meth- name: class expression method esid: sec-class-definitions-runtime-semantics-evaluation info: | diff --git a/src/params/error/cls-expr-meth-static.template b/src/function-forms/error/cls-expr-meth-static.template similarity index 97% rename from src/params/error/cls-expr-meth-static.template rename to src/function-forms/error/cls-expr-meth-static.template index 0be31534eb6845783693bcfc356d5fb6d1c85262..562ac933b16be86a786a6067cdf7d0c4942f6783 100644 --- a/src/params/error/cls-expr-meth-static.template +++ b/src/function-forms/error/cls-expr-meth-static.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/expressions/class/params-meth-static- +path: language/expressions/class/meth-static- name: static class expression method esid: sec-class-definitions-runtime-semantics-evaluation info: | diff --git a/src/params/error/cls-expr-meth.template b/src/function-forms/error/cls-expr-meth.template similarity index 97% rename from src/params/error/cls-expr-meth.template rename to src/function-forms/error/cls-expr-meth.template index 75c353d2405e1bcad6d4c4fb6a1603ce0396944c..449d1c6d0dc25515cadd8fb7f52151ca4f61de19 100644 --- a/src/params/error/cls-expr-meth.template +++ b/src/function-forms/error/cls-expr-meth.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/expressions/class/params-meth- +path: language/expressions/class/meth- name: class expression method esid: sec-class-definitions-runtime-semantics-evaluation info: | diff --git a/src/params/error/func-decl.template b/src/function-forms/error/func-decl.template similarity index 96% rename from src/params/error/func-decl.template rename to src/function-forms/error/func-decl.template index d57e6fa54bd6a9d58918a7dc14f49b5548eeda4e..89262fbda7fc61358141dad87e1ea77bd64dc531 100644 --- a/src/params/error/func-decl.template +++ b/src/function-forms/error/func-decl.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/statements/function/params- +path: language/statements/function/ name: function declaration esid: sec-function-definitions-runtime-semantics-instantiatefunctionobject info: | diff --git a/src/params/error/func-expr.template b/src/function-forms/error/func-expr.template similarity index 96% rename from src/params/error/func-expr.template rename to src/function-forms/error/func-expr.template index 62155d91778424aa74b275c7f60d69e8da0244fe..2003802ecf45037bc8fc05004eecea2da46c2235 100644 --- a/src/params/error/func-expr.template +++ b/src/function-forms/error/func-expr.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/expressions/function/params- +path: language/expressions/function/ name: function expression esid: sec-function-definitions-runtime-semantics-evaluation info: | diff --git a/src/params/error/gen-func-decl.template b/src/function-forms/error/gen-func-decl.template similarity index 96% rename from src/params/error/gen-func-decl.template rename to src/function-forms/error/gen-func-decl.template index 9b414763a43ed5ecca078c7c9fc17e592498243b..4f6cbeb0e5c83f9e5bd8169db0c8a066c303182d 100644 --- a/src/params/error/gen-func-decl.template +++ b/src/function-forms/error/gen-func-decl.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/statements/generators/params- +path: language/statements/generators/ name: generator function declaration esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject info: | diff --git a/src/params/error/gen-func-expr.template b/src/function-forms/error/gen-func-expr.template similarity index 96% rename from src/params/error/gen-func-expr.template rename to src/function-forms/error/gen-func-expr.template index 411c6db75d3e25fd4c05512535ebd48850721239..c84b1d5960353632de19a0285515bc354240aee6 100644 --- a/src/params/error/gen-func-expr.template +++ b/src/function-forms/error/gen-func-expr.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/expressions/generators/params- +path: language/expressions/generators/ name: generator function expression esid: sec-generator-function-definitions-runtime-semantics-evaluation info: | diff --git a/src/params/error/gen-meth.template b/src/function-forms/error/gen-meth.template similarity index 96% rename from src/params/error/gen-meth.template rename to src/function-forms/error/gen-meth.template index bf6f0cc232586e94781c717760c54357f7a4ebe0..ddc1db97b96cdab18ab72db0acdba1f0fde60a68 100644 --- a/src/params/error/gen-meth.template +++ b/src/function-forms/error/gen-meth.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/expressions/object/method-definition/params-gen-meth- +path: language/expressions/object/method-definition/gen-meth- name: generator method esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation info: | diff --git a/src/params/error/meth.template b/src/function-forms/error/meth.template similarity index 95% rename from src/params/error/meth.template rename to src/function-forms/error/meth.template index 6d923cc4601a802cff377d6f4377619556ae265d..ccec4a7ef6ebe2ca2f0a2c2e49ed8e5378f60769 100644 --- a/src/params/error/meth.template +++ b/src/function-forms/error/meth.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/expressions/object/method-definition/params-meth- +path: language/expressions/object/method-definition/meth- name: method esid: sec-runtime-semantics-definemethod info: | diff --git a/src/params/trailing-comma-multiple-param.case b/src/function-forms/params-trailing-comma-multiple.case similarity index 100% rename from src/params/trailing-comma-multiple-param.case rename to src/function-forms/params-trailing-comma-multiple.case diff --git a/src/params/trailing-comma-single-param.case b/src/function-forms/params-trailing-comma-single.case similarity index 100% rename from src/params/trailing-comma-single-param.case rename to src/function-forms/params-trailing-comma-single.case diff --git a/src/params/trailing-comma-rest-early-error.case b/src/function-forms/rest-params-trailing-comma-early-error.case similarity index 100% rename from src/params/trailing-comma-rest-early-error.case rename to src/function-forms/rest-params-trailing-comma-early-error.case diff --git a/src/params/syntax/arrow-function.template b/src/function-forms/syntax/arrow-function.template similarity index 95% rename from src/params/syntax/arrow-function.template rename to src/function-forms/syntax/arrow-function.template index c1ada16c822ddc3f18b8dffa3922db7735408ef4..e607d972ee66f748fcf88bb37c8b4cca16eba764 100644 --- a/src/params/syntax/arrow-function.template +++ b/src/function-forms/syntax/arrow-function.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/expressions/arrow-function/params- +path: language/expressions/arrow-function/ name: arrow function expression esid: sec-arrow-function-definitions-runtime-semantics-evaluation info: | diff --git a/src/function-forms/syntax/async-arrow-function.template b/src/function-forms/syntax/async-arrow-function.template new file mode 100644 index 0000000000000000000000000000000000000000..ddc99b7236701797ad987d4c45517834e419ffd3 --- /dev/null +++ b/src/function-forms/syntax/async-arrow-function.template @@ -0,0 +1,32 @@ +// Copyright (C) 2017 Leo Balter. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +path: language/expressions/async-arrow-function/ +name: async arrow function expression +esid: sec-async-arrow-function-definitions +info: | + 14.7 Async Arrow Function Definitions + + AsyncArrowFunction : + ... + CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody + + AsyncConciseBody : + { AsyncFunctionBody } + + ... + + Supplemental Syntax + + When processing an instance of the production AsyncArrowFunction : + CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody the interpretation of + CoverCallExpressionAndAsyncArrowHead is refined using the following grammar: + + AsyncArrowHead : + async ArrowFormalParameters +---*/ + +(async (/*{ params }*/) => { + /*{ body }*/ +}); diff --git a/src/function-forms/syntax/async-func-decl.template b/src/function-forms/syntax/async-func-decl.template new file mode 100644 index 0000000000000000000000000000000000000000..6f5beb08969ba91c72c6a02244e643efb2b89c4e --- /dev/null +++ b/src/function-forms/syntax/async-func-decl.template @@ -0,0 +1,17 @@ +// Copyright (C) 2017 Leo Balter. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +path: language/statements/async-function/ +name: async function declaration +esid: sec-async-function-definitions +info: | + 14.6 Async Function Definitions + + AsyncFunctionDeclaration : + async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody } +---*/ + +async function f(/*{ params }*/) { + /*{ body }*/ +} diff --git a/src/function-forms/syntax/async-func-expr-named.template b/src/function-forms/syntax/async-func-expr-named.template new file mode 100644 index 0000000000000000000000000000000000000000..b7efe5fc91223484952885e72620d3cb44c6a4c8 --- /dev/null +++ b/src/function-forms/syntax/async-func-expr-named.template @@ -0,0 +1,18 @@ +// Copyright (C) 2017 Leo Balter. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +path: language/expressions/async-function/named- +name: async function named expression +esid: sec-async-function-definitions +info: | + 14.6 Async Function Definitions + + AsyncFunctionExpression : + async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody } + +---*/ + +(async function f(/*{ params }*/) { + /*{ body }*/ +}); diff --git a/src/function-forms/syntax/async-func-expr-nameless.template b/src/function-forms/syntax/async-func-expr-nameless.template new file mode 100644 index 0000000000000000000000000000000000000000..206fc5018f6cfe152e7932e71f156225731ea6f3 --- /dev/null +++ b/src/function-forms/syntax/async-func-expr-nameless.template @@ -0,0 +1,17 @@ +// Copyright (C) 2017 Leo Balter. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +path: language/expressions/async-function/nameless- +name: async function nameless expression +esid: sec-async-function-definitions +info: | + 14.6 Async Function Definitions + + AsyncFunctionExpression : + async function ( FormalParameters ) { AsyncFunctionBody } +---*/ + +(async function(/*{ params }*/) { + /*{ body }*/ +}); diff --git a/src/params/syntax/async-gen-func-decl.template b/src/function-forms/syntax/async-gen-func-decl.template similarity index 92% rename from src/params/syntax/async-gen-func-decl.template rename to src/function-forms/syntax/async-gen-func-decl.template index 905c4a9a8792609d59446ec6eef13994b3d8497d..a586e7ed324543be6635d1ba54c6aec7f1bf1761 100644 --- a/src/params/syntax/async-gen-func-decl.template +++ b/src/function-forms/syntax/async-gen-func-decl.template @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/statements/async-generator/params- +path: language/statements/async-generator/ name: async generator function declaration esid: sec-asyncgenerator-definitions-instantiatefunctionobject info: | diff --git a/src/params/syntax/async-gen-func-expr.template b/src/function-forms/syntax/async-gen-func-expr.template similarity index 92% rename from src/params/syntax/async-gen-func-expr.template rename to src/function-forms/syntax/async-gen-func-expr.template index 681ca487202fe0545588c9b64548042573efcd53..744b8988023340d2f90693be4c351a1c68beb9f1 100644 --- a/src/params/syntax/async-gen-func-expr.template +++ b/src/function-forms/syntax/async-gen-func-expr.template @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/expressions/async-generator/params- +path: language/expressions/async-generator/ name: async generator function expression esid: sec-asyncgenerator-definitions-evaluation info: | diff --git a/src/params/syntax/async-gen-meth.template b/src/function-forms/syntax/async-gen-meth.template similarity index 92% rename from src/params/syntax/async-gen-meth.template rename to src/function-forms/syntax/async-gen-meth.template index fbec15467c57f667b0397342b755bf54136e7ecf..f2f69bda4b21493d235fc82f7c821aefccadce2b 100644 --- a/src/params/syntax/async-gen-meth.template +++ b/src/function-forms/syntax/async-gen-meth.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/expressions/object/method-definition/params-async-gen-meth- +path: language/expressions/object/method-definition/async-gen-meth- name: async generator method esid: sec-asyncgenerator-definitions-propertydefinitionevaluation info: | diff --git a/src/params/syntax/async-gen-named-func-expr.template b/src/function-forms/syntax/async-gen-named-func-expr.template similarity index 91% rename from src/params/syntax/async-gen-named-func-expr.template rename to src/function-forms/syntax/async-gen-named-func-expr.template index ba804028b18dbc61e9098bd3281a4a8b4ab9b627..d30eaeef1ef84bf89516de590eee86741248831f 100644 --- a/src/params/syntax/async-gen-named-func-expr.template +++ b/src/function-forms/syntax/async-gen-named-func-expr.template @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/expressions/async-generator/params-named- +path: language/expressions/async-generator/named- name: async generator named function expression esid: sec-asyncgenerator-definitions-evaluation info: | diff --git a/src/function-forms/syntax/async-meth.template b/src/function-forms/syntax/async-meth.template new file mode 100644 index 0000000000000000000000000000000000000000..7200251a5c2a2f8fb0061933880d0a6f6d41e052 --- /dev/null +++ b/src/function-forms/syntax/async-meth.template @@ -0,0 +1,19 @@ +// Copyright (C) 2017 Leo Balter. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +path: language/expressions/object/method-definition/async-meth- +name: async method +esid: sec-async-function-definitions +info: | + 14.6 Async Function Definitions + + AsyncMethod : + async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } +---*/ + +({ + async *method(/*{ params }*/) { + /*{ body }*/ + } +}); diff --git a/src/params/syntax/cls-decl-async-gen-meth-static.template b/src/function-forms/syntax/cls-decl-async-gen-meth-static.template similarity index 96% rename from src/params/syntax/cls-decl-async-gen-meth-static.template rename to src/function-forms/syntax/cls-decl-async-gen-meth-static.template index ecd372f7a7cf2cb962596fb5f18ff57bcd2f6e35..6482e99d5d24791162d54589e2580567f715551f 100644 --- a/src/params/syntax/cls-decl-async-gen-meth-static.template +++ b/src/function-forms/syntax/cls-decl-async-gen-meth-static.template @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/statements/class/params-async-gen-meth-static- +path: language/statements/class/async-gen-meth-static- name: static class expression generator method esid: sec-runtime-semantics-bindingclassdeclarationevaluation info: | diff --git a/src/params/syntax/cls-decl-async-gen-meth.template b/src/function-forms/syntax/cls-decl-async-gen-meth.template similarity index 96% rename from src/params/syntax/cls-decl-async-gen-meth.template rename to src/function-forms/syntax/cls-decl-async-gen-meth.template index 20f4527e0a39aca4c29c0adcdc4bfcc8b02066d7..83b0edc6497cbcdda1cad720b4f8c75b978a0773 100644 --- a/src/params/syntax/cls-decl-async-gen-meth.template +++ b/src/function-forms/syntax/cls-decl-async-gen-meth.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/statements/class/params-async-gen-meth- +path: language/statements/class/async-gen-meth- name: class expression method esid: sec-class-definitions-runtime-semantics-evaluation info: | diff --git a/src/function-forms/syntax/cls-decl-async-meth-static.template b/src/function-forms/syntax/cls-decl-async-meth-static.template new file mode 100644 index 0000000000000000000000000000000000000000..b0600cbce77dc623a9ec68ef3fa529850f1623bb --- /dev/null +++ b/src/function-forms/syntax/cls-decl-async-meth-static.template @@ -0,0 +1,43 @@ +// Copyright (C) 2017 Leo Balter. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +path: language/statements/class/async-meth-static- +name: static class declaration async method +esid: sec-runtime-semantics-bindingclassdeclarationevaluation +info: | + ClassDeclaration : class BindingIdentifier ClassTail + + 1. Let className be StringValue of BindingIdentifier. + 2. Let value be the result of ClassDefinitionEvaluation of ClassTail with + argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + b. Else, + Let status be the result of performing PropertyDefinitionEvaluation for + m with arguments F and false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] +---*/ + +class C { + static async method(/*{ params }*/) { + /*{ body }*/ + } +} diff --git a/src/function-forms/syntax/cls-decl-async-meth.template b/src/function-forms/syntax/cls-decl-async-meth.template new file mode 100644 index 0000000000000000000000000000000000000000..b8bbe5ea3429fdfe1a353ce5267001792007196f --- /dev/null +++ b/src/function-forms/syntax/cls-decl-async-meth.template @@ -0,0 +1,44 @@ +// Copyright (C) 2017 Leo Balter. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +path: language/statements/class/async-meth- +name: class declaration async method +esid: sec-class-definitions-runtime-semantics-evaluation +info: | + ClassDeclaration : class BindingIdentifier ClassTail + + 1. Let className be StringValue of BindingIdentifier. + 2. Let value be the result of ClassDefinitionEvaluation of ClassTail with + argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + i. Let status be the result of performing + PropertyDefinitionEvaluation for m with arguments proto and + false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] + +---*/ + +class C { + async method(/*{ params }*/) { + /*{ body }*/ + } +} diff --git a/src/params/syntax/cls-decl-gen-meth-static.template b/src/function-forms/syntax/cls-decl-gen-meth-static.template similarity index 97% rename from src/params/syntax/cls-decl-gen-meth-static.template rename to src/function-forms/syntax/cls-decl-gen-meth-static.template index 674b9951d844a04e639f30f0297a96cd0a9af832..c0db9b4992999963d97a7c35c09fe8b21bae1050 100644 --- a/src/params/syntax/cls-decl-gen-meth-static.template +++ b/src/function-forms/syntax/cls-decl-gen-meth-static.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/statements/class/params-gen-meth-static- +path: language/statements/class/gen-meth-static- name: static class expression generator method esid: sec-runtime-semantics-bindingclassdeclarationevaluation info: | diff --git a/src/params/syntax/cls-decl-gen-meth.template b/src/function-forms/syntax/cls-decl-gen-meth.template similarity index 97% rename from src/params/syntax/cls-decl-gen-meth.template rename to src/function-forms/syntax/cls-decl-gen-meth.template index 58fcf0596cfecf04afd66fd0ff3c0ef58d69c055..786b317a2b545335e3807b52b7078fcd05ead003 100644 --- a/src/params/syntax/cls-decl-gen-meth.template +++ b/src/function-forms/syntax/cls-decl-gen-meth.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/statements/class/params-gen-meth- +path: language/statements/class/gen-meth- name: class expression method esid: sec-class-definitions-runtime-semantics-evaluation info: | diff --git a/src/params/syntax/cls-decl-meth-static.template b/src/function-forms/syntax/cls-decl-meth-static.template similarity index 97% rename from src/params/syntax/cls-decl-meth-static.template rename to src/function-forms/syntax/cls-decl-meth-static.template index b31325bc04aa9466cb9f809416bc2edbdf1db2dd..89273df18242ce1ac9f6cde1bba87cc87b7c55eb 100644 --- a/src/params/syntax/cls-decl-meth-static.template +++ b/src/function-forms/syntax/cls-decl-meth-static.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/statements/class/params-meth-static- +path: language/statements/class/meth-static- name: static class expression method esid: sec-runtime-semantics-bindingclassdeclarationevaluation info: | diff --git a/src/params/syntax/cls-decl-meth.template b/src/function-forms/syntax/cls-decl-meth.template similarity index 97% rename from src/params/syntax/cls-decl-meth.template rename to src/function-forms/syntax/cls-decl-meth.template index e33de83c6359db368f023ab882f6c72bf126e48d..21c6a9d29b75e4da99e216a99e23d86206456e7b 100644 --- a/src/params/syntax/cls-decl-meth.template +++ b/src/function-forms/syntax/cls-decl-meth.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/statements/class/params-meth- +path: language/statements/class/meth- name: class expression method esid: sec-runtime-semantics-bindingclassdeclarationevaluation info: | diff --git a/src/params/syntax/cls-expr-async-gen-meth-static.template b/src/function-forms/syntax/cls-expr-async-gen-meth-static.template similarity index 96% rename from src/params/syntax/cls-expr-async-gen-meth-static.template rename to src/function-forms/syntax/cls-expr-async-gen-meth-static.template index 25c81044a01823e6a3a1ba5ff6c8bcf095404124..040a3b47b76ec89ef2e57bf3f60802ce7abd997a 100644 --- a/src/params/syntax/cls-expr-async-gen-meth-static.template +++ b/src/function-forms/syntax/cls-expr-async-gen-meth-static.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/expressions/class/params-async-gen-meth-static- +path: language/expressions/class/async-gen-meth-static- name: static class expression async generator method esid: sec-class-definitions-runtime-semantics-evaluation info: | diff --git a/src/params/syntax/cls-expr-async-gen-meth.template b/src/function-forms/syntax/cls-expr-async-gen-meth.template similarity index 96% rename from src/params/syntax/cls-expr-async-gen-meth.template rename to src/function-forms/syntax/cls-expr-async-gen-meth.template index c3ca6b5131820bb675b4a96a3a0125ddacf9e9dc..c691525cf6debc27e2959a3151bd3e0e39a47898 100644 --- a/src/params/syntax/cls-expr-async-gen-meth.template +++ b/src/function-forms/syntax/cls-expr-async-gen-meth.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/expressions/class/params-async-gen-meth- +path: language/expressions/class/async-gen-meth- name: class expression async generator method esid: sec-class-definitions-runtime-semantics-evaluation info: | diff --git a/src/function-forms/syntax/cls-expr-async-meth-static.template b/src/function-forms/syntax/cls-expr-async-meth-static.template new file mode 100644 index 0000000000000000000000000000000000000000..9fb25c1729a5f3b45b87bb3437f706f3dea29272 --- /dev/null +++ b/src/function-forms/syntax/cls-expr-async-meth-static.template @@ -0,0 +1,44 @@ +// Copyright (C) 2017 Leo Balter. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +path: language/expressions/class/async-meth-static- +name: static class expression async method +esid: sec-class-definitions-runtime-semantics-evaluation +info: | + ClassExpression : class BindingIdentifieropt ClassTail + + 1. If BindingIdentifieropt is not present, let className be undefined. + 2. Else, let className be StringValue of BindingIdentifier. + 3. Let value be the result of ClassDefinitionEvaluation of ClassTail + with argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + b. Else, + Let status be the result of performing PropertyDefinitionEvaluation + for m with arguments F and false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] + +---*/ + +var C = class { + static async method(/*{ params }*/) { + /*{ body }*/ + } +}; diff --git a/src/function-forms/syntax/cls-expr-async-meth.template b/src/function-forms/syntax/cls-expr-async-meth.template new file mode 100644 index 0000000000000000000000000000000000000000..a7f86f364f350d6aa792cea607940ca881851399 --- /dev/null +++ b/src/function-forms/syntax/cls-expr-async-meth.template @@ -0,0 +1,44 @@ +// Copyright (C) 2017 Leo Balter. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +path: language/expressions/class/async-meth- +name: class expression async method +esid: sec-class-definitions-runtime-semantics-evaluation +info: | + ClassExpression : class BindingIdentifieropt ClassTail + + 1. If BindingIdentifieropt is not present, let className be undefined. + 2. Else, let className be StringValue of BindingIdentifier. + 3. Let value be the result of ClassDefinitionEvaluation of ClassTail + with argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + i. Let status be the result of performing + PropertyDefinitionEvaluation for m with arguments proto and + false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] + +---*/ + +var C = class { + static async method(/*{ params }*/) { + /*{ body }*/ + } +}; diff --git a/src/params/syntax/cls-expr-gen-meth-static.template b/src/function-forms/syntax/cls-expr-gen-meth-static.template similarity index 97% rename from src/params/syntax/cls-expr-gen-meth-static.template rename to src/function-forms/syntax/cls-expr-gen-meth-static.template index 3864b123bf51d80e6f214eb8d56986df6bf48fb8..7bf6f00e13d30205702c0280e533edd8ac7e13ac 100644 --- a/src/params/syntax/cls-expr-gen-meth-static.template +++ b/src/function-forms/syntax/cls-expr-gen-meth-static.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/expressions/class/params-gen-meth-static- +path: language/expressions/class/gen-meth-static- name: static class expression generator method esid: sec-class-definitions-runtime-semantics-evaluation info: | diff --git a/src/params/syntax/cls-expr-gen-meth.template b/src/function-forms/syntax/cls-expr-gen-meth.template similarity index 97% rename from src/params/syntax/cls-expr-gen-meth.template rename to src/function-forms/syntax/cls-expr-gen-meth.template index dfd8b3260ff75c90ce55993819f13685fa4dac91..33891b3a2282ea2727beaccccbe4cc37d84fd00f 100644 --- a/src/params/syntax/cls-expr-gen-meth.template +++ b/src/function-forms/syntax/cls-expr-gen-meth.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/expressions/class/params-gen-meth- +path: language/expressions/class/gen-meth- name: class expression method esid: sec-class-definitions-runtime-semantics-evaluation info: | diff --git a/src/params/syntax/cls-expr-meth-static.template b/src/function-forms/syntax/cls-expr-meth-static.template similarity index 97% rename from src/params/syntax/cls-expr-meth-static.template rename to src/function-forms/syntax/cls-expr-meth-static.template index b2f7156294cb4558623b2108f3bcf38c730ee807..3939fbae13603a65ebbb04b5875fd0a8e805ad0d 100644 --- a/src/params/syntax/cls-expr-meth-static.template +++ b/src/function-forms/syntax/cls-expr-meth-static.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/expressions/class/params-meth-static- +path: language/expressions/class/meth-static- name: static class expression method esid: sec-class-definitions-runtime-semantics-evaluation info: | diff --git a/src/params/syntax/cls-expr-meth.template b/src/function-forms/syntax/cls-expr-meth.template similarity index 97% rename from src/params/syntax/cls-expr-meth.template rename to src/function-forms/syntax/cls-expr-meth.template index d303acfbe13044f5341e98eea18d691bfc43a5ad..30d8e846032be4fed4e6a0063f0fce2e48b5b77f 100644 --- a/src/params/syntax/cls-expr-meth.template +++ b/src/function-forms/syntax/cls-expr-meth.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/expressions/class/params-meth- +path: language/expressions/class/meth- name: class expression method esid: sec-class-definitions-runtime-semantics-evaluation info: | diff --git a/src/params/syntax/func-decl.template b/src/function-forms/syntax/func-decl.template similarity index 96% rename from src/params/syntax/func-decl.template rename to src/function-forms/syntax/func-decl.template index a87474e5b9f848d77b0f5ba36357b2cf9fda26bb..b830048e98bb2f562f09261a8f11e9cda717c4d0 100644 --- a/src/params/syntax/func-decl.template +++ b/src/function-forms/syntax/func-decl.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/statements/function/params- +path: language/statements/function/ name: function declaration esid: sec-function-definitions-runtime-semantics-instantiatefunctionobject info: | diff --git a/src/params/syntax/func-expr.template b/src/function-forms/syntax/func-expr.template similarity index 96% rename from src/params/syntax/func-expr.template rename to src/function-forms/syntax/func-expr.template index 1c078c507a79e50b0e602d6bb66c1b45264a91e3..37894cc9fda1566d615d7f630260e984f33196ce 100644 --- a/src/params/syntax/func-expr.template +++ b/src/function-forms/syntax/func-expr.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/expressions/function/params- +path: language/expressions/function/ name: function expression esid: sec-function-definitions-runtime-semantics-evaluation info: | diff --git a/src/params/syntax/gen-func-decl.template b/src/function-forms/syntax/gen-func-decl.template similarity index 96% rename from src/params/syntax/gen-func-decl.template rename to src/function-forms/syntax/gen-func-decl.template index ce97faca8290e074ef3b4a611b4824d7798c3cbb..6dd1da6ec4fd9de3691812605320f7b333a660cd 100644 --- a/src/params/syntax/gen-func-decl.template +++ b/src/function-forms/syntax/gen-func-decl.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/statements/generators/params- +path: language/statements/generators/ name: generator function declaration esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject info: | diff --git a/src/params/syntax/gen-func-expr.template b/src/function-forms/syntax/gen-func-expr.template similarity index 96% rename from src/params/syntax/gen-func-expr.template rename to src/function-forms/syntax/gen-func-expr.template index 5a80646ec9831c6b19bdbc4a2327bab360236a56..141e88e98dd8d6a2d3e8f0f944fe5674989f6651 100644 --- a/src/params/syntax/gen-func-expr.template +++ b/src/function-forms/syntax/gen-func-expr.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/expressions/generators/params- +path: language/expressions/generators/ name: generator function expression esid: sec-generator-function-definitions-runtime-semantics-evaluation info: | diff --git a/src/params/syntax/gen-meth.template b/src/function-forms/syntax/gen-meth.template similarity index 95% rename from src/params/syntax/gen-meth.template rename to src/function-forms/syntax/gen-meth.template index c52cdb04a65537ee6ecad6b2d22b1472b1c13da9..c44507f91f2b4c6e295aad14695fd1c9091e3e8c 100644 --- a/src/params/syntax/gen-meth.template +++ b/src/function-forms/syntax/gen-meth.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/expressions/object/method-definition/params-gen-meth- +path: language/expressions/object/method-definition/gen-meth- name: generator method esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation info: | diff --git a/src/params/syntax/meth.template b/src/function-forms/syntax/meth.template similarity index 95% rename from src/params/syntax/meth.template rename to src/function-forms/syntax/meth.template index 02f4909cac3523d7a9dd381c9530ebd788840382..0e58d3d3257ec36f582e44cdc384c61096bc78bf 100644 --- a/src/params/syntax/meth.template +++ b/src/function-forms/syntax/meth.template @@ -1,7 +1,7 @@ // Copyright (C) 2016 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- -path: language/expressions/object/method-definition/params-meth- +path: language/expressions/object/method-definition/meth- name: method esid: sec-runtime-semantics-definemethod info: | diff --git a/test/language/arguments-object/cls-decl-gen-meth-trailing-comma-multiple-args.js b/test/language/arguments-object/cls-decl-gen-meth-args-trailing-comma-multiple.js similarity index 95% rename from test/language/arguments-object/cls-decl-gen-meth-trailing-comma-multiple-args.js rename to test/language/arguments-object/cls-decl-gen-meth-args-trailing-comma-multiple.js index 19404642d06bd4feed0038e435edbf7fc63e8696..edb29e6bbff81b155fe4f0516048a3a975c099e9 100644 --- a/test/language/arguments-object/cls-decl-gen-meth-trailing-comma-multiple-args.js +++ b/test/language/arguments-object/cls-decl-gen-meth-args-trailing-comma-multiple.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-multiple-args.case +// - src/arguments/args-trailing-comma-multiple.case // - src/arguments/default/cls-decl-gen-meth.template /*--- description: A trailing comma should not increase the arguments.length, using multiple args (class declaration generator method) diff --git a/test/language/arguments-object/cls-decl-gen-meth-trailing-comma-null.js b/test/language/arguments-object/cls-decl-gen-meth-args-trailing-comma-null.js similarity index 95% rename from test/language/arguments-object/cls-decl-gen-meth-trailing-comma-null.js rename to test/language/arguments-object/cls-decl-gen-meth-args-trailing-comma-null.js index 8a960cdcb0eddbc74fcc8f6ea01a822419dbed0b..59230245c6f17b2115faeff0140d50c5b735bbe0 100644 --- a/test/language/arguments-object/cls-decl-gen-meth-trailing-comma-null.js +++ b/test/language/arguments-object/cls-decl-gen-meth-args-trailing-comma-null.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-null.case +// - src/arguments/args-trailing-comma-null.case // - src/arguments/default/cls-decl-gen-meth.template /*--- description: A trailing comma after null should not increase the arguments.length (class declaration generator method) diff --git a/test/language/arguments-object/cls-decl-gen-meth-trailing-comma-single-args.js b/test/language/arguments-object/cls-decl-gen-meth-args-trailing-comma-single-args.js similarity index 95% rename from test/language/arguments-object/cls-decl-gen-meth-trailing-comma-single-args.js rename to test/language/arguments-object/cls-decl-gen-meth-args-trailing-comma-single-args.js index d507f4e5ec063105f1bfe070ffe66142ec3ece39..a2db1f0d3894df6399e5fd144b2c460a63a39264 100644 --- a/test/language/arguments-object/cls-decl-gen-meth-trailing-comma-single-args.js +++ b/test/language/arguments-object/cls-decl-gen-meth-args-trailing-comma-single-args.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-single-args.case +// - src/arguments/args-trailing-comma-single-args.case // - src/arguments/default/cls-decl-gen-meth.template /*--- description: A trailing comma should not increase the arguments.length, using a single arg (class declaration generator method) diff --git a/test/language/arguments-object/cls-decl-gen-meth-trailing-comma-undefined.js b/test/language/arguments-object/cls-decl-gen-meth-args-trailing-comma-undefined.js similarity index 95% rename from test/language/arguments-object/cls-decl-gen-meth-trailing-comma-undefined.js rename to test/language/arguments-object/cls-decl-gen-meth-args-trailing-comma-undefined.js index 453f515a4b7271a7a93e6f465a14ae52bc6d81d6..fa7da08f9c28b58ce560bbdeb97da786c985cfdd 100644 --- a/test/language/arguments-object/cls-decl-gen-meth-trailing-comma-undefined.js +++ b/test/language/arguments-object/cls-decl-gen-meth-args-trailing-comma-undefined.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-undefined.case +// - src/arguments/args-trailing-comma-undefined.case // - src/arguments/default/cls-decl-gen-meth.template /*--- description: A trailing comma after undefined should not increase the arguments.length (class declaration generator method) diff --git a/test/language/arguments-object/cls-decl-gen-meth-static-trailing-comma-multiple-args.js b/test/language/arguments-object/cls-decl-gen-meth-static-args-trailing-comma-multiple.js similarity index 95% rename from test/language/arguments-object/cls-decl-gen-meth-static-trailing-comma-multiple-args.js rename to test/language/arguments-object/cls-decl-gen-meth-static-args-trailing-comma-multiple.js index af22068be0d41fa9c54b351ab800f222706f46c9..f6d54e0356a4239950d7d895caee1389c33777dc 100644 --- a/test/language/arguments-object/cls-decl-gen-meth-static-trailing-comma-multiple-args.js +++ b/test/language/arguments-object/cls-decl-gen-meth-static-args-trailing-comma-multiple.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-multiple-args.case +// - src/arguments/args-trailing-comma-multiple.case // - src/arguments/default/cls-decl-gen-meth-static.template /*--- description: A trailing comma should not increase the arguments.length, using multiple args (class declaration generator method) diff --git a/test/language/arguments-object/cls-decl-gen-meth-static-trailing-comma-null.js b/test/language/arguments-object/cls-decl-gen-meth-static-args-trailing-comma-null.js similarity index 95% rename from test/language/arguments-object/cls-decl-gen-meth-static-trailing-comma-null.js rename to test/language/arguments-object/cls-decl-gen-meth-static-args-trailing-comma-null.js index 04b050d3fd1df02bc82709c158fa83e10ac1070c..6f5b19c4c4b4b1b74fee4c7b7bcbfb95fafedb3c 100644 --- a/test/language/arguments-object/cls-decl-gen-meth-static-trailing-comma-null.js +++ b/test/language/arguments-object/cls-decl-gen-meth-static-args-trailing-comma-null.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-null.case +// - src/arguments/args-trailing-comma-null.case // - src/arguments/default/cls-decl-gen-meth-static.template /*--- description: A trailing comma after null should not increase the arguments.length (class declaration generator method) diff --git a/test/language/arguments-object/cls-decl-gen-meth-static-trailing-comma-single-args.js b/test/language/arguments-object/cls-decl-gen-meth-static-args-trailing-comma-single-args.js similarity index 95% rename from test/language/arguments-object/cls-decl-gen-meth-static-trailing-comma-single-args.js rename to test/language/arguments-object/cls-decl-gen-meth-static-args-trailing-comma-single-args.js index f277d51337f678547c8ab509d5503a3d96de7701..c0cbc325118660cf4b762f240d14bf1d0cf229b4 100644 --- a/test/language/arguments-object/cls-decl-gen-meth-static-trailing-comma-single-args.js +++ b/test/language/arguments-object/cls-decl-gen-meth-static-args-trailing-comma-single-args.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-single-args.case +// - src/arguments/args-trailing-comma-single-args.case // - src/arguments/default/cls-decl-gen-meth-static.template /*--- description: A trailing comma should not increase the arguments.length, using a single arg (class declaration generator method) diff --git a/test/language/arguments-object/cls-decl-gen-meth-static-trailing-comma-undefined.js b/test/language/arguments-object/cls-decl-gen-meth-static-args-trailing-comma-undefined.js similarity index 95% rename from test/language/arguments-object/cls-decl-gen-meth-static-trailing-comma-undefined.js rename to test/language/arguments-object/cls-decl-gen-meth-static-args-trailing-comma-undefined.js index b2782f1cd66e67a335656111466905145efffa70..fcc01479a54d32004fc7ca1174214170748b90e0 100644 --- a/test/language/arguments-object/cls-decl-gen-meth-static-trailing-comma-undefined.js +++ b/test/language/arguments-object/cls-decl-gen-meth-static-args-trailing-comma-undefined.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-undefined.case +// - src/arguments/args-trailing-comma-undefined.case // - src/arguments/default/cls-decl-gen-meth-static.template /*--- description: A trailing comma after undefined should not increase the arguments.length (class declaration generator method) diff --git a/test/language/arguments-object/cls-decl-meth-trailing-comma-multiple-args.js b/test/language/arguments-object/cls-decl-meth-args-trailing-comma-multiple.js similarity index 95% rename from test/language/arguments-object/cls-decl-meth-trailing-comma-multiple-args.js rename to test/language/arguments-object/cls-decl-meth-args-trailing-comma-multiple.js index b5910ff5931af68f88136e4d5f1adeea7e1a9042..2fd2c18f5209cd6ed5e754430cbfb6b0d4b243a0 100644 --- a/test/language/arguments-object/cls-decl-meth-trailing-comma-multiple-args.js +++ b/test/language/arguments-object/cls-decl-meth-args-trailing-comma-multiple.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-multiple-args.case +// - src/arguments/args-trailing-comma-multiple.case // - src/arguments/default/cls-decl-meth.template /*--- description: A trailing comma should not increase the arguments.length, using multiple args (class declaration method) diff --git a/test/language/arguments-object/cls-decl-meth-trailing-comma-null.js b/test/language/arguments-object/cls-decl-meth-args-trailing-comma-null.js similarity index 95% rename from test/language/arguments-object/cls-decl-meth-trailing-comma-null.js rename to test/language/arguments-object/cls-decl-meth-args-trailing-comma-null.js index 32a9d3a7648d7a06cf4110b919f360e621f6e1c2..f8ad3d0387d810c731e5087450f323dc03c93c34 100644 --- a/test/language/arguments-object/cls-decl-meth-trailing-comma-null.js +++ b/test/language/arguments-object/cls-decl-meth-args-trailing-comma-null.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-null.case +// - src/arguments/args-trailing-comma-null.case // - src/arguments/default/cls-decl-meth.template /*--- description: A trailing comma after null should not increase the arguments.length (class declaration method) diff --git a/test/language/arguments-object/cls-decl-meth-trailing-comma-single-args.js b/test/language/arguments-object/cls-decl-meth-args-trailing-comma-single-args.js similarity index 94% rename from test/language/arguments-object/cls-decl-meth-trailing-comma-single-args.js rename to test/language/arguments-object/cls-decl-meth-args-trailing-comma-single-args.js index b3a6ba8a710047c764bd63542e63f55ad9a8dc06..8c5c84e307856f791f58f6ca9fa0cab8ac51e70f 100644 --- a/test/language/arguments-object/cls-decl-meth-trailing-comma-single-args.js +++ b/test/language/arguments-object/cls-decl-meth-args-trailing-comma-single-args.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-single-args.case +// - src/arguments/args-trailing-comma-single-args.case // - src/arguments/default/cls-decl-meth.template /*--- description: A trailing comma should not increase the arguments.length, using a single arg (class declaration method) diff --git a/test/language/arguments-object/cls-decl-meth-trailing-comma-undefined.js b/test/language/arguments-object/cls-decl-meth-args-trailing-comma-undefined.js similarity index 95% rename from test/language/arguments-object/cls-decl-meth-trailing-comma-undefined.js rename to test/language/arguments-object/cls-decl-meth-args-trailing-comma-undefined.js index ac3710a87074db75010048ffefacee69dd14b81b..2369485c9633a99bf7c4f0b4a8d6474084a942bf 100644 --- a/test/language/arguments-object/cls-decl-meth-trailing-comma-undefined.js +++ b/test/language/arguments-object/cls-decl-meth-args-trailing-comma-undefined.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-undefined.case +// - src/arguments/args-trailing-comma-undefined.case // - src/arguments/default/cls-decl-meth.template /*--- description: A trailing comma after undefined should not increase the arguments.length (class declaration method) diff --git a/test/language/arguments-object/cls-decl-meth-static-trailing-comma-multiple-args.js b/test/language/arguments-object/cls-decl-meth-static-args-trailing-comma-multiple.js similarity index 95% rename from test/language/arguments-object/cls-decl-meth-static-trailing-comma-multiple-args.js rename to test/language/arguments-object/cls-decl-meth-static-args-trailing-comma-multiple.js index 7d0c69d1545d7e6bd15da303b431ce8b18f0a18f..41eb07215d40f7d233c1aa59625886f3b396eeea 100644 --- a/test/language/arguments-object/cls-decl-meth-static-trailing-comma-multiple-args.js +++ b/test/language/arguments-object/cls-decl-meth-static-args-trailing-comma-multiple.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-multiple-args.case +// - src/arguments/args-trailing-comma-multiple.case // - src/arguments/default/cls-decl-meth-static.template /*--- description: A trailing comma should not increase the arguments.length, using multiple args (static class declaration method) diff --git a/test/language/arguments-object/cls-decl-meth-static-trailing-comma-null.js b/test/language/arguments-object/cls-decl-meth-static-args-trailing-comma-null.js similarity index 95% rename from test/language/arguments-object/cls-decl-meth-static-trailing-comma-null.js rename to test/language/arguments-object/cls-decl-meth-static-args-trailing-comma-null.js index 6ac2ace1c0c698ae461789c4239503ce47759120..d33ef1805f892f738a1bf2e0c5af92dd9dd255d5 100644 --- a/test/language/arguments-object/cls-decl-meth-static-trailing-comma-null.js +++ b/test/language/arguments-object/cls-decl-meth-static-args-trailing-comma-null.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-null.case +// - src/arguments/args-trailing-comma-null.case // - src/arguments/default/cls-decl-meth-static.template /*--- description: A trailing comma after null should not increase the arguments.length (static class declaration method) diff --git a/test/language/arguments-object/cls-decl-meth-static-trailing-comma-single-args.js b/test/language/arguments-object/cls-decl-meth-static-args-trailing-comma-single-args.js similarity index 94% rename from test/language/arguments-object/cls-decl-meth-static-trailing-comma-single-args.js rename to test/language/arguments-object/cls-decl-meth-static-args-trailing-comma-single-args.js index 7389cc51e9bab8260460eaada96f850af3b615ec..dca6c135ce4c4c2a47362f0c0604c58c8892fb40 100644 --- a/test/language/arguments-object/cls-decl-meth-static-trailing-comma-single-args.js +++ b/test/language/arguments-object/cls-decl-meth-static-args-trailing-comma-single-args.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-single-args.case +// - src/arguments/args-trailing-comma-single-args.case // - src/arguments/default/cls-decl-meth-static.template /*--- description: A trailing comma should not increase the arguments.length, using a single arg (static class declaration method) diff --git a/test/language/arguments-object/cls-decl-meth-static-trailing-comma-undefined.js b/test/language/arguments-object/cls-decl-meth-static-args-trailing-comma-undefined.js similarity index 95% rename from test/language/arguments-object/cls-decl-meth-static-trailing-comma-undefined.js rename to test/language/arguments-object/cls-decl-meth-static-args-trailing-comma-undefined.js index 3ee1f645ba3d344e466ecd74c2ef3c1f31824db2..dbdbfea745ccb641c06245765a36c95ab9256321 100644 --- a/test/language/arguments-object/cls-decl-meth-static-trailing-comma-undefined.js +++ b/test/language/arguments-object/cls-decl-meth-static-args-trailing-comma-undefined.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-undefined.case +// - src/arguments/args-trailing-comma-undefined.case // - src/arguments/default/cls-decl-meth-static.template /*--- description: A trailing comma after undefined should not increase the arguments.length (static class declaration method) diff --git a/test/language/arguments-object/cls-expr-gen-meth-trailing-comma-multiple-args.js b/test/language/arguments-object/cls-expr-gen-meth-args-trailing-comma-multiple.js similarity index 95% rename from test/language/arguments-object/cls-expr-gen-meth-trailing-comma-multiple-args.js rename to test/language/arguments-object/cls-expr-gen-meth-args-trailing-comma-multiple.js index 67ce4d54c59ea59bef629d93d85bc76ad932586a..ad9cd75f3a69586c719a7231a7a66eadd2b8c0c4 100644 --- a/test/language/arguments-object/cls-expr-gen-meth-trailing-comma-multiple-args.js +++ b/test/language/arguments-object/cls-expr-gen-meth-args-trailing-comma-multiple.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-multiple-args.case +// - src/arguments/args-trailing-comma-multiple.case // - src/arguments/default/cls-expr-gen-meth.template /*--- description: A trailing comma should not increase the arguments.length, using multiple args (class expression generator method) diff --git a/test/language/arguments-object/cls-expr-gen-meth-trailing-comma-null.js b/test/language/arguments-object/cls-expr-gen-meth-args-trailing-comma-null.js similarity index 95% rename from test/language/arguments-object/cls-expr-gen-meth-trailing-comma-null.js rename to test/language/arguments-object/cls-expr-gen-meth-args-trailing-comma-null.js index b3b8402818968bbb51ac5e2bfcbbead639ba8025..da9ef74e14d9aea8cfd100b2fb746c7499a419a2 100644 --- a/test/language/arguments-object/cls-expr-gen-meth-trailing-comma-null.js +++ b/test/language/arguments-object/cls-expr-gen-meth-args-trailing-comma-null.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-null.case +// - src/arguments/args-trailing-comma-null.case // - src/arguments/default/cls-expr-gen-meth.template /*--- description: A trailing comma after null should not increase the arguments.length (class expression generator method) diff --git a/test/language/arguments-object/cls-expr-gen-meth-trailing-comma-single-args.js b/test/language/arguments-object/cls-expr-gen-meth-args-trailing-comma-single-args.js similarity index 95% rename from test/language/arguments-object/cls-expr-gen-meth-trailing-comma-single-args.js rename to test/language/arguments-object/cls-expr-gen-meth-args-trailing-comma-single-args.js index 2b025b1f272071032df28fbb06be4d7cb87142c5..cb44370169d1f7ecdeae4995ef301c5fd17b87b6 100644 --- a/test/language/arguments-object/cls-expr-gen-meth-trailing-comma-single-args.js +++ b/test/language/arguments-object/cls-expr-gen-meth-args-trailing-comma-single-args.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-single-args.case +// - src/arguments/args-trailing-comma-single-args.case // - src/arguments/default/cls-expr-gen-meth.template /*--- description: A trailing comma should not increase the arguments.length, using a single arg (class expression generator method) diff --git a/test/language/arguments-object/cls-expr-gen-meth-trailing-comma-undefined.js b/test/language/arguments-object/cls-expr-gen-meth-args-trailing-comma-undefined.js similarity index 95% rename from test/language/arguments-object/cls-expr-gen-meth-trailing-comma-undefined.js rename to test/language/arguments-object/cls-expr-gen-meth-args-trailing-comma-undefined.js index 666723a9a1842a746ff869c80f7491b403dedb3c..c12734f96f1a7ac6944e99eaec9949ce14530bc5 100644 --- a/test/language/arguments-object/cls-expr-gen-meth-trailing-comma-undefined.js +++ b/test/language/arguments-object/cls-expr-gen-meth-args-trailing-comma-undefined.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-undefined.case +// - src/arguments/args-trailing-comma-undefined.case // - src/arguments/default/cls-expr-gen-meth.template /*--- description: A trailing comma after undefined should not increase the arguments.length (class expression generator method) diff --git a/test/language/arguments-object/cls-expr-gen-meth-static-trailing-comma-multiple-args.js b/test/language/arguments-object/cls-expr-gen-meth-static-args-trailing-comma-multiple.js similarity index 95% rename from test/language/arguments-object/cls-expr-gen-meth-static-trailing-comma-multiple-args.js rename to test/language/arguments-object/cls-expr-gen-meth-static-args-trailing-comma-multiple.js index 1a797aa980f59ce1cbf6291fdf881356ba501f5c..c93b91741e6dc0bf260954e4d08205af70794c78 100644 --- a/test/language/arguments-object/cls-expr-gen-meth-static-trailing-comma-multiple-args.js +++ b/test/language/arguments-object/cls-expr-gen-meth-static-args-trailing-comma-multiple.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-multiple-args.case +// - src/arguments/args-trailing-comma-multiple.case // - src/arguments/default/cls-expr-gen-meth-static.template /*--- description: A trailing comma should not increase the arguments.length, using multiple args (static class expression generator method) diff --git a/test/language/arguments-object/cls-expr-gen-meth-static-trailing-comma-null.js b/test/language/arguments-object/cls-expr-gen-meth-static-args-trailing-comma-null.js similarity index 95% rename from test/language/arguments-object/cls-expr-gen-meth-static-trailing-comma-null.js rename to test/language/arguments-object/cls-expr-gen-meth-static-args-trailing-comma-null.js index 770887168cd30cf5e075b4f44419b75050fea1f0..7358363b9ed57c472f3a4464959e572e6f09903f 100644 --- a/test/language/arguments-object/cls-expr-gen-meth-static-trailing-comma-null.js +++ b/test/language/arguments-object/cls-expr-gen-meth-static-args-trailing-comma-null.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-null.case +// - src/arguments/args-trailing-comma-null.case // - src/arguments/default/cls-expr-gen-meth-static.template /*--- description: A trailing comma after null should not increase the arguments.length (static class expression generator method) diff --git a/test/language/arguments-object/cls-expr-gen-meth-static-trailing-comma-single-args.js b/test/language/arguments-object/cls-expr-gen-meth-static-args-trailing-comma-single-args.js similarity index 95% rename from test/language/arguments-object/cls-expr-gen-meth-static-trailing-comma-single-args.js rename to test/language/arguments-object/cls-expr-gen-meth-static-args-trailing-comma-single-args.js index f729a442ca1a8828d54c6c9ad09cf4b8c3a50ed2..699ee48466d13507b4a5db3370a5293525eb7734 100644 --- a/test/language/arguments-object/cls-expr-gen-meth-static-trailing-comma-single-args.js +++ b/test/language/arguments-object/cls-expr-gen-meth-static-args-trailing-comma-single-args.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-single-args.case +// - src/arguments/args-trailing-comma-single-args.case // - src/arguments/default/cls-expr-gen-meth-static.template /*--- description: A trailing comma should not increase the arguments.length, using a single arg (static class expression generator method) diff --git a/test/language/arguments-object/cls-expr-gen-meth-static-trailing-comma-undefined.js b/test/language/arguments-object/cls-expr-gen-meth-static-args-trailing-comma-undefined.js similarity index 95% rename from test/language/arguments-object/cls-expr-gen-meth-static-trailing-comma-undefined.js rename to test/language/arguments-object/cls-expr-gen-meth-static-args-trailing-comma-undefined.js index 5a36a31ab2dc4eecf7a762c6da0563f525cfd2a9..798bc691790878143f90f60089851019f8ff9b46 100644 --- a/test/language/arguments-object/cls-expr-gen-meth-static-trailing-comma-undefined.js +++ b/test/language/arguments-object/cls-expr-gen-meth-static-args-trailing-comma-undefined.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-undefined.case +// - src/arguments/args-trailing-comma-undefined.case // - src/arguments/default/cls-expr-gen-meth-static.template /*--- description: A trailing comma after undefined should not increase the arguments.length (static class expression generator method) diff --git a/test/language/arguments-object/cls-expr-meth-trailing-comma-multiple-args.js b/test/language/arguments-object/cls-expr-meth-args-trailing-comma-multiple.js similarity index 95% rename from test/language/arguments-object/cls-expr-meth-trailing-comma-multiple-args.js rename to test/language/arguments-object/cls-expr-meth-args-trailing-comma-multiple.js index cf08d53d0bfb2d89954c9d4c5d071608b9e87562..1a0fcf7785a055fe2237e5e1557d7f98fb2cc4bd 100644 --- a/test/language/arguments-object/cls-expr-meth-trailing-comma-multiple-args.js +++ b/test/language/arguments-object/cls-expr-meth-args-trailing-comma-multiple.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-multiple-args.case +// - src/arguments/args-trailing-comma-multiple.case // - src/arguments/default/cls-expr-meth.template /*--- description: A trailing comma should not increase the arguments.length, using multiple args (class expression method) diff --git a/test/language/arguments-object/cls-expr-meth-trailing-comma-null.js b/test/language/arguments-object/cls-expr-meth-args-trailing-comma-null.js similarity index 95% rename from test/language/arguments-object/cls-expr-meth-trailing-comma-null.js rename to test/language/arguments-object/cls-expr-meth-args-trailing-comma-null.js index b1460168d41db4b70c871b1ca9e88a1aa5ef6780..04d0bf5e839c7ec206a76e0d9070e4a8cde16069 100644 --- a/test/language/arguments-object/cls-expr-meth-trailing-comma-null.js +++ b/test/language/arguments-object/cls-expr-meth-args-trailing-comma-null.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-null.case +// - src/arguments/args-trailing-comma-null.case // - src/arguments/default/cls-expr-meth.template /*--- description: A trailing comma after null should not increase the arguments.length (class expression method) diff --git a/test/language/arguments-object/cls-expr-meth-trailing-comma-single-args.js b/test/language/arguments-object/cls-expr-meth-args-trailing-comma-single-args.js similarity index 94% rename from test/language/arguments-object/cls-expr-meth-trailing-comma-single-args.js rename to test/language/arguments-object/cls-expr-meth-args-trailing-comma-single-args.js index 4b68d6fd37c2a7ff6b495d3ab117a6d7cec0103b..841ed2e637970964b9d7ff79fb0e841f2c71e420 100644 --- a/test/language/arguments-object/cls-expr-meth-trailing-comma-single-args.js +++ b/test/language/arguments-object/cls-expr-meth-args-trailing-comma-single-args.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-single-args.case +// - src/arguments/args-trailing-comma-single-args.case // - src/arguments/default/cls-expr-meth.template /*--- description: A trailing comma should not increase the arguments.length, using a single arg (class expression method) diff --git a/test/language/arguments-object/cls-expr-meth-trailing-comma-undefined.js b/test/language/arguments-object/cls-expr-meth-args-trailing-comma-undefined.js similarity index 95% rename from test/language/arguments-object/cls-expr-meth-trailing-comma-undefined.js rename to test/language/arguments-object/cls-expr-meth-args-trailing-comma-undefined.js index ffd2447438764f618c7d4a3d66ffa532261f360a..f96b4815110a981587e49e360d509259b80e98a9 100644 --- a/test/language/arguments-object/cls-expr-meth-trailing-comma-undefined.js +++ b/test/language/arguments-object/cls-expr-meth-args-trailing-comma-undefined.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-undefined.case +// - src/arguments/args-trailing-comma-undefined.case // - src/arguments/default/cls-expr-meth.template /*--- description: A trailing comma after undefined should not increase the arguments.length (class expression method) diff --git a/test/language/arguments-object/cls-expr-meth-static-trailing-comma-multiple-args.js b/test/language/arguments-object/cls-expr-meth-static-args-trailing-comma-multiple.js similarity index 95% rename from test/language/arguments-object/cls-expr-meth-static-trailing-comma-multiple-args.js rename to test/language/arguments-object/cls-expr-meth-static-args-trailing-comma-multiple.js index 9720302d40f8d03168aa57176a8c8fa85f07c6ad..6b92f2abfa7828ae634aa85f2856eade9e34a995 100644 --- a/test/language/arguments-object/cls-expr-meth-static-trailing-comma-multiple-args.js +++ b/test/language/arguments-object/cls-expr-meth-static-args-trailing-comma-multiple.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-multiple-args.case +// - src/arguments/args-trailing-comma-multiple.case // - src/arguments/default/cls-expr-meth-static.template /*--- description: A trailing comma should not increase the arguments.length, using multiple args (static class expression method) diff --git a/test/language/arguments-object/cls-expr-meth-static-trailing-comma-null.js b/test/language/arguments-object/cls-expr-meth-static-args-trailing-comma-null.js similarity index 95% rename from test/language/arguments-object/cls-expr-meth-static-trailing-comma-null.js rename to test/language/arguments-object/cls-expr-meth-static-args-trailing-comma-null.js index 02ebc63c388f83d7bc8c874fe1261622e688dad3..6dc103bcc1f3bc0ca5e3998f19500c25d16d54b7 100644 --- a/test/language/arguments-object/cls-expr-meth-static-trailing-comma-null.js +++ b/test/language/arguments-object/cls-expr-meth-static-args-trailing-comma-null.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-null.case +// - src/arguments/args-trailing-comma-null.case // - src/arguments/default/cls-expr-meth-static.template /*--- description: A trailing comma after null should not increase the arguments.length (static class expression method) diff --git a/test/language/arguments-object/cls-expr-meth-static-trailing-comma-single-args.js b/test/language/arguments-object/cls-expr-meth-static-args-trailing-comma-single-args.js similarity index 94% rename from test/language/arguments-object/cls-expr-meth-static-trailing-comma-single-args.js rename to test/language/arguments-object/cls-expr-meth-static-args-trailing-comma-single-args.js index 81cb12a473907703270c3a5f5acc27c1fa4c1bb6..02910ed585649be5248c64b60a79821f8089da5f 100644 --- a/test/language/arguments-object/cls-expr-meth-static-trailing-comma-single-args.js +++ b/test/language/arguments-object/cls-expr-meth-static-args-trailing-comma-single-args.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-single-args.case +// - src/arguments/args-trailing-comma-single-args.case // - src/arguments/default/cls-expr-meth-static.template /*--- description: A trailing comma should not increase the arguments.length, using a single arg (static class expression method) diff --git a/test/language/arguments-object/cls-expr-meth-static-trailing-comma-undefined.js b/test/language/arguments-object/cls-expr-meth-static-args-trailing-comma-undefined.js similarity index 95% rename from test/language/arguments-object/cls-expr-meth-static-trailing-comma-undefined.js rename to test/language/arguments-object/cls-expr-meth-static-args-trailing-comma-undefined.js index 1c4d2553176d376a86e9676686efb92fa6133464..8aa68aa06b3f58447bb216b85468b8ef5aff23d4 100644 --- a/test/language/arguments-object/cls-expr-meth-static-trailing-comma-undefined.js +++ b/test/language/arguments-object/cls-expr-meth-static-args-trailing-comma-undefined.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-undefined.case +// - src/arguments/args-trailing-comma-undefined.case // - src/arguments/default/cls-expr-meth-static.template /*--- description: A trailing comma after undefined should not increase the arguments.length (static class expression method) diff --git a/test/language/arguments-object/func-decl-trailing-comma-multiple-args.js b/test/language/arguments-object/func-decl-args-trailing-comma-multiple.js similarity index 95% rename from test/language/arguments-object/func-decl-trailing-comma-multiple-args.js rename to test/language/arguments-object/func-decl-args-trailing-comma-multiple.js index a431a3a944f519f9190decd7fb142692ee8d960d..5914d38a2f0da953eb5904ecbcb1859eed50c92e 100644 --- a/test/language/arguments-object/func-decl-trailing-comma-multiple-args.js +++ b/test/language/arguments-object/func-decl-args-trailing-comma-multiple.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-multiple-args.case +// - src/arguments/args-trailing-comma-multiple.case // - src/arguments/default/func-decl.template /*--- description: A trailing comma should not increase the arguments.length, using multiple args (function declaration) diff --git a/test/language/arguments-object/func-decl-trailing-comma-null.js b/test/language/arguments-object/func-decl-args-trailing-comma-null.js similarity index 95% rename from test/language/arguments-object/func-decl-trailing-comma-null.js rename to test/language/arguments-object/func-decl-args-trailing-comma-null.js index 2aa8c8284e6a12de97060e0c40f74be98d2387df..5eccfc29de2139fc1cef95041776050516bc2096 100644 --- a/test/language/arguments-object/func-decl-trailing-comma-null.js +++ b/test/language/arguments-object/func-decl-args-trailing-comma-null.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-null.case +// - src/arguments/args-trailing-comma-null.case // - src/arguments/default/func-decl.template /*--- description: A trailing comma after null should not increase the arguments.length (function declaration) diff --git a/test/language/arguments-object/func-decl-trailing-comma-single-args.js b/test/language/arguments-object/func-decl-args-trailing-comma-single-args.js similarity index 94% rename from test/language/arguments-object/func-decl-trailing-comma-single-args.js rename to test/language/arguments-object/func-decl-args-trailing-comma-single-args.js index 19f4eab18c450e154e76e6d93aecb036d4d84d2e..fd0d787d3cecb313a5af4720a48ffac58ce64550 100644 --- a/test/language/arguments-object/func-decl-trailing-comma-single-args.js +++ b/test/language/arguments-object/func-decl-args-trailing-comma-single-args.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-single-args.case +// - src/arguments/args-trailing-comma-single-args.case // - src/arguments/default/func-decl.template /*--- description: A trailing comma should not increase the arguments.length, using a single arg (function declaration) diff --git a/test/language/arguments-object/func-decl-trailing-comma-undefined.js b/test/language/arguments-object/func-decl-args-trailing-comma-undefined.js similarity index 95% rename from test/language/arguments-object/func-decl-trailing-comma-undefined.js rename to test/language/arguments-object/func-decl-args-trailing-comma-undefined.js index cb4bb55ca02113316140f68aaea2378d3f2f9ec2..a4158e2241531074df3e9a5ad049a6b5a6b2efa7 100644 --- a/test/language/arguments-object/func-decl-trailing-comma-undefined.js +++ b/test/language/arguments-object/func-decl-args-trailing-comma-undefined.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-undefined.case +// - src/arguments/args-trailing-comma-undefined.case // - src/arguments/default/func-decl.template /*--- description: A trailing comma after undefined should not increase the arguments.length (function declaration) diff --git a/test/language/arguments-object/func-expr-trailing-comma-multiple-args.js b/test/language/arguments-object/func-expr-args-trailing-comma-multiple.js similarity index 95% rename from test/language/arguments-object/func-expr-trailing-comma-multiple-args.js rename to test/language/arguments-object/func-expr-args-trailing-comma-multiple.js index 07a9ca9fd94e2535d8bda302487c8f94f1adb659..a40af7de8ca4e8c3c667504f2fed26866366f0d7 100644 --- a/test/language/arguments-object/func-expr-trailing-comma-multiple-args.js +++ b/test/language/arguments-object/func-expr-args-trailing-comma-multiple.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-multiple-args.case +// - src/arguments/args-trailing-comma-multiple.case // - src/arguments/default/func-expr.template /*--- description: A trailing comma should not increase the arguments.length, using multiple args (function expression) diff --git a/test/language/arguments-object/func-expr-trailing-comma-null.js b/test/language/arguments-object/func-expr-args-trailing-comma-null.js similarity index 95% rename from test/language/arguments-object/func-expr-trailing-comma-null.js rename to test/language/arguments-object/func-expr-args-trailing-comma-null.js index 242d0dd28b5c4b3ed74af372aa3f1ed74dcf7897..d6b035aaf1a8264573a61d0c2815e486cf06bbd4 100644 --- a/test/language/arguments-object/func-expr-trailing-comma-null.js +++ b/test/language/arguments-object/func-expr-args-trailing-comma-null.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-null.case +// - src/arguments/args-trailing-comma-null.case // - src/arguments/default/func-expr.template /*--- description: A trailing comma after null should not increase the arguments.length (function expression) diff --git a/test/language/arguments-object/func-expr-trailing-comma-single-args.js b/test/language/arguments-object/func-expr-args-trailing-comma-single-args.js similarity index 94% rename from test/language/arguments-object/func-expr-trailing-comma-single-args.js rename to test/language/arguments-object/func-expr-args-trailing-comma-single-args.js index 3fc9a95c3519528dc0051471157a7fd18924aa85..21aa7b209fb7e258bfa8e1ca5657ba2dc110a54f 100644 --- a/test/language/arguments-object/func-expr-trailing-comma-single-args.js +++ b/test/language/arguments-object/func-expr-args-trailing-comma-single-args.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-single-args.case +// - src/arguments/args-trailing-comma-single-args.case // - src/arguments/default/func-expr.template /*--- description: A trailing comma should not increase the arguments.length, using a single arg (function expression) diff --git a/test/language/arguments-object/func-expr-trailing-comma-undefined.js b/test/language/arguments-object/func-expr-args-trailing-comma-undefined.js similarity index 95% rename from test/language/arguments-object/func-expr-trailing-comma-undefined.js rename to test/language/arguments-object/func-expr-args-trailing-comma-undefined.js index 1516acf3de5bed79acb0cf7261aa260ce40997b3..66e01cc6c1a607cf1f81a2f81c54baa5447f781f 100644 --- a/test/language/arguments-object/func-expr-trailing-comma-undefined.js +++ b/test/language/arguments-object/func-expr-args-trailing-comma-undefined.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-undefined.case +// - src/arguments/args-trailing-comma-undefined.case // - src/arguments/default/func-expr.template /*--- description: A trailing comma after undefined should not increase the arguments.length (function expression) diff --git a/test/language/arguments-object/gen-func-decl-trailing-comma-multiple-args.js b/test/language/arguments-object/gen-func-decl-args-trailing-comma-multiple.js similarity index 95% rename from test/language/arguments-object/gen-func-decl-trailing-comma-multiple-args.js rename to test/language/arguments-object/gen-func-decl-args-trailing-comma-multiple.js index ff1ac6f609a975a88b292e9b90541c1daf5b558a..f3179cd0ecd51b288326fb759aff732b42500926 100644 --- a/test/language/arguments-object/gen-func-decl-trailing-comma-multiple-args.js +++ b/test/language/arguments-object/gen-func-decl-args-trailing-comma-multiple.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-multiple-args.case +// - src/arguments/args-trailing-comma-multiple.case // - src/arguments/default/gen-func-decl.template /*--- description: A trailing comma should not increase the arguments.length, using multiple args (generator function declaration) diff --git a/test/language/arguments-object/gen-func-decl-trailing-comma-null.js b/test/language/arguments-object/gen-func-decl-args-trailing-comma-null.js similarity index 95% rename from test/language/arguments-object/gen-func-decl-trailing-comma-null.js rename to test/language/arguments-object/gen-func-decl-args-trailing-comma-null.js index 7d3a1ecf3ff97b009ed19b8071e570cbee611d81..443700eaeec7c1882efcb52705fbc11c15393ecb 100644 --- a/test/language/arguments-object/gen-func-decl-trailing-comma-null.js +++ b/test/language/arguments-object/gen-func-decl-args-trailing-comma-null.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-null.case +// - src/arguments/args-trailing-comma-null.case // - src/arguments/default/gen-func-decl.template /*--- description: A trailing comma after null should not increase the arguments.length (generator function declaration) diff --git a/test/language/arguments-object/gen-func-decl-trailing-comma-single-args.js b/test/language/arguments-object/gen-func-decl-args-trailing-comma-single-args.js similarity index 94% rename from test/language/arguments-object/gen-func-decl-trailing-comma-single-args.js rename to test/language/arguments-object/gen-func-decl-args-trailing-comma-single-args.js index 000a932a56b01e54e848fcf7f6f47c18643e1938..d7c24468168001ee3f20edc5fc3e276f5da76bb9 100644 --- a/test/language/arguments-object/gen-func-decl-trailing-comma-single-args.js +++ b/test/language/arguments-object/gen-func-decl-args-trailing-comma-single-args.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-single-args.case +// - src/arguments/args-trailing-comma-single-args.case // - src/arguments/default/gen-func-decl.template /*--- description: A trailing comma should not increase the arguments.length, using a single arg (generator function declaration) diff --git a/test/language/arguments-object/gen-func-decl-trailing-comma-undefined.js b/test/language/arguments-object/gen-func-decl-args-trailing-comma-undefined.js similarity index 95% rename from test/language/arguments-object/gen-func-decl-trailing-comma-undefined.js rename to test/language/arguments-object/gen-func-decl-args-trailing-comma-undefined.js index e1d772bc3925456696b24f22319f8ff4e1e6c891..56f4d99359f77fbf5e0aa73eba206c10bf639e6c 100644 --- a/test/language/arguments-object/gen-func-decl-trailing-comma-undefined.js +++ b/test/language/arguments-object/gen-func-decl-args-trailing-comma-undefined.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-undefined.case +// - src/arguments/args-trailing-comma-undefined.case // - src/arguments/default/gen-func-decl.template /*--- description: A trailing comma after undefined should not increase the arguments.length (generator function declaration) diff --git a/test/language/arguments-object/gen-func-expr-trailing-comma-multiple-args.js b/test/language/arguments-object/gen-func-expr-args-trailing-comma-multiple.js similarity index 95% rename from test/language/arguments-object/gen-func-expr-trailing-comma-multiple-args.js rename to test/language/arguments-object/gen-func-expr-args-trailing-comma-multiple.js index 63f091146185df95d6ca03d14f0e7f0bf6b6f254..18fd3e114e0532e653cf7cf706459bee1126e310 100644 --- a/test/language/arguments-object/gen-func-expr-trailing-comma-multiple-args.js +++ b/test/language/arguments-object/gen-func-expr-args-trailing-comma-multiple.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-multiple-args.case +// - src/arguments/args-trailing-comma-multiple.case // - src/arguments/default/gen-func-expr.template /*--- description: A trailing comma should not increase the arguments.length, using multiple args (generator function expression) diff --git a/test/language/arguments-object/gen-func-expr-trailing-comma-null.js b/test/language/arguments-object/gen-func-expr-args-trailing-comma-null.js similarity index 95% rename from test/language/arguments-object/gen-func-expr-trailing-comma-null.js rename to test/language/arguments-object/gen-func-expr-args-trailing-comma-null.js index cac540994a5267f0f46bd3aa4040668c9cf4be65..ff31fd5455886d3504c430881b17a8b53321f3db 100644 --- a/test/language/arguments-object/gen-func-expr-trailing-comma-null.js +++ b/test/language/arguments-object/gen-func-expr-args-trailing-comma-null.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-null.case +// - src/arguments/args-trailing-comma-null.case // - src/arguments/default/gen-func-expr.template /*--- description: A trailing comma after null should not increase the arguments.length (generator function expression) diff --git a/test/language/arguments-object/gen-func-expr-trailing-comma-single-args.js b/test/language/arguments-object/gen-func-expr-args-trailing-comma-single-args.js similarity index 94% rename from test/language/arguments-object/gen-func-expr-trailing-comma-single-args.js rename to test/language/arguments-object/gen-func-expr-args-trailing-comma-single-args.js index a8a977ec153d82f0e22a0f121ddbdd666b6e820c..0056f61443ca4a03afaa2a356b21248a9ddf81db 100644 --- a/test/language/arguments-object/gen-func-expr-trailing-comma-single-args.js +++ b/test/language/arguments-object/gen-func-expr-args-trailing-comma-single-args.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-single-args.case +// - src/arguments/args-trailing-comma-single-args.case // - src/arguments/default/gen-func-expr.template /*--- description: A trailing comma should not increase the arguments.length, using a single arg (generator function expression) diff --git a/test/language/arguments-object/gen-func-expr-trailing-comma-undefined.js b/test/language/arguments-object/gen-func-expr-args-trailing-comma-undefined.js similarity index 95% rename from test/language/arguments-object/gen-func-expr-trailing-comma-undefined.js rename to test/language/arguments-object/gen-func-expr-args-trailing-comma-undefined.js index 8c9f829e65d40fd601f8d7979a0d526483183741..acbcdab2df2245b670a8190db40b044528fef37e 100644 --- a/test/language/arguments-object/gen-func-expr-trailing-comma-undefined.js +++ b/test/language/arguments-object/gen-func-expr-args-trailing-comma-undefined.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-undefined.case +// - src/arguments/args-trailing-comma-undefined.case // - src/arguments/default/gen-func-expr.template /*--- description: A trailing comma after undefined should not increase the arguments.length (generator function expression) diff --git a/test/language/arguments-object/gen-meth-trailing-comma-multiple-args.js b/test/language/arguments-object/gen-meth-args-trailing-comma-multiple.js similarity index 95% rename from test/language/arguments-object/gen-meth-trailing-comma-multiple-args.js rename to test/language/arguments-object/gen-meth-args-trailing-comma-multiple.js index 633968c46b8b5585ebbe9932445b6ed88b052226..2dfd4ac88a65d22ac0959de82cfd8b59e2ccf8bc 100644 --- a/test/language/arguments-object/gen-meth-trailing-comma-multiple-args.js +++ b/test/language/arguments-object/gen-meth-args-trailing-comma-multiple.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-multiple-args.case +// - src/arguments/args-trailing-comma-multiple.case // - src/arguments/default/gen-meth.template /*--- description: A trailing comma should not increase the arguments.length, using multiple args (generator method) diff --git a/test/language/arguments-object/gen-meth-trailing-comma-null.js b/test/language/arguments-object/gen-meth-args-trailing-comma-null.js similarity index 95% rename from test/language/arguments-object/gen-meth-trailing-comma-null.js rename to test/language/arguments-object/gen-meth-args-trailing-comma-null.js index f39d4abf8e15912a031ba9f35b6a1d1f8ccb3e67..5744ae085896ea477c5f634514529a90ba89892f 100644 --- a/test/language/arguments-object/gen-meth-trailing-comma-null.js +++ b/test/language/arguments-object/gen-meth-args-trailing-comma-null.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-null.case +// - src/arguments/args-trailing-comma-null.case // - src/arguments/default/gen-meth.template /*--- description: A trailing comma after null should not increase the arguments.length (generator method) diff --git a/test/language/arguments-object/gen-meth-trailing-comma-single-args.js b/test/language/arguments-object/gen-meth-args-trailing-comma-single-args.js similarity index 94% rename from test/language/arguments-object/gen-meth-trailing-comma-single-args.js rename to test/language/arguments-object/gen-meth-args-trailing-comma-single-args.js index b162f30b3e283b75ece5329f74d7bc69c2b25969..0d3586bbdde2aba914271004c69a4588e76bcb2a 100644 --- a/test/language/arguments-object/gen-meth-trailing-comma-single-args.js +++ b/test/language/arguments-object/gen-meth-args-trailing-comma-single-args.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-single-args.case +// - src/arguments/args-trailing-comma-single-args.case // - src/arguments/default/gen-meth.template /*--- description: A trailing comma should not increase the arguments.length, using a single arg (generator method) diff --git a/test/language/arguments-object/gen-meth-trailing-comma-undefined.js b/test/language/arguments-object/gen-meth-args-trailing-comma-undefined.js similarity index 95% rename from test/language/arguments-object/gen-meth-trailing-comma-undefined.js rename to test/language/arguments-object/gen-meth-args-trailing-comma-undefined.js index 438aeae9eaa0e446e38172e8e73e6c4c781feadb..0a4c5cd131d9d834add814cf10502f01ce200bb5 100644 --- a/test/language/arguments-object/gen-meth-trailing-comma-undefined.js +++ b/test/language/arguments-object/gen-meth-args-trailing-comma-undefined.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-undefined.case +// - src/arguments/args-trailing-comma-undefined.case // - src/arguments/default/gen-meth.template /*--- description: A trailing comma after undefined should not increase the arguments.length (generator method) diff --git a/test/language/arguments-object/meth-trailing-comma-multiple-args.js b/test/language/arguments-object/meth-args-trailing-comma-multiple.js similarity index 95% rename from test/language/arguments-object/meth-trailing-comma-multiple-args.js rename to test/language/arguments-object/meth-args-trailing-comma-multiple.js index 6bd15dcc0890f60b501b8532e83b9a7a874056dd..61870a87e9d23eb4ca2ecf77eb89a209e915c48b 100644 --- a/test/language/arguments-object/meth-trailing-comma-multiple-args.js +++ b/test/language/arguments-object/meth-args-trailing-comma-multiple.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-multiple-args.case +// - src/arguments/args-trailing-comma-multiple.case // - src/arguments/default/meth.template /*--- description: A trailing comma should not increase the arguments.length, using multiple args (method) diff --git a/test/language/arguments-object/meth-trailing-comma-null.js b/test/language/arguments-object/meth-args-trailing-comma-null.js similarity index 95% rename from test/language/arguments-object/meth-trailing-comma-null.js rename to test/language/arguments-object/meth-args-trailing-comma-null.js index 9645f4739cf304390e4e2f0a47ec1ecb19ecf576..27c6ca0ff4b24c2962a7349d5551ceae741de83e 100644 --- a/test/language/arguments-object/meth-trailing-comma-null.js +++ b/test/language/arguments-object/meth-args-trailing-comma-null.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-null.case +// - src/arguments/args-trailing-comma-null.case // - src/arguments/default/meth.template /*--- description: A trailing comma after null should not increase the arguments.length (method) diff --git a/test/language/arguments-object/meth-trailing-comma-single-args.js b/test/language/arguments-object/meth-args-trailing-comma-single-args.js similarity index 94% rename from test/language/arguments-object/meth-trailing-comma-single-args.js rename to test/language/arguments-object/meth-args-trailing-comma-single-args.js index 571fe47a8ff28e6599ae4b59172d8c1445bf12e8..039e1e19f915a4e8e690b9878c07aa056fdb8a88 100644 --- a/test/language/arguments-object/meth-trailing-comma-single-args.js +++ b/test/language/arguments-object/meth-args-trailing-comma-single-args.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-single-args.case +// - src/arguments/args-trailing-comma-single-args.case // - src/arguments/default/meth.template /*--- description: A trailing comma should not increase the arguments.length, using a single arg (method) diff --git a/test/language/arguments-object/meth-trailing-comma-undefined.js b/test/language/arguments-object/meth-args-trailing-comma-undefined.js similarity index 95% rename from test/language/arguments-object/meth-trailing-comma-undefined.js rename to test/language/arguments-object/meth-args-trailing-comma-undefined.js index aee2de278d609951dd13fbe2de1cafe6d7a93e3b..6b9bf88ea4bad824bc4f6df3456c1cf28c9ea0f2 100644 --- a/test/language/arguments-object/meth-trailing-comma-undefined.js +++ b/test/language/arguments-object/meth-args-trailing-comma-undefined.js @@ -1,5 +1,5 @@ // This file was procedurally generated from the following sources: -// - src/arguments/trailing-comma-undefined.case +// - src/arguments/args-trailing-comma-undefined.case // - src/arguments/default/meth.template /*--- description: A trailing comma after undefined should not increase the arguments.length (method) diff --git a/test/language/expressions/arrow-function/params-dflt-abrupt.js b/test/language/expressions/arrow-function/dflt-params-abrupt.js similarity index 94% rename from test/language/expressions/arrow-function/params-dflt-abrupt.js rename to test/language/expressions/arrow-function/dflt-params-abrupt.js index c8effea8064e199622d7726c417cef565cce4a88..92ef0c97d3b76193ea15b513f636dfb722d66140 100644 --- a/test/language/expressions/arrow-function/params-dflt-abrupt.js +++ b/test/language/expressions/arrow-function/dflt-params-abrupt.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-abrupt.case -// - src/params/error/arrow-function.template +// - src/function-forms/dflt-params-abrupt.case +// - src/function-forms/error/arrow-function.template /*--- description: Abrupt completion returned by evaluation of initializer (arrow function expression) esid: sec-arrow-function-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/arrow-function/params-dflt-arg-val-not-undefined.js b/test/language/expressions/arrow-function/dflt-params-arg-val-not-undefined.js similarity index 95% rename from test/language/expressions/arrow-function/params-dflt-arg-val-not-undefined.js rename to test/language/expressions/arrow-function/dflt-params-arg-val-not-undefined.js index d5e77a38a37060cc0848505833fb334465388d59..0559222be55e09addbb5b3611876145ac6924b96 100644 --- a/test/language/expressions/arrow-function/params-dflt-arg-val-not-undefined.js +++ b/test/language/expressions/arrow-function/dflt-params-arg-val-not-undefined.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-arg-val-not-undefined.case -// - src/params/default/arrow-function.template +// - src/function-forms/dflt-params-arg-val-not-undefined.case +// - src/function-forms/default/arrow-function.template /*--- description: Use of intializer when argument value is not `undefined` (arrow function expression) esid: sec-arrow-function-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/arrow-function/params-dflt-arg-val-undefined.js b/test/language/expressions/arrow-function/dflt-params-arg-val-undefined.js similarity index 94% rename from test/language/expressions/arrow-function/params-dflt-arg-val-undefined.js rename to test/language/expressions/arrow-function/dflt-params-arg-val-undefined.js index 510dceba64d22f4323b2eb55b7604a136b2b81c0..5c7f48400b006997d1a3a65b1d4d1f3ad40713db 100644 --- a/test/language/expressions/arrow-function/params-dflt-arg-val-undefined.js +++ b/test/language/expressions/arrow-function/dflt-params-arg-val-undefined.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-arg-val-undefined.case -// - src/params/default/arrow-function.template +// - src/function-forms/dflt-params-arg-val-undefined.case +// - src/function-forms/default/arrow-function.template /*--- description: Use of intializer when argument value is `undefined` (arrow function expression) esid: sec-arrow-function-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/arrow-function/params-dflt-duplicates.js b/test/language/expressions/arrow-function/dflt-params-duplicates.js similarity index 93% rename from test/language/expressions/arrow-function/params-dflt-duplicates.js rename to test/language/expressions/arrow-function/dflt-params-duplicates.js index f4e2701ce4b5c9054b4ee8566fbad79850e12f88..a737290183dbb2052213b42bbac0d076942e2e47 100644 --- a/test/language/expressions/arrow-function/params-dflt-duplicates.js +++ b/test/language/expressions/arrow-function/dflt-params-duplicates.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-duplicates.case -// - src/params/syntax/arrow-function.template +// - src/function-forms/dflt-params-duplicates.case +// - src/function-forms/syntax/arrow-function.template /*--- description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (arrow function expression) esid: sec-arrow-function-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/arrow-function/params-dflt-ref-later.js b/test/language/expressions/arrow-function/dflt-params-ref-later.js similarity index 94% rename from test/language/expressions/arrow-function/params-dflt-ref-later.js rename to test/language/expressions/arrow-function/dflt-params-ref-later.js index 1fc0cc5f2c845c28ac6d1e809b8c4ce3731ddc8e..36a72a414d45dfe3aff9eaacf85623536bb1df32 100644 --- a/test/language/expressions/arrow-function/params-dflt-ref-later.js +++ b/test/language/expressions/arrow-function/dflt-params-ref-later.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-later.case -// - src/params/error/arrow-function.template +// - src/function-forms/dflt-params-ref-later.case +// - src/function-forms/error/arrow-function.template /*--- description: Referencing a parameter that occurs later in the ParameterList (arrow function expression) esid: sec-arrow-function-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/arrow-function/params-dflt-ref-prior.js b/test/language/expressions/arrow-function/dflt-params-ref-prior.js similarity index 94% rename from test/language/expressions/arrow-function/params-dflt-ref-prior.js rename to test/language/expressions/arrow-function/dflt-params-ref-prior.js index 585b4fb997b706872d13731205a8ee8f916c7764..3649b6937afd5843037f7cccb992053430b9f813 100644 --- a/test/language/expressions/arrow-function/params-dflt-ref-prior.js +++ b/test/language/expressions/arrow-function/dflt-params-ref-prior.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-prior.case -// - src/params/default/arrow-function.template +// - src/function-forms/dflt-params-ref-prior.case +// - src/function-forms/default/arrow-function.template /*--- description: Referencing a parameter that occurs earlier in the ParameterList (arrow function expression) esid: sec-arrow-function-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/arrow-function/params-dflt-ref-self.js b/test/language/expressions/arrow-function/dflt-params-ref-self.js similarity index 94% rename from test/language/expressions/arrow-function/params-dflt-ref-self.js rename to test/language/expressions/arrow-function/dflt-params-ref-self.js index 0ccc0d84ceaec04acae621536d8cb0e5d7317997..bfe25d1a72ac0b3c93389700ed7dd325a9d09d8f 100644 --- a/test/language/expressions/arrow-function/params-dflt-ref-self.js +++ b/test/language/expressions/arrow-function/dflt-params-ref-self.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-self.case -// - src/params/error/arrow-function.template +// - src/function-forms/dflt-params-ref-self.case +// - src/function-forms/error/arrow-function.template /*--- description: Referencing a parameter from within its own initializer (arrow function expression) esid: sec-arrow-function-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/arrow-function/params-dflt-rest.js b/test/language/expressions/arrow-function/dflt-params-rest.js similarity index 93% rename from test/language/expressions/arrow-function/params-dflt-rest.js rename to test/language/expressions/arrow-function/dflt-params-rest.js index 850004a24bfb5680b1065d0a66651101d51e8e28..c5664b523cc7a6d46d58c23198ec2ba5390eaf12 100644 --- a/test/language/expressions/arrow-function/params-dflt-rest.js +++ b/test/language/expressions/arrow-function/dflt-params-rest.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-rest.case -// - src/params/syntax/arrow-function.template +// - src/function-forms/dflt-params-rest.case +// - src/function-forms/syntax/arrow-function.template /*--- description: RestParameter does not support an initializer (arrow function expression) esid: sec-arrow-function-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/arrow-function/params-trailing-comma-dflt-param.js b/test/language/expressions/arrow-function/dflt-params-trailing-comma.js similarity index 93% rename from test/language/expressions/arrow-function/params-trailing-comma-dflt-param.js rename to test/language/expressions/arrow-function/dflt-params-trailing-comma.js index 6c2176ae5818e6b4f964255b5c847d3d587e0b40..7ded24cd5fc831da9a8710e08a98da24024694b7 100644 --- a/test/language/expressions/arrow-function/params-trailing-comma-dflt-param.js +++ b/test/language/expressions/arrow-function/dflt-params-trailing-comma.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-dflt-param.case -// - src/params/default/arrow-function.template +// - src/function-forms/dflt-params-trailing-comma.case +// - src/function-forms/default/arrow-function.template /*--- description: A trailing comma should not increase the respective length, using default parameters (arrow function expression) esid: sec-arrow-function-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/arrow-function/params-trailing-comma-multiple-param.js b/test/language/expressions/arrow-function/params-trailing-comma-multiple.js similarity index 93% rename from test/language/expressions/arrow-function/params-trailing-comma-multiple-param.js rename to test/language/expressions/arrow-function/params-trailing-comma-multiple.js index bda079a6d218cf933cbca9915a648e7bed5e3ed9..2b66692334714fd98118f79995d6474bbae3fa4b 100644 --- a/test/language/expressions/arrow-function/params-trailing-comma-multiple-param.js +++ b/test/language/expressions/arrow-function/params-trailing-comma-multiple.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-multiple-param.case -// - src/params/default/arrow-function.template +// - src/function-forms/params-trailing-comma-multiple.case +// - src/function-forms/default/arrow-function.template /*--- description: A trailing comma should not increase the respective length, using multiple parameters (arrow function expression) esid: sec-arrow-function-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/arrow-function/params-trailing-comma-single-param.js b/test/language/expressions/arrow-function/params-trailing-comma-single.js similarity index 93% rename from test/language/expressions/arrow-function/params-trailing-comma-single-param.js rename to test/language/expressions/arrow-function/params-trailing-comma-single.js index 58fa96f4e26dda747e4844cfc0fcf089681c112f..55e41408c445670ae1e568df36d8c54a2049e5fe 100644 --- a/test/language/expressions/arrow-function/params-trailing-comma-single-param.js +++ b/test/language/expressions/arrow-function/params-trailing-comma-single.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-single-param.case -// - src/params/default/arrow-function.template +// - src/function-forms/params-trailing-comma-single.case +// - src/function-forms/default/arrow-function.template /*--- description: A trailing comma should not increase the respective length, using a single parameter (arrow function expression) esid: sec-arrow-function-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/arrow-function/params-trailing-comma-rest-early-error.js b/test/language/expressions/arrow-function/rest-params-trailing-comma-early-error.js similarity index 92% rename from test/language/expressions/arrow-function/params-trailing-comma-rest-early-error.js rename to test/language/expressions/arrow-function/rest-params-trailing-comma-early-error.js index 2320e3a72450f629251500cea3955f0ce74a2621..3b0b26029c9dd6c460245f816ae03f5cdaf765cd 100644 --- a/test/language/expressions/arrow-function/params-trailing-comma-rest-early-error.js +++ b/test/language/expressions/arrow-function/rest-params-trailing-comma-early-error.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-rest-early-error.case -// - src/params/syntax/arrow-function.template +// - src/function-forms/rest-params-trailing-comma-early-error.case +// - src/function-forms/syntax/arrow-function.template /*--- description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (arrow function expression) esid: sec-arrow-function-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/async-arrow-function/dflt-params-abrupt.js b/test/language/expressions/async-arrow-function/dflt-params-abrupt.js new file mode 100644 index 0000000000000000000000000000000000000000..4a92b9d3654706faf79b2d75eeaf4ab67e864b1b --- /dev/null +++ b/test/language/expressions/async-arrow-function/dflt-params-abrupt.js @@ -0,0 +1,58 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-abrupt.case +// - src/function-forms/error/async-arrow-function.template +/*--- +description: Abrupt completion returned by evaluation of initializer (async arrow function expression) +esid: sec-async-arrow-function-definitions +features: [default-parameters] +flags: [generated, async] +info: | + 14.7 Async Arrow Function Definitions + + AsyncArrowFunction : + ... + CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody + + AsyncConciseBody : + { AsyncFunctionBody } + + ... + + Supplemental Syntax + + When processing an instance of the production AsyncArrowFunction : + CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody the interpretation of + CoverCallExpressionAndAsyncArrowHead is refined using the following grammar: + + AsyncArrowHead : + async ArrowFormalParameters + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + 1. Let status be the result of performing IteratorBindingInitialization for + FormalsList using iteratorRecord and environment as the arguments. + 2. ReturnIfAbrupt(status). + 3. Return the result of performing IteratorBindingInitialization for + FormalParameter using iteratorRecord and environment as the arguments. + +---*/ + + +var callCount = 0; +var f; +f = async (_ = (function() { throw new Test262Error(); }())) => { + + callCount = callCount + 1; +}; + +f() + .then(_ => { + throw new Test262Error('function should not be resolved'); + }, error => assert.sameValue(error.constructor, Test262Error)) + .then(() => { + assert.sameValue(callCount, 0, 'function body is not evaluated'); + }, $DONE) + .then($DONE, $DONE); diff --git a/test/language/expressions/async-arrow-function/dflt-params-arg-val-not-undefined.js b/test/language/expressions/async-arrow-function/dflt-params-arg-val-not-undefined.js new file mode 100644 index 0000000000000000000000000000000000000000..b6e9ea786de12cc10dc7abe4a426851294799060 --- /dev/null +++ b/test/language/expressions/async-arrow-function/dflt-params-arg-val-not-undefined.js @@ -0,0 +1,77 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-arg-val-not-undefined.case +// - src/function-forms/default/async-arrow-function.template +/*--- +description: Use of intializer when argument value is not `undefined` (async arrow function expression) +esid: sec-async-arrow-function-definitions +features: [default-parameters] +flags: [generated, async] +info: | + 14.7 Async Arrow Function Definitions + + AsyncArrowFunction : + ... + CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody + + AsyncConciseBody : + { AsyncFunctionBody } + + ... + + Supplemental Syntax + + When processing an instance of the production AsyncArrowFunction : + CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody the interpretation of + CoverCallExpressionAndAsyncArrowHead is refined using the following grammar: + + AsyncArrowHead : + async ArrowFormalParameters + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + [...] + 23. Let iteratorRecord be Record {[[Iterator]]: + CreateListIterator(argumentsList), [[Done]]: false}. + 24. If hasDuplicates is true, then + [...] + 25. Else, + a. Perform ? IteratorBindingInitialization for formals with + iteratorRecord and env as arguments. + [...] + +---*/ +var obj = {}; +var falseCount = 0; +var stringCount = 0; +var nanCount = 0; +var zeroCount = 0; +var nullCount = 0; +var objCount = 0; + + +var callCount = 0; + +// Stores a reference `ref` for case evaluation +var ref = async (aFalse = falseCount +=1, aString = stringCount += 1, aNaN = nanCount += 1, a0 = zeroCount += 1, aNull = nullCount += 1, aObj = objCount +=1) => { + assert.sameValue(aFalse, false); + assert.sameValue(aString, ''); + assert.sameValue(aNaN, NaN); + assert.sameValue(a0, 0); + assert.sameValue(aNull, null); + assert.sameValue(aObj, obj); + callCount = callCount + 1; +}; + +ref(false, '', NaN, 0, null, obj).then(() => { + assert.sameValue(callCount, 1, 'async arrow function invoked exactly once') +}).then($DONE, $DONE); + +assert.sameValue(falseCount, 0, 'initializer not evaluated: false'); +assert.sameValue(stringCount, 0, 'initializer not evaluated: string'); +assert.sameValue(nanCount, 0, 'initializer not evaluated: NaN'); +assert.sameValue(zeroCount, 0, 'initializer not evaluated: 0'); +assert.sameValue(nullCount, 0, 'initializer not evaluated: null'); +assert.sameValue(objCount, 0, 'initializer not evaluated: object'); diff --git a/test/language/expressions/async-arrow-function/dflt-params-arg-val-undefined.js b/test/language/expressions/async-arrow-function/dflt-params-arg-val-undefined.js new file mode 100644 index 0000000000000000000000000000000000000000..75fbf246a4060b1a248cc604aa21e18304d72cd1 --- /dev/null +++ b/test/language/expressions/async-arrow-function/dflt-params-arg-val-undefined.js @@ -0,0 +1,60 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-arg-val-undefined.case +// - src/function-forms/default/async-arrow-function.template +/*--- +description: Use of intializer when argument value is `undefined` (async arrow function expression) +esid: sec-async-arrow-function-definitions +features: [default-parameters] +flags: [generated, async] +info: | + 14.7 Async Arrow Function Definitions + + AsyncArrowFunction : + ... + CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody + + AsyncConciseBody : + { AsyncFunctionBody } + + ... + + Supplemental Syntax + + When processing an instance of the production AsyncArrowFunction : + CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody the interpretation of + CoverCallExpressionAndAsyncArrowHead is refined using the following grammar: + + AsyncArrowHead : + async ArrowFormalParameters + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + [...] + 23. Let iteratorRecord be Record {[[Iterator]]: + CreateListIterator(argumentsList), [[Done]]: false}. + 24. If hasDuplicates is true, then + [...] + 25. Else, + a. Perform ? IteratorBindingInitialization for formals with + iteratorRecord and env as arguments. + [...] + +---*/ + + +var callCount = 0; + +// Stores a reference `ref` for case evaluation +var ref = async (fromLiteral = 23, fromExpr = 45, fromHole = 99) => { + assert.sameValue(fromLiteral, 23); + assert.sameValue(fromExpr, 45); + assert.sameValue(fromHole, 99); + callCount = callCount + 1; +}; + +ref(undefined, void 0).then(() => { + assert.sameValue(callCount, 1, 'async arrow function invoked exactly once') +}).then($DONE, $DONE); diff --git a/test/language/expressions/async-arrow-function/dflt-params-duplicates.js b/test/language/expressions/async-arrow-function/dflt-params-duplicates.js new file mode 100644 index 0000000000000000000000000000000000000000..dc99f2c139552e0469cbab42e7eb60f11bd72574 --- /dev/null +++ b/test/language/expressions/async-arrow-function/dflt-params-duplicates.js @@ -0,0 +1,51 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-duplicates.case +// - src/function-forms/syntax/async-arrow-function.template +/*--- +description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (async arrow function expression) +esid: sec-async-arrow-function-definitions +features: [default-parameters] +flags: [generated] +negative: + phase: early + type: SyntaxError +info: | + 14.7 Async Arrow Function Definitions + + AsyncArrowFunction : + ... + CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody + + AsyncConciseBody : + { AsyncFunctionBody } + + ... + + Supplemental Syntax + + When processing an instance of the production AsyncArrowFunction : + CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody the interpretation of + CoverCallExpressionAndAsyncArrowHead is refined using the following grammar: + + AsyncArrowHead : + async ArrowFormalParameters + + 14.1.2 Static Semantics: Early Errors + + StrictFormalParameters : FormalParameters + + - It is a Syntax Error if BoundNames of FormalParameters contains any + duplicate elements. + + FormalParameters : FormalParameterList + + - It is a Syntax Error if IsSimpleParameterList of FormalParameterList is + false and BoundNames of FormalParameterList contains any duplicate + elements. + +---*/ + + +(async (x = 0, x) => { + +}); diff --git a/test/language/expressions/async-arrow-function/dflt-params-ref-later.js b/test/language/expressions/async-arrow-function/dflt-params-ref-later.js new file mode 100644 index 0000000000000000000000000000000000000000..b1f1c9fca379b5b8af4f58c8f504ffc8e1985968 --- /dev/null +++ b/test/language/expressions/async-arrow-function/dflt-params-ref-later.js @@ -0,0 +1,59 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-ref-later.case +// - src/function-forms/error/async-arrow-function.template +/*--- +description: Referencing a parameter that occurs later in the ParameterList (async arrow function expression) +esid: sec-async-arrow-function-definitions +features: [default-parameters] +flags: [generated, async] +info: | + 14.7 Async Arrow Function Definitions + + AsyncArrowFunction : + ... + CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody + + AsyncConciseBody : + { AsyncFunctionBody } + + ... + + Supplemental Syntax + + When processing an instance of the production AsyncArrowFunction : + CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody the interpretation of + CoverCallExpressionAndAsyncArrowHead is refined using the following grammar: + + AsyncArrowHead : + async ArrowFormalParameters + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + 1. Let status be the result of performing IteratorBindingInitialization for + FormalsList using iteratorRecord and environment as the arguments. + 2. ReturnIfAbrupt(status). + 3. Return the result of performing IteratorBindingInitialization for + FormalParameter using iteratorRecord and environment as the arguments. + +---*/ +var x = 0; + + +var callCount = 0; +var f; +f = async (x = y, y) => { + + callCount = callCount + 1; +}; + +f() + .then(_ => { + throw new Test262Error('function should not be resolved'); + }, error => assert.sameValue(error.constructor, ReferenceError)) + .then(() => { + assert.sameValue(callCount, 0, 'function body is not evaluated'); + }, $DONE) + .then($DONE, $DONE); diff --git a/test/language/expressions/async-arrow-function/dflt-params-ref-prior.js b/test/language/expressions/async-arrow-function/dflt-params-ref-prior.js new file mode 100644 index 0000000000000000000000000000000000000000..6225f7633d88f0a02f36d6a18f851dac018487cc --- /dev/null +++ b/test/language/expressions/async-arrow-function/dflt-params-ref-prior.js @@ -0,0 +1,57 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-ref-prior.case +// - src/function-forms/default/async-arrow-function.template +/*--- +description: Referencing a parameter that occurs earlier in the ParameterList (async arrow function expression) +esid: sec-async-arrow-function-definitions +features: [default-parameters] +flags: [generated, async] +info: | + 14.7 Async Arrow Function Definitions + + AsyncArrowFunction : + ... + CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody + + AsyncConciseBody : + { AsyncFunctionBody } + + ... + + Supplemental Syntax + + When processing an instance of the production AsyncArrowFunction : + CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody the interpretation of + CoverCallExpressionAndAsyncArrowHead is refined using the following grammar: + + AsyncArrowHead : + async ArrowFormalParameters + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + 1. Let status be the result of performing IteratorBindingInitialization for + FormalsList using iteratorRecord and environment as the arguments. + 2. ReturnIfAbrupt(status). + 3. Return the result of performing IteratorBindingInitialization for + FormalParameter using iteratorRecord and environment as the arguments. + +---*/ +var x = 0; + + +var callCount = 0; + +// Stores a reference `ref` for case evaluation +var ref = async (x, y = x, z = y) => { + assert.sameValue(x, 3, 'first argument value'); + assert.sameValue(y, 3, 'second argument value'); + assert.sameValue(z, 3, 'third argument value'); + callCount = callCount + 1; +}; + +ref(3).then(() => { + assert.sameValue(callCount, 1, 'async arrow function invoked exactly once') +}).then($DONE, $DONE); diff --git a/test/language/expressions/async-arrow-function/dflt-params-ref-self.js b/test/language/expressions/async-arrow-function/dflt-params-ref-self.js new file mode 100644 index 0000000000000000000000000000000000000000..b2c3a2ec0e62726d4114f083d911cdbdb7f125ab --- /dev/null +++ b/test/language/expressions/async-arrow-function/dflt-params-ref-self.js @@ -0,0 +1,59 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-ref-self.case +// - src/function-forms/error/async-arrow-function.template +/*--- +description: Referencing a parameter from within its own initializer (async arrow function expression) +esid: sec-async-arrow-function-definitions +features: [default-parameters] +flags: [generated, async] +info: | + 14.7 Async Arrow Function Definitions + + AsyncArrowFunction : + ... + CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody + + AsyncConciseBody : + { AsyncFunctionBody } + + ... + + Supplemental Syntax + + When processing an instance of the production AsyncArrowFunction : + CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody the interpretation of + CoverCallExpressionAndAsyncArrowHead is refined using the following grammar: + + AsyncArrowHead : + async ArrowFormalParameters + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + 1. Let status be the result of performing IteratorBindingInitialization for + FormalsList using iteratorRecord and environment as the arguments. + 2. ReturnIfAbrupt(status). + 3. Return the result of performing IteratorBindingInitialization for + FormalParameter using iteratorRecord and environment as the arguments. + +---*/ +var x = 0; + + +var callCount = 0; +var f; +f = async (x = x) => { + + callCount = callCount + 1; +}; + +f() + .then(_ => { + throw new Test262Error('function should not be resolved'); + }, error => assert.sameValue(error.constructor, ReferenceError)) + .then(() => { + assert.sameValue(callCount, 0, 'function body is not evaluated'); + }, $DONE) + .then($DONE, $DONE); diff --git a/test/language/expressions/async-arrow-function/dflt-params-rest.js b/test/language/expressions/async-arrow-function/dflt-params-rest.js new file mode 100644 index 0000000000000000000000000000000000000000..ee34c1f109b5e190cbd56bf2db7315f53edad38b --- /dev/null +++ b/test/language/expressions/async-arrow-function/dflt-params-rest.js @@ -0,0 +1,55 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-rest.case +// - src/function-forms/syntax/async-arrow-function.template +/*--- +description: RestParameter does not support an initializer (async arrow function expression) +esid: sec-async-arrow-function-definitions +features: [default-parameters] +flags: [generated] +negative: + phase: early + type: SyntaxError +info: | + 14.7 Async Arrow Function Definitions + + AsyncArrowFunction : + ... + CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody + + AsyncConciseBody : + { AsyncFunctionBody } + + ... + + Supplemental Syntax + + When processing an instance of the production AsyncArrowFunction : + CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody the interpretation of + CoverCallExpressionAndAsyncArrowHead is refined using the following grammar: + + AsyncArrowHead : + async ArrowFormalParameters + + 14.1 Function Definitions + + Syntax + + FunctionRestParameter[Yield] : + + BindingRestElement[?Yield] + + 13.3.3 Destructuring Binding Patterns + + Syntax + + BindingRestElement[Yield] : + + ...BindingIdentifier[?Yield] + ...BindingPattern[?Yield] + +---*/ + + +(async (...x = []) => { + +}); diff --git a/test/language/expressions/async-arrow-function/dflt-params-trailing-comma.js b/test/language/expressions/async-arrow-function/dflt-params-trailing-comma.js new file mode 100644 index 0000000000000000000000000000000000000000..c573b2003b21f919a869b107f0820b391d0d1cdb --- /dev/null +++ b/test/language/expressions/async-arrow-function/dflt-params-trailing-comma.js @@ -0,0 +1,51 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-trailing-comma.case +// - src/function-forms/default/async-arrow-function.template +/*--- +description: A trailing comma should not increase the respective length, using default parameters (async arrow function expression) +esid: sec-async-arrow-function-definitions +flags: [generated, async] +info: | + 14.7 Async Arrow Function Definitions + + AsyncArrowFunction : + ... + CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody + + AsyncConciseBody : + { AsyncFunctionBody } + + ... + + Supplemental Syntax + + When processing an instance of the production AsyncArrowFunction : + CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody the interpretation of + CoverCallExpressionAndAsyncArrowHead is refined using the following grammar: + + AsyncArrowHead : + async ArrowFormalParameters + + + Trailing comma in the parameters list + + 14.1 Function Definitions + + FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] , +---*/ + + +var callCount = 0; + +// Stores a reference `ref` for case evaluation +var ref = async (a, b = 39,) => { + assert.sameValue(a, 42); + assert.sameValue(b, 39); + callCount = callCount + 1; +}; + +ref(42, undefined, 1).then(() => { + assert.sameValue(callCount, 1, 'async arrow function invoked exactly once') +}).then($DONE, $DONE); + +assert.sameValue(ref.length, 1, 'length is properly set'); diff --git a/test/language/expressions/async-arrow-function/params-trailing-comma-multiple.js b/test/language/expressions/async-arrow-function/params-trailing-comma-multiple.js new file mode 100644 index 0000000000000000000000000000000000000000..71c1803d29fdcd94410a07c421fba8f0c036aaef --- /dev/null +++ b/test/language/expressions/async-arrow-function/params-trailing-comma-multiple.js @@ -0,0 +1,51 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/params-trailing-comma-multiple.case +// - src/function-forms/default/async-arrow-function.template +/*--- +description: A trailing comma should not increase the respective length, using multiple parameters (async arrow function expression) +esid: sec-async-arrow-function-definitions +flags: [generated, async] +info: | + 14.7 Async Arrow Function Definitions + + AsyncArrowFunction : + ... + CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody + + AsyncConciseBody : + { AsyncFunctionBody } + + ... + + Supplemental Syntax + + When processing an instance of the production AsyncArrowFunction : + CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody the interpretation of + CoverCallExpressionAndAsyncArrowHead is refined using the following grammar: + + AsyncArrowHead : + async ArrowFormalParameters + + + Trailing comma in the parameters list + + 14.1 Function Definitions + + FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] , +---*/ + + +var callCount = 0; + +// Stores a reference `ref` for case evaluation +var ref = async (a, b,) => { + assert.sameValue(a, 42); + assert.sameValue(b, 39); + callCount = callCount + 1; +}; + +ref(42, 39, 1).then(() => { + assert.sameValue(callCount, 1, 'async arrow function invoked exactly once') +}).then($DONE, $DONE); + +assert.sameValue(ref.length, 2, 'length is properly set'); diff --git a/test/language/expressions/async-arrow-function/params-trailing-comma-single.js b/test/language/expressions/async-arrow-function/params-trailing-comma-single.js new file mode 100644 index 0000000000000000000000000000000000000000..47612e2807f1bb898010482a128824877d883a12 --- /dev/null +++ b/test/language/expressions/async-arrow-function/params-trailing-comma-single.js @@ -0,0 +1,50 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/params-trailing-comma-single.case +// - src/function-forms/default/async-arrow-function.template +/*--- +description: A trailing comma should not increase the respective length, using a single parameter (async arrow function expression) +esid: sec-async-arrow-function-definitions +flags: [generated, async] +info: | + 14.7 Async Arrow Function Definitions + + AsyncArrowFunction : + ... + CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody + + AsyncConciseBody : + { AsyncFunctionBody } + + ... + + Supplemental Syntax + + When processing an instance of the production AsyncArrowFunction : + CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody the interpretation of + CoverCallExpressionAndAsyncArrowHead is refined using the following grammar: + + AsyncArrowHead : + async ArrowFormalParameters + + + Trailing comma in the parameters list + + 14.1 Function Definitions + + FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] , +---*/ + + +var callCount = 0; + +// Stores a reference `ref` for case evaluation +var ref = async (a,) => { + assert.sameValue(a, 42); + callCount = callCount + 1; +}; + +ref(42, 39).then(() => { + assert.sameValue(callCount, 1, 'async arrow function invoked exactly once') +}).then($DONE, $DONE); + +assert.sameValue(ref.length, 1, 'length is properly set'); diff --git a/test/language/expressions/async-arrow-function/rest-params-trailing-comma-early-error.js b/test/language/expressions/async-arrow-function/rest-params-trailing-comma-early-error.js new file mode 100644 index 0000000000000000000000000000000000000000..6c16952d6be88212f6f961227bd6f4fe54ee8f21 --- /dev/null +++ b/test/language/expressions/async-arrow-function/rest-params-trailing-comma-early-error.js @@ -0,0 +1,47 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/rest-params-trailing-comma-early-error.case +// - src/function-forms/syntax/async-arrow-function.template +/*--- +description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (async arrow function expression) +esid: sec-async-arrow-function-definitions +flags: [generated] +negative: + phase: early + type: SyntaxError +info: | + 14.7 Async Arrow Function Definitions + + AsyncArrowFunction : + ... + CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody + + AsyncConciseBody : + { AsyncFunctionBody } + + ... + + Supplemental Syntax + + When processing an instance of the production AsyncArrowFunction : + CoverCallExpressionAndAsyncArrowHead => AsyncConciseBody the interpretation of + CoverCallExpressionAndAsyncArrowHead is refined using the following grammar: + + AsyncArrowHead : + async ArrowFormalParameters + + Trailing comma in the parameters list + + 14.1 Function Definitions + + FormalParameters[Yield, Await] : + [empty] + FunctionRestParameter[?Yield, ?Await] + FormalParameterList[?Yield, ?Await] + FormalParameterList[?Yield, ?Await] , + FormalParameterList[?Yield, ?Await] , FunctionRestParameter[?Yield, ?Await] +---*/ + + +(async (...a,) => { + +}); diff --git a/test/language/expressions/async-function/named-dflt-params-abrupt.js b/test/language/expressions/async-function/named-dflt-params-abrupt.js new file mode 100644 index 0000000000000000000000000000000000000000..59bf344175fdf109c6b27f22b392bf6fd92172f0 --- /dev/null +++ b/test/language/expressions/async-function/named-dflt-params-abrupt.js @@ -0,0 +1,42 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-abrupt.case +// - src/function-forms/error/async-func-expr-named.template +/*--- +description: Abrupt completion returned by evaluation of initializer (async function named expression) +esid: sec-async-function-definitions +features: [default-parameters] +flags: [generated, async] +info: | + 14.6 Async Function Definitions + + AsyncFunctionExpression : + async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody } + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + 1. Let status be the result of performing IteratorBindingInitialization for + FormalsList using iteratorRecord and environment as the arguments. + 2. ReturnIfAbrupt(status). + 3. Return the result of performing IteratorBindingInitialization for + FormalParameter using iteratorRecord and environment as the arguments. + +---*/ + + +var callCount = 0; +var f = async function f(_ = (function() { throw new Test262Error(); }())) { + + callCount = callCount + 1; +} + +f() + .then(_ => { + throw new Test262Error('function should not be resolved'); + }, error => assert.sameValue(error.constructor, Test262Error)) + .then(() => { + assert.sameValue(callCount, 0, 'function body is not evaluated'); + }, $DONE) + .then($DONE, $DONE); diff --git a/test/language/expressions/async-function/named-dflt-params-arg-val-not-undefined.js b/test/language/expressions/async-function/named-dflt-params-arg-val-not-undefined.js new file mode 100644 index 0000000000000000000000000000000000000000..883b59530c5f832168250344d1e009a135ca3959 --- /dev/null +++ b/test/language/expressions/async-function/named-dflt-params-arg-val-not-undefined.js @@ -0,0 +1,63 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-arg-val-not-undefined.case +// - src/function-forms/default/async-func-expr-named.template +/*--- +description: Use of intializer when argument value is not `undefined` (async function named expression) +esid: sec-async-function-definitions +features: [default-parameters] +flags: [generated, async] +info: | + 14.6 Async Function Definitions + + AsyncFunctionExpression : + async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody } + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + [...] + 23. Let iteratorRecord be Record {[[Iterator]]: + CreateListIterator(argumentsList), [[Done]]: false}. + 24. If hasDuplicates is true, then + [...] + 25. Else, + a. Perform ? IteratorBindingInitialization for formals with + iteratorRecord and env as arguments. + [...] + +---*/ +var obj = {}; +var falseCount = 0; +var stringCount = 0; +var nanCount = 0; +var zeroCount = 0; +var nullCount = 0; +var objCount = 0; + + +var callCount = 0; + +// Stores a reference `ref` for case evaluation +var ref; +ref = async function ref(aFalse = falseCount +=1, aString = stringCount += 1, aNaN = nanCount += 1, a0 = zeroCount += 1, aNull = nullCount += 1, aObj = objCount +=1) { + assert.sameValue(aFalse, false); + assert.sameValue(aString, ''); + assert.sameValue(aNaN, NaN); + assert.sameValue(a0, 0); + assert.sameValue(aNull, null); + assert.sameValue(aObj, obj); + callCount = callCount + 1; +}; + +ref(false, '', NaN, 0, null, obj).then(() => { + assert.sameValue(callCount, 1, 'function invoked exactly once'); +}).then($DONE, $DONE); + +assert.sameValue(falseCount, 0, 'initializer not evaluated: false'); +assert.sameValue(stringCount, 0, 'initializer not evaluated: string'); +assert.sameValue(nanCount, 0, 'initializer not evaluated: NaN'); +assert.sameValue(zeroCount, 0, 'initializer not evaluated: 0'); +assert.sameValue(nullCount, 0, 'initializer not evaluated: null'); +assert.sameValue(objCount, 0, 'initializer not evaluated: object'); diff --git a/test/language/expressions/async-function/named-dflt-params-arg-val-undefined.js b/test/language/expressions/async-function/named-dflt-params-arg-val-undefined.js new file mode 100644 index 0000000000000000000000000000000000000000..896528a2b8c3c280857b87ede65e4424f056a2eb --- /dev/null +++ b/test/language/expressions/async-function/named-dflt-params-arg-val-undefined.js @@ -0,0 +1,46 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-arg-val-undefined.case +// - src/function-forms/default/async-func-expr-named.template +/*--- +description: Use of intializer when argument value is `undefined` (async function named expression) +esid: sec-async-function-definitions +features: [default-parameters] +flags: [generated, async] +info: | + 14.6 Async Function Definitions + + AsyncFunctionExpression : + async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody } + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + [...] + 23. Let iteratorRecord be Record {[[Iterator]]: + CreateListIterator(argumentsList), [[Done]]: false}. + 24. If hasDuplicates is true, then + [...] + 25. Else, + a. Perform ? IteratorBindingInitialization for formals with + iteratorRecord and env as arguments. + [...] + +---*/ + + +var callCount = 0; + +// Stores a reference `ref` for case evaluation +var ref; +ref = async function ref(fromLiteral = 23, fromExpr = 45, fromHole = 99) { + assert.sameValue(fromLiteral, 23); + assert.sameValue(fromExpr, 45); + assert.sameValue(fromHole, 99); + callCount = callCount + 1; +}; + +ref(undefined, void 0).then(() => { + assert.sameValue(callCount, 1, 'function invoked exactly once'); +}).then($DONE, $DONE); diff --git a/test/language/expressions/async-function/named-dflt-params-duplicates.js b/test/language/expressions/async-function/named-dflt-params-duplicates.js new file mode 100644 index 0000000000000000000000000000000000000000..943b1f98dd869085ee0466f868195fc20d30c599 --- /dev/null +++ b/test/language/expressions/async-function/named-dflt-params-duplicates.js @@ -0,0 +1,37 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-duplicates.case +// - src/function-forms/syntax/async-func-expr-named.template +/*--- +description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (async function named expression) +esid: sec-async-function-definitions +features: [default-parameters] +flags: [generated] +negative: + phase: early + type: SyntaxError +info: | + 14.6 Async Function Definitions + + AsyncFunctionExpression : + async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody } + + + 14.1.2 Static Semantics: Early Errors + + StrictFormalParameters : FormalParameters + + - It is a Syntax Error if BoundNames of FormalParameters contains any + duplicate elements. + + FormalParameters : FormalParameterList + + - It is a Syntax Error if IsSimpleParameterList of FormalParameterList is + false and BoundNames of FormalParameterList contains any duplicate + elements. + +---*/ + + +(async function f(x = 0, x) { + +}); diff --git a/test/language/expressions/async-function/named-dflt-params-ref-later.js b/test/language/expressions/async-function/named-dflt-params-ref-later.js new file mode 100644 index 0000000000000000000000000000000000000000..df85f734fbc4010bac0a357e0ab6d1567c192274 --- /dev/null +++ b/test/language/expressions/async-function/named-dflt-params-ref-later.js @@ -0,0 +1,43 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-ref-later.case +// - src/function-forms/error/async-func-expr-named.template +/*--- +description: Referencing a parameter that occurs later in the ParameterList (async function named expression) +esid: sec-async-function-definitions +features: [default-parameters] +flags: [generated, async] +info: | + 14.6 Async Function Definitions + + AsyncFunctionExpression : + async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody } + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + 1. Let status be the result of performing IteratorBindingInitialization for + FormalsList using iteratorRecord and environment as the arguments. + 2. ReturnIfAbrupt(status). + 3. Return the result of performing IteratorBindingInitialization for + FormalParameter using iteratorRecord and environment as the arguments. + +---*/ +var x = 0; + + +var callCount = 0; +var f = async function f(x = y, y) { + + callCount = callCount + 1; +} + +f() + .then(_ => { + throw new Test262Error('function should not be resolved'); + }, error => assert.sameValue(error.constructor, ReferenceError)) + .then(() => { + assert.sameValue(callCount, 0, 'function body is not evaluated'); + }, $DONE) + .then($DONE, $DONE); diff --git a/test/language/expressions/async-function/named-dflt-params-ref-prior.js b/test/language/expressions/async-function/named-dflt-params-ref-prior.js new file mode 100644 index 0000000000000000000000000000000000000000..e58f833f95658ebe8d69ffd93441cd0b9679e117 --- /dev/null +++ b/test/language/expressions/async-function/named-dflt-params-ref-prior.js @@ -0,0 +1,43 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-ref-prior.case +// - src/function-forms/default/async-func-expr-named.template +/*--- +description: Referencing a parameter that occurs earlier in the ParameterList (async function named expression) +esid: sec-async-function-definitions +features: [default-parameters] +flags: [generated, async] +info: | + 14.6 Async Function Definitions + + AsyncFunctionExpression : + async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody } + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + 1. Let status be the result of performing IteratorBindingInitialization for + FormalsList using iteratorRecord and environment as the arguments. + 2. ReturnIfAbrupt(status). + 3. Return the result of performing IteratorBindingInitialization for + FormalParameter using iteratorRecord and environment as the arguments. + +---*/ +var x = 0; + + +var callCount = 0; + +// Stores a reference `ref` for case evaluation +var ref; +ref = async function ref(x, y = x, z = y) { + assert.sameValue(x, 3, 'first argument value'); + assert.sameValue(y, 3, 'second argument value'); + assert.sameValue(z, 3, 'third argument value'); + callCount = callCount + 1; +}; + +ref(3).then(() => { + assert.sameValue(callCount, 1, 'function invoked exactly once'); +}).then($DONE, $DONE); diff --git a/test/language/expressions/async-function/named-dflt-params-ref-self.js b/test/language/expressions/async-function/named-dflt-params-ref-self.js new file mode 100644 index 0000000000000000000000000000000000000000..3b2141252f532032bb88adb6254049ed139cc844 --- /dev/null +++ b/test/language/expressions/async-function/named-dflt-params-ref-self.js @@ -0,0 +1,43 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-ref-self.case +// - src/function-forms/error/async-func-expr-named.template +/*--- +description: Referencing a parameter from within its own initializer (async function named expression) +esid: sec-async-function-definitions +features: [default-parameters] +flags: [generated, async] +info: | + 14.6 Async Function Definitions + + AsyncFunctionExpression : + async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody } + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + 1. Let status be the result of performing IteratorBindingInitialization for + FormalsList using iteratorRecord and environment as the arguments. + 2. ReturnIfAbrupt(status). + 3. Return the result of performing IteratorBindingInitialization for + FormalParameter using iteratorRecord and environment as the arguments. + +---*/ +var x = 0; + + +var callCount = 0; +var f = async function f(x = x) { + + callCount = callCount + 1; +} + +f() + .then(_ => { + throw new Test262Error('function should not be resolved'); + }, error => assert.sameValue(error.constructor, ReferenceError)) + .then(() => { + assert.sameValue(callCount, 0, 'function body is not evaluated'); + }, $DONE) + .then($DONE, $DONE); diff --git a/test/language/expressions/async-function/named-dflt-params-rest.js b/test/language/expressions/async-function/named-dflt-params-rest.js new file mode 100644 index 0000000000000000000000000000000000000000..a6469528121a9910cfa0d6dcee3d49a7714bba2d --- /dev/null +++ b/test/language/expressions/async-function/named-dflt-params-rest.js @@ -0,0 +1,41 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-rest.case +// - src/function-forms/syntax/async-func-expr-named.template +/*--- +description: RestParameter does not support an initializer (async function named expression) +esid: sec-async-function-definitions +features: [default-parameters] +flags: [generated] +negative: + phase: early + type: SyntaxError +info: | + 14.6 Async Function Definitions + + AsyncFunctionExpression : + async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody } + + + 14.1 Function Definitions + + Syntax + + FunctionRestParameter[Yield] : + + BindingRestElement[?Yield] + + 13.3.3 Destructuring Binding Patterns + + Syntax + + BindingRestElement[Yield] : + + ...BindingIdentifier[?Yield] + ...BindingPattern[?Yield] + +---*/ + + +(async function f(...x = []) { + +}); diff --git a/test/language/expressions/async-function/named-dflt-params-trailing-comma.js b/test/language/expressions/async-function/named-dflt-params-trailing-comma.js new file mode 100644 index 0000000000000000000000000000000000000000..b85f48d055c7496fe5a77701e1ce26b7cda8618e --- /dev/null +++ b/test/language/expressions/async-function/named-dflt-params-trailing-comma.js @@ -0,0 +1,37 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-trailing-comma.case +// - src/function-forms/default/async-func-expr-named.template +/*--- +description: A trailing comma should not increase the respective length, using default parameters (async function named expression) +esid: sec-async-function-definitions +flags: [generated, async] +info: | + 14.6 Async Function Definitions + + AsyncFunctionExpression : + async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody } + + + Trailing comma in the parameters list + + 14.1 Function Definitions + + FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] , +---*/ + + +var callCount = 0; + +// Stores a reference `ref` for case evaluation +var ref; +ref = async function ref(a, b = 39,) { + assert.sameValue(a, 42); + assert.sameValue(b, 39); + callCount = callCount + 1; +}; + +ref(42, undefined, 1).then(() => { + assert.sameValue(callCount, 1, 'function invoked exactly once'); +}).then($DONE, $DONE); + +assert.sameValue(ref.length, 1, 'length is properly set'); diff --git a/test/language/expressions/async-function/named-params-trailing-comma-multiple.js b/test/language/expressions/async-function/named-params-trailing-comma-multiple.js new file mode 100644 index 0000000000000000000000000000000000000000..d75b5340f64752c770d5b874f9ea3a85735e261a --- /dev/null +++ b/test/language/expressions/async-function/named-params-trailing-comma-multiple.js @@ -0,0 +1,37 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/params-trailing-comma-multiple.case +// - src/function-forms/default/async-func-expr-named.template +/*--- +description: A trailing comma should not increase the respective length, using multiple parameters (async function named expression) +esid: sec-async-function-definitions +flags: [generated, async] +info: | + 14.6 Async Function Definitions + + AsyncFunctionExpression : + async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody } + + + Trailing comma in the parameters list + + 14.1 Function Definitions + + FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] , +---*/ + + +var callCount = 0; + +// Stores a reference `ref` for case evaluation +var ref; +ref = async function ref(a, b,) { + assert.sameValue(a, 42); + assert.sameValue(b, 39); + callCount = callCount + 1; +}; + +ref(42, 39, 1).then(() => { + assert.sameValue(callCount, 1, 'function invoked exactly once'); +}).then($DONE, $DONE); + +assert.sameValue(ref.length, 2, 'length is properly set'); diff --git a/test/language/expressions/async-function/named-params-trailing-comma-single.js b/test/language/expressions/async-function/named-params-trailing-comma-single.js new file mode 100644 index 0000000000000000000000000000000000000000..b1e4a4745f7724c02f818cec97f490586c4b99ab --- /dev/null +++ b/test/language/expressions/async-function/named-params-trailing-comma-single.js @@ -0,0 +1,36 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/params-trailing-comma-single.case +// - src/function-forms/default/async-func-expr-named.template +/*--- +description: A trailing comma should not increase the respective length, using a single parameter (async function named expression) +esid: sec-async-function-definitions +flags: [generated, async] +info: | + 14.6 Async Function Definitions + + AsyncFunctionExpression : + async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody } + + + Trailing comma in the parameters list + + 14.1 Function Definitions + + FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] , +---*/ + + +var callCount = 0; + +// Stores a reference `ref` for case evaluation +var ref; +ref = async function ref(a,) { + assert.sameValue(a, 42); + callCount = callCount + 1; +}; + +ref(42, 39).then(() => { + assert.sameValue(callCount, 1, 'function invoked exactly once'); +}).then($DONE, $DONE); + +assert.sameValue(ref.length, 1, 'length is properly set'); diff --git a/test/language/expressions/async-function/named-rest-params-trailing-comma-early-error.js b/test/language/expressions/async-function/named-rest-params-trailing-comma-early-error.js new file mode 100644 index 0000000000000000000000000000000000000000..d37212158f5f4fa55b69576729a22072b744f2b4 --- /dev/null +++ b/test/language/expressions/async-function/named-rest-params-trailing-comma-early-error.js @@ -0,0 +1,33 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/rest-params-trailing-comma-early-error.case +// - src/function-forms/syntax/async-func-expr-named.template +/*--- +description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (async function named expression) +esid: sec-async-function-definitions +flags: [generated] +negative: + phase: early + type: SyntaxError +info: | + 14.6 Async Function Definitions + + AsyncFunctionExpression : + async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody } + + + Trailing comma in the parameters list + + 14.1 Function Definitions + + FormalParameters[Yield, Await] : + [empty] + FunctionRestParameter[?Yield, ?Await] + FormalParameterList[?Yield, ?Await] + FormalParameterList[?Yield, ?Await] , + FormalParameterList[?Yield, ?Await] , FunctionRestParameter[?Yield, ?Await] +---*/ + + +(async function f(...a,) { + +}); diff --git a/test/language/expressions/async-function/nameless-dflt-params-abrupt.js b/test/language/expressions/async-function/nameless-dflt-params-abrupt.js new file mode 100644 index 0000000000000000000000000000000000000000..6ce5cda340147e1d88c89b1f620cc9bbb50421ff --- /dev/null +++ b/test/language/expressions/async-function/nameless-dflt-params-abrupt.js @@ -0,0 +1,42 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-abrupt.case +// - src/function-forms/error/async-func-expr-nameless.template +/*--- +description: Abrupt completion returned by evaluation of initializer (async function nameless expression) +esid: sec-async-function-definitions +features: [default-parameters] +flags: [generated, async] +info: | + 14.6 Async Function Definitions + + AsyncFunctionExpression : + async function ( FormalParameters ) { AsyncFunctionBody } + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + 1. Let status be the result of performing IteratorBindingInitialization for + FormalsList using iteratorRecord and environment as the arguments. + 2. ReturnIfAbrupt(status). + 3. Return the result of performing IteratorBindingInitialization for + FormalParameter using iteratorRecord and environment as the arguments. + +---*/ + + +var callCount = 0; +var f = async function(_ = (function() { throw new Test262Error(); }())) { + + callCount = callCount + 1; +} + +f() + .then(_ => { + throw new Test262Error('function should not be resolved'); + }, error => assert.sameValue(error.constructor, Test262Error)) + .then(() => { + assert.sameValue(callCount, 0, 'function body is not evaluated'); + }, $DONE) + .then($DONE, $DONE); diff --git a/test/language/expressions/async-function/nameless-dflt-params-arg-val-not-undefined.js b/test/language/expressions/async-function/nameless-dflt-params-arg-val-not-undefined.js new file mode 100644 index 0000000000000000000000000000000000000000..4dee97e98b1dc18bf0bb8ac9733dafbdc0c8509c --- /dev/null +++ b/test/language/expressions/async-function/nameless-dflt-params-arg-val-not-undefined.js @@ -0,0 +1,63 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-arg-val-not-undefined.case +// - src/function-forms/default/async-func-expr-nameless.template +/*--- +description: Use of intializer when argument value is not `undefined` (async function nameless expression) +esid: sec-async-function-definitions +features: [default-parameters] +flags: [generated, async] +info: | + 14.6 Async Function Definitions + + AsyncFunctionExpression : + async function ( FormalParameters ) { AsyncFunctionBody } + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + [...] + 23. Let iteratorRecord be Record {[[Iterator]]: + CreateListIterator(argumentsList), [[Done]]: false}. + 24. If hasDuplicates is true, then + [...] + 25. Else, + a. Perform ? IteratorBindingInitialization for formals with + iteratorRecord and env as arguments. + [...] + +---*/ +var obj = {}; +var falseCount = 0; +var stringCount = 0; +var nanCount = 0; +var zeroCount = 0; +var nullCount = 0; +var objCount = 0; + + +var callCount = 0; + +// Stores a reference `ref` for case evaluation +var ref; +ref = async function(aFalse = falseCount +=1, aString = stringCount += 1, aNaN = nanCount += 1, a0 = zeroCount += 1, aNull = nullCount += 1, aObj = objCount +=1) { + assert.sameValue(aFalse, false); + assert.sameValue(aString, ''); + assert.sameValue(aNaN, NaN); + assert.sameValue(a0, 0); + assert.sameValue(aNull, null); + assert.sameValue(aObj, obj); + callCount = callCount + 1; +}; + +ref(false, '', NaN, 0, null, obj).then(() => { + assert.sameValue(callCount, 1, 'function invoked exactly once'); +}).then($DONE, $DONE); + +assert.sameValue(falseCount, 0, 'initializer not evaluated: false'); +assert.sameValue(stringCount, 0, 'initializer not evaluated: string'); +assert.sameValue(nanCount, 0, 'initializer not evaluated: NaN'); +assert.sameValue(zeroCount, 0, 'initializer not evaluated: 0'); +assert.sameValue(nullCount, 0, 'initializer not evaluated: null'); +assert.sameValue(objCount, 0, 'initializer not evaluated: object'); diff --git a/test/language/expressions/async-function/nameless-dflt-params-arg-val-undefined.js b/test/language/expressions/async-function/nameless-dflt-params-arg-val-undefined.js new file mode 100644 index 0000000000000000000000000000000000000000..d359183ce0191076ce503938ffd6beb11582c956 --- /dev/null +++ b/test/language/expressions/async-function/nameless-dflt-params-arg-val-undefined.js @@ -0,0 +1,46 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-arg-val-undefined.case +// - src/function-forms/default/async-func-expr-nameless.template +/*--- +description: Use of intializer when argument value is `undefined` (async function nameless expression) +esid: sec-async-function-definitions +features: [default-parameters] +flags: [generated, async] +info: | + 14.6 Async Function Definitions + + AsyncFunctionExpression : + async function ( FormalParameters ) { AsyncFunctionBody } + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + [...] + 23. Let iteratorRecord be Record {[[Iterator]]: + CreateListIterator(argumentsList), [[Done]]: false}. + 24. If hasDuplicates is true, then + [...] + 25. Else, + a. Perform ? IteratorBindingInitialization for formals with + iteratorRecord and env as arguments. + [...] + +---*/ + + +var callCount = 0; + +// Stores a reference `ref` for case evaluation +var ref; +ref = async function(fromLiteral = 23, fromExpr = 45, fromHole = 99) { + assert.sameValue(fromLiteral, 23); + assert.sameValue(fromExpr, 45); + assert.sameValue(fromHole, 99); + callCount = callCount + 1; +}; + +ref(undefined, void 0).then(() => { + assert.sameValue(callCount, 1, 'function invoked exactly once'); +}).then($DONE, $DONE); diff --git a/test/language/expressions/async-function/nameless-dflt-params-duplicates.js b/test/language/expressions/async-function/nameless-dflt-params-duplicates.js new file mode 100644 index 0000000000000000000000000000000000000000..f29eae0159c1428815f2444491e60c058443ab33 --- /dev/null +++ b/test/language/expressions/async-function/nameless-dflt-params-duplicates.js @@ -0,0 +1,36 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-duplicates.case +// - src/function-forms/syntax/async-func-expr-nameless.template +/*--- +description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (async function nameless expression) +esid: sec-async-function-definitions +features: [default-parameters] +flags: [generated] +negative: + phase: early + type: SyntaxError +info: | + 14.6 Async Function Definitions + + AsyncFunctionExpression : + async function ( FormalParameters ) { AsyncFunctionBody } + + 14.1.2 Static Semantics: Early Errors + + StrictFormalParameters : FormalParameters + + - It is a Syntax Error if BoundNames of FormalParameters contains any + duplicate elements. + + FormalParameters : FormalParameterList + + - It is a Syntax Error if IsSimpleParameterList of FormalParameterList is + false and BoundNames of FormalParameterList contains any duplicate + elements. + +---*/ + + +(async function(x = 0, x) { + +}); diff --git a/test/language/expressions/async-function/nameless-dflt-params-ref-later.js b/test/language/expressions/async-function/nameless-dflt-params-ref-later.js new file mode 100644 index 0000000000000000000000000000000000000000..c0da90a866e2d5039d04256789cc6d704f694f56 --- /dev/null +++ b/test/language/expressions/async-function/nameless-dflt-params-ref-later.js @@ -0,0 +1,43 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-ref-later.case +// - src/function-forms/error/async-func-expr-nameless.template +/*--- +description: Referencing a parameter that occurs later in the ParameterList (async function nameless expression) +esid: sec-async-function-definitions +features: [default-parameters] +flags: [generated, async] +info: | + 14.6 Async Function Definitions + + AsyncFunctionExpression : + async function ( FormalParameters ) { AsyncFunctionBody } + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + 1. Let status be the result of performing IteratorBindingInitialization for + FormalsList using iteratorRecord and environment as the arguments. + 2. ReturnIfAbrupt(status). + 3. Return the result of performing IteratorBindingInitialization for + FormalParameter using iteratorRecord and environment as the arguments. + +---*/ +var x = 0; + + +var callCount = 0; +var f = async function(x = y, y) { + + callCount = callCount + 1; +} + +f() + .then(_ => { + throw new Test262Error('function should not be resolved'); + }, error => assert.sameValue(error.constructor, ReferenceError)) + .then(() => { + assert.sameValue(callCount, 0, 'function body is not evaluated'); + }, $DONE) + .then($DONE, $DONE); diff --git a/test/language/expressions/async-function/nameless-dflt-params-ref-prior.js b/test/language/expressions/async-function/nameless-dflt-params-ref-prior.js new file mode 100644 index 0000000000000000000000000000000000000000..42e1111132c7f0f954baccabad14e5674079506a --- /dev/null +++ b/test/language/expressions/async-function/nameless-dflt-params-ref-prior.js @@ -0,0 +1,43 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-ref-prior.case +// - src/function-forms/default/async-func-expr-nameless.template +/*--- +description: Referencing a parameter that occurs earlier in the ParameterList (async function nameless expression) +esid: sec-async-function-definitions +features: [default-parameters] +flags: [generated, async] +info: | + 14.6 Async Function Definitions + + AsyncFunctionExpression : + async function ( FormalParameters ) { AsyncFunctionBody } + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + 1. Let status be the result of performing IteratorBindingInitialization for + FormalsList using iteratorRecord and environment as the arguments. + 2. ReturnIfAbrupt(status). + 3. Return the result of performing IteratorBindingInitialization for + FormalParameter using iteratorRecord and environment as the arguments. + +---*/ +var x = 0; + + +var callCount = 0; + +// Stores a reference `ref` for case evaluation +var ref; +ref = async function(x, y = x, z = y) { + assert.sameValue(x, 3, 'first argument value'); + assert.sameValue(y, 3, 'second argument value'); + assert.sameValue(z, 3, 'third argument value'); + callCount = callCount + 1; +}; + +ref(3).then(() => { + assert.sameValue(callCount, 1, 'function invoked exactly once'); +}).then($DONE, $DONE); diff --git a/test/language/expressions/async-function/nameless-dflt-params-ref-self.js b/test/language/expressions/async-function/nameless-dflt-params-ref-self.js new file mode 100644 index 0000000000000000000000000000000000000000..a98a3afd6e7bacf1f880b599a61e5690213a0f75 --- /dev/null +++ b/test/language/expressions/async-function/nameless-dflt-params-ref-self.js @@ -0,0 +1,43 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-ref-self.case +// - src/function-forms/error/async-func-expr-nameless.template +/*--- +description: Referencing a parameter from within its own initializer (async function nameless expression) +esid: sec-async-function-definitions +features: [default-parameters] +flags: [generated, async] +info: | + 14.6 Async Function Definitions + + AsyncFunctionExpression : + async function ( FormalParameters ) { AsyncFunctionBody } + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + 1. Let status be the result of performing IteratorBindingInitialization for + FormalsList using iteratorRecord and environment as the arguments. + 2. ReturnIfAbrupt(status). + 3. Return the result of performing IteratorBindingInitialization for + FormalParameter using iteratorRecord and environment as the arguments. + +---*/ +var x = 0; + + +var callCount = 0; +var f = async function(x = x) { + + callCount = callCount + 1; +} + +f() + .then(_ => { + throw new Test262Error('function should not be resolved'); + }, error => assert.sameValue(error.constructor, ReferenceError)) + .then(() => { + assert.sameValue(callCount, 0, 'function body is not evaluated'); + }, $DONE) + .then($DONE, $DONE); diff --git a/test/language/expressions/async-function/nameless-dflt-params-rest.js b/test/language/expressions/async-function/nameless-dflt-params-rest.js new file mode 100644 index 0000000000000000000000000000000000000000..01925e0626fda35eb472d62cf96611b53e9cb6d0 --- /dev/null +++ b/test/language/expressions/async-function/nameless-dflt-params-rest.js @@ -0,0 +1,40 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-rest.case +// - src/function-forms/syntax/async-func-expr-nameless.template +/*--- +description: RestParameter does not support an initializer (async function nameless expression) +esid: sec-async-function-definitions +features: [default-parameters] +flags: [generated] +negative: + phase: early + type: SyntaxError +info: | + 14.6 Async Function Definitions + + AsyncFunctionExpression : + async function ( FormalParameters ) { AsyncFunctionBody } + + 14.1 Function Definitions + + Syntax + + FunctionRestParameter[Yield] : + + BindingRestElement[?Yield] + + 13.3.3 Destructuring Binding Patterns + + Syntax + + BindingRestElement[Yield] : + + ...BindingIdentifier[?Yield] + ...BindingPattern[?Yield] + +---*/ + + +(async function(...x = []) { + +}); diff --git a/test/language/expressions/async-function/nameless-dflt-params-trailing-comma.js b/test/language/expressions/async-function/nameless-dflt-params-trailing-comma.js new file mode 100644 index 0000000000000000000000000000000000000000..f19210db6c95f9a25203a4cdc33a380584104a6f --- /dev/null +++ b/test/language/expressions/async-function/nameless-dflt-params-trailing-comma.js @@ -0,0 +1,37 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-trailing-comma.case +// - src/function-forms/default/async-func-expr-nameless.template +/*--- +description: A trailing comma should not increase the respective length, using default parameters (async function nameless expression) +esid: sec-async-function-definitions +flags: [generated, async] +info: | + 14.6 Async Function Definitions + + AsyncFunctionExpression : + async function ( FormalParameters ) { AsyncFunctionBody } + + + Trailing comma in the parameters list + + 14.1 Function Definitions + + FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] , +---*/ + + +var callCount = 0; + +// Stores a reference `ref` for case evaluation +var ref; +ref = async function(a, b = 39,) { + assert.sameValue(a, 42); + assert.sameValue(b, 39); + callCount = callCount + 1; +}; + +ref(42, undefined, 1).then(() => { + assert.sameValue(callCount, 1, 'function invoked exactly once'); +}).then($DONE, $DONE); + +assert.sameValue(ref.length, 1, 'length is properly set'); diff --git a/test/language/expressions/async-function/nameless-params-trailing-comma-multiple.js b/test/language/expressions/async-function/nameless-params-trailing-comma-multiple.js new file mode 100644 index 0000000000000000000000000000000000000000..48e741e2590821856e569e4e5d17434fe4056c51 --- /dev/null +++ b/test/language/expressions/async-function/nameless-params-trailing-comma-multiple.js @@ -0,0 +1,37 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/params-trailing-comma-multiple.case +// - src/function-forms/default/async-func-expr-nameless.template +/*--- +description: A trailing comma should not increase the respective length, using multiple parameters (async function nameless expression) +esid: sec-async-function-definitions +flags: [generated, async] +info: | + 14.6 Async Function Definitions + + AsyncFunctionExpression : + async function ( FormalParameters ) { AsyncFunctionBody } + + + Trailing comma in the parameters list + + 14.1 Function Definitions + + FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] , +---*/ + + +var callCount = 0; + +// Stores a reference `ref` for case evaluation +var ref; +ref = async function(a, b,) { + assert.sameValue(a, 42); + assert.sameValue(b, 39); + callCount = callCount + 1; +}; + +ref(42, 39, 1).then(() => { + assert.sameValue(callCount, 1, 'function invoked exactly once'); +}).then($DONE, $DONE); + +assert.sameValue(ref.length, 2, 'length is properly set'); diff --git a/test/language/expressions/async-function/nameless-params-trailing-comma-single.js b/test/language/expressions/async-function/nameless-params-trailing-comma-single.js new file mode 100644 index 0000000000000000000000000000000000000000..07def87fd782acd2fd2b57b3c81c0da76481ad02 --- /dev/null +++ b/test/language/expressions/async-function/nameless-params-trailing-comma-single.js @@ -0,0 +1,36 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/params-trailing-comma-single.case +// - src/function-forms/default/async-func-expr-nameless.template +/*--- +description: A trailing comma should not increase the respective length, using a single parameter (async function nameless expression) +esid: sec-async-function-definitions +flags: [generated, async] +info: | + 14.6 Async Function Definitions + + AsyncFunctionExpression : + async function ( FormalParameters ) { AsyncFunctionBody } + + + Trailing comma in the parameters list + + 14.1 Function Definitions + + FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] , +---*/ + + +var callCount = 0; + +// Stores a reference `ref` for case evaluation +var ref; +ref = async function(a,) { + assert.sameValue(a, 42); + callCount = callCount + 1; +}; + +ref(42, 39).then(() => { + assert.sameValue(callCount, 1, 'function invoked exactly once'); +}).then($DONE, $DONE); + +assert.sameValue(ref.length, 1, 'length is properly set'); diff --git a/test/language/expressions/async-function/nameless-rest-params-trailing-comma-early-error.js b/test/language/expressions/async-function/nameless-rest-params-trailing-comma-early-error.js new file mode 100644 index 0000000000000000000000000000000000000000..a296afa076a9d26b20b102cebbb4035631bb076a --- /dev/null +++ b/test/language/expressions/async-function/nameless-rest-params-trailing-comma-early-error.js @@ -0,0 +1,32 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/rest-params-trailing-comma-early-error.case +// - src/function-forms/syntax/async-func-expr-nameless.template +/*--- +description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (async function nameless expression) +esid: sec-async-function-definitions +flags: [generated] +negative: + phase: early + type: SyntaxError +info: | + 14.6 Async Function Definitions + + AsyncFunctionExpression : + async function ( FormalParameters ) { AsyncFunctionBody } + + Trailing comma in the parameters list + + 14.1 Function Definitions + + FormalParameters[Yield, Await] : + [empty] + FunctionRestParameter[?Yield, ?Await] + FormalParameterList[?Yield, ?Await] + FormalParameterList[?Yield, ?Await] , + FormalParameterList[?Yield, ?Await] , FunctionRestParameter[?Yield, ?Await] +---*/ + + +(async function(...a,) { + +}); diff --git a/test/language/expressions/async-generator/args-trailing-comma-multiple.js b/test/language/expressions/async-generator/args-trailing-comma-multiple.js new file mode 100644 index 0000000000000000000000000000000000000000..e9c6dbee3f8761d71f52f1a7132f9f384357058d --- /dev/null +++ b/test/language/expressions/async-generator/args-trailing-comma-multiple.js @@ -0,0 +1,39 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/args-trailing-comma-multiple.case +// - src/arguments/default/async-gen-func-expr.template +/*--- +description: A trailing comma should not increase the arguments.length, using multiple args (async generator function expression) +esid: sec-asyncgenerator-definitions-evaluation +features: [async-iteration] +flags: [generated, async] +info: | + AsyncGeneratorExpression : async [no LineTerminator here] function * ( FormalParameters ) { + AsyncGeneratorBody } + + [...] + 3. Let closure be ! AsyncGeneratorFunctionCreate(Normal, FormalParameters, + AsyncGeneratorBody, scope, strict). + [...] + + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +// Stores a reference `ref` for case evaluation +var ref; +ref = async function*() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], 'TC39'); + callCount = callCount + 1; +}; + +ref(42, 'TC39',).next().then(() => { + assert.sameValue(callCount, 1, 'generator function invoked exactly once'); +}).then($DONE, $DONE); diff --git a/test/language/expressions/async-generator/args-trailing-comma-null.js b/test/language/expressions/async-generator/args-trailing-comma-null.js new file mode 100644 index 0000000000000000000000000000000000000000..855395b65465ff2d191c0fa8dc8d55912ec17e64 --- /dev/null +++ b/test/language/expressions/async-generator/args-trailing-comma-null.js @@ -0,0 +1,39 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/args-trailing-comma-null.case +// - src/arguments/default/async-gen-func-expr.template +/*--- +description: A trailing comma after null should not increase the arguments.length (async generator function expression) +esid: sec-asyncgenerator-definitions-evaluation +features: [async-iteration] +flags: [generated, async] +info: | + AsyncGeneratorExpression : async [no LineTerminator here] function * ( FormalParameters ) { + AsyncGeneratorBody } + + [...] + 3. Let closure be ! AsyncGeneratorFunctionCreate(Normal, FormalParameters, + AsyncGeneratorBody, scope, strict). + [...] + + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +// Stores a reference `ref` for case evaluation +var ref; +ref = async function*() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], null); + callCount = callCount + 1; +}; + +ref(42, null,).next().then(() => { + assert.sameValue(callCount, 1, 'generator function invoked exactly once'); +}).then($DONE, $DONE); diff --git a/test/language/expressions/async-generator/args-trailing-comma-single-args.js b/test/language/expressions/async-generator/args-trailing-comma-single-args.js new file mode 100644 index 0000000000000000000000000000000000000000..fdda70572a024bcc05323e02988e5807f85d65a1 --- /dev/null +++ b/test/language/expressions/async-generator/args-trailing-comma-single-args.js @@ -0,0 +1,38 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/args-trailing-comma-single-args.case +// - src/arguments/default/async-gen-func-expr.template +/*--- +description: A trailing comma should not increase the arguments.length, using a single arg (async generator function expression) +esid: sec-asyncgenerator-definitions-evaluation +features: [async-iteration] +flags: [generated, async] +info: | + AsyncGeneratorExpression : async [no LineTerminator here] function * ( FormalParameters ) { + AsyncGeneratorBody } + + [...] + 3. Let closure be ! AsyncGeneratorFunctionCreate(Normal, FormalParameters, + AsyncGeneratorBody, scope, strict). + [...] + + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +// Stores a reference `ref` for case evaluation +var ref; +ref = async function*() { + assert.sameValue(arguments.length, 1); + assert.sameValue(arguments[0], 42); + callCount = callCount + 1; +}; + +ref(42,).next().then(() => { + assert.sameValue(callCount, 1, 'generator function invoked exactly once'); +}).then($DONE, $DONE); diff --git a/test/language/expressions/async-generator/args-trailing-comma-undefined.js b/test/language/expressions/async-generator/args-trailing-comma-undefined.js new file mode 100644 index 0000000000000000000000000000000000000000..58692738102f54df9134f7e1f50381e94a6dca97 --- /dev/null +++ b/test/language/expressions/async-generator/args-trailing-comma-undefined.js @@ -0,0 +1,39 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/args-trailing-comma-undefined.case +// - src/arguments/default/async-gen-func-expr.template +/*--- +description: A trailing comma after undefined should not increase the arguments.length (async generator function expression) +esid: sec-asyncgenerator-definitions-evaluation +features: [async-iteration] +flags: [generated, async] +info: | + AsyncGeneratorExpression : async [no LineTerminator here] function * ( FormalParameters ) { + AsyncGeneratorBody } + + [...] + 3. Let closure be ! AsyncGeneratorFunctionCreate(Normal, FormalParameters, + AsyncGeneratorBody, scope, strict). + [...] + + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +// Stores a reference `ref` for case evaluation +var ref; +ref = async function*() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], undefined); + callCount = callCount + 1; +}; + +ref(42, undefined,).next().then(() => { + assert.sameValue(callCount, 1, 'generator function invoked exactly once'); +}).then($DONE, $DONE); diff --git a/test/language/expressions/async-generator/params-dflt-abrupt.js b/test/language/expressions/async-generator/dflt-params-abrupt.js similarity index 92% rename from test/language/expressions/async-generator/params-dflt-abrupt.js rename to test/language/expressions/async-generator/dflt-params-abrupt.js index 644cdce6e0f35b6e443951dad9f5b8b38638e4ab..3f27f746685796e5ffdd554c5f2a9b9f16581cab 100644 --- a/test/language/expressions/async-generator/params-dflt-abrupt.js +++ b/test/language/expressions/async-generator/dflt-params-abrupt.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-abrupt.case -// - src/params/error/async-gen-func-expr.template +// - src/function-forms/dflt-params-abrupt.case +// - src/function-forms/error/async-gen-func-expr.template /*--- description: Abrupt completion returned by evaluation of initializer (async generator function expression) esid: sec-asyncgenerator-definitions-evaluation diff --git a/test/language/expressions/async-generator/params-dflt-arg-val-not-undefined.js b/test/language/expressions/async-generator/dflt-params-arg-val-not-undefined.js similarity index 94% rename from test/language/expressions/async-generator/params-dflt-arg-val-not-undefined.js rename to test/language/expressions/async-generator/dflt-params-arg-val-not-undefined.js index 28c385083ed43f01239296ac9e04befcbc5b9da4..712be07ebb50a064aa28ab3859563ae017962f69 100644 --- a/test/language/expressions/async-generator/params-dflt-arg-val-not-undefined.js +++ b/test/language/expressions/async-generator/dflt-params-arg-val-not-undefined.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-arg-val-not-undefined.case -// - src/params/default/async-gen-func-expr.template +// - src/function-forms/dflt-params-arg-val-not-undefined.case +// - src/function-forms/default/async-gen-func-expr.template /*--- description: Use of intializer when argument value is not `undefined` (async generator function expression) esid: sec-asyncgenerator-definitions-evaluation diff --git a/test/language/expressions/async-generator/params-dflt-arg-val-undefined.js b/test/language/expressions/async-generator/dflt-params-arg-val-undefined.js similarity index 92% rename from test/language/expressions/async-generator/params-dflt-arg-val-undefined.js rename to test/language/expressions/async-generator/dflt-params-arg-val-undefined.js index 624160d65acf6f09999d35bf1d63f199814e731f..d9112e057f41e986f62d84b78ab4b3a798eaa5df 100644 --- a/test/language/expressions/async-generator/params-dflt-arg-val-undefined.js +++ b/test/language/expressions/async-generator/dflt-params-arg-val-undefined.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-arg-val-undefined.case -// - src/params/default/async-gen-func-expr.template +// - src/function-forms/dflt-params-arg-val-undefined.case +// - src/function-forms/default/async-gen-func-expr.template /*--- description: Use of intializer when argument value is `undefined` (async generator function expression) esid: sec-asyncgenerator-definitions-evaluation diff --git a/test/language/expressions/async-generator/params-dflt-duplicates.js b/test/language/expressions/async-generator/dflt-params-duplicates.js similarity index 90% rename from test/language/expressions/async-generator/params-dflt-duplicates.js rename to test/language/expressions/async-generator/dflt-params-duplicates.js index 745c94e254e67305d3fc81ee080ee2bf0f3dede4..98c19a6c06ccc6428c25ca887115fde51db4619c 100644 --- a/test/language/expressions/async-generator/params-dflt-duplicates.js +++ b/test/language/expressions/async-generator/dflt-params-duplicates.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-duplicates.case -// - src/params/syntax/async-gen-func-expr.template +// - src/function-forms/dflt-params-duplicates.case +// - src/function-forms/syntax/async-gen-func-expr.template /*--- description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (async generator function expression) esid: sec-asyncgenerator-definitions-evaluation diff --git a/test/language/expressions/async-generator/params-dflt-ref-later.js b/test/language/expressions/async-generator/dflt-params-ref-later.js similarity index 92% rename from test/language/expressions/async-generator/params-dflt-ref-later.js rename to test/language/expressions/async-generator/dflt-params-ref-later.js index c3d810701d788340f97ff0a9b24919c8495a8c5d..301e861d6930785cf947351bb7c5016aa041a505 100644 --- a/test/language/expressions/async-generator/params-dflt-ref-later.js +++ b/test/language/expressions/async-generator/dflt-params-ref-later.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-later.case -// - src/params/error/async-gen-func-expr.template +// - src/function-forms/dflt-params-ref-later.case +// - src/function-forms/error/async-gen-func-expr.template /*--- description: Referencing a parameter that occurs later in the ParameterList (async generator function expression) esid: sec-asyncgenerator-definitions-evaluation diff --git a/test/language/expressions/async-generator/params-dflt-ref-prior.js b/test/language/expressions/async-generator/dflt-params-ref-prior.js similarity index 93% rename from test/language/expressions/async-generator/params-dflt-ref-prior.js rename to test/language/expressions/async-generator/dflt-params-ref-prior.js index 04e4f2c7227934cd9972994596842d6ec48148a2..6200ab61801000de2a4c033354988b2b3158e3d1 100644 --- a/test/language/expressions/async-generator/params-dflt-ref-prior.js +++ b/test/language/expressions/async-generator/dflt-params-ref-prior.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-prior.case -// - src/params/default/async-gen-func-expr.template +// - src/function-forms/dflt-params-ref-prior.case +// - src/function-forms/default/async-gen-func-expr.template /*--- description: Referencing a parameter that occurs earlier in the ParameterList (async generator function expression) esid: sec-asyncgenerator-definitions-evaluation diff --git a/test/language/expressions/async-generator/params-dflt-ref-self.js b/test/language/expressions/async-generator/dflt-params-ref-self.js similarity index 92% rename from test/language/expressions/async-generator/params-dflt-ref-self.js rename to test/language/expressions/async-generator/dflt-params-ref-self.js index 99a971be1e8a29d0c32315cce883f3b2d77c7fd8..7cb0833ad0ba5432b0a893f0f73e93bf224495d8 100644 --- a/test/language/expressions/async-generator/params-dflt-ref-self.js +++ b/test/language/expressions/async-generator/dflt-params-ref-self.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-self.case -// - src/params/error/async-gen-func-expr.template +// - src/function-forms/dflt-params-ref-self.case +// - src/function-forms/error/async-gen-func-expr.template /*--- description: Referencing a parameter from within its own initializer (async generator function expression) esid: sec-asyncgenerator-definitions-evaluation diff --git a/test/language/expressions/async-generator/params-dflt-rest.js b/test/language/expressions/async-generator/dflt-params-rest.js similarity index 89% rename from test/language/expressions/async-generator/params-dflt-rest.js rename to test/language/expressions/async-generator/dflt-params-rest.js index 5ff97c42135bb69e478db720e5a6199e71b4f77c..949a609e443d430f7537b2cdabeb5bd82be3c3cc 100644 --- a/test/language/expressions/async-generator/params-dflt-rest.js +++ b/test/language/expressions/async-generator/dflt-params-rest.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-rest.case -// - src/params/syntax/async-gen-func-expr.template +// - src/function-forms/dflt-params-rest.case +// - src/function-forms/syntax/async-gen-func-expr.template /*--- description: RestParameter does not support an initializer (async generator function expression) esid: sec-asyncgenerator-definitions-evaluation diff --git a/test/language/expressions/async-generator/params-trailing-comma-dflt-param.js b/test/language/expressions/async-generator/dflt-params-trailing-comma.js similarity index 90% rename from test/language/expressions/async-generator/params-trailing-comma-dflt-param.js rename to test/language/expressions/async-generator/dflt-params-trailing-comma.js index e53a3d07161a28d97de3e011f98b7e083107a9ac..13b609f669eb2fe881597088bafb17235a5d3ee2 100644 --- a/test/language/expressions/async-generator/params-trailing-comma-dflt-param.js +++ b/test/language/expressions/async-generator/dflt-params-trailing-comma.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-dflt-param.case -// - src/params/default/async-gen-func-expr.template +// - src/function-forms/dflt-params-trailing-comma.case +// - src/function-forms/default/async-gen-func-expr.template /*--- description: A trailing comma should not increase the respective length, using default parameters (async generator function expression) esid: sec-asyncgenerator-definitions-evaluation diff --git a/test/language/expressions/async-generator/named-args-trailing-comma-multiple.js b/test/language/expressions/async-generator/named-args-trailing-comma-multiple.js new file mode 100644 index 0000000000000000000000000000000000000000..00dc217d68198966cabbdb43c73187ec656a94f9 --- /dev/null +++ b/test/language/expressions/async-generator/named-args-trailing-comma-multiple.js @@ -0,0 +1,39 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/args-trailing-comma-multiple.case +// - src/arguments/default/async-gen-named-func-expr.template +/*--- +description: A trailing comma should not increase the arguments.length, using multiple args (async generator named function expression) +esid: sec-asyncgenerator-definitions-evaluation +features: [async-iteration] +flags: [generated, async] +info: | + AsyncGeneratorExpression : async [no LineTerminator here] function * BindingIdentifier + ( FormalParameters ) { AsyncGeneratorBody } + + [...] + 7. Let closure be ! AsyncGeneratorFunctionCreate(Normal, FormalParameters, + AsyncGeneratorBody, funcEnv, strict). + [...] + + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +// Stores a reference `ref` for case evaluation +var ref; +ref = async function* g() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], 'TC39'); + callCount = callCount + 1; +}; + +ref(42, 'TC39',).next().then(() => { + assert.sameValue(callCount, 1, 'generator function invoked exactly once'); +}).then($DONE, $DONE); diff --git a/test/language/expressions/async-generator/named-args-trailing-comma-null.js b/test/language/expressions/async-generator/named-args-trailing-comma-null.js new file mode 100644 index 0000000000000000000000000000000000000000..f6f8ad42cac9a22292d610b607bc0d662628284e --- /dev/null +++ b/test/language/expressions/async-generator/named-args-trailing-comma-null.js @@ -0,0 +1,39 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/args-trailing-comma-null.case +// - src/arguments/default/async-gen-named-func-expr.template +/*--- +description: A trailing comma after null should not increase the arguments.length (async generator named function expression) +esid: sec-asyncgenerator-definitions-evaluation +features: [async-iteration] +flags: [generated, async] +info: | + AsyncGeneratorExpression : async [no LineTerminator here] function * BindingIdentifier + ( FormalParameters ) { AsyncGeneratorBody } + + [...] + 7. Let closure be ! AsyncGeneratorFunctionCreate(Normal, FormalParameters, + AsyncGeneratorBody, funcEnv, strict). + [...] + + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +// Stores a reference `ref` for case evaluation +var ref; +ref = async function* g() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], null); + callCount = callCount + 1; +}; + +ref(42, null,).next().then(() => { + assert.sameValue(callCount, 1, 'generator function invoked exactly once'); +}).then($DONE, $DONE); diff --git a/test/language/expressions/async-generator/named-args-trailing-comma-single-args.js b/test/language/expressions/async-generator/named-args-trailing-comma-single-args.js new file mode 100644 index 0000000000000000000000000000000000000000..9fd49fb9c219becf19fd27cabcfac2bed9f6f201 --- /dev/null +++ b/test/language/expressions/async-generator/named-args-trailing-comma-single-args.js @@ -0,0 +1,38 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/args-trailing-comma-single-args.case +// - src/arguments/default/async-gen-named-func-expr.template +/*--- +description: A trailing comma should not increase the arguments.length, using a single arg (async generator named function expression) +esid: sec-asyncgenerator-definitions-evaluation +features: [async-iteration] +flags: [generated, async] +info: | + AsyncGeneratorExpression : async [no LineTerminator here] function * BindingIdentifier + ( FormalParameters ) { AsyncGeneratorBody } + + [...] + 7. Let closure be ! AsyncGeneratorFunctionCreate(Normal, FormalParameters, + AsyncGeneratorBody, funcEnv, strict). + [...] + + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +// Stores a reference `ref` for case evaluation +var ref; +ref = async function* g() { + assert.sameValue(arguments.length, 1); + assert.sameValue(arguments[0], 42); + callCount = callCount + 1; +}; + +ref(42,).next().then(() => { + assert.sameValue(callCount, 1, 'generator function invoked exactly once'); +}).then($DONE, $DONE); diff --git a/test/language/expressions/async-generator/named-args-trailing-comma-undefined.js b/test/language/expressions/async-generator/named-args-trailing-comma-undefined.js new file mode 100644 index 0000000000000000000000000000000000000000..349642e230fe63780379ccd1b9af8426fa5fe4eb --- /dev/null +++ b/test/language/expressions/async-generator/named-args-trailing-comma-undefined.js @@ -0,0 +1,39 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/args-trailing-comma-undefined.case +// - src/arguments/default/async-gen-named-func-expr.template +/*--- +description: A trailing comma after undefined should not increase the arguments.length (async generator named function expression) +esid: sec-asyncgenerator-definitions-evaluation +features: [async-iteration] +flags: [generated, async] +info: | + AsyncGeneratorExpression : async [no LineTerminator here] function * BindingIdentifier + ( FormalParameters ) { AsyncGeneratorBody } + + [...] + 7. Let closure be ! AsyncGeneratorFunctionCreate(Normal, FormalParameters, + AsyncGeneratorBody, funcEnv, strict). + [...] + + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +// Stores a reference `ref` for case evaluation +var ref; +ref = async function* g() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], undefined); + callCount = callCount + 1; +}; + +ref(42, undefined,).next().then(() => { + assert.sameValue(callCount, 1, 'generator function invoked exactly once'); +}).then($DONE, $DONE); diff --git a/test/language/expressions/async-generator/params-named-dflt-abrupt.js b/test/language/expressions/async-generator/named-dflt-params-abrupt.js similarity index 92% rename from test/language/expressions/async-generator/params-named-dflt-abrupt.js rename to test/language/expressions/async-generator/named-dflt-params-abrupt.js index 6621d0bbc2cddae8b658584fdd42c1abe68267f9..96dff245b335e6c2e6c2a6cd564b44f8a22fe92d 100644 --- a/test/language/expressions/async-generator/params-named-dflt-abrupt.js +++ b/test/language/expressions/async-generator/named-dflt-params-abrupt.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-abrupt.case -// - src/params/error/async-gen-named-func-expr.template +// - src/function-forms/dflt-params-abrupt.case +// - src/function-forms/error/async-gen-named-func-expr.template /*--- description: Abrupt completion returned by evaluation of initializer (async generator named function expression) esid: sec-asyncgenerator-definitions-evaluation diff --git a/test/language/expressions/async-generator/params-named-dflt-arg-val-not-undefined.js b/test/language/expressions/async-generator/named-dflt-params-arg-val-not-undefined.js similarity index 94% rename from test/language/expressions/async-generator/params-named-dflt-arg-val-not-undefined.js rename to test/language/expressions/async-generator/named-dflt-params-arg-val-not-undefined.js index 608673ab905eaca9998a5046b47d0403d5dbf88b..7203d255a75ba4659d248d8dd0ba2b670f193c54 100644 --- a/test/language/expressions/async-generator/params-named-dflt-arg-val-not-undefined.js +++ b/test/language/expressions/async-generator/named-dflt-params-arg-val-not-undefined.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-arg-val-not-undefined.case -// - src/params/default/async-gen-named-func-expr.template +// - src/function-forms/dflt-params-arg-val-not-undefined.case +// - src/function-forms/default/async-gen-named-func-expr.template /*--- description: Use of intializer when argument value is not `undefined` (async generator named function expression) esid: sec-asyncgenerator-definitions-evaluation diff --git a/test/language/expressions/async-generator/params-named-dflt-arg-val-undefined.js b/test/language/expressions/async-generator/named-dflt-params-arg-val-undefined.js similarity index 92% rename from test/language/expressions/async-generator/params-named-dflt-arg-val-undefined.js rename to test/language/expressions/async-generator/named-dflt-params-arg-val-undefined.js index 22789874fd67d441eed63d03b0270c48e8b92abd..ac2fb37f94a40b4b72567fc75d2c8bb75a254a65 100644 --- a/test/language/expressions/async-generator/params-named-dflt-arg-val-undefined.js +++ b/test/language/expressions/async-generator/named-dflt-params-arg-val-undefined.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-arg-val-undefined.case -// - src/params/default/async-gen-named-func-expr.template +// - src/function-forms/dflt-params-arg-val-undefined.case +// - src/function-forms/default/async-gen-named-func-expr.template /*--- description: Use of intializer when argument value is `undefined` (async generator named function expression) esid: sec-asyncgenerator-definitions-evaluation diff --git a/test/language/expressions/async-generator/params-named-dflt-duplicates.js b/test/language/expressions/async-generator/named-dflt-params-duplicates.js similarity index 90% rename from test/language/expressions/async-generator/params-named-dflt-duplicates.js rename to test/language/expressions/async-generator/named-dflt-params-duplicates.js index 65e95019c768914f168b327dee7ea354dfee912f..610d7f6f046230c97bc54e1d1e13ff46b8cfdb96 100644 --- a/test/language/expressions/async-generator/params-named-dflt-duplicates.js +++ b/test/language/expressions/async-generator/named-dflt-params-duplicates.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-duplicates.case -// - src/params/syntax/async-gen-named-func-expr.template +// - src/function-forms/dflt-params-duplicates.case +// - src/function-forms/syntax/async-gen-named-func-expr.template /*--- description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (async generator named function expression) esid: sec-asyncgenerator-definitions-evaluation diff --git a/test/language/expressions/async-generator/params-named-dflt-ref-later.js b/test/language/expressions/async-generator/named-dflt-params-ref-later.js similarity index 91% rename from test/language/expressions/async-generator/params-named-dflt-ref-later.js rename to test/language/expressions/async-generator/named-dflt-params-ref-later.js index 2306d9ab0d012d5a1535506a677425aa98208f2d..77513032f8e3e2ff63f540537f80f4db42de67c4 100644 --- a/test/language/expressions/async-generator/params-named-dflt-ref-later.js +++ b/test/language/expressions/async-generator/named-dflt-params-ref-later.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-later.case -// - src/params/error/async-gen-named-func-expr.template +// - src/function-forms/dflt-params-ref-later.case +// - src/function-forms/error/async-gen-named-func-expr.template /*--- description: Referencing a parameter that occurs later in the ParameterList (async generator named function expression) esid: sec-asyncgenerator-definitions-evaluation diff --git a/test/language/expressions/async-generator/params-named-dflt-ref-prior.js b/test/language/expressions/async-generator/named-dflt-params-ref-prior.js similarity index 92% rename from test/language/expressions/async-generator/params-named-dflt-ref-prior.js rename to test/language/expressions/async-generator/named-dflt-params-ref-prior.js index 668346f84a159d2ae698148030a8c33f142d784d..8965eadc575aa74df50cf42dbb5c5e7e49d71529 100644 --- a/test/language/expressions/async-generator/params-named-dflt-ref-prior.js +++ b/test/language/expressions/async-generator/named-dflt-params-ref-prior.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-prior.case -// - src/params/default/async-gen-named-func-expr.template +// - src/function-forms/dflt-params-ref-prior.case +// - src/function-forms/default/async-gen-named-func-expr.template /*--- description: Referencing a parameter that occurs earlier in the ParameterList (async generator named function expression) esid: sec-asyncgenerator-definitions-evaluation diff --git a/test/language/expressions/async-generator/params-named-dflt-ref-self.js b/test/language/expressions/async-generator/named-dflt-params-ref-self.js similarity index 91% rename from test/language/expressions/async-generator/params-named-dflt-ref-self.js rename to test/language/expressions/async-generator/named-dflt-params-ref-self.js index 0696d5de01379fb8815b7f0937ad30ba733a4717..519d3f284d16833801ab455cd748f8e440c2c500 100644 --- a/test/language/expressions/async-generator/params-named-dflt-ref-self.js +++ b/test/language/expressions/async-generator/named-dflt-params-ref-self.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-self.case -// - src/params/error/async-gen-named-func-expr.template +// - src/function-forms/dflt-params-ref-self.case +// - src/function-forms/error/async-gen-named-func-expr.template /*--- description: Referencing a parameter from within its own initializer (async generator named function expression) esid: sec-asyncgenerator-definitions-evaluation diff --git a/test/language/expressions/async-generator/params-named-dflt-rest.js b/test/language/expressions/async-generator/named-dflt-params-rest.js similarity index 89% rename from test/language/expressions/async-generator/params-named-dflt-rest.js rename to test/language/expressions/async-generator/named-dflt-params-rest.js index 8881488df7ce486c0138d81965969e7381b32650..53908d36d83a2c76c39dba393f3e07282fb9d777 100644 --- a/test/language/expressions/async-generator/params-named-dflt-rest.js +++ b/test/language/expressions/async-generator/named-dflt-params-rest.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-rest.case -// - src/params/syntax/async-gen-named-func-expr.template +// - src/function-forms/dflt-params-rest.case +// - src/function-forms/syntax/async-gen-named-func-expr.template /*--- description: RestParameter does not support an initializer (async generator named function expression) esid: sec-asyncgenerator-definitions-evaluation diff --git a/test/language/expressions/async-generator/params-named-trailing-comma-dflt-param.js b/test/language/expressions/async-generator/named-dflt-params-trailing-comma.js similarity index 90% rename from test/language/expressions/async-generator/params-named-trailing-comma-dflt-param.js rename to test/language/expressions/async-generator/named-dflt-params-trailing-comma.js index 602d72e7131e42032e19218f6cb737e7d1c1b552..ad024be5dfe7b99e966feb80ecd12d2ccf7566c3 100644 --- a/test/language/expressions/async-generator/params-named-trailing-comma-dflt-param.js +++ b/test/language/expressions/async-generator/named-dflt-params-trailing-comma.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-dflt-param.case -// - src/params/default/async-gen-named-func-expr.template +// - src/function-forms/dflt-params-trailing-comma.case +// - src/function-forms/default/async-gen-named-func-expr.template /*--- description: A trailing comma should not increase the respective length, using default parameters (async generator named function expression) esid: sec-asyncgenerator-definitions-evaluation diff --git a/test/language/expressions/async-generator/params-named-trailing-comma-multiple-param.js b/test/language/expressions/async-generator/named-params-trailing-comma-multiple.js similarity index 90% rename from test/language/expressions/async-generator/params-named-trailing-comma-multiple-param.js rename to test/language/expressions/async-generator/named-params-trailing-comma-multiple.js index f33913bce0b503f10c809cfcc7de738c17077977..aac5a3bd74da06ba1ceee3bae1b9fdba41c8527a 100644 --- a/test/language/expressions/async-generator/params-named-trailing-comma-multiple-param.js +++ b/test/language/expressions/async-generator/named-params-trailing-comma-multiple.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-multiple-param.case -// - src/params/default/async-gen-named-func-expr.template +// - src/function-forms/params-trailing-comma-multiple.case +// - src/function-forms/default/async-gen-named-func-expr.template /*--- description: A trailing comma should not increase the respective length, using multiple parameters (async generator named function expression) esid: sec-asyncgenerator-definitions-evaluation diff --git a/test/language/expressions/async-generator/params-named-trailing-comma-single-param.js b/test/language/expressions/async-generator/named-params-trailing-comma-single.js similarity index 90% rename from test/language/expressions/async-generator/params-named-trailing-comma-single-param.js rename to test/language/expressions/async-generator/named-params-trailing-comma-single.js index 15265b64744a7a7f8177ddb0e12ddcb79a80eab4..592a0a090ce25546268a23a86e499144bd97c7e8 100644 --- a/test/language/expressions/async-generator/params-named-trailing-comma-single-param.js +++ b/test/language/expressions/async-generator/named-params-trailing-comma-single.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-single-param.case -// - src/params/default/async-gen-named-func-expr.template +// - src/function-forms/params-trailing-comma-single.case +// - src/function-forms/default/async-gen-named-func-expr.template /*--- description: A trailing comma should not increase the respective length, using a single parameter (async generator named function expression) esid: sec-asyncgenerator-definitions-evaluation diff --git a/test/language/expressions/async-generator/params-named-trailing-comma-rest-early-error.js b/test/language/expressions/async-generator/named-rest-params-trailing-comma-early-error.js similarity index 88% rename from test/language/expressions/async-generator/params-named-trailing-comma-rest-early-error.js rename to test/language/expressions/async-generator/named-rest-params-trailing-comma-early-error.js index 93ea1b70998f06f63d8248f6c840aca6bc8e2fa9..8a8f80557d4ff2ceb501d76dc50e42a90c509174 100644 --- a/test/language/expressions/async-generator/params-named-trailing-comma-rest-early-error.js +++ b/test/language/expressions/async-generator/named-rest-params-trailing-comma-early-error.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-rest-early-error.case -// - src/params/syntax/async-gen-named-func-expr.template +// - src/function-forms/rest-params-trailing-comma-early-error.case +// - src/function-forms/syntax/async-gen-named-func-expr.template /*--- description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (async generator named function expression) esid: sec-asyncgenerator-definitions-evaluation diff --git a/test/language/expressions/async-generator/params-trailing-comma-multiple-param.js b/test/language/expressions/async-generator/params-trailing-comma-multiple.js similarity index 90% rename from test/language/expressions/async-generator/params-trailing-comma-multiple-param.js rename to test/language/expressions/async-generator/params-trailing-comma-multiple.js index c325742537989bbb78daee9b5e122f2b7b9fa653..5c246d77c01a610dcdb551b28032eca4f950f410 100644 --- a/test/language/expressions/async-generator/params-trailing-comma-multiple-param.js +++ b/test/language/expressions/async-generator/params-trailing-comma-multiple.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-multiple-param.case -// - src/params/default/async-gen-func-expr.template +// - src/function-forms/params-trailing-comma-multiple.case +// - src/function-forms/default/async-gen-func-expr.template /*--- description: A trailing comma should not increase the respective length, using multiple parameters (async generator function expression) esid: sec-asyncgenerator-definitions-evaluation diff --git a/test/language/expressions/async-generator/params-trailing-comma-single-param.js b/test/language/expressions/async-generator/params-trailing-comma-single.js similarity index 90% rename from test/language/expressions/async-generator/params-trailing-comma-single-param.js rename to test/language/expressions/async-generator/params-trailing-comma-single.js index af9b709eedee1440fcad6eff84fc481912c58610..891dfb3169a863350d17eb62916b88260f272091 100644 --- a/test/language/expressions/async-generator/params-trailing-comma-single-param.js +++ b/test/language/expressions/async-generator/params-trailing-comma-single.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-single-param.case -// - src/params/default/async-gen-func-expr.template +// - src/function-forms/params-trailing-comma-single.case +// - src/function-forms/default/async-gen-func-expr.template /*--- description: A trailing comma should not increase the respective length, using a single parameter (async generator function expression) esid: sec-asyncgenerator-definitions-evaluation diff --git a/test/language/expressions/async-generator/params-trailing-comma-rest-early-error.js b/test/language/expressions/async-generator/rest-params-trailing-comma-early-error.js similarity index 88% rename from test/language/expressions/async-generator/params-trailing-comma-rest-early-error.js rename to test/language/expressions/async-generator/rest-params-trailing-comma-early-error.js index 3b8f40d3359503e9f7d866efa89a3aa24582ff07..fc6f8f7ffae8202985f85db239de41fc3492fef9 100644 --- a/test/language/expressions/async-generator/params-trailing-comma-rest-early-error.js +++ b/test/language/expressions/async-generator/rest-params-trailing-comma-early-error.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-rest-early-error.case -// - src/params/syntax/async-gen-func-expr.template +// - src/function-forms/rest-params-trailing-comma-early-error.case +// - src/function-forms/syntax/async-gen-func-expr.template /*--- description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (async generator function expression) esid: sec-asyncgenerator-definitions-evaluation diff --git a/test/language/expressions/class/async-gen-meth-args-trailing-comma-multiple.js b/test/language/expressions/class/async-gen-meth-args-trailing-comma-multiple.js new file mode 100644 index 0000000000000000000000000000000000000000..f1b4d919ea36e5228ef8f1aa1a44ec128d661250 --- /dev/null +++ b/test/language/expressions/class/async-gen-meth-args-trailing-comma-multiple.js @@ -0,0 +1,67 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/args-trailing-comma-multiple.case +// - src/arguments/default/cls-expr-async-gen-meth.template +/*--- +description: A trailing comma should not increase the arguments.length, using multiple args (class expression async generator method) +esid: sec-class-definitions-runtime-semantics-evaluation +features: [async-iteration] +flags: [generated, async] +info: | + ClassExpression : class BindingIdentifieropt ClassTail + + 1. If BindingIdentifieropt is not present, let className be undefined. + 2. Else, let className be StringValue of BindingIdentifier. + 3. Let value be the result of ClassDefinitionEvaluation of ClassTail + with argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + i. Let status be the result of performing + PropertyDefinitionEvaluation for m with arguments proto and + false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncGeneratorMethod : + async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) + { AsyncGeneratorBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true. + Otherwise let strict be false. + 4. Let scope be the running execution context's LexicalEnvironment. + 5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters, + AsyncGeneratorBody, scope, strict). + [...] + + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +var C = class { + async *method() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], 'TC39'); + callCount = callCount + 1; + } +}; + +// Stores a reference `ref` for case evaluation +var ref = C.prototype.method; + +ref(42, 'TC39',).next().then(() => { + assert.sameValue(callCount, 1, 'method invoked exactly once'); +}).then($DONE, $DONE); + diff --git a/test/language/expressions/class/async-gen-meth-args-trailing-comma-null.js b/test/language/expressions/class/async-gen-meth-args-trailing-comma-null.js new file mode 100644 index 0000000000000000000000000000000000000000..017d66fda8c2e543bbcca97c2093fa198de3c98f --- /dev/null +++ b/test/language/expressions/class/async-gen-meth-args-trailing-comma-null.js @@ -0,0 +1,67 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/args-trailing-comma-null.case +// - src/arguments/default/cls-expr-async-gen-meth.template +/*--- +description: A trailing comma after null should not increase the arguments.length (class expression async generator method) +esid: sec-class-definitions-runtime-semantics-evaluation +features: [async-iteration] +flags: [generated, async] +info: | + ClassExpression : class BindingIdentifieropt ClassTail + + 1. If BindingIdentifieropt is not present, let className be undefined. + 2. Else, let className be StringValue of BindingIdentifier. + 3. Let value be the result of ClassDefinitionEvaluation of ClassTail + with argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + i. Let status be the result of performing + PropertyDefinitionEvaluation for m with arguments proto and + false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncGeneratorMethod : + async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) + { AsyncGeneratorBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true. + Otherwise let strict be false. + 4. Let scope be the running execution context's LexicalEnvironment. + 5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters, + AsyncGeneratorBody, scope, strict). + [...] + + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +var C = class { + async *method() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], null); + callCount = callCount + 1; + } +}; + +// Stores a reference `ref` for case evaluation +var ref = C.prototype.method; + +ref(42, null,).next().then(() => { + assert.sameValue(callCount, 1, 'method invoked exactly once'); +}).then($DONE, $DONE); + diff --git a/test/language/expressions/class/async-gen-meth-args-trailing-comma-single-args.js b/test/language/expressions/class/async-gen-meth-args-trailing-comma-single-args.js new file mode 100644 index 0000000000000000000000000000000000000000..788ece51caf4e5f6645c8673d08344bdefae5ea6 --- /dev/null +++ b/test/language/expressions/class/async-gen-meth-args-trailing-comma-single-args.js @@ -0,0 +1,66 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/args-trailing-comma-single-args.case +// - src/arguments/default/cls-expr-async-gen-meth.template +/*--- +description: A trailing comma should not increase the arguments.length, using a single arg (class expression async generator method) +esid: sec-class-definitions-runtime-semantics-evaluation +features: [async-iteration] +flags: [generated, async] +info: | + ClassExpression : class BindingIdentifieropt ClassTail + + 1. If BindingIdentifieropt is not present, let className be undefined. + 2. Else, let className be StringValue of BindingIdentifier. + 3. Let value be the result of ClassDefinitionEvaluation of ClassTail + with argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + i. Let status be the result of performing + PropertyDefinitionEvaluation for m with arguments proto and + false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncGeneratorMethod : + async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) + { AsyncGeneratorBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true. + Otherwise let strict be false. + 4. Let scope be the running execution context's LexicalEnvironment. + 5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters, + AsyncGeneratorBody, scope, strict). + [...] + + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +var C = class { + async *method() { + assert.sameValue(arguments.length, 1); + assert.sameValue(arguments[0], 42); + callCount = callCount + 1; + } +}; + +// Stores a reference `ref` for case evaluation +var ref = C.prototype.method; + +ref(42,).next().then(() => { + assert.sameValue(callCount, 1, 'method invoked exactly once'); +}).then($DONE, $DONE); + diff --git a/test/language/expressions/class/async-gen-meth-args-trailing-comma-undefined.js b/test/language/expressions/class/async-gen-meth-args-trailing-comma-undefined.js new file mode 100644 index 0000000000000000000000000000000000000000..da98971f979e941ee169ef2cdba812545d050a0b --- /dev/null +++ b/test/language/expressions/class/async-gen-meth-args-trailing-comma-undefined.js @@ -0,0 +1,67 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/args-trailing-comma-undefined.case +// - src/arguments/default/cls-expr-async-gen-meth.template +/*--- +description: A trailing comma after undefined should not increase the arguments.length (class expression async generator method) +esid: sec-class-definitions-runtime-semantics-evaluation +features: [async-iteration] +flags: [generated, async] +info: | + ClassExpression : class BindingIdentifieropt ClassTail + + 1. If BindingIdentifieropt is not present, let className be undefined. + 2. Else, let className be StringValue of BindingIdentifier. + 3. Let value be the result of ClassDefinitionEvaluation of ClassTail + with argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + i. Let status be the result of performing + PropertyDefinitionEvaluation for m with arguments proto and + false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncGeneratorMethod : + async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) + { AsyncGeneratorBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true. + Otherwise let strict be false. + 4. Let scope be the running execution context's LexicalEnvironment. + 5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters, + AsyncGeneratorBody, scope, strict). + [...] + + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +var C = class { + async *method() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], undefined); + callCount = callCount + 1; + } +}; + +// Stores a reference `ref` for case evaluation +var ref = C.prototype.method; + +ref(42, undefined,).next().then(() => { + assert.sameValue(callCount, 1, 'method invoked exactly once'); +}).then($DONE, $DONE); + diff --git a/test/language/expressions/class/params-async-gen-meth-dflt-abrupt.js b/test/language/expressions/class/async-gen-meth-dflt-params-abrupt.js similarity index 96% rename from test/language/expressions/class/params-async-gen-meth-dflt-abrupt.js rename to test/language/expressions/class/async-gen-meth-dflt-params-abrupt.js index 7122c9c52cfa5e32baeb263154aa7c465730fc5a..fe0b2fe683eeed0d2f18ecff57d59baac22d7610 100644 --- a/test/language/expressions/class/params-async-gen-meth-dflt-abrupt.js +++ b/test/language/expressions/class/async-gen-meth-dflt-params-abrupt.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-abrupt.case -// - src/params/error/cls-expr-async-gen-meth.template +// - src/function-forms/dflt-params-abrupt.case +// - src/function-forms/error/cls-expr-async-gen-meth.template /*--- description: Abrupt completion returned by evaluation of initializer (class expression async generator method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-async-gen-meth-dflt-arg-val-not-undefined.js b/test/language/expressions/class/async-gen-meth-dflt-params-arg-val-not-undefined.js similarity index 96% rename from test/language/expressions/class/params-async-gen-meth-dflt-arg-val-not-undefined.js rename to test/language/expressions/class/async-gen-meth-dflt-params-arg-val-not-undefined.js index 665d7cbdb2f91d922adcb23ec1d597de90f990dc..cb41e01eefce66917cdd7a1bca1470658696ec92 100644 --- a/test/language/expressions/class/params-async-gen-meth-dflt-arg-val-not-undefined.js +++ b/test/language/expressions/class/async-gen-meth-dflt-params-arg-val-not-undefined.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-arg-val-not-undefined.case -// - src/params/default/cls-expr-async-gen-meth.template +// - src/function-forms/dflt-params-arg-val-not-undefined.case +// - src/function-forms/default/cls-expr-async-gen-meth.template /*--- description: Use of intializer when argument value is not `undefined` (class expression async generator method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-async-gen-meth-dflt-arg-val-undefined.js b/test/language/expressions/class/async-gen-meth-dflt-params-arg-val-undefined.js similarity index 95% rename from test/language/expressions/class/params-async-gen-meth-dflt-arg-val-undefined.js rename to test/language/expressions/class/async-gen-meth-dflt-params-arg-val-undefined.js index cdfc8994bfbd47077bea314e6699da62d012ea60..89e11b59a510cce37c4e9b268463bb39ba150241 100644 --- a/test/language/expressions/class/params-async-gen-meth-dflt-arg-val-undefined.js +++ b/test/language/expressions/class/async-gen-meth-dflt-params-arg-val-undefined.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-arg-val-undefined.case -// - src/params/default/cls-expr-async-gen-meth.template +// - src/function-forms/dflt-params-arg-val-undefined.case +// - src/function-forms/default/cls-expr-async-gen-meth.template /*--- description: Use of intializer when argument value is `undefined` (class expression async generator method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-async-gen-meth-dflt-duplicates.js b/test/language/expressions/class/async-gen-meth-dflt-params-duplicates.js similarity index 94% rename from test/language/expressions/class/params-async-gen-meth-dflt-duplicates.js rename to test/language/expressions/class/async-gen-meth-dflt-params-duplicates.js index 3c5f065eb2bd580be88c7a713957e3c82f8327c4..e06bc841e50f1e74d95b6039d3d50a09c9ff8f23 100644 --- a/test/language/expressions/class/params-async-gen-meth-dflt-duplicates.js +++ b/test/language/expressions/class/async-gen-meth-dflt-params-duplicates.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-duplicates.case -// - src/params/syntax/cls-expr-async-gen-meth.template +// - src/function-forms/dflt-params-duplicates.case +// - src/function-forms/syntax/cls-expr-async-gen-meth.template /*--- description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (class expression async generator method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-async-gen-meth-dflt-ref-later.js b/test/language/expressions/class/async-gen-meth-dflt-params-ref-later.js similarity index 96% rename from test/language/expressions/class/params-async-gen-meth-dflt-ref-later.js rename to test/language/expressions/class/async-gen-meth-dflt-params-ref-later.js index ee0356ce441f623093bca17b1a62adc8b669fe8a..b71c7f8fad745eafdb83a29bc21f86c8472abbc7 100644 --- a/test/language/expressions/class/params-async-gen-meth-dflt-ref-later.js +++ b/test/language/expressions/class/async-gen-meth-dflt-params-ref-later.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-later.case -// - src/params/error/cls-expr-async-gen-meth.template +// - src/function-forms/dflt-params-ref-later.case +// - src/function-forms/error/cls-expr-async-gen-meth.template /*--- description: Referencing a parameter that occurs later in the ParameterList (class expression async generator method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-async-gen-meth-dflt-ref-prior.js b/test/language/expressions/class/async-gen-meth-dflt-params-ref-prior.js similarity index 95% rename from test/language/expressions/class/params-async-gen-meth-dflt-ref-prior.js rename to test/language/expressions/class/async-gen-meth-dflt-params-ref-prior.js index f1d724f9d3c42312a4bdd7e60612b13abe3b91e7..fc461de65c3c20563bd157db86af59540e24b988 100644 --- a/test/language/expressions/class/params-async-gen-meth-dflt-ref-prior.js +++ b/test/language/expressions/class/async-gen-meth-dflt-params-ref-prior.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-prior.case -// - src/params/default/cls-expr-async-gen-meth.template +// - src/function-forms/dflt-params-ref-prior.case +// - src/function-forms/default/cls-expr-async-gen-meth.template /*--- description: Referencing a parameter that occurs earlier in the ParameterList (class expression async generator method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-async-gen-meth-dflt-ref-self.js b/test/language/expressions/class/async-gen-meth-dflt-params-ref-self.js similarity index 96% rename from test/language/expressions/class/params-async-gen-meth-dflt-ref-self.js rename to test/language/expressions/class/async-gen-meth-dflt-params-ref-self.js index 424deef887f4968ad84fb126f9647be0cf928942..c6d20769494d2d3a634c0d10c79ccb2a583809dc 100644 --- a/test/language/expressions/class/params-async-gen-meth-dflt-ref-self.js +++ b/test/language/expressions/class/async-gen-meth-dflt-params-ref-self.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-self.case -// - src/params/error/cls-expr-async-gen-meth.template +// - src/function-forms/dflt-params-ref-self.case +// - src/function-forms/error/cls-expr-async-gen-meth.template /*--- description: Referencing a parameter from within its own initializer (class expression async generator method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-async-gen-meth-dflt-rest.js b/test/language/expressions/class/async-gen-meth-dflt-params-rest.js similarity index 94% rename from test/language/expressions/class/params-async-gen-meth-dflt-rest.js rename to test/language/expressions/class/async-gen-meth-dflt-params-rest.js index 2b9dcc31ed86468aa9c1c0d518f1d5b818135ff1..7f75839710cbb04533656dbc7fa7f13b74594728 100644 --- a/test/language/expressions/class/params-async-gen-meth-dflt-rest.js +++ b/test/language/expressions/class/async-gen-meth-dflt-params-rest.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-rest.case -// - src/params/syntax/cls-expr-async-gen-meth.template +// - src/function-forms/dflt-params-rest.case +// - src/function-forms/syntax/cls-expr-async-gen-meth.template /*--- description: RestParameter does not support an initializer (class expression async generator method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-async-gen-meth-trailing-comma-dflt-param.js b/test/language/expressions/class/async-gen-meth-dflt-params-trailing-comma.js similarity index 94% rename from test/language/expressions/class/params-async-gen-meth-trailing-comma-dflt-param.js rename to test/language/expressions/class/async-gen-meth-dflt-params-trailing-comma.js index 669df9d070f0c5728b6689c5be1059ce5c3f1fcc..0b11e8badb02b08d2f4913d0592b6ce89b1e2ec5 100644 --- a/test/language/expressions/class/params-async-gen-meth-trailing-comma-dflt-param.js +++ b/test/language/expressions/class/async-gen-meth-dflt-params-trailing-comma.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-dflt-param.case -// - src/params/default/cls-expr-async-gen-meth.template +// - src/function-forms/dflt-params-trailing-comma.case +// - src/function-forms/default/cls-expr-async-gen-meth.template /*--- description: A trailing comma should not increase the respective length, using default parameters (class expression async generator method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-async-gen-meth-trailing-comma-multiple-param.js b/test/language/expressions/class/async-gen-meth-params-trailing-comma-multiple.js similarity index 94% rename from test/language/expressions/class/params-async-gen-meth-trailing-comma-multiple-param.js rename to test/language/expressions/class/async-gen-meth-params-trailing-comma-multiple.js index e1d934b9914baf4372a85ee7bf4d76a812a5e9a5..2f6c2b2e54e971decf81f28ca8e2a9053f538622 100644 --- a/test/language/expressions/class/params-async-gen-meth-trailing-comma-multiple-param.js +++ b/test/language/expressions/class/async-gen-meth-params-trailing-comma-multiple.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-multiple-param.case -// - src/params/default/cls-expr-async-gen-meth.template +// - src/function-forms/params-trailing-comma-multiple.case +// - src/function-forms/default/cls-expr-async-gen-meth.template /*--- description: A trailing comma should not increase the respective length, using multiple parameters (class expression async generator method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-async-gen-meth-trailing-comma-single-param.js b/test/language/expressions/class/async-gen-meth-params-trailing-comma-single.js similarity index 94% rename from test/language/expressions/class/params-async-gen-meth-trailing-comma-single-param.js rename to test/language/expressions/class/async-gen-meth-params-trailing-comma-single.js index 4e930a0bbd271e7bf7a0bc167a2d0a10c755106b..7e9950d05d47536f34435ab2b28be58cddd6da7f 100644 --- a/test/language/expressions/class/params-async-gen-meth-trailing-comma-single-param.js +++ b/test/language/expressions/class/async-gen-meth-params-trailing-comma-single.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-single-param.case -// - src/params/default/cls-expr-async-gen-meth.template +// - src/function-forms/params-trailing-comma-single.case +// - src/function-forms/default/cls-expr-async-gen-meth.template /*--- description: A trailing comma should not increase the respective length, using a single parameter (class expression async generator method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-async-gen-meth-trailing-comma-rest-early-error.js b/test/language/expressions/class/async-gen-meth-rest-params-trailing-comma-early-error.js similarity index 93% rename from test/language/expressions/class/params-async-gen-meth-trailing-comma-rest-early-error.js rename to test/language/expressions/class/async-gen-meth-rest-params-trailing-comma-early-error.js index 122bd17adff402da6103ed53d6b43169e6294880..07c784ebee623f4917186870b73aa647517dd92a 100644 --- a/test/language/expressions/class/params-async-gen-meth-trailing-comma-rest-early-error.js +++ b/test/language/expressions/class/async-gen-meth-rest-params-trailing-comma-early-error.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-rest-early-error.case -// - src/params/syntax/cls-expr-async-gen-meth.template +// - src/function-forms/rest-params-trailing-comma-early-error.case +// - src/function-forms/syntax/cls-expr-async-gen-meth.template /*--- description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (class expression async generator method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/async-gen-meth-static-args-trailing-comma-multiple.js b/test/language/expressions/class/async-gen-meth-static-args-trailing-comma-multiple.js new file mode 100644 index 0000000000000000000000000000000000000000..5cf7bfcd835d5d21caefe06516915da09fdaa526 --- /dev/null +++ b/test/language/expressions/class/async-gen-meth-static-args-trailing-comma-multiple.js @@ -0,0 +1,66 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/args-trailing-comma-multiple.case +// - src/arguments/default/cls-expr-async-gen-meth-static.template +/*--- +description: A trailing comma should not increase the arguments.length, using multiple args (static class expression async generator method) +esid: sec-class-definitions-runtime-semantics-evaluation +features: [async-iteration] +flags: [generated, async] +info: | + ClassExpression : class BindingIdentifieropt ClassTail + + 1. If BindingIdentifieropt is not present, let className be undefined. + 2. Else, let className be StringValue of BindingIdentifier. + 3. Let value be the result of ClassDefinitionEvaluation of ClassTail + with argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + b. Else, + Let status be the result of performing PropertyDefinitionEvaluation + for m with arguments F and false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncGeneratorMethod : + async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) + { AsyncGeneratorBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true. + Otherwise let strict be false. + 4. Let scope be the running execution context's LexicalEnvironment. + 5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters, + AsyncGeneratorBody, scope, strict). + [...] + + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +var C = class { + static async *method() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], 'TC39'); + callCount = callCount + 1; + } +}; + +// Stores a reference `ref` for case evaluation +var ref = C.method; + +ref(42, 'TC39',).next().then(() => { + assert.sameValue(callCount, 1, 'method invoked exactly once'); +}).then($DONE, $DONE); diff --git a/test/language/expressions/class/async-gen-meth-static-args-trailing-comma-null.js b/test/language/expressions/class/async-gen-meth-static-args-trailing-comma-null.js new file mode 100644 index 0000000000000000000000000000000000000000..d8bf42cdbfb5e7363127372331e6547f1f7808b8 --- /dev/null +++ b/test/language/expressions/class/async-gen-meth-static-args-trailing-comma-null.js @@ -0,0 +1,66 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/args-trailing-comma-null.case +// - src/arguments/default/cls-expr-async-gen-meth-static.template +/*--- +description: A trailing comma after null should not increase the arguments.length (static class expression async generator method) +esid: sec-class-definitions-runtime-semantics-evaluation +features: [async-iteration] +flags: [generated, async] +info: | + ClassExpression : class BindingIdentifieropt ClassTail + + 1. If BindingIdentifieropt is not present, let className be undefined. + 2. Else, let className be StringValue of BindingIdentifier. + 3. Let value be the result of ClassDefinitionEvaluation of ClassTail + with argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + b. Else, + Let status be the result of performing PropertyDefinitionEvaluation + for m with arguments F and false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncGeneratorMethod : + async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) + { AsyncGeneratorBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true. + Otherwise let strict be false. + 4. Let scope be the running execution context's LexicalEnvironment. + 5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters, + AsyncGeneratorBody, scope, strict). + [...] + + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +var C = class { + static async *method() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], null); + callCount = callCount + 1; + } +}; + +// Stores a reference `ref` for case evaluation +var ref = C.method; + +ref(42, null,).next().then(() => { + assert.sameValue(callCount, 1, 'method invoked exactly once'); +}).then($DONE, $DONE); diff --git a/test/language/expressions/class/async-gen-meth-static-args-trailing-comma-single-args.js b/test/language/expressions/class/async-gen-meth-static-args-trailing-comma-single-args.js new file mode 100644 index 0000000000000000000000000000000000000000..afa2552bb309a3a3af8bd755faf40811ffb2e8a1 --- /dev/null +++ b/test/language/expressions/class/async-gen-meth-static-args-trailing-comma-single-args.js @@ -0,0 +1,65 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/args-trailing-comma-single-args.case +// - src/arguments/default/cls-expr-async-gen-meth-static.template +/*--- +description: A trailing comma should not increase the arguments.length, using a single arg (static class expression async generator method) +esid: sec-class-definitions-runtime-semantics-evaluation +features: [async-iteration] +flags: [generated, async] +info: | + ClassExpression : class BindingIdentifieropt ClassTail + + 1. If BindingIdentifieropt is not present, let className be undefined. + 2. Else, let className be StringValue of BindingIdentifier. + 3. Let value be the result of ClassDefinitionEvaluation of ClassTail + with argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + b. Else, + Let status be the result of performing PropertyDefinitionEvaluation + for m with arguments F and false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncGeneratorMethod : + async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) + { AsyncGeneratorBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true. + Otherwise let strict be false. + 4. Let scope be the running execution context's LexicalEnvironment. + 5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters, + AsyncGeneratorBody, scope, strict). + [...] + + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +var C = class { + static async *method() { + assert.sameValue(arguments.length, 1); + assert.sameValue(arguments[0], 42); + callCount = callCount + 1; + } +}; + +// Stores a reference `ref` for case evaluation +var ref = C.method; + +ref(42,).next().then(() => { + assert.sameValue(callCount, 1, 'method invoked exactly once'); +}).then($DONE, $DONE); diff --git a/test/language/expressions/class/async-gen-meth-static-args-trailing-comma-undefined.js b/test/language/expressions/class/async-gen-meth-static-args-trailing-comma-undefined.js new file mode 100644 index 0000000000000000000000000000000000000000..d058cc877f00c72dba4480cb245a974ed1c68fbe --- /dev/null +++ b/test/language/expressions/class/async-gen-meth-static-args-trailing-comma-undefined.js @@ -0,0 +1,66 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/args-trailing-comma-undefined.case +// - src/arguments/default/cls-expr-async-gen-meth-static.template +/*--- +description: A trailing comma after undefined should not increase the arguments.length (static class expression async generator method) +esid: sec-class-definitions-runtime-semantics-evaluation +features: [async-iteration] +flags: [generated, async] +info: | + ClassExpression : class BindingIdentifieropt ClassTail + + 1. If BindingIdentifieropt is not present, let className be undefined. + 2. Else, let className be StringValue of BindingIdentifier. + 3. Let value be the result of ClassDefinitionEvaluation of ClassTail + with argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + b. Else, + Let status be the result of performing PropertyDefinitionEvaluation + for m with arguments F and false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncGeneratorMethod : + async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) + { AsyncGeneratorBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true. + Otherwise let strict be false. + 4. Let scope be the running execution context's LexicalEnvironment. + 5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters, + AsyncGeneratorBody, scope, strict). + [...] + + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +var C = class { + static async *method() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], undefined); + callCount = callCount + 1; + } +}; + +// Stores a reference `ref` for case evaluation +var ref = C.method; + +ref(42, undefined,).next().then(() => { + assert.sameValue(callCount, 1, 'method invoked exactly once'); +}).then($DONE, $DONE); diff --git a/test/language/expressions/class/params-async-gen-meth-static-dflt-abrupt.js b/test/language/expressions/class/async-gen-meth-static-dflt-params-abrupt.js similarity index 95% rename from test/language/expressions/class/params-async-gen-meth-static-dflt-abrupt.js rename to test/language/expressions/class/async-gen-meth-static-dflt-params-abrupt.js index 6f31e8c0c38c9bc980da556d2e24b6ec17f4a0d4..cf1aa87631f49c348959f362e770ce97ce18eeb3 100644 --- a/test/language/expressions/class/params-async-gen-meth-static-dflt-abrupt.js +++ b/test/language/expressions/class/async-gen-meth-static-dflt-params-abrupt.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-abrupt.case -// - src/params/error/cls-expr-async-gen-meth-static.template +// - src/function-forms/dflt-params-abrupt.case +// - src/function-forms/error/cls-expr-async-gen-meth-static.template /*--- description: Abrupt completion returned by evaluation of initializer (static class expression async generator method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-async-gen-meth-static-dflt-arg-val-not-undefined.js b/test/language/expressions/class/async-gen-meth-static-dflt-params-arg-val-not-undefined.js similarity index 95% rename from test/language/expressions/class/params-async-gen-meth-static-dflt-arg-val-not-undefined.js rename to test/language/expressions/class/async-gen-meth-static-dflt-params-arg-val-not-undefined.js index c26d1c825636ae813a7f004fdc73aca9f73d1070..3a77e88fc2b521c8ce3deb70ae24d6560cd52f6f 100644 --- a/test/language/expressions/class/params-async-gen-meth-static-dflt-arg-val-not-undefined.js +++ b/test/language/expressions/class/async-gen-meth-static-dflt-params-arg-val-not-undefined.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-arg-val-not-undefined.case -// - src/params/default/cls-expr-async-gen-meth-static.template +// - src/function-forms/dflt-params-arg-val-not-undefined.case +// - src/function-forms/default/cls-expr-async-gen-meth-static.template /*--- description: Use of intializer when argument value is not `undefined` (static class expression async generator method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-async-gen-meth-static-dflt-arg-val-undefined.js b/test/language/expressions/class/async-gen-meth-static-dflt-params-arg-val-undefined.js similarity index 94% rename from test/language/expressions/class/params-async-gen-meth-static-dflt-arg-val-undefined.js rename to test/language/expressions/class/async-gen-meth-static-dflt-params-arg-val-undefined.js index f216136fc50d4ac5c52020adc3965863026aad83..8bc41710b1f990a2899414b592a44e2113713b54 100644 --- a/test/language/expressions/class/params-async-gen-meth-static-dflt-arg-val-undefined.js +++ b/test/language/expressions/class/async-gen-meth-static-dflt-params-arg-val-undefined.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-arg-val-undefined.case -// - src/params/default/cls-expr-async-gen-meth-static.template +// - src/function-forms/dflt-params-arg-val-undefined.case +// - src/function-forms/default/cls-expr-async-gen-meth-static.template /*--- description: Use of intializer when argument value is `undefined` (static class expression async generator method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-async-gen-meth-static-dflt-duplicates.js b/test/language/expressions/class/async-gen-meth-static-dflt-params-duplicates.js similarity index 94% rename from test/language/expressions/class/params-async-gen-meth-static-dflt-duplicates.js rename to test/language/expressions/class/async-gen-meth-static-dflt-params-duplicates.js index 20acf1b9eb8b62fb0d80e33994e0acce218ed998..1a7fa9bdaafb046cb1a28e98c1ab17f132f48728 100644 --- a/test/language/expressions/class/params-async-gen-meth-static-dflt-duplicates.js +++ b/test/language/expressions/class/async-gen-meth-static-dflt-params-duplicates.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-duplicates.case -// - src/params/syntax/cls-expr-async-gen-meth-static.template +// - src/function-forms/dflt-params-duplicates.case +// - src/function-forms/syntax/cls-expr-async-gen-meth-static.template /*--- description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (static class expression async generator method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-async-gen-meth-static-dflt-ref-later.js b/test/language/expressions/class/async-gen-meth-static-dflt-params-ref-later.js similarity index 94% rename from test/language/expressions/class/params-async-gen-meth-static-dflt-ref-later.js rename to test/language/expressions/class/async-gen-meth-static-dflt-params-ref-later.js index 77eeca850215df90221441443683d2a83383ec43..9c44a4307167a617e069e2e565c982c356924774 100644 --- a/test/language/expressions/class/params-async-gen-meth-static-dflt-ref-later.js +++ b/test/language/expressions/class/async-gen-meth-static-dflt-params-ref-later.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-later.case -// - src/params/error/cls-expr-async-gen-meth-static.template +// - src/function-forms/dflt-params-ref-later.case +// - src/function-forms/error/cls-expr-async-gen-meth-static.template /*--- description: Referencing a parameter that occurs later in the ParameterList (static class expression async generator method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-async-gen-meth-static-dflt-ref-prior.js b/test/language/expressions/class/async-gen-meth-static-dflt-params-ref-prior.js similarity index 95% rename from test/language/expressions/class/params-async-gen-meth-static-dflt-ref-prior.js rename to test/language/expressions/class/async-gen-meth-static-dflt-params-ref-prior.js index c9a61d935ce343c79c6577a8fcdbc5458796278e..65b302e355f03cf3508a3cb253dd0fa6826567c3 100644 --- a/test/language/expressions/class/params-async-gen-meth-static-dflt-ref-prior.js +++ b/test/language/expressions/class/async-gen-meth-static-dflt-params-ref-prior.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-prior.case -// - src/params/default/cls-expr-async-gen-meth-static.template +// - src/function-forms/dflt-params-ref-prior.case +// - src/function-forms/default/cls-expr-async-gen-meth-static.template /*--- description: Referencing a parameter that occurs earlier in the ParameterList (static class expression async generator method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-async-gen-meth-static-dflt-ref-self.js b/test/language/expressions/class/async-gen-meth-static-dflt-params-ref-self.js similarity index 95% rename from test/language/expressions/class/params-async-gen-meth-static-dflt-ref-self.js rename to test/language/expressions/class/async-gen-meth-static-dflt-params-ref-self.js index 6f116fb083e05ac3831c5f1a04667ceae288e9ee..3e47505fbf4a3bde22970ebe9da1693c60e32baa 100644 --- a/test/language/expressions/class/params-async-gen-meth-static-dflt-ref-self.js +++ b/test/language/expressions/class/async-gen-meth-static-dflt-params-ref-self.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-self.case -// - src/params/error/cls-expr-async-gen-meth-static.template +// - src/function-forms/dflt-params-ref-self.case +// - src/function-forms/error/cls-expr-async-gen-meth-static.template /*--- description: Referencing a parameter from within its own initializer (static class expression async generator method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-async-gen-meth-static-dflt-rest.js b/test/language/expressions/class/async-gen-meth-static-dflt-params-rest.js similarity index 94% rename from test/language/expressions/class/params-async-gen-meth-static-dflt-rest.js rename to test/language/expressions/class/async-gen-meth-static-dflt-params-rest.js index e54d23842368f14d6c1186547ac776d03a0fcdd1..1945fbc1676d473e22f64d3214a2c052cf6253aa 100644 --- a/test/language/expressions/class/params-async-gen-meth-static-dflt-rest.js +++ b/test/language/expressions/class/async-gen-meth-static-dflt-params-rest.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-rest.case -// - src/params/syntax/cls-expr-async-gen-meth-static.template +// - src/function-forms/dflt-params-rest.case +// - src/function-forms/syntax/cls-expr-async-gen-meth-static.template /*--- description: RestParameter does not support an initializer (static class expression async generator method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-async-gen-meth-static-trailing-comma-dflt-param.js b/test/language/expressions/class/async-gen-meth-static-dflt-params-trailing-comma.js similarity index 94% rename from test/language/expressions/class/params-async-gen-meth-static-trailing-comma-dflt-param.js rename to test/language/expressions/class/async-gen-meth-static-dflt-params-trailing-comma.js index 50d50b430e0a0c8672b24d81ee63b034289101d0..511db6c2986de319b635858e02f7a1da4dd9cab4 100644 --- a/test/language/expressions/class/params-async-gen-meth-static-trailing-comma-dflt-param.js +++ b/test/language/expressions/class/async-gen-meth-static-dflt-params-trailing-comma.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-dflt-param.case -// - src/params/default/cls-expr-async-gen-meth-static.template +// - src/function-forms/dflt-params-trailing-comma.case +// - src/function-forms/default/cls-expr-async-gen-meth-static.template /*--- description: A trailing comma should not increase the respective length, using default parameters (static class expression async generator method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-async-gen-meth-static-trailing-comma-multiple-param.js b/test/language/expressions/class/async-gen-meth-static-params-trailing-comma-multiple.js similarity index 94% rename from test/language/expressions/class/params-async-gen-meth-static-trailing-comma-multiple-param.js rename to test/language/expressions/class/async-gen-meth-static-params-trailing-comma-multiple.js index 84fb378d983e3e4d26939fe6857390bd0cc6b640..326dfe367e2905c46aee6125b3c93bf66e9e98f8 100644 --- a/test/language/expressions/class/params-async-gen-meth-static-trailing-comma-multiple-param.js +++ b/test/language/expressions/class/async-gen-meth-static-params-trailing-comma-multiple.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-multiple-param.case -// - src/params/default/cls-expr-async-gen-meth-static.template +// - src/function-forms/params-trailing-comma-multiple.case +// - src/function-forms/default/cls-expr-async-gen-meth-static.template /*--- description: A trailing comma should not increase the respective length, using multiple parameters (static class expression async generator method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-async-gen-meth-static-trailing-comma-single-param.js b/test/language/expressions/class/async-gen-meth-static-params-trailing-comma-single.js similarity index 94% rename from test/language/expressions/class/params-async-gen-meth-static-trailing-comma-single-param.js rename to test/language/expressions/class/async-gen-meth-static-params-trailing-comma-single.js index caa2600511bbf2cc5217eeb8f350b7bb72594ca4..1234b19cbd08a5f6320c76ffabb510780cfab334 100644 --- a/test/language/expressions/class/params-async-gen-meth-static-trailing-comma-single-param.js +++ b/test/language/expressions/class/async-gen-meth-static-params-trailing-comma-single.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-single-param.case -// - src/params/default/cls-expr-async-gen-meth-static.template +// - src/function-forms/params-trailing-comma-single.case +// - src/function-forms/default/cls-expr-async-gen-meth-static.template /*--- description: A trailing comma should not increase the respective length, using a single parameter (static class expression async generator method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-async-gen-meth-static-trailing-comma-rest-early-error.js b/test/language/expressions/class/async-gen-meth-static-rest-params-trailing-comma-early-error.js similarity index 93% rename from test/language/expressions/class/params-async-gen-meth-static-trailing-comma-rest-early-error.js rename to test/language/expressions/class/async-gen-meth-static-rest-params-trailing-comma-early-error.js index 9e58c0e5800297a46a788b5f76d26b91e27179a2..972297221ea213d62145d6699a4e0cb8a9f09b83 100644 --- a/test/language/expressions/class/params-async-gen-meth-static-trailing-comma-rest-early-error.js +++ b/test/language/expressions/class/async-gen-meth-static-rest-params-trailing-comma-early-error.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-rest-early-error.case -// - src/params/syntax/cls-expr-async-gen-meth-static.template +// - src/function-forms/rest-params-trailing-comma-early-error.case +// - src/function-forms/syntax/cls-expr-async-gen-meth-static.template /*--- description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (static class expression async generator method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/async-meth-dflt-params-abrupt.js b/test/language/expressions/class/async-meth-dflt-params-abrupt.js new file mode 100644 index 0000000000000000000000000000000000000000..3d022ae7eb269148b5bdf7d5cd1f33f9053570f2 --- /dev/null +++ b/test/language/expressions/class/async-meth-dflt-params-abrupt.js @@ -0,0 +1,69 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-abrupt.case +// - src/function-forms/error/cls-expr-async-meth.template +/*--- +description: Abrupt completion returned by evaluation of initializer (class expression async method) +esid: sec-class-definitions-runtime-semantics-evaluation +features: [default-parameters] +flags: [generated, async] +info: | + ClassExpression : class BindingIdentifieropt ClassTail + + 1. If BindingIdentifieropt is not present, let className be undefined. + 2. Else, let className be StringValue of BindingIdentifier. + 3. Let value be the result of ClassDefinitionEvaluation of ClassTail + with argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + i. Let status be the result of performing + PropertyDefinitionEvaluation for m with arguments proto and + false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + 1. Let status be the result of performing IteratorBindingInitialization for + FormalsList using iteratorRecord and environment as the arguments. + 2. ReturnIfAbrupt(status). + 3. Return the result of performing IteratorBindingInitialization for + FormalParameter using iteratorRecord and environment as the arguments. + +---*/ + + +var callCount = 0; +var C = class { + async method(_ = (function() { throw new Test262Error(); }())) { + + callCount = callCount + 1; + } +}; + +C.prototype.method() + .then(_ => { + throw new Test262Error('function should not be resolved'); + }, error => assert.sameValue(error.constructor, Test262Error)) + .then(() => { + assert.sameValue(callCount, 0, 'function body is not evaluated'); + }, $DONE) + .then($DONE, $DONE); diff --git a/test/language/expressions/class/async-meth-dflt-params-arg-val-not-undefined.js b/test/language/expressions/class/async-meth-dflt-params-arg-val-not-undefined.js new file mode 100644 index 0000000000000000000000000000000000000000..c5cbc33936fd383f4aa3283928240199ab929f0f --- /dev/null +++ b/test/language/expressions/class/async-meth-dflt-params-arg-val-not-undefined.js @@ -0,0 +1,89 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-arg-val-not-undefined.case +// - src/function-forms/default/cls-expr-async-meth.template +/*--- +description: Use of intializer when argument value is not `undefined` (class expression async method) +esid: sec-class-definitions-runtime-semantics-evaluation +features: [default-parameters] +flags: [generated, async] +info: | + ClassExpression : class BindingIdentifieropt ClassTail + + 1. If BindingIdentifieropt is not present, let className be undefined. + 2. Else, let className be StringValue of BindingIdentifier. + 3. Let value be the result of ClassDefinitionEvaluation of ClassTail + with argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + i. Let status be the result of performing + PropertyDefinitionEvaluation for m with arguments proto and + false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + [...] + 23. Let iteratorRecord be Record {[[Iterator]]: + CreateListIterator(argumentsList), [[Done]]: false}. + 24. If hasDuplicates is true, then + [...] + 25. Else, + a. Perform ? IteratorBindingInitialization for formals with + iteratorRecord and env as arguments. + [...] + +---*/ +var obj = {}; +var falseCount = 0; +var stringCount = 0; +var nanCount = 0; +var zeroCount = 0; +var nullCount = 0; +var objCount = 0; + +var callCount = 0; +var C = class { + async method(aFalse = falseCount +=1, aString = stringCount += 1, aNaN = nanCount += 1, a0 = zeroCount += 1, aNull = nullCount += 1, aObj = objCount +=1) { + assert.sameValue(aFalse, false); + assert.sameValue(aString, ''); + assert.sameValue(aNaN, NaN); + assert.sameValue(a0, 0); + assert.sameValue(aNull, null); + assert.sameValue(aObj, obj); + callCount = callCount + 1; + } +} + +// Stores a reference `ref` for case evaluation +var ref = C.prototype.method; + +ref(false, '', NaN, 0, null, obj).then(() => { + assert.sameValue(callCount, 1, 'method invoked exactly once'); +}).then($DONE, $DONE); + +assert.sameValue(falseCount, 0, 'initializer not evaluated: false'); +assert.sameValue(stringCount, 0, 'initializer not evaluated: string'); +assert.sameValue(nanCount, 0, 'initializer not evaluated: NaN'); +assert.sameValue(zeroCount, 0, 'initializer not evaluated: 0'); +assert.sameValue(nullCount, 0, 'initializer not evaluated: null'); +assert.sameValue(objCount, 0, 'initializer not evaluated: object'); diff --git a/test/language/expressions/class/async-meth-dflt-params-arg-val-undefined.js b/test/language/expressions/class/async-meth-dflt-params-arg-val-undefined.js new file mode 100644 index 0000000000000000000000000000000000000000..5671ac7f8fe0ba92b8e10152e8b2f6e0f1f3cfc8 --- /dev/null +++ b/test/language/expressions/class/async-meth-dflt-params-arg-val-undefined.js @@ -0,0 +1,72 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-arg-val-undefined.case +// - src/function-forms/default/cls-expr-async-meth.template +/*--- +description: Use of intializer when argument value is `undefined` (class expression async method) +esid: sec-class-definitions-runtime-semantics-evaluation +features: [default-parameters] +flags: [generated, async] +info: | + ClassExpression : class BindingIdentifieropt ClassTail + + 1. If BindingIdentifieropt is not present, let className be undefined. + 2. Else, let className be StringValue of BindingIdentifier. + 3. Let value be the result of ClassDefinitionEvaluation of ClassTail + with argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + i. Let status be the result of performing + PropertyDefinitionEvaluation for m with arguments proto and + false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + [...] + 23. Let iteratorRecord be Record {[[Iterator]]: + CreateListIterator(argumentsList), [[Done]]: false}. + 24. If hasDuplicates is true, then + [...] + 25. Else, + a. Perform ? IteratorBindingInitialization for formals with + iteratorRecord and env as arguments. + [...] + +---*/ + +var callCount = 0; +var C = class { + async method(fromLiteral = 23, fromExpr = 45, fromHole = 99) { + assert.sameValue(fromLiteral, 23); + assert.sameValue(fromExpr, 45); + assert.sameValue(fromHole, 99); + callCount = callCount + 1; + } +} + +// Stores a reference `ref` for case evaluation +var ref = C.prototype.method; + +ref(undefined, void 0).then(() => { + assert.sameValue(callCount, 1, 'method invoked exactly once'); +}).then($DONE, $DONE); diff --git a/test/language/expressions/class/async-meth-dflt-params-duplicates.js b/test/language/expressions/class/async-meth-dflt-params-duplicates.js new file mode 100644 index 0000000000000000000000000000000000000000..8c1bb59aefb31983744bb4ba933cbcf320b15fd0 --- /dev/null +++ b/test/language/expressions/class/async-meth-dflt-params-duplicates.js @@ -0,0 +1,63 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-duplicates.case +// - src/function-forms/syntax/cls-expr-async-meth.template +/*--- +description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (class expression async method) +esid: sec-class-definitions-runtime-semantics-evaluation +features: [default-parameters] +flags: [generated] +negative: + phase: early + type: SyntaxError +info: | + ClassExpression : class BindingIdentifieropt ClassTail + + 1. If BindingIdentifieropt is not present, let className be undefined. + 2. Else, let className be StringValue of BindingIdentifier. + 3. Let value be the result of ClassDefinitionEvaluation of ClassTail + with argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + i. Let status be the result of performing + PropertyDefinitionEvaluation for m with arguments proto and + false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] + + + 14.1.2 Static Semantics: Early Errors + + StrictFormalParameters : FormalParameters + + - It is a Syntax Error if BoundNames of FormalParameters contains any + duplicate elements. + + FormalParameters : FormalParameterList + + - It is a Syntax Error if IsSimpleParameterList of FormalParameterList is + false and BoundNames of FormalParameterList contains any duplicate + elements. + +---*/ + +var C = class { + static async method(x = 0, x) { + + } +}; diff --git a/test/language/expressions/class/async-meth-dflt-params-ref-later.js b/test/language/expressions/class/async-meth-dflt-params-ref-later.js new file mode 100644 index 0000000000000000000000000000000000000000..d0e8d3885b28bdc8d7421d5f6b3bc7890cfb63ef --- /dev/null +++ b/test/language/expressions/class/async-meth-dflt-params-ref-later.js @@ -0,0 +1,70 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-ref-later.case +// - src/function-forms/error/cls-expr-async-meth.template +/*--- +description: Referencing a parameter that occurs later in the ParameterList (class expression async method) +esid: sec-class-definitions-runtime-semantics-evaluation +features: [default-parameters] +flags: [generated, async] +info: | + ClassExpression : class BindingIdentifieropt ClassTail + + 1. If BindingIdentifieropt is not present, let className be undefined. + 2. Else, let className be StringValue of BindingIdentifier. + 3. Let value be the result of ClassDefinitionEvaluation of ClassTail + with argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + i. Let status be the result of performing + PropertyDefinitionEvaluation for m with arguments proto and + false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + 1. Let status be the result of performing IteratorBindingInitialization for + FormalsList using iteratorRecord and environment as the arguments. + 2. ReturnIfAbrupt(status). + 3. Return the result of performing IteratorBindingInitialization for + FormalParameter using iteratorRecord and environment as the arguments. + +---*/ +var x = 0; + + +var callCount = 0; +var C = class { + async method(x = y, y) { + + callCount = callCount + 1; + } +}; + +C.prototype.method() + .then(_ => { + throw new Test262Error('function should not be resolved'); + }, error => assert.sameValue(error.constructor, ReferenceError)) + .then(() => { + assert.sameValue(callCount, 0, 'function body is not evaluated'); + }, $DONE) + .then($DONE, $DONE); diff --git a/test/language/expressions/class/async-meth-dflt-params-ref-prior.js b/test/language/expressions/class/async-meth-dflt-params-ref-prior.js new file mode 100644 index 0000000000000000000000000000000000000000..bc3daf029ea69c88968b8b5050b01db2c23de295 --- /dev/null +++ b/test/language/expressions/class/async-meth-dflt-params-ref-prior.js @@ -0,0 +1,69 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-ref-prior.case +// - src/function-forms/default/cls-expr-async-meth.template +/*--- +description: Referencing a parameter that occurs earlier in the ParameterList (class expression async method) +esid: sec-class-definitions-runtime-semantics-evaluation +features: [default-parameters] +flags: [generated, async] +info: | + ClassExpression : class BindingIdentifieropt ClassTail + + 1. If BindingIdentifieropt is not present, let className be undefined. + 2. Else, let className be StringValue of BindingIdentifier. + 3. Let value be the result of ClassDefinitionEvaluation of ClassTail + with argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + i. Let status be the result of performing + PropertyDefinitionEvaluation for m with arguments proto and + false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + 1. Let status be the result of performing IteratorBindingInitialization for + FormalsList using iteratorRecord and environment as the arguments. + 2. ReturnIfAbrupt(status). + 3. Return the result of performing IteratorBindingInitialization for + FormalParameter using iteratorRecord and environment as the arguments. + +---*/ +var x = 0; + +var callCount = 0; +var C = class { + async method(x, y = x, z = y) { + assert.sameValue(x, 3, 'first argument value'); + assert.sameValue(y, 3, 'second argument value'); + assert.sameValue(z, 3, 'third argument value'); + callCount = callCount + 1; + } +} + +// Stores a reference `ref` for case evaluation +var ref = C.prototype.method; + +ref(3).then(() => { + assert.sameValue(callCount, 1, 'method invoked exactly once'); +}).then($DONE, $DONE); diff --git a/test/language/expressions/class/async-meth-dflt-params-ref-self.js b/test/language/expressions/class/async-meth-dflt-params-ref-self.js new file mode 100644 index 0000000000000000000000000000000000000000..7610efb1c40d9029fb26bda39337dcc1f77032f3 --- /dev/null +++ b/test/language/expressions/class/async-meth-dflt-params-ref-self.js @@ -0,0 +1,70 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-ref-self.case +// - src/function-forms/error/cls-expr-async-meth.template +/*--- +description: Referencing a parameter from within its own initializer (class expression async method) +esid: sec-class-definitions-runtime-semantics-evaluation +features: [default-parameters] +flags: [generated, async] +info: | + ClassExpression : class BindingIdentifieropt ClassTail + + 1. If BindingIdentifieropt is not present, let className be undefined. + 2. Else, let className be StringValue of BindingIdentifier. + 3. Let value be the result of ClassDefinitionEvaluation of ClassTail + with argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + i. Let status be the result of performing + PropertyDefinitionEvaluation for m with arguments proto and + false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + 1. Let status be the result of performing IteratorBindingInitialization for + FormalsList using iteratorRecord and environment as the arguments. + 2. ReturnIfAbrupt(status). + 3. Return the result of performing IteratorBindingInitialization for + FormalParameter using iteratorRecord and environment as the arguments. + +---*/ +var x = 0; + + +var callCount = 0; +var C = class { + async method(x = x) { + + callCount = callCount + 1; + } +}; + +C.prototype.method() + .then(_ => { + throw new Test262Error('function should not be resolved'); + }, error => assert.sameValue(error.constructor, ReferenceError)) + .then(() => { + assert.sameValue(callCount, 0, 'function body is not evaluated'); + }, $DONE) + .then($DONE, $DONE); diff --git a/test/language/expressions/class/async-meth-dflt-params-rest.js b/test/language/expressions/class/async-meth-dflt-params-rest.js new file mode 100644 index 0000000000000000000000000000000000000000..adaaf724bfaef1e4b6ed7d4ef012cf603c23d885 --- /dev/null +++ b/test/language/expressions/class/async-meth-dflt-params-rest.js @@ -0,0 +1,67 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-rest.case +// - src/function-forms/syntax/cls-expr-async-meth.template +/*--- +description: RestParameter does not support an initializer (class expression async method) +esid: sec-class-definitions-runtime-semantics-evaluation +features: [default-parameters] +flags: [generated] +negative: + phase: early + type: SyntaxError +info: | + ClassExpression : class BindingIdentifieropt ClassTail + + 1. If BindingIdentifieropt is not present, let className be undefined. + 2. Else, let className be StringValue of BindingIdentifier. + 3. Let value be the result of ClassDefinitionEvaluation of ClassTail + with argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + i. Let status be the result of performing + PropertyDefinitionEvaluation for m with arguments proto and + false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] + + + 14.1 Function Definitions + + Syntax + + FunctionRestParameter[Yield] : + + BindingRestElement[?Yield] + + 13.3.3 Destructuring Binding Patterns + + Syntax + + BindingRestElement[Yield] : + + ...BindingIdentifier[?Yield] + ...BindingPattern[?Yield] + +---*/ + +var C = class { + static async method(...x = []) { + + } +}; diff --git a/test/language/expressions/class/async-meth-dflt-params-trailing-comma.js b/test/language/expressions/class/async-meth-dflt-params-trailing-comma.js new file mode 100644 index 0000000000000000000000000000000000000000..1b2564966255b4604b63aa93ca14b8dd43c2fed7 --- /dev/null +++ b/test/language/expressions/class/async-meth-dflt-params-trailing-comma.js @@ -0,0 +1,63 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-trailing-comma.case +// - src/function-forms/default/cls-expr-async-meth.template +/*--- +description: A trailing comma should not increase the respective length, using default parameters (class expression async method) +esid: sec-class-definitions-runtime-semantics-evaluation +flags: [generated, async] +info: | + ClassExpression : class BindingIdentifieropt ClassTail + + 1. If BindingIdentifieropt is not present, let className be undefined. + 2. Else, let className be StringValue of BindingIdentifier. + 3. Let value be the result of ClassDefinitionEvaluation of ClassTail + with argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + i. Let status be the result of performing + PropertyDefinitionEvaluation for m with arguments proto and + false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] + + + Trailing comma in the parameters list + + 14.1 Function Definitions + + FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] , +---*/ + +var callCount = 0; +var C = class { + async method(a, b = 39,) { + assert.sameValue(a, 42); + assert.sameValue(b, 39); + callCount = callCount + 1; + } +} + +// Stores a reference `ref` for case evaluation +var ref = C.prototype.method; + +ref(42, undefined, 1).then(() => { + assert.sameValue(callCount, 1, 'method invoked exactly once'); +}).then($DONE, $DONE); + +assert.sameValue(ref.length, 1, 'length is properly set'); diff --git a/test/language/expressions/class/async-meth-params-trailing-comma-multiple.js b/test/language/expressions/class/async-meth-params-trailing-comma-multiple.js new file mode 100644 index 0000000000000000000000000000000000000000..12f3375a8d5bf6744219b7311bf86412de7faf74 --- /dev/null +++ b/test/language/expressions/class/async-meth-params-trailing-comma-multiple.js @@ -0,0 +1,63 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/params-trailing-comma-multiple.case +// - src/function-forms/default/cls-expr-async-meth.template +/*--- +description: A trailing comma should not increase the respective length, using multiple parameters (class expression async method) +esid: sec-class-definitions-runtime-semantics-evaluation +flags: [generated, async] +info: | + ClassExpression : class BindingIdentifieropt ClassTail + + 1. If BindingIdentifieropt is not present, let className be undefined. + 2. Else, let className be StringValue of BindingIdentifier. + 3. Let value be the result of ClassDefinitionEvaluation of ClassTail + with argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + i. Let status be the result of performing + PropertyDefinitionEvaluation for m with arguments proto and + false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] + + + Trailing comma in the parameters list + + 14.1 Function Definitions + + FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] , +---*/ + +var callCount = 0; +var C = class { + async method(a, b,) { + assert.sameValue(a, 42); + assert.sameValue(b, 39); + callCount = callCount + 1; + } +} + +// Stores a reference `ref` for case evaluation +var ref = C.prototype.method; + +ref(42, 39, 1).then(() => { + assert.sameValue(callCount, 1, 'method invoked exactly once'); +}).then($DONE, $DONE); + +assert.sameValue(ref.length, 2, 'length is properly set'); diff --git a/test/language/expressions/class/async-meth-params-trailing-comma-single.js b/test/language/expressions/class/async-meth-params-trailing-comma-single.js new file mode 100644 index 0000000000000000000000000000000000000000..b3db8e16e918a4b4b01628cd9b32d0e1281a1075 --- /dev/null +++ b/test/language/expressions/class/async-meth-params-trailing-comma-single.js @@ -0,0 +1,62 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/params-trailing-comma-single.case +// - src/function-forms/default/cls-expr-async-meth.template +/*--- +description: A trailing comma should not increase the respective length, using a single parameter (class expression async method) +esid: sec-class-definitions-runtime-semantics-evaluation +flags: [generated, async] +info: | + ClassExpression : class BindingIdentifieropt ClassTail + + 1. If BindingIdentifieropt is not present, let className be undefined. + 2. Else, let className be StringValue of BindingIdentifier. + 3. Let value be the result of ClassDefinitionEvaluation of ClassTail + with argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + i. Let status be the result of performing + PropertyDefinitionEvaluation for m with arguments proto and + false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] + + + Trailing comma in the parameters list + + 14.1 Function Definitions + + FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] , +---*/ + +var callCount = 0; +var C = class { + async method(a,) { + assert.sameValue(a, 42); + callCount = callCount + 1; + } +} + +// Stores a reference `ref` for case evaluation +var ref = C.prototype.method; + +ref(42, 39).then(() => { + assert.sameValue(callCount, 1, 'method invoked exactly once'); +}).then($DONE, $DONE); + +assert.sameValue(ref.length, 1, 'length is properly set'); diff --git a/test/language/expressions/class/async-meth-rest-params-trailing-comma-early-error.js b/test/language/expressions/class/async-meth-rest-params-trailing-comma-early-error.js new file mode 100644 index 0000000000000000000000000000000000000000..871c79360da5d2f9163aab1276f5b65385f43e12 --- /dev/null +++ b/test/language/expressions/class/async-meth-rest-params-trailing-comma-early-error.js @@ -0,0 +1,59 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/rest-params-trailing-comma-early-error.case +// - src/function-forms/syntax/cls-expr-async-meth.template +/*--- +description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (class expression async method) +esid: sec-class-definitions-runtime-semantics-evaluation +flags: [generated] +negative: + phase: early + type: SyntaxError +info: | + ClassExpression : class BindingIdentifieropt ClassTail + + 1. If BindingIdentifieropt is not present, let className be undefined. + 2. Else, let className be StringValue of BindingIdentifier. + 3. Let value be the result of ClassDefinitionEvaluation of ClassTail + with argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + i. Let status be the result of performing + PropertyDefinitionEvaluation for m with arguments proto and + false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] + + + Trailing comma in the parameters list + + 14.1 Function Definitions + + FormalParameters[Yield, Await] : + [empty] + FunctionRestParameter[?Yield, ?Await] + FormalParameterList[?Yield, ?Await] + FormalParameterList[?Yield, ?Await] , + FormalParameterList[?Yield, ?Await] , FunctionRestParameter[?Yield, ?Await] +---*/ + +var C = class { + static async method(...a,) { + + } +}; diff --git a/test/language/expressions/class/async-meth-static-dflt-params-abrupt.js b/test/language/expressions/class/async-meth-static-dflt-params-abrupt.js new file mode 100644 index 0000000000000000000000000000000000000000..3bdd1a3c90dbd097b636b178c03db1e93fd606a3 --- /dev/null +++ b/test/language/expressions/class/async-meth-static-dflt-params-abrupt.js @@ -0,0 +1,70 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-abrupt.case +// - src/function-forms/error/cls-expr-async-meth-static.template +/*--- +description: Abrupt completion returned by evaluation of initializer (static class expression async method) +esid: sec-class-definitions-runtime-semantics-evaluation +features: [default-parameters] +flags: [generated, async] +info: | + ClassExpression : class BindingIdentifieropt ClassTail + + 1. If BindingIdentifieropt is not present, let className be undefined. + 2. Else, let className be StringValue of BindingIdentifier. + 3. Let value be the result of ClassDefinitionEvaluation of ClassTail + with argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + b. Else, + Let status be the result of performing PropertyDefinitionEvaluation + for m with arguments F and false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + 1. Let status be the result of performing IteratorBindingInitialization for + FormalsList using iteratorRecord and environment as the arguments. + 2. ReturnIfAbrupt(status). + 3. Return the result of performing IteratorBindingInitialization for + FormalParameter using iteratorRecord and environment as the arguments. + +---*/ + + +var callCount = 0; + +var C = class { + static async method(_ = (function() { throw new Test262Error(); }())) { + + callCount = callCount + 1; + } +}; + +C.method() + .then(_ => { + throw new Test262Error('function should not be resolved'); + }, error => assert.sameValue(error.constructor, Test262Error)) + .then(() => { + assert.sameValue(callCount, 0, 'function body is not evaluated'); + }, $DONE) + .then($DONE, $DONE); diff --git a/test/language/expressions/class/async-meth-static-dflt-params-arg-val-not-undefined.js b/test/language/expressions/class/async-meth-static-dflt-params-arg-val-not-undefined.js new file mode 100644 index 0000000000000000000000000000000000000000..ba8c07f2bd9ee1acdd8f1a0991355d6af879aa13 --- /dev/null +++ b/test/language/expressions/class/async-meth-static-dflt-params-arg-val-not-undefined.js @@ -0,0 +1,89 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-arg-val-not-undefined.case +// - src/function-forms/default/cls-expr-async-meth-static.template +/*--- +description: Use of intializer when argument value is not `undefined` (static class expression async method) +esid: sec-class-definitions-runtime-semantics-evaluation +features: [default-parameters] +flags: [generated, async] +info: | + ClassExpression : class BindingIdentifieropt ClassTail + + 1. If BindingIdentifieropt is not present, let className be undefined. + 2. Else, let className be StringValue of BindingIdentifier. + 3. Let value be the result of ClassDefinitionEvaluation of ClassTail + with argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + b. Else, + Let status be the result of performing PropertyDefinitionEvaluation + for m with arguments F and false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + [...] + 23. Let iteratorRecord be Record {[[Iterator]]: + CreateListIterator(argumentsList), [[Done]]: false}. + 24. If hasDuplicates is true, then + [...] + 25. Else, + a. Perform ? IteratorBindingInitialization for formals with + iteratorRecord and env as arguments. + [...] + +---*/ +var obj = {}; +var falseCount = 0; +var stringCount = 0; +var nanCount = 0; +var zeroCount = 0; +var nullCount = 0; +var objCount = 0; + +var callCount = 0; +var C = class { + static async method(aFalse = falseCount +=1, aString = stringCount += 1, aNaN = nanCount += 1, a0 = zeroCount += 1, aNull = nullCount += 1, aObj = objCount +=1) { + assert.sameValue(aFalse, false); + assert.sameValue(aString, ''); + assert.sameValue(aNaN, NaN); + assert.sameValue(a0, 0); + assert.sameValue(aNull, null); + assert.sameValue(aObj, obj); + callCount = callCount + 1; + } +} + +// Stores a reference `ref` for case evaluation +var ref = C.method; + +ref(false, '', NaN, 0, null, obj).then(() => { + assert.sameValue(callCount, 1, 'method invoked exactly once'); +}).then($DONE, $DONE); + +assert.sameValue(falseCount, 0, 'initializer not evaluated: false'); +assert.sameValue(stringCount, 0, 'initializer not evaluated: string'); +assert.sameValue(nanCount, 0, 'initializer not evaluated: NaN'); +assert.sameValue(zeroCount, 0, 'initializer not evaluated: 0'); +assert.sameValue(nullCount, 0, 'initializer not evaluated: null'); +assert.sameValue(objCount, 0, 'initializer not evaluated: object'); diff --git a/test/language/expressions/class/async-meth-static-dflt-params-arg-val-undefined.js b/test/language/expressions/class/async-meth-static-dflt-params-arg-val-undefined.js new file mode 100644 index 0000000000000000000000000000000000000000..31114a95190c5aa7ce12df9dd6b7193f4f792a15 --- /dev/null +++ b/test/language/expressions/class/async-meth-static-dflt-params-arg-val-undefined.js @@ -0,0 +1,72 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-arg-val-undefined.case +// - src/function-forms/default/cls-expr-async-meth-static.template +/*--- +description: Use of intializer when argument value is `undefined` (static class expression async method) +esid: sec-class-definitions-runtime-semantics-evaluation +features: [default-parameters] +flags: [generated, async] +info: | + ClassExpression : class BindingIdentifieropt ClassTail + + 1. If BindingIdentifieropt is not present, let className be undefined. + 2. Else, let className be StringValue of BindingIdentifier. + 3. Let value be the result of ClassDefinitionEvaluation of ClassTail + with argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + b. Else, + Let status be the result of performing PropertyDefinitionEvaluation + for m with arguments F and false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + [...] + 23. Let iteratorRecord be Record {[[Iterator]]: + CreateListIterator(argumentsList), [[Done]]: false}. + 24. If hasDuplicates is true, then + [...] + 25. Else, + a. Perform ? IteratorBindingInitialization for formals with + iteratorRecord and env as arguments. + [...] + +---*/ + +var callCount = 0; +var C = class { + static async method(fromLiteral = 23, fromExpr = 45, fromHole = 99) { + assert.sameValue(fromLiteral, 23); + assert.sameValue(fromExpr, 45); + assert.sameValue(fromHole, 99); + callCount = callCount + 1; + } +} + +// Stores a reference `ref` for case evaluation +var ref = C.method; + +ref(undefined, void 0).then(() => { + assert.sameValue(callCount, 1, 'method invoked exactly once'); +}).then($DONE, $DONE); diff --git a/test/language/expressions/class/async-meth-static-dflt-params-duplicates.js b/test/language/expressions/class/async-meth-static-dflt-params-duplicates.js new file mode 100644 index 0000000000000000000000000000000000000000..6d5d586ace7289d75a19d74d333ff60e6b021c49 --- /dev/null +++ b/test/language/expressions/class/async-meth-static-dflt-params-duplicates.js @@ -0,0 +1,63 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-duplicates.case +// - src/function-forms/syntax/cls-expr-async-meth-static.template +/*--- +description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (static class expression async method) +esid: sec-class-definitions-runtime-semantics-evaluation +features: [default-parameters] +flags: [generated] +negative: + phase: early + type: SyntaxError +info: | + ClassExpression : class BindingIdentifieropt ClassTail + + 1. If BindingIdentifieropt is not present, let className be undefined. + 2. Else, let className be StringValue of BindingIdentifier. + 3. Let value be the result of ClassDefinitionEvaluation of ClassTail + with argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + b. Else, + Let status be the result of performing PropertyDefinitionEvaluation + for m with arguments F and false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] + + + 14.1.2 Static Semantics: Early Errors + + StrictFormalParameters : FormalParameters + + - It is a Syntax Error if BoundNames of FormalParameters contains any + duplicate elements. + + FormalParameters : FormalParameterList + + - It is a Syntax Error if IsSimpleParameterList of FormalParameterList is + false and BoundNames of FormalParameterList contains any duplicate + elements. + +---*/ + +var C = class { + static async method(x = 0, x) { + + } +}; diff --git a/test/language/expressions/class/async-meth-static-dflt-params-ref-later.js b/test/language/expressions/class/async-meth-static-dflt-params-ref-later.js new file mode 100644 index 0000000000000000000000000000000000000000..321f7ac4c7485a9f2787aa7785ba5f7e5d354dbc --- /dev/null +++ b/test/language/expressions/class/async-meth-static-dflt-params-ref-later.js @@ -0,0 +1,71 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-ref-later.case +// - src/function-forms/error/cls-expr-async-meth-static.template +/*--- +description: Referencing a parameter that occurs later in the ParameterList (static class expression async method) +esid: sec-class-definitions-runtime-semantics-evaluation +features: [default-parameters] +flags: [generated, async] +info: | + ClassExpression : class BindingIdentifieropt ClassTail + + 1. If BindingIdentifieropt is not present, let className be undefined. + 2. Else, let className be StringValue of BindingIdentifier. + 3. Let value be the result of ClassDefinitionEvaluation of ClassTail + with argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + b. Else, + Let status be the result of performing PropertyDefinitionEvaluation + for m with arguments F and false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + 1. Let status be the result of performing IteratorBindingInitialization for + FormalsList using iteratorRecord and environment as the arguments. + 2. ReturnIfAbrupt(status). + 3. Return the result of performing IteratorBindingInitialization for + FormalParameter using iteratorRecord and environment as the arguments. + +---*/ +var x = 0; + + +var callCount = 0; + +var C = class { + static async method(x = y, y) { + + callCount = callCount + 1; + } +}; + +C.method() + .then(_ => { + throw new Test262Error('function should not be resolved'); + }, error => assert.sameValue(error.constructor, ReferenceError)) + .then(() => { + assert.sameValue(callCount, 0, 'function body is not evaluated'); + }, $DONE) + .then($DONE, $DONE); diff --git a/test/language/expressions/class/async-meth-static-dflt-params-ref-prior.js b/test/language/expressions/class/async-meth-static-dflt-params-ref-prior.js new file mode 100644 index 0000000000000000000000000000000000000000..903438149e61ab578ff597c30a47b523938f7eed --- /dev/null +++ b/test/language/expressions/class/async-meth-static-dflt-params-ref-prior.js @@ -0,0 +1,69 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-ref-prior.case +// - src/function-forms/default/cls-expr-async-meth-static.template +/*--- +description: Referencing a parameter that occurs earlier in the ParameterList (static class expression async method) +esid: sec-class-definitions-runtime-semantics-evaluation +features: [default-parameters] +flags: [generated, async] +info: | + ClassExpression : class BindingIdentifieropt ClassTail + + 1. If BindingIdentifieropt is not present, let className be undefined. + 2. Else, let className be StringValue of BindingIdentifier. + 3. Let value be the result of ClassDefinitionEvaluation of ClassTail + with argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + b. Else, + Let status be the result of performing PropertyDefinitionEvaluation + for m with arguments F and false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + 1. Let status be the result of performing IteratorBindingInitialization for + FormalsList using iteratorRecord and environment as the arguments. + 2. ReturnIfAbrupt(status). + 3. Return the result of performing IteratorBindingInitialization for + FormalParameter using iteratorRecord and environment as the arguments. + +---*/ +var x = 0; + +var callCount = 0; +var C = class { + static async method(x, y = x, z = y) { + assert.sameValue(x, 3, 'first argument value'); + assert.sameValue(y, 3, 'second argument value'); + assert.sameValue(z, 3, 'third argument value'); + callCount = callCount + 1; + } +} + +// Stores a reference `ref` for case evaluation +var ref = C.method; + +ref(3).then(() => { + assert.sameValue(callCount, 1, 'method invoked exactly once'); +}).then($DONE, $DONE); diff --git a/test/language/expressions/class/async-meth-static-dflt-params-ref-self.js b/test/language/expressions/class/async-meth-static-dflt-params-ref-self.js new file mode 100644 index 0000000000000000000000000000000000000000..e7b3af1f59e4ad59b588a910b93dc5514f6d17a7 --- /dev/null +++ b/test/language/expressions/class/async-meth-static-dflt-params-ref-self.js @@ -0,0 +1,71 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-ref-self.case +// - src/function-forms/error/cls-expr-async-meth-static.template +/*--- +description: Referencing a parameter from within its own initializer (static class expression async method) +esid: sec-class-definitions-runtime-semantics-evaluation +features: [default-parameters] +flags: [generated, async] +info: | + ClassExpression : class BindingIdentifieropt ClassTail + + 1. If BindingIdentifieropt is not present, let className be undefined. + 2. Else, let className be StringValue of BindingIdentifier. + 3. Let value be the result of ClassDefinitionEvaluation of ClassTail + with argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + b. Else, + Let status be the result of performing PropertyDefinitionEvaluation + for m with arguments F and false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + 1. Let status be the result of performing IteratorBindingInitialization for + FormalsList using iteratorRecord and environment as the arguments. + 2. ReturnIfAbrupt(status). + 3. Return the result of performing IteratorBindingInitialization for + FormalParameter using iteratorRecord and environment as the arguments. + +---*/ +var x = 0; + + +var callCount = 0; + +var C = class { + static async method(x = x) { + + callCount = callCount + 1; + } +}; + +C.method() + .then(_ => { + throw new Test262Error('function should not be resolved'); + }, error => assert.sameValue(error.constructor, ReferenceError)) + .then(() => { + assert.sameValue(callCount, 0, 'function body is not evaluated'); + }, $DONE) + .then($DONE, $DONE); diff --git a/test/language/expressions/class/async-meth-static-dflt-params-rest.js b/test/language/expressions/class/async-meth-static-dflt-params-rest.js new file mode 100644 index 0000000000000000000000000000000000000000..0b9884128290308aa0c4f253afc10f8169e607d4 --- /dev/null +++ b/test/language/expressions/class/async-meth-static-dflt-params-rest.js @@ -0,0 +1,67 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-rest.case +// - src/function-forms/syntax/cls-expr-async-meth-static.template +/*--- +description: RestParameter does not support an initializer (static class expression async method) +esid: sec-class-definitions-runtime-semantics-evaluation +features: [default-parameters] +flags: [generated] +negative: + phase: early + type: SyntaxError +info: | + ClassExpression : class BindingIdentifieropt ClassTail + + 1. If BindingIdentifieropt is not present, let className be undefined. + 2. Else, let className be StringValue of BindingIdentifier. + 3. Let value be the result of ClassDefinitionEvaluation of ClassTail + with argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + b. Else, + Let status be the result of performing PropertyDefinitionEvaluation + for m with arguments F and false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] + + + 14.1 Function Definitions + + Syntax + + FunctionRestParameter[Yield] : + + BindingRestElement[?Yield] + + 13.3.3 Destructuring Binding Patterns + + Syntax + + BindingRestElement[Yield] : + + ...BindingIdentifier[?Yield] + ...BindingPattern[?Yield] + +---*/ + +var C = class { + static async method(...x = []) { + + } +}; diff --git a/test/language/expressions/class/async-meth-static-dflt-params-trailing-comma.js b/test/language/expressions/class/async-meth-static-dflt-params-trailing-comma.js new file mode 100644 index 0000000000000000000000000000000000000000..9afa64ed456f0abcbd5b80653cc0a651c73134b2 --- /dev/null +++ b/test/language/expressions/class/async-meth-static-dflt-params-trailing-comma.js @@ -0,0 +1,63 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-trailing-comma.case +// - src/function-forms/default/cls-expr-async-meth-static.template +/*--- +description: A trailing comma should not increase the respective length, using default parameters (static class expression async method) +esid: sec-class-definitions-runtime-semantics-evaluation +flags: [generated, async] +info: | + ClassExpression : class BindingIdentifieropt ClassTail + + 1. If BindingIdentifieropt is not present, let className be undefined. + 2. Else, let className be StringValue of BindingIdentifier. + 3. Let value be the result of ClassDefinitionEvaluation of ClassTail + with argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + b. Else, + Let status be the result of performing PropertyDefinitionEvaluation + for m with arguments F and false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] + + + Trailing comma in the parameters list + + 14.1 Function Definitions + + FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] , +---*/ + +var callCount = 0; +var C = class { + static async method(a, b = 39,) { + assert.sameValue(a, 42); + assert.sameValue(b, 39); + callCount = callCount + 1; + } +} + +// Stores a reference `ref` for case evaluation +var ref = C.method; + +ref(42, undefined, 1).then(() => { + assert.sameValue(callCount, 1, 'method invoked exactly once'); +}).then($DONE, $DONE); + +assert.sameValue(ref.length, 1, 'length is properly set'); diff --git a/test/language/expressions/class/async-meth-static-params-trailing-comma-multiple.js b/test/language/expressions/class/async-meth-static-params-trailing-comma-multiple.js new file mode 100644 index 0000000000000000000000000000000000000000..172b92ce92689a699edf131f833b65b323fc65f6 --- /dev/null +++ b/test/language/expressions/class/async-meth-static-params-trailing-comma-multiple.js @@ -0,0 +1,63 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/params-trailing-comma-multiple.case +// - src/function-forms/default/cls-expr-async-meth-static.template +/*--- +description: A trailing comma should not increase the respective length, using multiple parameters (static class expression async method) +esid: sec-class-definitions-runtime-semantics-evaluation +flags: [generated, async] +info: | + ClassExpression : class BindingIdentifieropt ClassTail + + 1. If BindingIdentifieropt is not present, let className be undefined. + 2. Else, let className be StringValue of BindingIdentifier. + 3. Let value be the result of ClassDefinitionEvaluation of ClassTail + with argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + b. Else, + Let status be the result of performing PropertyDefinitionEvaluation + for m with arguments F and false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] + + + Trailing comma in the parameters list + + 14.1 Function Definitions + + FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] , +---*/ + +var callCount = 0; +var C = class { + static async method(a, b,) { + assert.sameValue(a, 42); + assert.sameValue(b, 39); + callCount = callCount + 1; + } +} + +// Stores a reference `ref` for case evaluation +var ref = C.method; + +ref(42, 39, 1).then(() => { + assert.sameValue(callCount, 1, 'method invoked exactly once'); +}).then($DONE, $DONE); + +assert.sameValue(ref.length, 2, 'length is properly set'); diff --git a/test/language/expressions/class/async-meth-static-params-trailing-comma-single.js b/test/language/expressions/class/async-meth-static-params-trailing-comma-single.js new file mode 100644 index 0000000000000000000000000000000000000000..8177a8e1fce0f5bc002dac50c46092ebeb5e64f1 --- /dev/null +++ b/test/language/expressions/class/async-meth-static-params-trailing-comma-single.js @@ -0,0 +1,62 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/params-trailing-comma-single.case +// - src/function-forms/default/cls-expr-async-meth-static.template +/*--- +description: A trailing comma should not increase the respective length, using a single parameter (static class expression async method) +esid: sec-class-definitions-runtime-semantics-evaluation +flags: [generated, async] +info: | + ClassExpression : class BindingIdentifieropt ClassTail + + 1. If BindingIdentifieropt is not present, let className be undefined. + 2. Else, let className be StringValue of BindingIdentifier. + 3. Let value be the result of ClassDefinitionEvaluation of ClassTail + with argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + b. Else, + Let status be the result of performing PropertyDefinitionEvaluation + for m with arguments F and false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] + + + Trailing comma in the parameters list + + 14.1 Function Definitions + + FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] , +---*/ + +var callCount = 0; +var C = class { + static async method(a,) { + assert.sameValue(a, 42); + callCount = callCount + 1; + } +} + +// Stores a reference `ref` for case evaluation +var ref = C.method; + +ref(42, 39).then(() => { + assert.sameValue(callCount, 1, 'method invoked exactly once'); +}).then($DONE, $DONE); + +assert.sameValue(ref.length, 1, 'length is properly set'); diff --git a/test/language/expressions/class/async-meth-static-rest-params-trailing-comma-early-error.js b/test/language/expressions/class/async-meth-static-rest-params-trailing-comma-early-error.js new file mode 100644 index 0000000000000000000000000000000000000000..f1e1e00d0b22c075b1b56699213f608090dc8002 --- /dev/null +++ b/test/language/expressions/class/async-meth-static-rest-params-trailing-comma-early-error.js @@ -0,0 +1,59 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/rest-params-trailing-comma-early-error.case +// - src/function-forms/syntax/cls-expr-async-meth-static.template +/*--- +description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (static class expression async method) +esid: sec-class-definitions-runtime-semantics-evaluation +flags: [generated] +negative: + phase: early + type: SyntaxError +info: | + ClassExpression : class BindingIdentifieropt ClassTail + + 1. If BindingIdentifieropt is not present, let className be undefined. + 2. Else, let className be StringValue of BindingIdentifier. + 3. Let value be the result of ClassDefinitionEvaluation of ClassTail + with argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + b. Else, + Let status be the result of performing PropertyDefinitionEvaluation + for m with arguments F and false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] + + + Trailing comma in the parameters list + + 14.1 Function Definitions + + FormalParameters[Yield, Await] : + [empty] + FunctionRestParameter[?Yield, ?Await] + FormalParameterList[?Yield, ?Await] + FormalParameterList[?Yield, ?Await] , + FormalParameterList[?Yield, ?Await] , FunctionRestParameter[?Yield, ?Await] +---*/ + +var C = class { + static async method(...a,) { + + } +}; diff --git a/test/language/expressions/class/params-gen-meth-dflt-abrupt.js b/test/language/expressions/class/gen-meth-dflt-params-abrupt.js similarity index 96% rename from test/language/expressions/class/params-gen-meth-dflt-abrupt.js rename to test/language/expressions/class/gen-meth-dflt-params-abrupt.js index 3b0c35ff31346172e286fb5a429e142fbc136ebd..b393d79d57fb2dedc031eda4f98a254bcbb65bd6 100644 --- a/test/language/expressions/class/params-gen-meth-dflt-abrupt.js +++ b/test/language/expressions/class/gen-meth-dflt-params-abrupt.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-abrupt.case -// - src/params/error/cls-expr-gen-meth.template +// - src/function-forms/dflt-params-abrupt.case +// - src/function-forms/error/cls-expr-gen-meth.template /*--- description: Abrupt completion returned by evaluation of initializer (class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-gen-meth-dflt-arg-val-not-undefined.js b/test/language/expressions/class/gen-meth-dflt-params-arg-val-not-undefined.js similarity index 96% rename from test/language/expressions/class/params-gen-meth-dflt-arg-val-not-undefined.js rename to test/language/expressions/class/gen-meth-dflt-params-arg-val-not-undefined.js index 81ed4639d81f00cb2e5eb12c12118b648232495b..22138efe23c56b55a8251609421b06a38454d992 100644 --- a/test/language/expressions/class/params-gen-meth-dflt-arg-val-not-undefined.js +++ b/test/language/expressions/class/gen-meth-dflt-params-arg-val-not-undefined.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-arg-val-not-undefined.case -// - src/params/default/cls-expr-gen-meth.template +// - src/function-forms/dflt-params-arg-val-not-undefined.case +// - src/function-forms/default/cls-expr-gen-meth.template /*--- description: Use of intializer when argument value is not `undefined` (class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-gen-meth-dflt-arg-val-undefined.js b/test/language/expressions/class/gen-meth-dflt-params-arg-val-undefined.js similarity index 96% rename from test/language/expressions/class/params-gen-meth-dflt-arg-val-undefined.js rename to test/language/expressions/class/gen-meth-dflt-params-arg-val-undefined.js index de53f1a08e8bcd70d95247f60adec44a48006fb1..6dc6f3353f87b014d6a0b8f86991cd9e08df8bbf 100644 --- a/test/language/expressions/class/params-gen-meth-dflt-arg-val-undefined.js +++ b/test/language/expressions/class/gen-meth-dflt-params-arg-val-undefined.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-arg-val-undefined.case -// - src/params/default/cls-expr-gen-meth.template +// - src/function-forms/dflt-params-arg-val-undefined.case +// - src/function-forms/default/cls-expr-gen-meth.template /*--- description: Use of intializer when argument value is `undefined` (class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-gen-meth-dflt-duplicates.js b/test/language/expressions/class/gen-meth-dflt-params-duplicates.js similarity index 96% rename from test/language/expressions/class/params-gen-meth-dflt-duplicates.js rename to test/language/expressions/class/gen-meth-dflt-params-duplicates.js index b64291732235dd40941bbc47609144aa1259580d..c6f327d6f61b428f1f877dd74700b680508b2c22 100644 --- a/test/language/expressions/class/params-gen-meth-dflt-duplicates.js +++ b/test/language/expressions/class/gen-meth-dflt-params-duplicates.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-duplicates.case -// - src/params/syntax/cls-expr-gen-meth.template +// - src/function-forms/dflt-params-duplicates.case +// - src/function-forms/syntax/cls-expr-gen-meth.template /*--- description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-gen-meth-dflt-ref-later.js b/test/language/expressions/class/gen-meth-dflt-params-ref-later.js similarity index 96% rename from test/language/expressions/class/params-gen-meth-dflt-ref-later.js rename to test/language/expressions/class/gen-meth-dflt-params-ref-later.js index 616695dd4d7111559ed83c5eb098eda94e57cb69..aec1a0e50da17e2913aef1de9b2ad30096177164 100644 --- a/test/language/expressions/class/params-gen-meth-dflt-ref-later.js +++ b/test/language/expressions/class/gen-meth-dflt-params-ref-later.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-later.case -// - src/params/error/cls-expr-gen-meth.template +// - src/function-forms/dflt-params-ref-later.case +// - src/function-forms/error/cls-expr-gen-meth.template /*--- description: Referencing a parameter that occurs later in the ParameterList (class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-gen-meth-dflt-ref-prior.js b/test/language/expressions/class/gen-meth-dflt-params-ref-prior.js similarity index 96% rename from test/language/expressions/class/params-gen-meth-dflt-ref-prior.js rename to test/language/expressions/class/gen-meth-dflt-params-ref-prior.js index dbe4d42381024a4f27935109628e04aa4b3f83f3..20025cc04fcba499d7ea00389b93bdec1bf7cadf 100644 --- a/test/language/expressions/class/params-gen-meth-dflt-ref-prior.js +++ b/test/language/expressions/class/gen-meth-dflt-params-ref-prior.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-prior.case -// - src/params/default/cls-expr-gen-meth.template +// - src/function-forms/dflt-params-ref-prior.case +// - src/function-forms/default/cls-expr-gen-meth.template /*--- description: Referencing a parameter that occurs earlier in the ParameterList (class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-gen-meth-dflt-ref-self.js b/test/language/expressions/class/gen-meth-dflt-params-ref-self.js similarity index 96% rename from test/language/expressions/class/params-gen-meth-dflt-ref-self.js rename to test/language/expressions/class/gen-meth-dflt-params-ref-self.js index ef33a5340c337560d919ce240947e02ef010ed76..7144f655bf443faf18ecad4eeee5128b3e278986 100644 --- a/test/language/expressions/class/params-gen-meth-dflt-ref-self.js +++ b/test/language/expressions/class/gen-meth-dflt-params-ref-self.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-self.case -// - src/params/error/cls-expr-gen-meth.template +// - src/function-forms/dflt-params-ref-self.case +// - src/function-forms/error/cls-expr-gen-meth.template /*--- description: Referencing a parameter from within its own initializer (class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-gen-meth-dflt-rest.js b/test/language/expressions/class/gen-meth-dflt-params-rest.js similarity index 96% rename from test/language/expressions/class/params-gen-meth-dflt-rest.js rename to test/language/expressions/class/gen-meth-dflt-params-rest.js index 3ca1280e6f3b7bda00a5b02f4b6e732ee9e1f178..6ce951503bb5fe06a6eb7b1dbe79851004dd8881 100644 --- a/test/language/expressions/class/params-gen-meth-dflt-rest.js +++ b/test/language/expressions/class/gen-meth-dflt-params-rest.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-rest.case -// - src/params/syntax/cls-expr-gen-meth.template +// - src/function-forms/dflt-params-rest.case +// - src/function-forms/syntax/cls-expr-gen-meth.template /*--- description: RestParameter does not support an initializer (class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-gen-meth-trailing-comma-dflt-param.js b/test/language/expressions/class/gen-meth-dflt-params-trailing-comma.js similarity index 95% rename from test/language/expressions/class/params-gen-meth-trailing-comma-dflt-param.js rename to test/language/expressions/class/gen-meth-dflt-params-trailing-comma.js index abc4464392a6e1ba6375a64cddc9d41fd0eff49f..210a23b36505c89f11f3fad8dc2d43038ce7a6d7 100644 --- a/test/language/expressions/class/params-gen-meth-trailing-comma-dflt-param.js +++ b/test/language/expressions/class/gen-meth-dflt-params-trailing-comma.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-dflt-param.case -// - src/params/default/cls-expr-gen-meth.template +// - src/function-forms/dflt-params-trailing-comma.case +// - src/function-forms/default/cls-expr-gen-meth.template /*--- description: A trailing comma should not increase the respective length, using default parameters (class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-gen-meth-trailing-comma-multiple-param.js b/test/language/expressions/class/gen-meth-params-trailing-comma-multiple.js similarity index 95% rename from test/language/expressions/class/params-gen-meth-trailing-comma-multiple-param.js rename to test/language/expressions/class/gen-meth-params-trailing-comma-multiple.js index 765da753eb1f205a874937480471592e6d6f6c29..958e0d4e56511a4b507a1b72cdeb5a5055cd20d3 100644 --- a/test/language/expressions/class/params-gen-meth-trailing-comma-multiple-param.js +++ b/test/language/expressions/class/gen-meth-params-trailing-comma-multiple.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-multiple-param.case -// - src/params/default/cls-expr-gen-meth.template +// - src/function-forms/params-trailing-comma-multiple.case +// - src/function-forms/default/cls-expr-gen-meth.template /*--- description: A trailing comma should not increase the respective length, using multiple parameters (class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-gen-meth-trailing-comma-single-param.js b/test/language/expressions/class/gen-meth-params-trailing-comma-single.js similarity index 95% rename from test/language/expressions/class/params-gen-meth-trailing-comma-single-param.js rename to test/language/expressions/class/gen-meth-params-trailing-comma-single.js index a70cfb511aeb0ae6158dc4d6fa031a88470fa5d5..f9a484d54f302f4fd027050124011abd951eec09 100644 --- a/test/language/expressions/class/params-gen-meth-trailing-comma-single-param.js +++ b/test/language/expressions/class/gen-meth-params-trailing-comma-single.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-single-param.case -// - src/params/default/cls-expr-gen-meth.template +// - src/function-forms/params-trailing-comma-single.case +// - src/function-forms/default/cls-expr-gen-meth.template /*--- description: A trailing comma should not increase the respective length, using a single parameter (class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-gen-meth-trailing-comma-rest-early-error.js b/test/language/expressions/class/gen-meth-rest-params-trailing-comma-early-error.js similarity index 95% rename from test/language/expressions/class/params-gen-meth-trailing-comma-rest-early-error.js rename to test/language/expressions/class/gen-meth-rest-params-trailing-comma-early-error.js index e27ec7586d1eec163650305f28ec69c3a2475d1b..fbd4a01ef6ddf1b6f86b8e1c852c86a19bf793c1 100644 --- a/test/language/expressions/class/params-gen-meth-trailing-comma-rest-early-error.js +++ b/test/language/expressions/class/gen-meth-rest-params-trailing-comma-early-error.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-rest-early-error.case -// - src/params/syntax/cls-expr-gen-meth.template +// - src/function-forms/rest-params-trailing-comma-early-error.case +// - src/function-forms/syntax/cls-expr-gen-meth.template /*--- description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-gen-meth-static-dflt-abrupt.js b/test/language/expressions/class/gen-meth-static-dflt-params-abrupt.js similarity index 96% rename from test/language/expressions/class/params-gen-meth-static-dflt-abrupt.js rename to test/language/expressions/class/gen-meth-static-dflt-params-abrupt.js index e4611d88824f4df600530d1b3a83077de11a52ea..a467d220586ca10c2a55abc9417c8aefbd90f42a 100644 --- a/test/language/expressions/class/params-gen-meth-static-dflt-abrupt.js +++ b/test/language/expressions/class/gen-meth-static-dflt-params-abrupt.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-abrupt.case -// - src/params/error/cls-expr-gen-meth-static.template +// - src/function-forms/dflt-params-abrupt.case +// - src/function-forms/error/cls-expr-gen-meth-static.template /*--- description: Abrupt completion returned by evaluation of initializer (static class expression generator method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-gen-meth-static-dflt-arg-val-not-undefined.js b/test/language/expressions/class/gen-meth-static-dflt-params-arg-val-not-undefined.js similarity index 96% rename from test/language/expressions/class/params-gen-meth-static-dflt-arg-val-not-undefined.js rename to test/language/expressions/class/gen-meth-static-dflt-params-arg-val-not-undefined.js index b6a93cfb9fef32c0ef19875525c3c0ae7d4c2391..53f378de6210a62d0e293b52231863271778bf88 100644 --- a/test/language/expressions/class/params-gen-meth-static-dflt-arg-val-not-undefined.js +++ b/test/language/expressions/class/gen-meth-static-dflt-params-arg-val-not-undefined.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-arg-val-not-undefined.case -// - src/params/default/cls-expr-gen-meth-static.template +// - src/function-forms/dflt-params-arg-val-not-undefined.case +// - src/function-forms/default/cls-expr-gen-meth-static.template /*--- description: Use of intializer when argument value is not `undefined` (static class expression generator method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-gen-meth-static-dflt-arg-val-undefined.js b/test/language/expressions/class/gen-meth-static-dflt-params-arg-val-undefined.js similarity index 96% rename from test/language/expressions/class/params-gen-meth-static-dflt-arg-val-undefined.js rename to test/language/expressions/class/gen-meth-static-dflt-params-arg-val-undefined.js index 2277054a8e6fd276ab447092f5c105ce0f81acf5..55f75b366dc853824d83a22a2706b6d3d903bb67 100644 --- a/test/language/expressions/class/params-gen-meth-static-dflt-arg-val-undefined.js +++ b/test/language/expressions/class/gen-meth-static-dflt-params-arg-val-undefined.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-arg-val-undefined.case -// - src/params/default/cls-expr-gen-meth-static.template +// - src/function-forms/dflt-params-arg-val-undefined.case +// - src/function-forms/default/cls-expr-gen-meth-static.template /*--- description: Use of intializer when argument value is `undefined` (static class expression generator method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-gen-meth-static-dflt-duplicates.js b/test/language/expressions/class/gen-meth-static-dflt-params-duplicates.js similarity index 95% rename from test/language/expressions/class/params-gen-meth-static-dflt-duplicates.js rename to test/language/expressions/class/gen-meth-static-dflt-params-duplicates.js index a673383892e2a9e8641d30c3c81ff6aa8a80d7b9..9c8d30685ea417cc973c09f6c6eb32f337e91902 100644 --- a/test/language/expressions/class/params-gen-meth-static-dflt-duplicates.js +++ b/test/language/expressions/class/gen-meth-static-dflt-params-duplicates.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-duplicates.case -// - src/params/syntax/cls-expr-gen-meth-static.template +// - src/function-forms/dflt-params-duplicates.case +// - src/function-forms/syntax/cls-expr-gen-meth-static.template /*--- description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (static class expression generator method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-gen-meth-static-dflt-ref-later.js b/test/language/expressions/class/gen-meth-static-dflt-params-ref-later.js similarity index 96% rename from test/language/expressions/class/params-gen-meth-static-dflt-ref-later.js rename to test/language/expressions/class/gen-meth-static-dflt-params-ref-later.js index 6d0af997f31f8f518a29f9e36c160b08286ec9bb..5c0b19503e5317fa0527f43bae41776b5d2031bc 100644 --- a/test/language/expressions/class/params-gen-meth-static-dflt-ref-later.js +++ b/test/language/expressions/class/gen-meth-static-dflt-params-ref-later.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-later.case -// - src/params/error/cls-expr-gen-meth-static.template +// - src/function-forms/dflt-params-ref-later.case +// - src/function-forms/error/cls-expr-gen-meth-static.template /*--- description: Referencing a parameter that occurs later in the ParameterList (static class expression generator method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-gen-meth-static-dflt-ref-prior.js b/test/language/expressions/class/gen-meth-static-dflt-params-ref-prior.js similarity index 96% rename from test/language/expressions/class/params-gen-meth-static-dflt-ref-prior.js rename to test/language/expressions/class/gen-meth-static-dflt-params-ref-prior.js index 411121d7640ec86978959534e10aa973ec6e6ac3..f23a898026c5fd90593d4ca87cf38312223f45a5 100644 --- a/test/language/expressions/class/params-gen-meth-static-dflt-ref-prior.js +++ b/test/language/expressions/class/gen-meth-static-dflt-params-ref-prior.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-prior.case -// - src/params/default/cls-expr-gen-meth-static.template +// - src/function-forms/dflt-params-ref-prior.case +// - src/function-forms/default/cls-expr-gen-meth-static.template /*--- description: Referencing a parameter that occurs earlier in the ParameterList (static class expression generator method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-gen-meth-static-dflt-ref-self.js b/test/language/expressions/class/gen-meth-static-dflt-params-ref-self.js similarity index 96% rename from test/language/expressions/class/params-gen-meth-static-dflt-ref-self.js rename to test/language/expressions/class/gen-meth-static-dflt-params-ref-self.js index aac921a51a28c67480d6cf8f3f59be96626fc430..a05ae7116e99b41d2027667230f111fe07b62926 100644 --- a/test/language/expressions/class/params-gen-meth-static-dflt-ref-self.js +++ b/test/language/expressions/class/gen-meth-static-dflt-params-ref-self.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-self.case -// - src/params/error/cls-expr-gen-meth-static.template +// - src/function-forms/dflt-params-ref-self.case +// - src/function-forms/error/cls-expr-gen-meth-static.template /*--- description: Referencing a parameter from within its own initializer (static class expression generator method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-gen-meth-static-dflt-rest.js b/test/language/expressions/class/gen-meth-static-dflt-params-rest.js similarity index 95% rename from test/language/expressions/class/params-gen-meth-static-dflt-rest.js rename to test/language/expressions/class/gen-meth-static-dflt-params-rest.js index eae16f52eab72f31f98fd7d5a08194771aa08311..e48b66f9afed05704117a87026b6a3757020089a 100644 --- a/test/language/expressions/class/params-gen-meth-static-dflt-rest.js +++ b/test/language/expressions/class/gen-meth-static-dflt-params-rest.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-rest.case -// - src/params/syntax/cls-expr-gen-meth-static.template +// - src/function-forms/dflt-params-rest.case +// - src/function-forms/syntax/cls-expr-gen-meth-static.template /*--- description: RestParameter does not support an initializer (static class expression generator method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-gen-meth-static-trailing-comma-dflt-param.js b/test/language/expressions/class/gen-meth-static-dflt-params-trailing-comma.js similarity index 95% rename from test/language/expressions/class/params-gen-meth-static-trailing-comma-dflt-param.js rename to test/language/expressions/class/gen-meth-static-dflt-params-trailing-comma.js index 70b541a49162657e933e4201e74d317979777af0..e31f613d0dc6895b637bd3b32ba8d2fd4b1bf7f7 100644 --- a/test/language/expressions/class/params-gen-meth-static-trailing-comma-dflt-param.js +++ b/test/language/expressions/class/gen-meth-static-dflt-params-trailing-comma.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-dflt-param.case -// - src/params/default/cls-expr-gen-meth-static.template +// - src/function-forms/dflt-params-trailing-comma.case +// - src/function-forms/default/cls-expr-gen-meth-static.template /*--- description: A trailing comma should not increase the respective length, using default parameters (static class expression generator method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-gen-meth-static-trailing-comma-multiple-param.js b/test/language/expressions/class/gen-meth-static-params-trailing-comma-multiple.js similarity index 95% rename from test/language/expressions/class/params-gen-meth-static-trailing-comma-multiple-param.js rename to test/language/expressions/class/gen-meth-static-params-trailing-comma-multiple.js index 0a6b554df387383648570f84b573a8e69b31e459..067edc370636c3b094898b30af00e4e754f18639 100644 --- a/test/language/expressions/class/params-gen-meth-static-trailing-comma-multiple-param.js +++ b/test/language/expressions/class/gen-meth-static-params-trailing-comma-multiple.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-multiple-param.case -// - src/params/default/cls-expr-gen-meth-static.template +// - src/function-forms/params-trailing-comma-multiple.case +// - src/function-forms/default/cls-expr-gen-meth-static.template /*--- description: A trailing comma should not increase the respective length, using multiple parameters (static class expression generator method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-gen-meth-static-trailing-comma-single-param.js b/test/language/expressions/class/gen-meth-static-params-trailing-comma-single.js similarity index 95% rename from test/language/expressions/class/params-gen-meth-static-trailing-comma-single-param.js rename to test/language/expressions/class/gen-meth-static-params-trailing-comma-single.js index 0cbb0a165293cb37facaf24b80c15a4f7a3a4573..c0cb9887b0879ce1321f47cf2e8b084d318bbc92 100644 --- a/test/language/expressions/class/params-gen-meth-static-trailing-comma-single-param.js +++ b/test/language/expressions/class/gen-meth-static-params-trailing-comma-single.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-single-param.case -// - src/params/default/cls-expr-gen-meth-static.template +// - src/function-forms/params-trailing-comma-single.case +// - src/function-forms/default/cls-expr-gen-meth-static.template /*--- description: A trailing comma should not increase the respective length, using a single parameter (static class expression generator method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-gen-meth-static-trailing-comma-rest-early-error.js b/test/language/expressions/class/gen-meth-static-rest-params-trailing-comma-early-error.js similarity index 95% rename from test/language/expressions/class/params-gen-meth-static-trailing-comma-rest-early-error.js rename to test/language/expressions/class/gen-meth-static-rest-params-trailing-comma-early-error.js index 3b24651de7035f2377e6bf5ef40850db784c2847..7522a65cc8fd0c625e781dec81db71333ab90f8f 100644 --- a/test/language/expressions/class/params-gen-meth-static-trailing-comma-rest-early-error.js +++ b/test/language/expressions/class/gen-meth-static-rest-params-trailing-comma-early-error.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-rest-early-error.case -// - src/params/syntax/cls-expr-gen-meth-static.template +// - src/function-forms/rest-params-trailing-comma-early-error.case +// - src/function-forms/syntax/cls-expr-gen-meth-static.template /*--- description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (static class expression generator method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-meth-dflt-abrupt.js b/test/language/expressions/class/meth-dflt-params-abrupt.js similarity index 96% rename from test/language/expressions/class/params-meth-dflt-abrupt.js rename to test/language/expressions/class/meth-dflt-params-abrupt.js index dde91b1ce7d94bfea06d006452467d8d3e817266..e1bf762d78b339fff1bb90920f530ef3e381aaa0 100644 --- a/test/language/expressions/class/params-meth-dflt-abrupt.js +++ b/test/language/expressions/class/meth-dflt-params-abrupt.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-abrupt.case -// - src/params/error/cls-expr-meth.template +// - src/function-forms/dflt-params-abrupt.case +// - src/function-forms/error/cls-expr-meth.template /*--- description: Abrupt completion returned by evaluation of initializer (class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-meth-dflt-arg-val-not-undefined.js b/test/language/expressions/class/meth-dflt-params-arg-val-not-undefined.js similarity index 96% rename from test/language/expressions/class/params-meth-dflt-arg-val-not-undefined.js rename to test/language/expressions/class/meth-dflt-params-arg-val-not-undefined.js index 9d902d5a26b64d967280c9d9667b8ebadc8acd8d..e14532754637084176619906c3faef8ea73c5273 100644 --- a/test/language/expressions/class/params-meth-dflt-arg-val-not-undefined.js +++ b/test/language/expressions/class/meth-dflt-params-arg-val-not-undefined.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-arg-val-not-undefined.case -// - src/params/default/cls-expr-meth.template +// - src/function-forms/dflt-params-arg-val-not-undefined.case +// - src/function-forms/default/cls-expr-meth.template /*--- description: Use of intializer when argument value is not `undefined` (class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-meth-dflt-arg-val-undefined.js b/test/language/expressions/class/meth-dflt-params-arg-val-undefined.js similarity index 96% rename from test/language/expressions/class/params-meth-dflt-arg-val-undefined.js rename to test/language/expressions/class/meth-dflt-params-arg-val-undefined.js index 4633b03c74894ba30cf76c4183bae23d3abd734b..72bcdb93fd3a6aa94642c0543b866eb2fc8668aa 100644 --- a/test/language/expressions/class/params-meth-dflt-arg-val-undefined.js +++ b/test/language/expressions/class/meth-dflt-params-arg-val-undefined.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-arg-val-undefined.case -// - src/params/default/cls-expr-meth.template +// - src/function-forms/dflt-params-arg-val-undefined.case +// - src/function-forms/default/cls-expr-meth.template /*--- description: Use of intializer when argument value is `undefined` (class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-meth-dflt-duplicates.js b/test/language/expressions/class/meth-dflt-params-duplicates.js similarity index 95% rename from test/language/expressions/class/params-meth-dflt-duplicates.js rename to test/language/expressions/class/meth-dflt-params-duplicates.js index ef0754259d4bb345a15ddec4a407ba1b5725e717..cf5086bef463f90bcaf754815cc18366ac85a006 100644 --- a/test/language/expressions/class/params-meth-dflt-duplicates.js +++ b/test/language/expressions/class/meth-dflt-params-duplicates.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-duplicates.case -// - src/params/syntax/cls-expr-meth.template +// - src/function-forms/dflt-params-duplicates.case +// - src/function-forms/syntax/cls-expr-meth.template /*--- description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-meth-dflt-ref-later.js b/test/language/expressions/class/meth-dflt-params-ref-later.js similarity index 96% rename from test/language/expressions/class/params-meth-dflt-ref-later.js rename to test/language/expressions/class/meth-dflt-params-ref-later.js index 9ceda5b205414bb914b244e9df3fae24bb9cb4b8..002696105d5f47e070f5b97cf17918ebfe0be864 100644 --- a/test/language/expressions/class/params-meth-dflt-ref-later.js +++ b/test/language/expressions/class/meth-dflt-params-ref-later.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-later.case -// - src/params/error/cls-expr-meth.template +// - src/function-forms/dflt-params-ref-later.case +// - src/function-forms/error/cls-expr-meth.template /*--- description: Referencing a parameter that occurs later in the ParameterList (class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-meth-dflt-ref-prior.js b/test/language/expressions/class/meth-dflt-params-ref-prior.js similarity index 96% rename from test/language/expressions/class/params-meth-dflt-ref-prior.js rename to test/language/expressions/class/meth-dflt-params-ref-prior.js index cb3941336c2cfd1b7e4af634d22cddb4710798d5..197514e47b3009e4bfe40b8d1503c1c7be4c3e81 100644 --- a/test/language/expressions/class/params-meth-dflt-ref-prior.js +++ b/test/language/expressions/class/meth-dflt-params-ref-prior.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-prior.case -// - src/params/default/cls-expr-meth.template +// - src/function-forms/dflt-params-ref-prior.case +// - src/function-forms/default/cls-expr-meth.template /*--- description: Referencing a parameter that occurs earlier in the ParameterList (class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-meth-dflt-ref-self.js b/test/language/expressions/class/meth-dflt-params-ref-self.js similarity index 96% rename from test/language/expressions/class/params-meth-dflt-ref-self.js rename to test/language/expressions/class/meth-dflt-params-ref-self.js index 5586d076de93f7b617c09b88b2a89b23257dfefd..aacddc328d29990aa80c40568551b43f5daea138 100644 --- a/test/language/expressions/class/params-meth-dflt-ref-self.js +++ b/test/language/expressions/class/meth-dflt-params-ref-self.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-self.case -// - src/params/error/cls-expr-meth.template +// - src/function-forms/dflt-params-ref-self.case +// - src/function-forms/error/cls-expr-meth.template /*--- description: Referencing a parameter from within its own initializer (class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-meth-dflt-rest.js b/test/language/expressions/class/meth-dflt-params-rest.js similarity index 95% rename from test/language/expressions/class/params-meth-dflt-rest.js rename to test/language/expressions/class/meth-dflt-params-rest.js index 7eddbc7841e00f2cd6d86294ef96ef3a5b5a3482..ff6401a5fbc8bb78d8231aeeefdc3365baf4eb23 100644 --- a/test/language/expressions/class/params-meth-dflt-rest.js +++ b/test/language/expressions/class/meth-dflt-params-rest.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-rest.case -// - src/params/syntax/cls-expr-meth.template +// - src/function-forms/dflt-params-rest.case +// - src/function-forms/syntax/cls-expr-meth.template /*--- description: RestParameter does not support an initializer (class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-meth-trailing-comma-dflt-param.js b/test/language/expressions/class/meth-dflt-params-trailing-comma.js similarity index 95% rename from test/language/expressions/class/params-meth-trailing-comma-dflt-param.js rename to test/language/expressions/class/meth-dflt-params-trailing-comma.js index 1943005915cfa76657c21c39a0d32be41c0e94c7..8c347459ae45f90c853ba52887f48325d072cd51 100644 --- a/test/language/expressions/class/params-meth-trailing-comma-dflt-param.js +++ b/test/language/expressions/class/meth-dflt-params-trailing-comma.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-dflt-param.case -// - src/params/default/cls-expr-meth.template +// - src/function-forms/dflt-params-trailing-comma.case +// - src/function-forms/default/cls-expr-meth.template /*--- description: A trailing comma should not increase the respective length, using default parameters (class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-meth-trailing-comma-multiple-param.js b/test/language/expressions/class/meth-params-trailing-comma-multiple.js similarity index 95% rename from test/language/expressions/class/params-meth-trailing-comma-multiple-param.js rename to test/language/expressions/class/meth-params-trailing-comma-multiple.js index 97c81b7653d68e1e41ce1b76b97a2ea777a4684f..e749c149fb3c56e8bc27e1c076e8d8d865bb2f64 100644 --- a/test/language/expressions/class/params-meth-trailing-comma-multiple-param.js +++ b/test/language/expressions/class/meth-params-trailing-comma-multiple.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-multiple-param.case -// - src/params/default/cls-expr-meth.template +// - src/function-forms/params-trailing-comma-multiple.case +// - src/function-forms/default/cls-expr-meth.template /*--- description: A trailing comma should not increase the respective length, using multiple parameters (class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-meth-trailing-comma-single-param.js b/test/language/expressions/class/meth-params-trailing-comma-single.js similarity index 95% rename from test/language/expressions/class/params-meth-trailing-comma-single-param.js rename to test/language/expressions/class/meth-params-trailing-comma-single.js index f8cd36aa985e926cc7d0136bad33809513a8a3ca..559f96985041ff68517bc42c27e986caf9b1cfcd 100644 --- a/test/language/expressions/class/params-meth-trailing-comma-single-param.js +++ b/test/language/expressions/class/meth-params-trailing-comma-single.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-single-param.case -// - src/params/default/cls-expr-meth.template +// - src/function-forms/params-trailing-comma-single.case +// - src/function-forms/default/cls-expr-meth.template /*--- description: A trailing comma should not increase the respective length, using a single parameter (class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-meth-trailing-comma-rest-early-error.js b/test/language/expressions/class/meth-rest-params-trailing-comma-early-error.js similarity index 95% rename from test/language/expressions/class/params-meth-trailing-comma-rest-early-error.js rename to test/language/expressions/class/meth-rest-params-trailing-comma-early-error.js index a8db528c57da37845ef97afde391ca2b4b07c558..0d60556379f0ecd7ee9ab1d376a381171200cdb7 100644 --- a/test/language/expressions/class/params-meth-trailing-comma-rest-early-error.js +++ b/test/language/expressions/class/meth-rest-params-trailing-comma-early-error.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-rest-early-error.case -// - src/params/syntax/cls-expr-meth.template +// - src/function-forms/rest-params-trailing-comma-early-error.case +// - src/function-forms/syntax/cls-expr-meth.template /*--- description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-meth-static-dflt-abrupt.js b/test/language/expressions/class/meth-static-dflt-params-abrupt.js similarity index 96% rename from test/language/expressions/class/params-meth-static-dflt-abrupt.js rename to test/language/expressions/class/meth-static-dflt-params-abrupt.js index e920bcb370656b10cd06124a8c2b1cc773977bf2..a19cb3a93a127a99f3d3adc94abe81ffea859e82 100644 --- a/test/language/expressions/class/params-meth-static-dflt-abrupt.js +++ b/test/language/expressions/class/meth-static-dflt-params-abrupt.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-abrupt.case -// - src/params/error/cls-expr-meth-static.template +// - src/function-forms/dflt-params-abrupt.case +// - src/function-forms/error/cls-expr-meth-static.template /*--- description: Abrupt completion returned by evaluation of initializer (static class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-meth-static-dflt-arg-val-not-undefined.js b/test/language/expressions/class/meth-static-dflt-params-arg-val-not-undefined.js similarity index 96% rename from test/language/expressions/class/params-meth-static-dflt-arg-val-not-undefined.js rename to test/language/expressions/class/meth-static-dflt-params-arg-val-not-undefined.js index aead2df6eb13c1962590445414c3868031e6b26a..210287f8e20cc25570c926536a57fb5c9d05ee9d 100644 --- a/test/language/expressions/class/params-meth-static-dflt-arg-val-not-undefined.js +++ b/test/language/expressions/class/meth-static-dflt-params-arg-val-not-undefined.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-arg-val-not-undefined.case -// - src/params/default/cls-expr-meth-static.template +// - src/function-forms/dflt-params-arg-val-not-undefined.case +// - src/function-forms/default/cls-expr-meth-static.template /*--- description: Use of intializer when argument value is not `undefined` (static class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-meth-static-dflt-arg-val-undefined.js b/test/language/expressions/class/meth-static-dflt-params-arg-val-undefined.js similarity index 95% rename from test/language/expressions/class/params-meth-static-dflt-arg-val-undefined.js rename to test/language/expressions/class/meth-static-dflt-params-arg-val-undefined.js index de9a16f614b24abb59118fb503bcdb9ce90db46a..5854132c704064586ae70f5cfd10a97d85a55044 100644 --- a/test/language/expressions/class/params-meth-static-dflt-arg-val-undefined.js +++ b/test/language/expressions/class/meth-static-dflt-params-arg-val-undefined.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-arg-val-undefined.case -// - src/params/default/cls-expr-meth-static.template +// - src/function-forms/dflt-params-arg-val-undefined.case +// - src/function-forms/default/cls-expr-meth-static.template /*--- description: Use of intializer when argument value is `undefined` (static class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-meth-static-dflt-duplicates.js b/test/language/expressions/class/meth-static-dflt-params-duplicates.js similarity index 95% rename from test/language/expressions/class/params-meth-static-dflt-duplicates.js rename to test/language/expressions/class/meth-static-dflt-params-duplicates.js index 05590c838c9f1e79449a2f80d1db219e39979be6..80b48b38f49c53faf013d83ab96fe66229af0799 100644 --- a/test/language/expressions/class/params-meth-static-dflt-duplicates.js +++ b/test/language/expressions/class/meth-static-dflt-params-duplicates.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-duplicates.case -// - src/params/syntax/cls-expr-meth-static.template +// - src/function-forms/dflt-params-duplicates.case +// - src/function-forms/syntax/cls-expr-meth-static.template /*--- description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (static class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-meth-static-dflt-ref-later.js b/test/language/expressions/class/meth-static-dflt-params-ref-later.js similarity index 96% rename from test/language/expressions/class/params-meth-static-dflt-ref-later.js rename to test/language/expressions/class/meth-static-dflt-params-ref-later.js index 9672c7e34e55b997856e488d7da32f96e07693b6..d414001f23e32bf5e3c1badd1e48df6dd085e58f 100644 --- a/test/language/expressions/class/params-meth-static-dflt-ref-later.js +++ b/test/language/expressions/class/meth-static-dflt-params-ref-later.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-later.case -// - src/params/error/cls-expr-meth-static.template +// - src/function-forms/dflt-params-ref-later.case +// - src/function-forms/error/cls-expr-meth-static.template /*--- description: Referencing a parameter that occurs later in the ParameterList (static class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-meth-static-dflt-ref-prior.js b/test/language/expressions/class/meth-static-dflt-params-ref-prior.js similarity index 96% rename from test/language/expressions/class/params-meth-static-dflt-ref-prior.js rename to test/language/expressions/class/meth-static-dflt-params-ref-prior.js index fe278ec16801b304b23bd77635c4314907b607f4..f7af2cc1c685582d450e25c3d70c4c4d91f58afc 100644 --- a/test/language/expressions/class/params-meth-static-dflt-ref-prior.js +++ b/test/language/expressions/class/meth-static-dflt-params-ref-prior.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-prior.case -// - src/params/default/cls-expr-meth-static.template +// - src/function-forms/dflt-params-ref-prior.case +// - src/function-forms/default/cls-expr-meth-static.template /*--- description: Referencing a parameter that occurs earlier in the ParameterList (static class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-meth-static-dflt-ref-self.js b/test/language/expressions/class/meth-static-dflt-params-ref-self.js similarity index 96% rename from test/language/expressions/class/params-meth-static-dflt-ref-self.js rename to test/language/expressions/class/meth-static-dflt-params-ref-self.js index cf6bca9e1f21a607748e43ad18e31bf69d7a48ed..129ee534c91a43837db6a1628bdb39da5c67ce2b 100644 --- a/test/language/expressions/class/params-meth-static-dflt-ref-self.js +++ b/test/language/expressions/class/meth-static-dflt-params-ref-self.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-self.case -// - src/params/error/cls-expr-meth-static.template +// - src/function-forms/dflt-params-ref-self.case +// - src/function-forms/error/cls-expr-meth-static.template /*--- description: Referencing a parameter from within its own initializer (static class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-meth-static-dflt-rest.js b/test/language/expressions/class/meth-static-dflt-params-rest.js similarity index 95% rename from test/language/expressions/class/params-meth-static-dflt-rest.js rename to test/language/expressions/class/meth-static-dflt-params-rest.js index afcfab563835d170962049cc0a7bb3a483f71a7f..12569abcfc384de5b871ea6bfdcc2b80a8305fb0 100644 --- a/test/language/expressions/class/params-meth-static-dflt-rest.js +++ b/test/language/expressions/class/meth-static-dflt-params-rest.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-rest.case -// - src/params/syntax/cls-expr-meth-static.template +// - src/function-forms/dflt-params-rest.case +// - src/function-forms/syntax/cls-expr-meth-static.template /*--- description: RestParameter does not support an initializer (static class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-meth-static-trailing-comma-dflt-param.js b/test/language/expressions/class/meth-static-dflt-params-trailing-comma.js similarity index 95% rename from test/language/expressions/class/params-meth-static-trailing-comma-dflt-param.js rename to test/language/expressions/class/meth-static-dflt-params-trailing-comma.js index 92402aa988c4f45e091df4f313a264bf5f7b39ad..76f6728d5a6a0bc889fed6f745c43d940cee1eb4 100644 --- a/test/language/expressions/class/params-meth-static-trailing-comma-dflt-param.js +++ b/test/language/expressions/class/meth-static-dflt-params-trailing-comma.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-dflt-param.case -// - src/params/default/cls-expr-meth-static.template +// - src/function-forms/dflt-params-trailing-comma.case +// - src/function-forms/default/cls-expr-meth-static.template /*--- description: A trailing comma should not increase the respective length, using default parameters (static class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-meth-static-trailing-comma-multiple-param.js b/test/language/expressions/class/meth-static-params-trailing-comma-multiple.js similarity index 95% rename from test/language/expressions/class/params-meth-static-trailing-comma-multiple-param.js rename to test/language/expressions/class/meth-static-params-trailing-comma-multiple.js index a0fc8c066f7b1cb5b905e2244eed6526c831f4a6..010e5b5c2048c4b694ca31d9b9fd853c2aec105a 100644 --- a/test/language/expressions/class/params-meth-static-trailing-comma-multiple-param.js +++ b/test/language/expressions/class/meth-static-params-trailing-comma-multiple.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-multiple-param.case -// - src/params/default/cls-expr-meth-static.template +// - src/function-forms/params-trailing-comma-multiple.case +// - src/function-forms/default/cls-expr-meth-static.template /*--- description: A trailing comma should not increase the respective length, using multiple parameters (static class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-meth-static-trailing-comma-single-param.js b/test/language/expressions/class/meth-static-params-trailing-comma-single.js similarity index 95% rename from test/language/expressions/class/params-meth-static-trailing-comma-single-param.js rename to test/language/expressions/class/meth-static-params-trailing-comma-single.js index cfb1d3a81304b646a932560ac920b24c06b85feb..8a8bb4650ae71da304e6bbf0bcd426e9a365b702 100644 --- a/test/language/expressions/class/params-meth-static-trailing-comma-single-param.js +++ b/test/language/expressions/class/meth-static-params-trailing-comma-single.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-single-param.case -// - src/params/default/cls-expr-meth-static.template +// - src/function-forms/params-trailing-comma-single.case +// - src/function-forms/default/cls-expr-meth-static.template /*--- description: A trailing comma should not increase the respective length, using a single parameter (static class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/class/params-meth-static-trailing-comma-rest-early-error.js b/test/language/expressions/class/meth-static-rest-params-trailing-comma-early-error.js similarity index 94% rename from test/language/expressions/class/params-meth-static-trailing-comma-rest-early-error.js rename to test/language/expressions/class/meth-static-rest-params-trailing-comma-early-error.js index 9b72e72ce3753f2069c15c7057393c0dfe1db5b8..466e998ef5276c15d7ff0d4acbcc4a118a6a5cc5 100644 --- a/test/language/expressions/class/params-meth-static-trailing-comma-rest-early-error.js +++ b/test/language/expressions/class/meth-static-rest-params-trailing-comma-early-error.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-rest-early-error.case -// - src/params/syntax/cls-expr-meth-static.template +// - src/function-forms/rest-params-trailing-comma-early-error.case +// - src/function-forms/syntax/cls-expr-meth-static.template /*--- description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (static class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/function/params-dflt-abrupt.js b/test/language/expressions/function/dflt-params-abrupt.js similarity index 95% rename from test/language/expressions/function/params-dflt-abrupt.js rename to test/language/expressions/function/dflt-params-abrupt.js index 9a8b26e80e17888d9f773151c8209ae2cd254b67..441fb8bad6d3ebc2ff41defdd55923ee573b4930 100644 --- a/test/language/expressions/function/params-dflt-abrupt.js +++ b/test/language/expressions/function/dflt-params-abrupt.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-abrupt.case -// - src/params/error/func-expr.template +// - src/function-forms/dflt-params-abrupt.case +// - src/function-forms/error/func-expr.template /*--- description: Abrupt completion returned by evaluation of initializer (function expression) esid: sec-function-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/function/params-dflt-arg-val-not-undefined.js b/test/language/expressions/function/dflt-params-arg-val-not-undefined.js similarity index 95% rename from test/language/expressions/function/params-dflt-arg-val-not-undefined.js rename to test/language/expressions/function/dflt-params-arg-val-not-undefined.js index 5584719edf7f1d786a75ed2d6c0329044f824543..a2bdd7b8ce89fa46106a19c0e207fe6700c48a06 100644 --- a/test/language/expressions/function/params-dflt-arg-val-not-undefined.js +++ b/test/language/expressions/function/dflt-params-arg-val-not-undefined.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-arg-val-not-undefined.case -// - src/params/default/func-expr.template +// - src/function-forms/dflt-params-arg-val-not-undefined.case +// - src/function-forms/default/func-expr.template /*--- description: Use of intializer when argument value is not `undefined` (function expression) esid: sec-function-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/function/params-dflt-arg-val-undefined.js b/test/language/expressions/function/dflt-params-arg-val-undefined.js similarity index 94% rename from test/language/expressions/function/params-dflt-arg-val-undefined.js rename to test/language/expressions/function/dflt-params-arg-val-undefined.js index f21c2206474612d46dd3879ce69081f84206d0da..6ece640d5cd4c486600366b7772d5ef7cede826f 100644 --- a/test/language/expressions/function/params-dflt-arg-val-undefined.js +++ b/test/language/expressions/function/dflt-params-arg-val-undefined.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-arg-val-undefined.case -// - src/params/default/func-expr.template +// - src/function-forms/dflt-params-arg-val-undefined.case +// - src/function-forms/default/func-expr.template /*--- description: Use of intializer when argument value is `undefined` (function expression) esid: sec-function-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/function/params-dflt-duplicates.js b/test/language/expressions/function/dflt-params-duplicates.js similarity index 94% rename from test/language/expressions/function/params-dflt-duplicates.js rename to test/language/expressions/function/dflt-params-duplicates.js index 102e507795fec9f0f6932a0e13d400482d8cc950..930fed977897b30a7f55e5f9adb0a52c7c10b667 100644 --- a/test/language/expressions/function/params-dflt-duplicates.js +++ b/test/language/expressions/function/dflt-params-duplicates.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-duplicates.case -// - src/params/syntax/func-expr.template +// - src/function-forms/dflt-params-duplicates.case +// - src/function-forms/syntax/func-expr.template /*--- description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (function expression) esid: sec-function-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/function/params-dflt-ref-later.js b/test/language/expressions/function/dflt-params-ref-later.js similarity index 94% rename from test/language/expressions/function/params-dflt-ref-later.js rename to test/language/expressions/function/dflt-params-ref-later.js index 26309aca043ad7bd0c76f4f81240dfa94b83e65a..52fa732eb65199d6bc0aec4bcb8338def673202c 100644 --- a/test/language/expressions/function/params-dflt-ref-later.js +++ b/test/language/expressions/function/dflt-params-ref-later.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-later.case -// - src/params/error/func-expr.template +// - src/function-forms/dflt-params-ref-later.case +// - src/function-forms/error/func-expr.template /*--- description: Referencing a parameter that occurs later in the ParameterList (function expression) esid: sec-function-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/function/params-dflt-ref-prior.js b/test/language/expressions/function/dflt-params-ref-prior.js similarity index 95% rename from test/language/expressions/function/params-dflt-ref-prior.js rename to test/language/expressions/function/dflt-params-ref-prior.js index e6b985f8329bc2957c9f6a0beee50f59b3179915..59e49aad5bab334d7ef6ef0e28ec936a25770588 100644 --- a/test/language/expressions/function/params-dflt-ref-prior.js +++ b/test/language/expressions/function/dflt-params-ref-prior.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-prior.case -// - src/params/default/func-expr.template +// - src/function-forms/dflt-params-ref-prior.case +// - src/function-forms/default/func-expr.template /*--- description: Referencing a parameter that occurs earlier in the ParameterList (function expression) esid: sec-function-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/function/params-dflt-ref-self.js b/test/language/expressions/function/dflt-params-ref-self.js similarity index 94% rename from test/language/expressions/function/params-dflt-ref-self.js rename to test/language/expressions/function/dflt-params-ref-self.js index d05f5f0c36759d9f7e24a08ece04b48859d06ab9..0bcd2c81c2854f926515b0bc764f089d59b29521 100644 --- a/test/language/expressions/function/params-dflt-ref-self.js +++ b/test/language/expressions/function/dflt-params-ref-self.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-self.case -// - src/params/error/func-expr.template +// - src/function-forms/dflt-params-ref-self.case +// - src/function-forms/error/func-expr.template /*--- description: Referencing a parameter from within its own initializer (function expression) esid: sec-function-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/function/params-dflt-rest.js b/test/language/expressions/function/dflt-params-rest.js similarity index 94% rename from test/language/expressions/function/params-dflt-rest.js rename to test/language/expressions/function/dflt-params-rest.js index 2465e13fb156d09a8215d34bdc7c43701e90b342..f5bab2d3273fd015c5e721e3daeed8dbe0606511 100644 --- a/test/language/expressions/function/params-dflt-rest.js +++ b/test/language/expressions/function/dflt-params-rest.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-rest.case -// - src/params/syntax/func-expr.template +// - src/function-forms/dflt-params-rest.case +// - src/function-forms/syntax/func-expr.template /*--- description: RestParameter does not support an initializer (function expression) esid: sec-function-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/function/params-trailing-comma-dflt-param.js b/test/language/expressions/function/dflt-params-trailing-comma.js similarity index 93% rename from test/language/expressions/function/params-trailing-comma-dflt-param.js rename to test/language/expressions/function/dflt-params-trailing-comma.js index ec90313c83bd3ccf287b97e028bbe2739832c263..a7954f58041116bededefc3577ebbb91dec8ffae 100644 --- a/test/language/expressions/function/params-trailing-comma-dflt-param.js +++ b/test/language/expressions/function/dflt-params-trailing-comma.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-dflt-param.case -// - src/params/default/func-expr.template +// - src/function-forms/dflt-params-trailing-comma.case +// - src/function-forms/default/func-expr.template /*--- description: A trailing comma should not increase the respective length, using default parameters (function expression) esid: sec-function-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/function/params-trailing-comma-multiple-param.js b/test/language/expressions/function/params-trailing-comma-multiple.js similarity index 93% rename from test/language/expressions/function/params-trailing-comma-multiple-param.js rename to test/language/expressions/function/params-trailing-comma-multiple.js index 26deae9551a59858191586feeb9cb3bb46b3c94e..efe0a16494068962e6ed17f42dab5def3191078c 100644 --- a/test/language/expressions/function/params-trailing-comma-multiple-param.js +++ b/test/language/expressions/function/params-trailing-comma-multiple.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-multiple-param.case -// - src/params/default/func-expr.template +// - src/function-forms/params-trailing-comma-multiple.case +// - src/function-forms/default/func-expr.template /*--- description: A trailing comma should not increase the respective length, using multiple parameters (function expression) esid: sec-function-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/function/params-trailing-comma-single-param.js b/test/language/expressions/function/params-trailing-comma-single.js similarity index 93% rename from test/language/expressions/function/params-trailing-comma-single-param.js rename to test/language/expressions/function/params-trailing-comma-single.js index 5191202f6eba849b6627db57d5f94041b8d59b32..01541faf6a1cd5a8a5ca71feca7ad1103be943f8 100644 --- a/test/language/expressions/function/params-trailing-comma-single-param.js +++ b/test/language/expressions/function/params-trailing-comma-single.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-single-param.case -// - src/params/default/func-expr.template +// - src/function-forms/params-trailing-comma-single.case +// - src/function-forms/default/func-expr.template /*--- description: A trailing comma should not increase the respective length, using a single parameter (function expression) esid: sec-function-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/function/params-trailing-comma-rest-early-error.js b/test/language/expressions/function/rest-params-trailing-comma-early-error.js similarity index 93% rename from test/language/expressions/function/params-trailing-comma-rest-early-error.js rename to test/language/expressions/function/rest-params-trailing-comma-early-error.js index 5150a66ceb9246da3c571902d950b226d6c33b29..34fd920cef6917a83bd05cee0f6a203623c58565 100644 --- a/test/language/expressions/function/params-trailing-comma-rest-early-error.js +++ b/test/language/expressions/function/rest-params-trailing-comma-early-error.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-rest-early-error.case -// - src/params/syntax/func-expr.template +// - src/function-forms/rest-params-trailing-comma-early-error.case +// - src/function-forms/syntax/func-expr.template /*--- description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (function expression) esid: sec-function-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/generators/params-dflt-abrupt.js b/test/language/expressions/generators/dflt-params-abrupt.js similarity index 94% rename from test/language/expressions/generators/params-dflt-abrupt.js rename to test/language/expressions/generators/dflt-params-abrupt.js index 851afb39825f1faa0892db1e9743231bef1b0412..42b32132b053bf7a1c6aba5185df93189b5fbea6 100644 --- a/test/language/expressions/generators/params-dflt-abrupt.js +++ b/test/language/expressions/generators/dflt-params-abrupt.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-abrupt.case -// - src/params/error/gen-func-expr.template +// - src/function-forms/dflt-params-abrupt.case +// - src/function-forms/error/gen-func-expr.template /*--- description: Abrupt completion returned by evaluation of initializer (generator function expression) esid: sec-generator-function-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/generators/params-dflt-arg-val-not-undefined.js b/test/language/expressions/generators/dflt-params-arg-val-not-undefined.js similarity index 95% rename from test/language/expressions/generators/params-dflt-arg-val-not-undefined.js rename to test/language/expressions/generators/dflt-params-arg-val-not-undefined.js index 50cbc474b21dc5126a9545cecd706a195049759e..5ac89d6115cd96227810d6ecd2c26b3cb6322296 100644 --- a/test/language/expressions/generators/params-dflt-arg-val-not-undefined.js +++ b/test/language/expressions/generators/dflt-params-arg-val-not-undefined.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-arg-val-not-undefined.case -// - src/params/default/gen-func-expr.template +// - src/function-forms/dflt-params-arg-val-not-undefined.case +// - src/function-forms/default/gen-func-expr.template /*--- description: Use of intializer when argument value is not `undefined` (generator function expression) esid: sec-generator-function-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/generators/params-dflt-arg-val-undefined.js b/test/language/expressions/generators/dflt-params-arg-val-undefined.js similarity index 94% rename from test/language/expressions/generators/params-dflt-arg-val-undefined.js rename to test/language/expressions/generators/dflt-params-arg-val-undefined.js index 77815a27e93773846424bf8dc389cff422709bc5..179d239d443b059cae40725df62eefca8735ea70 100644 --- a/test/language/expressions/generators/params-dflt-arg-val-undefined.js +++ b/test/language/expressions/generators/dflt-params-arg-val-undefined.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-arg-val-undefined.case -// - src/params/default/gen-func-expr.template +// - src/function-forms/dflt-params-arg-val-undefined.case +// - src/function-forms/default/gen-func-expr.template /*--- description: Use of intializer when argument value is `undefined` (generator function expression) esid: sec-generator-function-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/generators/params-dflt-duplicates.js b/test/language/expressions/generators/dflt-params-duplicates.js similarity index 94% rename from test/language/expressions/generators/params-dflt-duplicates.js rename to test/language/expressions/generators/dflt-params-duplicates.js index 6b79c5039e376fd00cdef3a4db289524e5e43e99..11c95daac11233661ba340741354c03cbb7094ba 100644 --- a/test/language/expressions/generators/params-dflt-duplicates.js +++ b/test/language/expressions/generators/dflt-params-duplicates.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-duplicates.case -// - src/params/syntax/gen-func-expr.template +// - src/function-forms/dflt-params-duplicates.case +// - src/function-forms/syntax/gen-func-expr.template /*--- description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (generator function expression) esid: sec-generator-function-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/generators/params-dflt-ref-later.js b/test/language/expressions/generators/dflt-params-ref-later.js similarity index 94% rename from test/language/expressions/generators/params-dflt-ref-later.js rename to test/language/expressions/generators/dflt-params-ref-later.js index c5bebc78622104121f553109eb1ca425fe9cc2d8..d8abc79f028a33e0b542bc97788e6d92ec74405b 100644 --- a/test/language/expressions/generators/params-dflt-ref-later.js +++ b/test/language/expressions/generators/dflt-params-ref-later.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-later.case -// - src/params/error/gen-func-expr.template +// - src/function-forms/dflt-params-ref-later.case +// - src/function-forms/error/gen-func-expr.template /*--- description: Referencing a parameter that occurs later in the ParameterList (generator function expression) esid: sec-generator-function-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/generators/params-dflt-ref-prior.js b/test/language/expressions/generators/dflt-params-ref-prior.js similarity index 95% rename from test/language/expressions/generators/params-dflt-ref-prior.js rename to test/language/expressions/generators/dflt-params-ref-prior.js index cbc7d5264b72fc57ef077f6b94ee84a1339708df..065090c06d88482ade2e2cf282a0dd456b25f53f 100644 --- a/test/language/expressions/generators/params-dflt-ref-prior.js +++ b/test/language/expressions/generators/dflt-params-ref-prior.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-prior.case -// - src/params/default/gen-func-expr.template +// - src/function-forms/dflt-params-ref-prior.case +// - src/function-forms/default/gen-func-expr.template /*--- description: Referencing a parameter that occurs earlier in the ParameterList (generator function expression) esid: sec-generator-function-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/generators/params-dflt-ref-self.js b/test/language/expressions/generators/dflt-params-ref-self.js similarity index 94% rename from test/language/expressions/generators/params-dflt-ref-self.js rename to test/language/expressions/generators/dflt-params-ref-self.js index b7623981461aa9d5e0457e5c2ebcb79bde7bf43f..22fca77f2fa8662a34468fa66c094254ac05e386 100644 --- a/test/language/expressions/generators/params-dflt-ref-self.js +++ b/test/language/expressions/generators/dflt-params-ref-self.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-self.case -// - src/params/error/gen-func-expr.template +// - src/function-forms/dflt-params-ref-self.case +// - src/function-forms/error/gen-func-expr.template /*--- description: Referencing a parameter from within its own initializer (generator function expression) esid: sec-generator-function-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/generators/params-dflt-rest.js b/test/language/expressions/generators/dflt-params-rest.js similarity index 93% rename from test/language/expressions/generators/params-dflt-rest.js rename to test/language/expressions/generators/dflt-params-rest.js index 565b131385dbd0716e9bb75752f1e77ed66ead33..0e3cd3bd2149ae6b40b092ac9261b868857d4311 100644 --- a/test/language/expressions/generators/params-dflt-rest.js +++ b/test/language/expressions/generators/dflt-params-rest.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-rest.case -// - src/params/syntax/gen-func-expr.template +// - src/function-forms/dflt-params-rest.case +// - src/function-forms/syntax/gen-func-expr.template /*--- description: RestParameter does not support an initializer (generator function expression) esid: sec-generator-function-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/generators/params-trailing-comma-dflt-param.js b/test/language/expressions/generators/dflt-params-trailing-comma.js similarity index 93% rename from test/language/expressions/generators/params-trailing-comma-dflt-param.js rename to test/language/expressions/generators/dflt-params-trailing-comma.js index 2f8406af9486a3776d314727cd6d98aa41fd236f..c787e175bde4eb66d9082c51c899d7151c175320 100644 --- a/test/language/expressions/generators/params-trailing-comma-dflt-param.js +++ b/test/language/expressions/generators/dflt-params-trailing-comma.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-dflt-param.case -// - src/params/default/gen-func-expr.template +// - src/function-forms/dflt-params-trailing-comma.case +// - src/function-forms/default/gen-func-expr.template /*--- description: A trailing comma should not increase the respective length, using default parameters (generator function expression) esid: sec-generator-function-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/generators/params-trailing-comma-multiple-param.js b/test/language/expressions/generators/params-trailing-comma-multiple.js similarity index 93% rename from test/language/expressions/generators/params-trailing-comma-multiple-param.js rename to test/language/expressions/generators/params-trailing-comma-multiple.js index 21db7901946e69c16fbd914b84af3fc06caf1eef..557ec685955f1e56d362a8e96b0e5e5e9ed7727d 100644 --- a/test/language/expressions/generators/params-trailing-comma-multiple-param.js +++ b/test/language/expressions/generators/params-trailing-comma-multiple.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-multiple-param.case -// - src/params/default/gen-func-expr.template +// - src/function-forms/params-trailing-comma-multiple.case +// - src/function-forms/default/gen-func-expr.template /*--- description: A trailing comma should not increase the respective length, using multiple parameters (generator function expression) esid: sec-generator-function-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/generators/params-trailing-comma-single-param.js b/test/language/expressions/generators/params-trailing-comma-single.js similarity index 93% rename from test/language/expressions/generators/params-trailing-comma-single-param.js rename to test/language/expressions/generators/params-trailing-comma-single.js index 28f04739fc20a1876ae1ff6c641cbb94f22c7323..25df59033a7e3c37b39c75c5eb53b61bd61eb906 100644 --- a/test/language/expressions/generators/params-trailing-comma-single-param.js +++ b/test/language/expressions/generators/params-trailing-comma-single.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-single-param.case -// - src/params/default/gen-func-expr.template +// - src/function-forms/params-trailing-comma-single.case +// - src/function-forms/default/gen-func-expr.template /*--- description: A trailing comma should not increase the respective length, using a single parameter (generator function expression) esid: sec-generator-function-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/generators/params-trailing-comma-rest-early-error.js b/test/language/expressions/generators/rest-params-trailing-comma-early-error.js similarity index 92% rename from test/language/expressions/generators/params-trailing-comma-rest-early-error.js rename to test/language/expressions/generators/rest-params-trailing-comma-early-error.js index b82ced0c4638bdc612f27e54f48ed8d963514aa7..2aa773505015438beef5a8cf37806c514063e6b9 100644 --- a/test/language/expressions/generators/params-trailing-comma-rest-early-error.js +++ b/test/language/expressions/generators/rest-params-trailing-comma-early-error.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-rest-early-error.case -// - src/params/syntax/gen-func-expr.template +// - src/function-forms/rest-params-trailing-comma-early-error.case +// - src/function-forms/syntax/gen-func-expr.template /*--- description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (generator function expression) esid: sec-generator-function-definitions-runtime-semantics-evaluation diff --git a/test/language/expressions/object/method-definition/async-gen-meth-args-trailing-comma-multiple.js b/test/language/expressions/object/method-definition/async-gen-meth-args-trailing-comma-multiple.js new file mode 100644 index 0000000000000000000000000000000000000000..656e979764e551be55a1dc790dc7f0723e551a99 --- /dev/null +++ b/test/language/expressions/object/method-definition/async-gen-meth-args-trailing-comma-multiple.js @@ -0,0 +1,46 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/args-trailing-comma-multiple.case +// - src/arguments/default/async-gen-meth.template +/*--- +description: A trailing comma should not increase the arguments.length, using multiple args (async generator method) +esid: sec-asyncgenerator-definitions-propertydefinitionevaluation +features: [async-iteration] +flags: [generated, async] +info: | + AsyncGeneratorMethod : + async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) + { AsyncGeneratorBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true. + Otherwise let strict be false. + 4. Let scope be the running execution context's LexicalEnvironment. + 5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters, + AsyncGeneratorBody, scope, strict). + [...] + + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + +var callCount = 0; +var obj = { + async *method() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], 'TC39'); + callCount = callCount + 1; + } +}; + +// Stores a reference `ref` for case evaluation +var ref = obj.method; + +ref(42, 'TC39',).next().then(() => { + assert.sameValue(callCount, 1, 'generator method invoked exactly once'); +}).then($DONE, $DONE); diff --git a/test/language/expressions/object/method-definition/async-gen-meth-args-trailing-comma-null.js b/test/language/expressions/object/method-definition/async-gen-meth-args-trailing-comma-null.js new file mode 100644 index 0000000000000000000000000000000000000000..0bdc228f9bfd86df049b9055513dd42972d107bc --- /dev/null +++ b/test/language/expressions/object/method-definition/async-gen-meth-args-trailing-comma-null.js @@ -0,0 +1,46 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/args-trailing-comma-null.case +// - src/arguments/default/async-gen-meth.template +/*--- +description: A trailing comma after null should not increase the arguments.length (async generator method) +esid: sec-asyncgenerator-definitions-propertydefinitionevaluation +features: [async-iteration] +flags: [generated, async] +info: | + AsyncGeneratorMethod : + async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) + { AsyncGeneratorBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true. + Otherwise let strict be false. + 4. Let scope be the running execution context's LexicalEnvironment. + 5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters, + AsyncGeneratorBody, scope, strict). + [...] + + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + +var callCount = 0; +var obj = { + async *method() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], null); + callCount = callCount + 1; + } +}; + +// Stores a reference `ref` for case evaluation +var ref = obj.method; + +ref(42, null,).next().then(() => { + assert.sameValue(callCount, 1, 'generator method invoked exactly once'); +}).then($DONE, $DONE); diff --git a/test/language/expressions/object/method-definition/async-gen-meth-args-trailing-comma-single-args.js b/test/language/expressions/object/method-definition/async-gen-meth-args-trailing-comma-single-args.js new file mode 100644 index 0000000000000000000000000000000000000000..905ca395fe177d015347543e9cab9cef2d99e74c --- /dev/null +++ b/test/language/expressions/object/method-definition/async-gen-meth-args-trailing-comma-single-args.js @@ -0,0 +1,45 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/args-trailing-comma-single-args.case +// - src/arguments/default/async-gen-meth.template +/*--- +description: A trailing comma should not increase the arguments.length, using a single arg (async generator method) +esid: sec-asyncgenerator-definitions-propertydefinitionevaluation +features: [async-iteration] +flags: [generated, async] +info: | + AsyncGeneratorMethod : + async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) + { AsyncGeneratorBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true. + Otherwise let strict be false. + 4. Let scope be the running execution context's LexicalEnvironment. + 5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters, + AsyncGeneratorBody, scope, strict). + [...] + + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + +var callCount = 0; +var obj = { + async *method() { + assert.sameValue(arguments.length, 1); + assert.sameValue(arguments[0], 42); + callCount = callCount + 1; + } +}; + +// Stores a reference `ref` for case evaluation +var ref = obj.method; + +ref(42,).next().then(() => { + assert.sameValue(callCount, 1, 'generator method invoked exactly once'); +}).then($DONE, $DONE); diff --git a/test/language/expressions/object/method-definition/async-gen-meth-args-trailing-comma-undefined.js b/test/language/expressions/object/method-definition/async-gen-meth-args-trailing-comma-undefined.js new file mode 100644 index 0000000000000000000000000000000000000000..b9fc31fcbe9ebe648e8fb9ee5739cc4e135a2ea6 --- /dev/null +++ b/test/language/expressions/object/method-definition/async-gen-meth-args-trailing-comma-undefined.js @@ -0,0 +1,46 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/args-trailing-comma-undefined.case +// - src/arguments/default/async-gen-meth.template +/*--- +description: A trailing comma after undefined should not increase the arguments.length (async generator method) +esid: sec-asyncgenerator-definitions-propertydefinitionevaluation +features: [async-iteration] +flags: [generated, async] +info: | + AsyncGeneratorMethod : + async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) + { AsyncGeneratorBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true. + Otherwise let strict be false. + 4. Let scope be the running execution context's LexicalEnvironment. + 5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters, + AsyncGeneratorBody, scope, strict). + [...] + + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + +var callCount = 0; +var obj = { + async *method() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], undefined); + callCount = callCount + 1; + } +}; + +// Stores a reference `ref` for case evaluation +var ref = obj.method; + +ref(42, undefined,).next().then(() => { + assert.sameValue(callCount, 1, 'generator method invoked exactly once'); +}).then($DONE, $DONE); diff --git a/test/language/expressions/object/method-definition/params-async-gen-meth-dflt-abrupt.js b/test/language/expressions/object/method-definition/async-gen-meth-dflt-params-abrupt.js similarity index 94% rename from test/language/expressions/object/method-definition/params-async-gen-meth-dflt-abrupt.js rename to test/language/expressions/object/method-definition/async-gen-meth-dflt-params-abrupt.js index 2f6c0c554cd523fa3135dbec1788e3b3a8c85c4b..30d6e00f9e7ecb7b8971d2bf6846fc279541e90c 100644 --- a/test/language/expressions/object/method-definition/params-async-gen-meth-dflt-abrupt.js +++ b/test/language/expressions/object/method-definition/async-gen-meth-dflt-params-abrupt.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-abrupt.case -// - src/params/error/async-gen-meth.template +// - src/function-forms/dflt-params-abrupt.case +// - src/function-forms/error/async-gen-meth.template /*--- description: Abrupt completion returned by evaluation of initializer (async generator method) esid: sec-asyncgenerator-definitions-propertydefinitionevaluation diff --git a/test/language/expressions/object/method-definition/params-async-gen-meth-dflt-arg-val-not-undefined.js b/test/language/expressions/object/method-definition/async-gen-meth-dflt-params-arg-val-not-undefined.js similarity index 95% rename from test/language/expressions/object/method-definition/params-async-gen-meth-dflt-arg-val-not-undefined.js rename to test/language/expressions/object/method-definition/async-gen-meth-dflt-params-arg-val-not-undefined.js index 9d3c7820d2b90e5871d24d9de6270db3662605da..bf3dfb95ad913e74b692c67c9eb3207881cfd0a7 100644 --- a/test/language/expressions/object/method-definition/params-async-gen-meth-dflt-arg-val-not-undefined.js +++ b/test/language/expressions/object/method-definition/async-gen-meth-dflt-params-arg-val-not-undefined.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-arg-val-not-undefined.case -// - src/params/default/async-gen-meth.template +// - src/function-forms/dflt-params-arg-val-not-undefined.case +// - src/function-forms/default/async-gen-meth.template /*--- description: Use of intializer when argument value is not `undefined` (async generator method) esid: sec-asyncgenerator-definitions-propertydefinitionevaluation diff --git a/test/language/expressions/object/method-definition/params-async-gen-meth-dflt-arg-val-undefined.js b/test/language/expressions/object/method-definition/async-gen-meth-dflt-params-arg-val-undefined.js similarity index 93% rename from test/language/expressions/object/method-definition/params-async-gen-meth-dflt-arg-val-undefined.js rename to test/language/expressions/object/method-definition/async-gen-meth-dflt-params-arg-val-undefined.js index adef672abd6d294f66c0486ec4598754346326a5..2c19f815ea77422083af9291b6b3e2b817638b5c 100644 --- a/test/language/expressions/object/method-definition/params-async-gen-meth-dflt-arg-val-undefined.js +++ b/test/language/expressions/object/method-definition/async-gen-meth-dflt-params-arg-val-undefined.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-arg-val-undefined.case -// - src/params/default/async-gen-meth.template +// - src/function-forms/dflt-params-arg-val-undefined.case +// - src/function-forms/default/async-gen-meth.template /*--- description: Use of intializer when argument value is `undefined` (async generator method) esid: sec-asyncgenerator-definitions-propertydefinitionevaluation diff --git a/test/language/expressions/object/method-definition/params-async-gen-meth-dflt-duplicates.js b/test/language/expressions/object/method-definition/async-gen-meth-dflt-params-duplicates.js similarity index 93% rename from test/language/expressions/object/method-definition/params-async-gen-meth-dflt-duplicates.js rename to test/language/expressions/object/method-definition/async-gen-meth-dflt-params-duplicates.js index 9010b6ce3e9573c5cd9ddd5832e968171e79b020..8120c0e62013f0643cf5c5032d1321e9e9b8684b 100644 --- a/test/language/expressions/object/method-definition/params-async-gen-meth-dflt-duplicates.js +++ b/test/language/expressions/object/method-definition/async-gen-meth-dflt-params-duplicates.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-duplicates.case -// - src/params/syntax/async-gen-meth.template +// - src/function-forms/dflt-params-duplicates.case +// - src/function-forms/syntax/async-gen-meth.template /*--- description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (async generator method) esid: sec-asyncgenerator-definitions-propertydefinitionevaluation diff --git a/test/language/expressions/object/method-definition/params-async-gen-meth-dflt-ref-later.js b/test/language/expressions/object/method-definition/async-gen-meth-dflt-params-ref-later.js similarity index 93% rename from test/language/expressions/object/method-definition/params-async-gen-meth-dflt-ref-later.js rename to test/language/expressions/object/method-definition/async-gen-meth-dflt-params-ref-later.js index db8b2a53119c9d36a18478a2a050bf9182eeeb1f..40cc9de66433496808380dcc62d004e48ec1f249 100644 --- a/test/language/expressions/object/method-definition/params-async-gen-meth-dflt-ref-later.js +++ b/test/language/expressions/object/method-definition/async-gen-meth-dflt-params-ref-later.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-later.case -// - src/params/error/async-gen-meth.template +// - src/function-forms/dflt-params-ref-later.case +// - src/function-forms/error/async-gen-meth.template /*--- description: Referencing a parameter that occurs later in the ParameterList (async generator method) esid: sec-asyncgenerator-definitions-propertydefinitionevaluation diff --git a/test/language/expressions/object/method-definition/params-async-gen-meth-dflt-ref-prior.js b/test/language/expressions/object/method-definition/async-gen-meth-dflt-params-ref-prior.js similarity index 94% rename from test/language/expressions/object/method-definition/params-async-gen-meth-dflt-ref-prior.js rename to test/language/expressions/object/method-definition/async-gen-meth-dflt-params-ref-prior.js index 3f0515f0bc935ed11754a022de3f579398c23668..d7b07d73b3e1b2a28e8945682c3842772bf3a591 100644 --- a/test/language/expressions/object/method-definition/params-async-gen-meth-dflt-ref-prior.js +++ b/test/language/expressions/object/method-definition/async-gen-meth-dflt-params-ref-prior.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-prior.case -// - src/params/default/async-gen-meth.template +// - src/function-forms/dflt-params-ref-prior.case +// - src/function-forms/default/async-gen-meth.template /*--- description: Referencing a parameter that occurs earlier in the ParameterList (async generator method) esid: sec-asyncgenerator-definitions-propertydefinitionevaluation diff --git a/test/language/expressions/object/method-definition/params-async-gen-meth-dflt-ref-self.js b/test/language/expressions/object/method-definition/async-gen-meth-dflt-params-ref-self.js similarity index 93% rename from test/language/expressions/object/method-definition/params-async-gen-meth-dflt-ref-self.js rename to test/language/expressions/object/method-definition/async-gen-meth-dflt-params-ref-self.js index 0d218040446e00d9fdd759d0e3cc326edc22247f..876cf947ffb78bc6da28a767a24a8b53f34941e9 100644 --- a/test/language/expressions/object/method-definition/params-async-gen-meth-dflt-ref-self.js +++ b/test/language/expressions/object/method-definition/async-gen-meth-dflt-params-ref-self.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-self.case -// - src/params/error/async-gen-meth.template +// - src/function-forms/dflt-params-ref-self.case +// - src/function-forms/error/async-gen-meth.template /*--- description: Referencing a parameter from within its own initializer (async generator method) esid: sec-asyncgenerator-definitions-propertydefinitionevaluation diff --git a/test/language/expressions/object/method-definition/params-async-gen-meth-dflt-rest.js b/test/language/expressions/object/method-definition/async-gen-meth-dflt-params-rest.js similarity index 92% rename from test/language/expressions/object/method-definition/params-async-gen-meth-dflt-rest.js rename to test/language/expressions/object/method-definition/async-gen-meth-dflt-params-rest.js index 93c7750f93fbf186f8320788bbd7fa23207be2d1..be3eafda5e3d04fe42598cfc2fbda200aa2b089b 100644 --- a/test/language/expressions/object/method-definition/params-async-gen-meth-dflt-rest.js +++ b/test/language/expressions/object/method-definition/async-gen-meth-dflt-params-rest.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-rest.case -// - src/params/syntax/async-gen-meth.template +// - src/function-forms/dflt-params-rest.case +// - src/function-forms/syntax/async-gen-meth.template /*--- description: RestParameter does not support an initializer (async generator method) esid: sec-asyncgenerator-definitions-propertydefinitionevaluation diff --git a/test/language/expressions/object/method-definition/params-async-gen-meth-trailing-comma-dflt-param.js b/test/language/expressions/object/method-definition/async-gen-meth-dflt-params-trailing-comma.js similarity index 93% rename from test/language/expressions/object/method-definition/params-async-gen-meth-trailing-comma-dflt-param.js rename to test/language/expressions/object/method-definition/async-gen-meth-dflt-params-trailing-comma.js index 1ec0d52e545dfcb5638af30e3ecfe08a2dd488dc..2ac6f787635e0455bafbaf7cb94446c50ed4b4f4 100644 --- a/test/language/expressions/object/method-definition/params-async-gen-meth-trailing-comma-dflt-param.js +++ b/test/language/expressions/object/method-definition/async-gen-meth-dflt-params-trailing-comma.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-dflt-param.case -// - src/params/default/async-gen-meth.template +// - src/function-forms/dflt-params-trailing-comma.case +// - src/function-forms/default/async-gen-meth.template /*--- description: A trailing comma should not increase the respective length, using default parameters (async generator method) esid: sec-asyncgenerator-definitions-propertydefinitionevaluation diff --git a/test/language/expressions/object/method-definition/params-async-gen-meth-trailing-comma-multiple-param.js b/test/language/expressions/object/method-definition/async-gen-meth-params-trailing-comma-multiple.js similarity index 92% rename from test/language/expressions/object/method-definition/params-async-gen-meth-trailing-comma-multiple-param.js rename to test/language/expressions/object/method-definition/async-gen-meth-params-trailing-comma-multiple.js index 8a8cc5936078e7e4ed8fc0e72568680b6bc7d813..fb46babf2307026873d6db11c63fafbc195c0745 100644 --- a/test/language/expressions/object/method-definition/params-async-gen-meth-trailing-comma-multiple-param.js +++ b/test/language/expressions/object/method-definition/async-gen-meth-params-trailing-comma-multiple.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-multiple-param.case -// - src/params/default/async-gen-meth.template +// - src/function-forms/params-trailing-comma-multiple.case +// - src/function-forms/default/async-gen-meth.template /*--- description: A trailing comma should not increase the respective length, using multiple parameters (async generator method) esid: sec-asyncgenerator-definitions-propertydefinitionevaluation diff --git a/test/language/expressions/object/method-definition/params-async-gen-meth-trailing-comma-single-param.js b/test/language/expressions/object/method-definition/async-gen-meth-params-trailing-comma-single.js similarity index 92% rename from test/language/expressions/object/method-definition/params-async-gen-meth-trailing-comma-single-param.js rename to test/language/expressions/object/method-definition/async-gen-meth-params-trailing-comma-single.js index 879a1534ddc2fbd4bc2237c62de170a1a4d272e1..5712c60642cefc6468a944c31826ee9e4bed0e80 100644 --- a/test/language/expressions/object/method-definition/params-async-gen-meth-trailing-comma-single-param.js +++ b/test/language/expressions/object/method-definition/async-gen-meth-params-trailing-comma-single.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-single-param.case -// - src/params/default/async-gen-meth.template +// - src/function-forms/params-trailing-comma-single.case +// - src/function-forms/default/async-gen-meth.template /*--- description: A trailing comma should not increase the respective length, using a single parameter (async generator method) esid: sec-asyncgenerator-definitions-propertydefinitionevaluation diff --git a/test/language/expressions/object/method-definition/params-async-gen-meth-trailing-comma-rest-early-error.js b/test/language/expressions/object/method-definition/async-gen-meth-rest-params-trailing-comma-early-error.js similarity index 91% rename from test/language/expressions/object/method-definition/params-async-gen-meth-trailing-comma-rest-early-error.js rename to test/language/expressions/object/method-definition/async-gen-meth-rest-params-trailing-comma-early-error.js index 096c7d9d5a83ba1beda1e6e9a3b285fe9f316516..3ac0cbd918acc7cc080ccbdfc0804fee3fec29cd 100644 --- a/test/language/expressions/object/method-definition/params-async-gen-meth-trailing-comma-rest-early-error.js +++ b/test/language/expressions/object/method-definition/async-gen-meth-rest-params-trailing-comma-early-error.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-rest-early-error.case -// - src/params/syntax/async-gen-meth.template +// - src/function-forms/rest-params-trailing-comma-early-error.case +// - src/function-forms/syntax/async-gen-meth.template /*--- description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (async generator method) esid: sec-asyncgenerator-definitions-propertydefinitionevaluation diff --git a/test/language/expressions/object/method-definition/async-meth-dflt-params-abrupt.js b/test/language/expressions/object/method-definition/async-meth-dflt-params-abrupt.js new file mode 100644 index 0000000000000000000000000000000000000000..21052dbf34f275995f58b5f0fc850e7d25a07771 --- /dev/null +++ b/test/language/expressions/object/method-definition/async-meth-dflt-params-abrupt.js @@ -0,0 +1,45 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-abrupt.case +// - src/function-forms/error/async-meth.template +/*--- +description: Abrupt completion returned by evaluation of initializer (async method) +esid: sec-async-function-definitions +features: [default-parameters] +flags: [generated, async] +info: | + 14.6 Async Function Definitions + + AsyncMethod : + async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + 1. Let status be the result of performing IteratorBindingInitialization for + FormalsList using iteratorRecord and environment as the arguments. + 2. ReturnIfAbrupt(status). + 3. Return the result of performing IteratorBindingInitialization for + FormalParameter using iteratorRecord and environment as the arguments. + +---*/ + + +var callCount = 0; + +var obj = { + async method(_ = (function() { throw new Test262Error(); }())) { + + callCount = callCount + 1; + } +}; + +obj.method() + .then(_ => { + throw new Test262Error('function should not be resolved'); + }, error => assert.sameValue(error.constructor, Test262Error)) + .then(() => { + assert.sameValue(callCount, 0, 'function body is not evaluated'); + }, $DONE) + .then($DONE, $DONE); diff --git a/test/language/expressions/object/method-definition/async-meth-dflt-params-arg-val-not-undefined.js b/test/language/expressions/object/method-definition/async-meth-dflt-params-arg-val-not-undefined.js new file mode 100644 index 0000000000000000000000000000000000000000..2e73f929bd200f07d7a667cc976a20cd84bd2a29 --- /dev/null +++ b/test/language/expressions/object/method-definition/async-meth-dflt-params-arg-val-not-undefined.js @@ -0,0 +1,65 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-arg-val-not-undefined.case +// - src/function-forms/default/async-meth.template +/*--- +description: Use of intializer when argument value is not `undefined` (async method) +esid: sec-async-function-definitions +features: [default-parameters] +flags: [generated, async] +info: | + 14.6 Async Function Definitions + + AsyncMethod : + async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + [...] + 23. Let iteratorRecord be Record {[[Iterator]]: + CreateListIterator(argumentsList), [[Done]]: false}. + 24. If hasDuplicates is true, then + [...] + 25. Else, + a. Perform ? IteratorBindingInitialization for formals with + iteratorRecord and env as arguments. + [...] + +---*/ +var obj = {}; +var falseCount = 0; +var stringCount = 0; +var nanCount = 0; +var zeroCount = 0; +var nullCount = 0; +var objCount = 0; + + +var callCount = 0; +var __obj = { + async method(aFalse = falseCount +=1, aString = stringCount += 1, aNaN = nanCount += 1, a0 = zeroCount += 1, aNull = nullCount += 1, aObj = objCount +=1) { + assert.sameValue(aFalse, false); + assert.sameValue(aString, ''); + assert.sameValue(aNaN, NaN); + assert.sameValue(a0, 0); + assert.sameValue(aNull, null); + assert.sameValue(aObj, obj); + callCount = callCount + 1; + } +}; + +// Stores a reference `ref` for case evaluation +var ref = __obj.method; + +ref(false, '', NaN, 0, null, obj).then(() => { + assert.sameValue(callCount, 1, 'async method invoked exactly once'); +}).then($DONE, $DONE); + +assert.sameValue(falseCount, 0, 'initializer not evaluated: false'); +assert.sameValue(stringCount, 0, 'initializer not evaluated: string'); +assert.sameValue(nanCount, 0, 'initializer not evaluated: NaN'); +assert.sameValue(zeroCount, 0, 'initializer not evaluated: 0'); +assert.sameValue(nullCount, 0, 'initializer not evaluated: null'); +assert.sameValue(objCount, 0, 'initializer not evaluated: object'); diff --git a/test/language/expressions/object/method-definition/async-meth-dflt-params-arg-val-undefined.js b/test/language/expressions/object/method-definition/async-meth-dflt-params-arg-val-undefined.js new file mode 100644 index 0000000000000000000000000000000000000000..7fca9a24fafb8ca21e5fe0079569cb0072394f43 --- /dev/null +++ b/test/language/expressions/object/method-definition/async-meth-dflt-params-arg-val-undefined.js @@ -0,0 +1,48 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-arg-val-undefined.case +// - src/function-forms/default/async-meth.template +/*--- +description: Use of intializer when argument value is `undefined` (async method) +esid: sec-async-function-definitions +features: [default-parameters] +flags: [generated, async] +info: | + 14.6 Async Function Definitions + + AsyncMethod : + async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + [...] + 23. Let iteratorRecord be Record {[[Iterator]]: + CreateListIterator(argumentsList), [[Done]]: false}. + 24. If hasDuplicates is true, then + [...] + 25. Else, + a. Perform ? IteratorBindingInitialization for formals with + iteratorRecord and env as arguments. + [...] + +---*/ + + +var callCount = 0; +var __obj = { + async method(fromLiteral = 23, fromExpr = 45, fromHole = 99) { + assert.sameValue(fromLiteral, 23); + assert.sameValue(fromExpr, 45); + assert.sameValue(fromHole, 99); + callCount = callCount + 1; + } +}; + +// Stores a reference `ref` for case evaluation +var ref = __obj.method; + +ref(undefined, void 0).then(() => { + assert.sameValue(callCount, 1, 'async method invoked exactly once'); +}).then($DONE, $DONE); diff --git a/test/language/expressions/object/method-definition/async-meth-dflt-params-duplicates.js b/test/language/expressions/object/method-definition/async-meth-dflt-params-duplicates.js new file mode 100644 index 0000000000000000000000000000000000000000..f968ff506654521bdd06c3bde8cd5e6b314592bf --- /dev/null +++ b/test/language/expressions/object/method-definition/async-meth-dflt-params-duplicates.js @@ -0,0 +1,38 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-duplicates.case +// - src/function-forms/syntax/async-meth.template +/*--- +description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (async method) +esid: sec-async-function-definitions +features: [default-parameters] +flags: [generated] +negative: + phase: early + type: SyntaxError +info: | + 14.6 Async Function Definitions + + AsyncMethod : + async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 14.1.2 Static Semantics: Early Errors + + StrictFormalParameters : FormalParameters + + - It is a Syntax Error if BoundNames of FormalParameters contains any + duplicate elements. + + FormalParameters : FormalParameterList + + - It is a Syntax Error if IsSimpleParameterList of FormalParameterList is + false and BoundNames of FormalParameterList contains any duplicate + elements. + +---*/ + + +({ + async *method(x = 0, x) { + + } +}); diff --git a/test/language/expressions/object/method-definition/async-meth-dflt-params-ref-later.js b/test/language/expressions/object/method-definition/async-meth-dflt-params-ref-later.js new file mode 100644 index 0000000000000000000000000000000000000000..66dc44b258a210f234c46ca57653c4894164322f --- /dev/null +++ b/test/language/expressions/object/method-definition/async-meth-dflt-params-ref-later.js @@ -0,0 +1,46 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-ref-later.case +// - src/function-forms/error/async-meth.template +/*--- +description: Referencing a parameter that occurs later in the ParameterList (async method) +esid: sec-async-function-definitions +features: [default-parameters] +flags: [generated, async] +info: | + 14.6 Async Function Definitions + + AsyncMethod : + async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + 1. Let status be the result of performing IteratorBindingInitialization for + FormalsList using iteratorRecord and environment as the arguments. + 2. ReturnIfAbrupt(status). + 3. Return the result of performing IteratorBindingInitialization for + FormalParameter using iteratorRecord and environment as the arguments. + +---*/ +var x = 0; + + +var callCount = 0; + +var obj = { + async method(x = y, y) { + + callCount = callCount + 1; + } +}; + +obj.method() + .then(_ => { + throw new Test262Error('function should not be resolved'); + }, error => assert.sameValue(error.constructor, ReferenceError)) + .then(() => { + assert.sameValue(callCount, 0, 'function body is not evaluated'); + }, $DONE) + .then($DONE, $DONE); diff --git a/test/language/expressions/object/method-definition/async-meth-dflt-params-ref-prior.js b/test/language/expressions/object/method-definition/async-meth-dflt-params-ref-prior.js new file mode 100644 index 0000000000000000000000000000000000000000..e73bd575d017039d7d2093a6070a42183e1169ad --- /dev/null +++ b/test/language/expressions/object/method-definition/async-meth-dflt-params-ref-prior.js @@ -0,0 +1,45 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-ref-prior.case +// - src/function-forms/default/async-meth.template +/*--- +description: Referencing a parameter that occurs earlier in the ParameterList (async method) +esid: sec-async-function-definitions +features: [default-parameters] +flags: [generated, async] +info: | + 14.6 Async Function Definitions + + AsyncMethod : + async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + 1. Let status be the result of performing IteratorBindingInitialization for + FormalsList using iteratorRecord and environment as the arguments. + 2. ReturnIfAbrupt(status). + 3. Return the result of performing IteratorBindingInitialization for + FormalParameter using iteratorRecord and environment as the arguments. + +---*/ +var x = 0; + + +var callCount = 0; +var __obj = { + async method(x, y = x, z = y) { + assert.sameValue(x, 3, 'first argument value'); + assert.sameValue(y, 3, 'second argument value'); + assert.sameValue(z, 3, 'third argument value'); + callCount = callCount + 1; + } +}; + +// Stores a reference `ref` for case evaluation +var ref = __obj.method; + +ref(3).then(() => { + assert.sameValue(callCount, 1, 'async method invoked exactly once'); +}).then($DONE, $DONE); diff --git a/test/language/expressions/object/method-definition/async-meth-dflt-params-ref-self.js b/test/language/expressions/object/method-definition/async-meth-dflt-params-ref-self.js new file mode 100644 index 0000000000000000000000000000000000000000..4e5a1efd7d864f5e3d9ab735698da4d89f9ae1fa --- /dev/null +++ b/test/language/expressions/object/method-definition/async-meth-dflt-params-ref-self.js @@ -0,0 +1,46 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-ref-self.case +// - src/function-forms/error/async-meth.template +/*--- +description: Referencing a parameter from within its own initializer (async method) +esid: sec-async-function-definitions +features: [default-parameters] +flags: [generated, async] +info: | + 14.6 Async Function Definitions + + AsyncMethod : + async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + 1. Let status be the result of performing IteratorBindingInitialization for + FormalsList using iteratorRecord and environment as the arguments. + 2. ReturnIfAbrupt(status). + 3. Return the result of performing IteratorBindingInitialization for + FormalParameter using iteratorRecord and environment as the arguments. + +---*/ +var x = 0; + + +var callCount = 0; + +var obj = { + async method(x = x) { + + callCount = callCount + 1; + } +}; + +obj.method() + .then(_ => { + throw new Test262Error('function should not be resolved'); + }, error => assert.sameValue(error.constructor, ReferenceError)) + .then(() => { + assert.sameValue(callCount, 0, 'function body is not evaluated'); + }, $DONE) + .then($DONE, $DONE); diff --git a/test/language/expressions/object/method-definition/async-meth-dflt-params-rest.js b/test/language/expressions/object/method-definition/async-meth-dflt-params-rest.js new file mode 100644 index 0000000000000000000000000000000000000000..ac83ef99e50cb8260f558ec150456ca5194dda0c --- /dev/null +++ b/test/language/expressions/object/method-definition/async-meth-dflt-params-rest.js @@ -0,0 +1,42 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-rest.case +// - src/function-forms/syntax/async-meth.template +/*--- +description: RestParameter does not support an initializer (async method) +esid: sec-async-function-definitions +features: [default-parameters] +flags: [generated] +negative: + phase: early + type: SyntaxError +info: | + 14.6 Async Function Definitions + + AsyncMethod : + async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 14.1 Function Definitions + + Syntax + + FunctionRestParameter[Yield] : + + BindingRestElement[?Yield] + + 13.3.3 Destructuring Binding Patterns + + Syntax + + BindingRestElement[Yield] : + + ...BindingIdentifier[?Yield] + ...BindingPattern[?Yield] + +---*/ + + +({ + async *method(...x = []) { + + } +}); diff --git a/test/language/expressions/object/method-definition/async-meth-dflt-params-trailing-comma.js b/test/language/expressions/object/method-definition/async-meth-dflt-params-trailing-comma.js new file mode 100644 index 0000000000000000000000000000000000000000..f7420e796f6f8458ab8cb46bca04fd1aab88a7ea --- /dev/null +++ b/test/language/expressions/object/method-definition/async-meth-dflt-params-trailing-comma.js @@ -0,0 +1,39 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-trailing-comma.case +// - src/function-forms/default/async-meth.template +/*--- +description: A trailing comma should not increase the respective length, using default parameters (async method) +esid: sec-async-function-definitions +flags: [generated, async] +info: | + 14.6 Async Function Definitions + + AsyncMethod : + async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + + Trailing comma in the parameters list + + 14.1 Function Definitions + + FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] , +---*/ + + +var callCount = 0; +var __obj = { + async method(a, b = 39,) { + assert.sameValue(a, 42); + assert.sameValue(b, 39); + callCount = callCount + 1; + } +}; + +// Stores a reference `ref` for case evaluation +var ref = __obj.method; + +ref(42, undefined, 1).then(() => { + assert.sameValue(callCount, 1, 'async method invoked exactly once'); +}).then($DONE, $DONE); + +assert.sameValue(ref.length, 1, 'length is properly set'); diff --git a/test/language/expressions/object/method-definition/async-meth-params-trailing-comma-multiple.js b/test/language/expressions/object/method-definition/async-meth-params-trailing-comma-multiple.js new file mode 100644 index 0000000000000000000000000000000000000000..35ac30a44a2bdc1a073a130c8e50aea4deaa9dc9 --- /dev/null +++ b/test/language/expressions/object/method-definition/async-meth-params-trailing-comma-multiple.js @@ -0,0 +1,39 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/params-trailing-comma-multiple.case +// - src/function-forms/default/async-meth.template +/*--- +description: A trailing comma should not increase the respective length, using multiple parameters (async method) +esid: sec-async-function-definitions +flags: [generated, async] +info: | + 14.6 Async Function Definitions + + AsyncMethod : + async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + + Trailing comma in the parameters list + + 14.1 Function Definitions + + FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] , +---*/ + + +var callCount = 0; +var __obj = { + async method(a, b,) { + assert.sameValue(a, 42); + assert.sameValue(b, 39); + callCount = callCount + 1; + } +}; + +// Stores a reference `ref` for case evaluation +var ref = __obj.method; + +ref(42, 39, 1).then(() => { + assert.sameValue(callCount, 1, 'async method invoked exactly once'); +}).then($DONE, $DONE); + +assert.sameValue(ref.length, 2, 'length is properly set'); diff --git a/test/language/expressions/object/method-definition/async-meth-params-trailing-comma-single.js b/test/language/expressions/object/method-definition/async-meth-params-trailing-comma-single.js new file mode 100644 index 0000000000000000000000000000000000000000..daebc1b10704cb475d74e6100883c49a1ef33f2d --- /dev/null +++ b/test/language/expressions/object/method-definition/async-meth-params-trailing-comma-single.js @@ -0,0 +1,38 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/params-trailing-comma-single.case +// - src/function-forms/default/async-meth.template +/*--- +description: A trailing comma should not increase the respective length, using a single parameter (async method) +esid: sec-async-function-definitions +flags: [generated, async] +info: | + 14.6 Async Function Definitions + + AsyncMethod : + async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + + Trailing comma in the parameters list + + 14.1 Function Definitions + + FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] , +---*/ + + +var callCount = 0; +var __obj = { + async method(a,) { + assert.sameValue(a, 42); + callCount = callCount + 1; + } +}; + +// Stores a reference `ref` for case evaluation +var ref = __obj.method; + +ref(42, 39).then(() => { + assert.sameValue(callCount, 1, 'async method invoked exactly once'); +}).then($DONE, $DONE); + +assert.sameValue(ref.length, 1, 'length is properly set'); diff --git a/test/language/expressions/object/method-definition/async-meth-rest-params-trailing-comma-early-error.js b/test/language/expressions/object/method-definition/async-meth-rest-params-trailing-comma-early-error.js new file mode 100644 index 0000000000000000000000000000000000000000..eb1a994e60a244f01bea5629442ac921767cf976 --- /dev/null +++ b/test/language/expressions/object/method-definition/async-meth-rest-params-trailing-comma-early-error.js @@ -0,0 +1,34 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/rest-params-trailing-comma-early-error.case +// - src/function-forms/syntax/async-meth.template +/*--- +description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (async method) +esid: sec-async-function-definitions +flags: [generated] +negative: + phase: early + type: SyntaxError +info: | + 14.6 Async Function Definitions + + AsyncMethod : + async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + Trailing comma in the parameters list + + 14.1 Function Definitions + + FormalParameters[Yield, Await] : + [empty] + FunctionRestParameter[?Yield, ?Await] + FormalParameterList[?Yield, ?Await] + FormalParameterList[?Yield, ?Await] , + FormalParameterList[?Yield, ?Await] , FunctionRestParameter[?Yield, ?Await] +---*/ + + +({ + async *method(...a,) { + + } +}); diff --git a/test/language/expressions/object/method-definition/params-gen-meth-dflt-abrupt.js b/test/language/expressions/object/method-definition/gen-meth-dflt-params-abrupt.js similarity index 95% rename from test/language/expressions/object/method-definition/params-gen-meth-dflt-abrupt.js rename to test/language/expressions/object/method-definition/gen-meth-dflt-params-abrupt.js index 33a9a496af65c71848a0bcdc8cfd7758deb7f1ed..0721454cd8d4b27e85e11927411207555d34dbb1 100644 --- a/test/language/expressions/object/method-definition/params-gen-meth-dflt-abrupt.js +++ b/test/language/expressions/object/method-definition/gen-meth-dflt-params-abrupt.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-abrupt.case -// - src/params/error/gen-meth.template +// - src/function-forms/dflt-params-abrupt.case +// - src/function-forms/error/gen-meth.template /*--- description: Abrupt completion returned by evaluation of initializer (generator method) esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation diff --git a/test/language/expressions/object/method-definition/params-gen-meth-dflt-arg-val-not-undefined.js b/test/language/expressions/object/method-definition/gen-meth-dflt-params-arg-val-not-undefined.js similarity index 96% rename from test/language/expressions/object/method-definition/params-gen-meth-dflt-arg-val-not-undefined.js rename to test/language/expressions/object/method-definition/gen-meth-dflt-params-arg-val-not-undefined.js index b7dd464edc939166bc0f93d4edadf6a368ec1960..631b5c8cd062e8ddb7d7fd6f7037a083cefb8a61 100644 --- a/test/language/expressions/object/method-definition/params-gen-meth-dflt-arg-val-not-undefined.js +++ b/test/language/expressions/object/method-definition/gen-meth-dflt-params-arg-val-not-undefined.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-arg-val-not-undefined.case -// - src/params/default/gen-meth.template +// - src/function-forms/dflt-params-arg-val-not-undefined.case +// - src/function-forms/default/gen-meth.template /*--- description: Use of intializer when argument value is not `undefined` (generator method) esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation diff --git a/test/language/expressions/object/method-definition/params-gen-meth-dflt-arg-val-undefined.js b/test/language/expressions/object/method-definition/gen-meth-dflt-params-arg-val-undefined.js similarity index 95% rename from test/language/expressions/object/method-definition/params-gen-meth-dflt-arg-val-undefined.js rename to test/language/expressions/object/method-definition/gen-meth-dflt-params-arg-val-undefined.js index 6c954ce62dc80a614739a2849b4a3e33512d91c3..4312dad4d5103d022ed91bc774d7e9d872958079 100644 --- a/test/language/expressions/object/method-definition/params-gen-meth-dflt-arg-val-undefined.js +++ b/test/language/expressions/object/method-definition/gen-meth-dflt-params-arg-val-undefined.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-arg-val-undefined.case -// - src/params/default/gen-meth.template +// - src/function-forms/dflt-params-arg-val-undefined.case +// - src/function-forms/default/gen-meth.template /*--- description: Use of intializer when argument value is `undefined` (generator method) esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation diff --git a/test/language/expressions/object/method-definition/params-gen-meth-dflt-duplicates.js b/test/language/expressions/object/method-definition/gen-meth-dflt-params-duplicates.js similarity index 95% rename from test/language/expressions/object/method-definition/params-gen-meth-dflt-duplicates.js rename to test/language/expressions/object/method-definition/gen-meth-dflt-params-duplicates.js index 3705576f84299d64a93ce5c8f43f1b8a6efe2d90..74f4b1f5ae2bfa5c867f6efd880a626ddc65fa13 100644 --- a/test/language/expressions/object/method-definition/params-gen-meth-dflt-duplicates.js +++ b/test/language/expressions/object/method-definition/gen-meth-dflt-params-duplicates.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-duplicates.case -// - src/params/syntax/gen-meth.template +// - src/function-forms/dflt-params-duplicates.case +// - src/function-forms/syntax/gen-meth.template /*--- description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (generator method) esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation diff --git a/test/language/expressions/object/method-definition/params-gen-meth-dflt-ref-later.js b/test/language/expressions/object/method-definition/gen-meth-dflt-params-ref-later.js similarity index 95% rename from test/language/expressions/object/method-definition/params-gen-meth-dflt-ref-later.js rename to test/language/expressions/object/method-definition/gen-meth-dflt-params-ref-later.js index f17dcc09b98793812b237c2e338da5aee233a29e..28543598bee7989642f99baf4dcae7fa4d43e16e 100644 --- a/test/language/expressions/object/method-definition/params-gen-meth-dflt-ref-later.js +++ b/test/language/expressions/object/method-definition/gen-meth-dflt-params-ref-later.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-later.case -// - src/params/error/gen-meth.template +// - src/function-forms/dflt-params-ref-later.case +// - src/function-forms/error/gen-meth.template /*--- description: Referencing a parameter that occurs later in the ParameterList (generator method) esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation diff --git a/test/language/expressions/object/method-definition/params-gen-meth-dflt-ref-prior.js b/test/language/expressions/object/method-definition/gen-meth-dflt-params-ref-prior.js similarity index 95% rename from test/language/expressions/object/method-definition/params-gen-meth-dflt-ref-prior.js rename to test/language/expressions/object/method-definition/gen-meth-dflt-params-ref-prior.js index 1c20b640aa642e783eb6e59c1f73662ccd7f1e16..7c5a600583746495a0718010555f0979c00e39f5 100644 --- a/test/language/expressions/object/method-definition/params-gen-meth-dflt-ref-prior.js +++ b/test/language/expressions/object/method-definition/gen-meth-dflt-params-ref-prior.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-prior.case -// - src/params/default/gen-meth.template +// - src/function-forms/dflt-params-ref-prior.case +// - src/function-forms/default/gen-meth.template /*--- description: Referencing a parameter that occurs earlier in the ParameterList (generator method) esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation diff --git a/test/language/expressions/object/method-definition/params-gen-meth-dflt-ref-self.js b/test/language/expressions/object/method-definition/gen-meth-dflt-params-ref-self.js similarity index 95% rename from test/language/expressions/object/method-definition/params-gen-meth-dflt-ref-self.js rename to test/language/expressions/object/method-definition/gen-meth-dflt-params-ref-self.js index 96c4fb5078bfc2888e48f6e32d530ed969af1d4f..16973080fd9a5b5932658238f4d59ab62c87ae4e 100644 --- a/test/language/expressions/object/method-definition/params-gen-meth-dflt-ref-self.js +++ b/test/language/expressions/object/method-definition/gen-meth-dflt-params-ref-self.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-self.case -// - src/params/error/gen-meth.template +// - src/function-forms/dflt-params-ref-self.case +// - src/function-forms/error/gen-meth.template /*--- description: Referencing a parameter from within its own initializer (generator method) esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation diff --git a/test/language/expressions/object/method-definition/params-gen-meth-dflt-rest.js b/test/language/expressions/object/method-definition/gen-meth-dflt-params-rest.js similarity index 95% rename from test/language/expressions/object/method-definition/params-gen-meth-dflt-rest.js rename to test/language/expressions/object/method-definition/gen-meth-dflt-params-rest.js index e15e47763565aaeb980de0b1dce10eda300f6a20..e1171d4889d1b963dc36e98c35bec35dbe283e53 100644 --- a/test/language/expressions/object/method-definition/params-gen-meth-dflt-rest.js +++ b/test/language/expressions/object/method-definition/gen-meth-dflt-params-rest.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-rest.case -// - src/params/syntax/gen-meth.template +// - src/function-forms/dflt-params-rest.case +// - src/function-forms/syntax/gen-meth.template /*--- description: RestParameter does not support an initializer (generator method) esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation diff --git a/test/language/expressions/object/method-definition/params-gen-meth-trailing-comma-dflt-param.js b/test/language/expressions/object/method-definition/gen-meth-dflt-params-trailing-comma.js similarity index 95% rename from test/language/expressions/object/method-definition/params-gen-meth-trailing-comma-dflt-param.js rename to test/language/expressions/object/method-definition/gen-meth-dflt-params-trailing-comma.js index f2639f72ba9fd26f33e7aa1213a2dabe81f7034f..ecfd480e993db2570a5f316831bc4bb10b45c9b4 100644 --- a/test/language/expressions/object/method-definition/params-gen-meth-trailing-comma-dflt-param.js +++ b/test/language/expressions/object/method-definition/gen-meth-dflt-params-trailing-comma.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-dflt-param.case -// - src/params/default/gen-meth.template +// - src/function-forms/dflt-params-trailing-comma.case +// - src/function-forms/default/gen-meth.template /*--- description: A trailing comma should not increase the respective length, using default parameters (generator method) esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation diff --git a/test/language/expressions/object/method-definition/params-gen-meth-trailing-comma-multiple-param.js b/test/language/expressions/object/method-definition/gen-meth-params-trailing-comma-multiple.js similarity index 94% rename from test/language/expressions/object/method-definition/params-gen-meth-trailing-comma-multiple-param.js rename to test/language/expressions/object/method-definition/gen-meth-params-trailing-comma-multiple.js index 2c68bce2a1d7e4f47fcba569f50a5c0a192035cd..a21e8788a22ed877bf682af40fce6cc65e6038b0 100644 --- a/test/language/expressions/object/method-definition/params-gen-meth-trailing-comma-multiple-param.js +++ b/test/language/expressions/object/method-definition/gen-meth-params-trailing-comma-multiple.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-multiple-param.case -// - src/params/default/gen-meth.template +// - src/function-forms/params-trailing-comma-multiple.case +// - src/function-forms/default/gen-meth.template /*--- description: A trailing comma should not increase the respective length, using multiple parameters (generator method) esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation diff --git a/test/language/expressions/object/method-definition/params-gen-meth-trailing-comma-single-param.js b/test/language/expressions/object/method-definition/gen-meth-params-trailing-comma-single.js similarity index 94% rename from test/language/expressions/object/method-definition/params-gen-meth-trailing-comma-single-param.js rename to test/language/expressions/object/method-definition/gen-meth-params-trailing-comma-single.js index 241af20b7584320d42aba974d84996cf0debcc25..e7153fdc7a2ea1d3a4148cf7a706b58c683cf01e 100644 --- a/test/language/expressions/object/method-definition/params-gen-meth-trailing-comma-single-param.js +++ b/test/language/expressions/object/method-definition/gen-meth-params-trailing-comma-single.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-single-param.case -// - src/params/default/gen-meth.template +// - src/function-forms/params-trailing-comma-single.case +// - src/function-forms/default/gen-meth.template /*--- description: A trailing comma should not increase the respective length, using a single parameter (generator method) esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation diff --git a/test/language/expressions/object/method-definition/params-gen-meth-trailing-comma-rest-early-error.js b/test/language/expressions/object/method-definition/gen-meth-rest-params-trailing-comma-early-error.js similarity index 94% rename from test/language/expressions/object/method-definition/params-gen-meth-trailing-comma-rest-early-error.js rename to test/language/expressions/object/method-definition/gen-meth-rest-params-trailing-comma-early-error.js index e6cba3f2b0db99a953bcb103ede8905a6e7bebb4..1fafda10c08e606696bb5b6b2daa418c86d0c69f 100644 --- a/test/language/expressions/object/method-definition/params-gen-meth-trailing-comma-rest-early-error.js +++ b/test/language/expressions/object/method-definition/gen-meth-rest-params-trailing-comma-early-error.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-rest-early-error.case -// - src/params/syntax/gen-meth.template +// - src/function-forms/rest-params-trailing-comma-early-error.case +// - src/function-forms/syntax/gen-meth.template /*--- description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (generator method) esid: sec-generator-function-definitions-runtime-semantics-propertydefinitionevaluation diff --git a/test/language/expressions/object/method-definition/params-meth-dflt-abrupt.js b/test/language/expressions/object/method-definition/meth-dflt-params-abrupt.js similarity index 95% rename from test/language/expressions/object/method-definition/params-meth-dflt-abrupt.js rename to test/language/expressions/object/method-definition/meth-dflt-params-abrupt.js index 82c842178f75789ee72af91af4b2409c7259cc4b..a8ad20ea13bb33e929c9f3023eabcd9a671f7d78 100644 --- a/test/language/expressions/object/method-definition/params-meth-dflt-abrupt.js +++ b/test/language/expressions/object/method-definition/meth-dflt-params-abrupt.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-abrupt.case -// - src/params/error/meth.template +// - src/function-forms/dflt-params-abrupt.case +// - src/function-forms/error/meth.template /*--- description: Abrupt completion returned by evaluation of initializer (method) esid: sec-runtime-semantics-definemethod diff --git a/test/language/expressions/object/method-definition/params-meth-dflt-arg-val-not-undefined.js b/test/language/expressions/object/method-definition/meth-dflt-params-arg-val-not-undefined.js similarity index 96% rename from test/language/expressions/object/method-definition/params-meth-dflt-arg-val-not-undefined.js rename to test/language/expressions/object/method-definition/meth-dflt-params-arg-val-not-undefined.js index 64fba3eb7b315f39191d94da864b39da67806b5a..c91a52d3dbd2cd60cdd2cb16b8ff40616fa84749 100644 --- a/test/language/expressions/object/method-definition/params-meth-dflt-arg-val-not-undefined.js +++ b/test/language/expressions/object/method-definition/meth-dflt-params-arg-val-not-undefined.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-arg-val-not-undefined.case -// - src/params/default/meth.template +// - src/function-forms/dflt-params-arg-val-not-undefined.case +// - src/function-forms/default/meth.template /*--- description: Use of intializer when argument value is not `undefined` (method) esid: sec-runtime-semantics-definemethod diff --git a/test/language/expressions/object/method-definition/params-meth-dflt-arg-val-undefined.js b/test/language/expressions/object/method-definition/meth-dflt-params-arg-val-undefined.js similarity index 95% rename from test/language/expressions/object/method-definition/params-meth-dflt-arg-val-undefined.js rename to test/language/expressions/object/method-definition/meth-dflt-params-arg-val-undefined.js index 45606ad6d7feb7d3acf3a4b2d23126dcb74509dc..2f8b4ee5870577dc4ca7fa0368cde376cdf53741 100644 --- a/test/language/expressions/object/method-definition/params-meth-dflt-arg-val-undefined.js +++ b/test/language/expressions/object/method-definition/meth-dflt-params-arg-val-undefined.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-arg-val-undefined.case -// - src/params/default/meth.template +// - src/function-forms/dflt-params-arg-val-undefined.case +// - src/function-forms/default/meth.template /*--- description: Use of intializer when argument value is `undefined` (method) esid: sec-runtime-semantics-definemethod diff --git a/test/language/expressions/object/method-definition/params-meth-dflt-duplicates.js b/test/language/expressions/object/method-definition/meth-dflt-params-duplicates.js similarity index 94% rename from test/language/expressions/object/method-definition/params-meth-dflt-duplicates.js rename to test/language/expressions/object/method-definition/meth-dflt-params-duplicates.js index df786d259f67583e9725eedd4d0d296b70c5bbb2..ca6b30f3e64867ae34cd7a9e76ca71f70195917b 100644 --- a/test/language/expressions/object/method-definition/params-meth-dflt-duplicates.js +++ b/test/language/expressions/object/method-definition/meth-dflt-params-duplicates.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-duplicates.case -// - src/params/syntax/meth.template +// - src/function-forms/dflt-params-duplicates.case +// - src/function-forms/syntax/meth.template /*--- description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (method) esid: sec-runtime-semantics-definemethod diff --git a/test/language/expressions/object/method-definition/params-meth-dflt-ref-later.js b/test/language/expressions/object/method-definition/meth-dflt-params-ref-later.js similarity index 95% rename from test/language/expressions/object/method-definition/params-meth-dflt-ref-later.js rename to test/language/expressions/object/method-definition/meth-dflt-params-ref-later.js index 1bc6593a23af7a207329e7e891b6fe424ebd8aae..ee8e96ce88d4c816119863c2c3eb7558e1b0449b 100644 --- a/test/language/expressions/object/method-definition/params-meth-dflt-ref-later.js +++ b/test/language/expressions/object/method-definition/meth-dflt-params-ref-later.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-later.case -// - src/params/error/meth.template +// - src/function-forms/dflt-params-ref-later.case +// - src/function-forms/error/meth.template /*--- description: Referencing a parameter that occurs later in the ParameterList (method) esid: sec-runtime-semantics-definemethod diff --git a/test/language/expressions/object/method-definition/params-meth-dflt-ref-prior.js b/test/language/expressions/object/method-definition/meth-dflt-params-ref-prior.js similarity index 95% rename from test/language/expressions/object/method-definition/params-meth-dflt-ref-prior.js rename to test/language/expressions/object/method-definition/meth-dflt-params-ref-prior.js index 8993def0e83c99878cb6556d1dadde2f1b6ce651..ba8490b8e60bdc630ee5ce388e0ddd27b931cad4 100644 --- a/test/language/expressions/object/method-definition/params-meth-dflt-ref-prior.js +++ b/test/language/expressions/object/method-definition/meth-dflt-params-ref-prior.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-prior.case -// - src/params/default/meth.template +// - src/function-forms/dflt-params-ref-prior.case +// - src/function-forms/default/meth.template /*--- description: Referencing a parameter that occurs earlier in the ParameterList (method) esid: sec-runtime-semantics-definemethod diff --git a/test/language/expressions/object/method-definition/params-meth-dflt-ref-self.js b/test/language/expressions/object/method-definition/meth-dflt-params-ref-self.js similarity index 95% rename from test/language/expressions/object/method-definition/params-meth-dflt-ref-self.js rename to test/language/expressions/object/method-definition/meth-dflt-params-ref-self.js index 388a36d2e6f6f4013c171039aac783ac96a62deb..df160d7183e0e061cd6851bfeef4162b3640cc8d 100644 --- a/test/language/expressions/object/method-definition/params-meth-dflt-ref-self.js +++ b/test/language/expressions/object/method-definition/meth-dflt-params-ref-self.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-self.case -// - src/params/error/meth.template +// - src/function-forms/dflt-params-ref-self.case +// - src/function-forms/error/meth.template /*--- description: Referencing a parameter from within its own initializer (method) esid: sec-runtime-semantics-definemethod diff --git a/test/language/expressions/object/method-definition/params-meth-dflt-rest.js b/test/language/expressions/object/method-definition/meth-dflt-params-rest.js similarity index 94% rename from test/language/expressions/object/method-definition/params-meth-dflt-rest.js rename to test/language/expressions/object/method-definition/meth-dflt-params-rest.js index 5ebf06a6f5d42e84b50f24656316e3b903c35a6a..8536874de753c95f409662e4af5dbe6fdc0dfa2e 100644 --- a/test/language/expressions/object/method-definition/params-meth-dflt-rest.js +++ b/test/language/expressions/object/method-definition/meth-dflt-params-rest.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-rest.case -// - src/params/syntax/meth.template +// - src/function-forms/dflt-params-rest.case +// - src/function-forms/syntax/meth.template /*--- description: RestParameter does not support an initializer (method) esid: sec-runtime-semantics-definemethod diff --git a/test/language/expressions/object/method-definition/params-meth-trailing-comma-dflt-param.js b/test/language/expressions/object/method-definition/meth-dflt-params-trailing-comma.js similarity index 94% rename from test/language/expressions/object/method-definition/params-meth-trailing-comma-dflt-param.js rename to test/language/expressions/object/method-definition/meth-dflt-params-trailing-comma.js index b3319b00167145935526f0380aa8e939d344ce30..278b59f83b829aa479ee6de6f9a16f365259e9f8 100644 --- a/test/language/expressions/object/method-definition/params-meth-trailing-comma-dflt-param.js +++ b/test/language/expressions/object/method-definition/meth-dflt-params-trailing-comma.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-dflt-param.case -// - src/params/default/meth.template +// - src/function-forms/dflt-params-trailing-comma.case +// - src/function-forms/default/meth.template /*--- description: A trailing comma should not increase the respective length, using default parameters (method) esid: sec-runtime-semantics-definemethod diff --git a/test/language/expressions/object/method-definition/params-meth-trailing-comma-multiple-param.js b/test/language/expressions/object/method-definition/meth-params-trailing-comma-multiple.js similarity index 94% rename from test/language/expressions/object/method-definition/params-meth-trailing-comma-multiple-param.js rename to test/language/expressions/object/method-definition/meth-params-trailing-comma-multiple.js index 5d66ead1f2676ef722d5ec4d12e250bbbd3ab130..03835458ad4e70552cb0a62077d032a32ceac7eb 100644 --- a/test/language/expressions/object/method-definition/params-meth-trailing-comma-multiple-param.js +++ b/test/language/expressions/object/method-definition/meth-params-trailing-comma-multiple.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-multiple-param.case -// - src/params/default/meth.template +// - src/function-forms/params-trailing-comma-multiple.case +// - src/function-forms/default/meth.template /*--- description: A trailing comma should not increase the respective length, using multiple parameters (method) esid: sec-runtime-semantics-definemethod diff --git a/test/language/expressions/object/method-definition/params-meth-trailing-comma-single-param.js b/test/language/expressions/object/method-definition/meth-params-trailing-comma-single.js similarity index 94% rename from test/language/expressions/object/method-definition/params-meth-trailing-comma-single-param.js rename to test/language/expressions/object/method-definition/meth-params-trailing-comma-single.js index 80cfa9371523715120d7c1bfbfce609b7111a5f2..c2d1053951df04ef9bd96d82a52ed55ee1b57c4b 100644 --- a/test/language/expressions/object/method-definition/params-meth-trailing-comma-single-param.js +++ b/test/language/expressions/object/method-definition/meth-params-trailing-comma-single.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-single-param.case -// - src/params/default/meth.template +// - src/function-forms/params-trailing-comma-single.case +// - src/function-forms/default/meth.template /*--- description: A trailing comma should not increase the respective length, using a single parameter (method) esid: sec-runtime-semantics-definemethod diff --git a/test/language/expressions/object/method-definition/params-meth-trailing-comma-rest-early-error.js b/test/language/expressions/object/method-definition/meth-rest-params-trailing-comma-early-error.js similarity index 93% rename from test/language/expressions/object/method-definition/params-meth-trailing-comma-rest-early-error.js rename to test/language/expressions/object/method-definition/meth-rest-params-trailing-comma-early-error.js index 076efc323d99c250bdcad80798aa143e867298d4..bc1d5dd470348080191cea81019ccde48e87684a 100644 --- a/test/language/expressions/object/method-definition/params-meth-trailing-comma-rest-early-error.js +++ b/test/language/expressions/object/method-definition/meth-rest-params-trailing-comma-early-error.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-rest-early-error.case -// - src/params/syntax/meth.template +// - src/function-forms/rest-params-trailing-comma-early-error.case +// - src/function-forms/syntax/meth.template /*--- description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (method) esid: sec-runtime-semantics-definemethod diff --git a/test/language/statements/async-function/dflt-params-abrupt.js b/test/language/statements/async-function/dflt-params-abrupt.js new file mode 100644 index 0000000000000000000000000000000000000000..90a7c98c3b87d96c1bc784b42ec404edf08e700a --- /dev/null +++ b/test/language/statements/async-function/dflt-params-abrupt.js @@ -0,0 +1,42 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-abrupt.case +// - src/function-forms/error/async-func-decl.template +/*--- +description: Abrupt completion returned by evaluation of initializer (async function declaration) +esid: sec-async-function-definitions +features: [default-parameters] +flags: [generated, async] +info: | + 14.6 Async Function Definitions + + AsyncFunctionDeclaration : + async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody } + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + 1. Let status be the result of performing IteratorBindingInitialization for + FormalsList using iteratorRecord and environment as the arguments. + 2. ReturnIfAbrupt(status). + 3. Return the result of performing IteratorBindingInitialization for + FormalParameter using iteratorRecord and environment as the arguments. + +---*/ + + +var callCount = 0; +async function f(_ = (function() { throw new Test262Error(); }())) { + + callCount = callCount + 1; +} + +f() + .then(_ => { + throw new Test262Error('function should not be resolved'); + }, error => assert.sameValue(error.constructor, Test262Error)) + .then(() => { + assert.sameValue(callCount, 0, 'function body is not evaluated'); + }, $DONE) + .then($DONE, $DONE); diff --git a/test/language/statements/async-function/dflt-params-arg-val-not-undefined.js b/test/language/statements/async-function/dflt-params-arg-val-not-undefined.js new file mode 100644 index 0000000000000000000000000000000000000000..da0415c5057cacc61c14fc3f7e3b3730cad43d28 --- /dev/null +++ b/test/language/statements/async-function/dflt-params-arg-val-not-undefined.js @@ -0,0 +1,62 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-arg-val-not-undefined.case +// - src/function-forms/default/async-func-decl.template +/*--- +description: Use of intializer when argument value is not `undefined` (async function declaration) +esid: sec-async-function-definitions +features: [default-parameters] +flags: [generated, async] +info: | + 14.6 Async Function Definitions + + AsyncFunctionDeclaration : + async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody } + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + [...] + 23. Let iteratorRecord be Record {[[Iterator]]: + CreateListIterator(argumentsList), [[Done]]: false}. + 24. If hasDuplicates is true, then + [...] + 25. Else, + a. Perform ? IteratorBindingInitialization for formals with + iteratorRecord and env as arguments. + [...] + +---*/ +var obj = {}; +var falseCount = 0; +var stringCount = 0; +var nanCount = 0; +var zeroCount = 0; +var nullCount = 0; +var objCount = 0; + + +var callCount = 0; + +// Stores a reference `ref` for case evaluation +async function ref(aFalse = falseCount +=1, aString = stringCount += 1, aNaN = nanCount += 1, a0 = zeroCount += 1, aNull = nullCount += 1, aObj = objCount +=1) { + assert.sameValue(aFalse, false); + assert.sameValue(aString, ''); + assert.sameValue(aNaN, NaN); + assert.sameValue(a0, 0); + assert.sameValue(aNull, null); + assert.sameValue(aObj, obj); + callCount = callCount + 1; +} + +ref(false, '', NaN, 0, null, obj).then(() => { + assert.sameValue(callCount, 1, 'function invoked exactly once'); +}).then($DONE, $DONE); + +assert.sameValue(falseCount, 0, 'initializer not evaluated: false'); +assert.sameValue(stringCount, 0, 'initializer not evaluated: string'); +assert.sameValue(nanCount, 0, 'initializer not evaluated: NaN'); +assert.sameValue(zeroCount, 0, 'initializer not evaluated: 0'); +assert.sameValue(nullCount, 0, 'initializer not evaluated: null'); +assert.sameValue(objCount, 0, 'initializer not evaluated: object'); diff --git a/test/language/statements/async-function/dflt-params-arg-val-undefined.js b/test/language/statements/async-function/dflt-params-arg-val-undefined.js new file mode 100644 index 0000000000000000000000000000000000000000..7ed59a5a5d980f79e88a680d46ff42b62ee66df5 --- /dev/null +++ b/test/language/statements/async-function/dflt-params-arg-val-undefined.js @@ -0,0 +1,45 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-arg-val-undefined.case +// - src/function-forms/default/async-func-decl.template +/*--- +description: Use of intializer when argument value is `undefined` (async function declaration) +esid: sec-async-function-definitions +features: [default-parameters] +flags: [generated, async] +info: | + 14.6 Async Function Definitions + + AsyncFunctionDeclaration : + async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody } + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + [...] + 23. Let iteratorRecord be Record {[[Iterator]]: + CreateListIterator(argumentsList), [[Done]]: false}. + 24. If hasDuplicates is true, then + [...] + 25. Else, + a. Perform ? IteratorBindingInitialization for formals with + iteratorRecord and env as arguments. + [...] + +---*/ + + +var callCount = 0; + +// Stores a reference `ref` for case evaluation +async function ref(fromLiteral = 23, fromExpr = 45, fromHole = 99) { + assert.sameValue(fromLiteral, 23); + assert.sameValue(fromExpr, 45); + assert.sameValue(fromHole, 99); + callCount = callCount + 1; +} + +ref(undefined, void 0).then(() => { + assert.sameValue(callCount, 1, 'function invoked exactly once'); +}).then($DONE, $DONE); diff --git a/test/language/statements/async-function/dflt-params-duplicates.js b/test/language/statements/async-function/dflt-params-duplicates.js new file mode 100644 index 0000000000000000000000000000000000000000..116b8b6c2ba818792a1c4151c44ea811015bc0ee --- /dev/null +++ b/test/language/statements/async-function/dflt-params-duplicates.js @@ -0,0 +1,36 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-duplicates.case +// - src/function-forms/syntax/async-func-decl.template +/*--- +description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (async function declaration) +esid: sec-async-function-definitions +features: [default-parameters] +flags: [generated] +negative: + phase: early + type: SyntaxError +info: | + 14.6 Async Function Definitions + + AsyncFunctionDeclaration : + async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody } + + 14.1.2 Static Semantics: Early Errors + + StrictFormalParameters : FormalParameters + + - It is a Syntax Error if BoundNames of FormalParameters contains any + duplicate elements. + + FormalParameters : FormalParameterList + + - It is a Syntax Error if IsSimpleParameterList of FormalParameterList is + false and BoundNames of FormalParameterList contains any duplicate + elements. + +---*/ + + +async function f(x = 0, x) { + +} diff --git a/test/language/statements/async-function/dflt-params-ref-later.js b/test/language/statements/async-function/dflt-params-ref-later.js new file mode 100644 index 0000000000000000000000000000000000000000..aa56ea0dcf5a3f6716a27b5889402fb9d85a0370 --- /dev/null +++ b/test/language/statements/async-function/dflt-params-ref-later.js @@ -0,0 +1,43 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-ref-later.case +// - src/function-forms/error/async-func-decl.template +/*--- +description: Referencing a parameter that occurs later in the ParameterList (async function declaration) +esid: sec-async-function-definitions +features: [default-parameters] +flags: [generated, async] +info: | + 14.6 Async Function Definitions + + AsyncFunctionDeclaration : + async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody } + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + 1. Let status be the result of performing IteratorBindingInitialization for + FormalsList using iteratorRecord and environment as the arguments. + 2. ReturnIfAbrupt(status). + 3. Return the result of performing IteratorBindingInitialization for + FormalParameter using iteratorRecord and environment as the arguments. + +---*/ +var x = 0; + + +var callCount = 0; +async function f(x = y, y) { + + callCount = callCount + 1; +} + +f() + .then(_ => { + throw new Test262Error('function should not be resolved'); + }, error => assert.sameValue(error.constructor, ReferenceError)) + .then(() => { + assert.sameValue(callCount, 0, 'function body is not evaluated'); + }, $DONE) + .then($DONE, $DONE); diff --git a/test/language/statements/async-function/dflt-params-ref-prior.js b/test/language/statements/async-function/dflt-params-ref-prior.js new file mode 100644 index 0000000000000000000000000000000000000000..b97df71c5292ebb64c73f5d289fff7fe6c800803 --- /dev/null +++ b/test/language/statements/async-function/dflt-params-ref-prior.js @@ -0,0 +1,42 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-ref-prior.case +// - src/function-forms/default/async-func-decl.template +/*--- +description: Referencing a parameter that occurs earlier in the ParameterList (async function declaration) +esid: sec-async-function-definitions +features: [default-parameters] +flags: [generated, async] +info: | + 14.6 Async Function Definitions + + AsyncFunctionDeclaration : + async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody } + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + 1. Let status be the result of performing IteratorBindingInitialization for + FormalsList using iteratorRecord and environment as the arguments. + 2. ReturnIfAbrupt(status). + 3. Return the result of performing IteratorBindingInitialization for + FormalParameter using iteratorRecord and environment as the arguments. + +---*/ +var x = 0; + + +var callCount = 0; + +// Stores a reference `ref` for case evaluation +async function ref(x, y = x, z = y) { + assert.sameValue(x, 3, 'first argument value'); + assert.sameValue(y, 3, 'second argument value'); + assert.sameValue(z, 3, 'third argument value'); + callCount = callCount + 1; +} + +ref(3).then(() => { + assert.sameValue(callCount, 1, 'function invoked exactly once'); +}).then($DONE, $DONE); diff --git a/test/language/statements/async-function/dflt-params-ref-self.js b/test/language/statements/async-function/dflt-params-ref-self.js new file mode 100644 index 0000000000000000000000000000000000000000..714f611e92cfed6b29999c90cb01c51fc7c0c743 --- /dev/null +++ b/test/language/statements/async-function/dflt-params-ref-self.js @@ -0,0 +1,43 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-ref-self.case +// - src/function-forms/error/async-func-decl.template +/*--- +description: Referencing a parameter from within its own initializer (async function declaration) +esid: sec-async-function-definitions +features: [default-parameters] +flags: [generated, async] +info: | + 14.6 Async Function Definitions + + AsyncFunctionDeclaration : + async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody } + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + 1. Let status be the result of performing IteratorBindingInitialization for + FormalsList using iteratorRecord and environment as the arguments. + 2. ReturnIfAbrupt(status). + 3. Return the result of performing IteratorBindingInitialization for + FormalParameter using iteratorRecord and environment as the arguments. + +---*/ +var x = 0; + + +var callCount = 0; +async function f(x = x) { + + callCount = callCount + 1; +} + +f() + .then(_ => { + throw new Test262Error('function should not be resolved'); + }, error => assert.sameValue(error.constructor, ReferenceError)) + .then(() => { + assert.sameValue(callCount, 0, 'function body is not evaluated'); + }, $DONE) + .then($DONE, $DONE); diff --git a/test/language/statements/async-function/dflt-params-rest.js b/test/language/statements/async-function/dflt-params-rest.js new file mode 100644 index 0000000000000000000000000000000000000000..80db4e99532afc9e95ca7ac209780dbe96193729 --- /dev/null +++ b/test/language/statements/async-function/dflt-params-rest.js @@ -0,0 +1,40 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-rest.case +// - src/function-forms/syntax/async-func-decl.template +/*--- +description: RestParameter does not support an initializer (async function declaration) +esid: sec-async-function-definitions +features: [default-parameters] +flags: [generated] +negative: + phase: early + type: SyntaxError +info: | + 14.6 Async Function Definitions + + AsyncFunctionDeclaration : + async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody } + + 14.1 Function Definitions + + Syntax + + FunctionRestParameter[Yield] : + + BindingRestElement[?Yield] + + 13.3.3 Destructuring Binding Patterns + + Syntax + + BindingRestElement[Yield] : + + ...BindingIdentifier[?Yield] + ...BindingPattern[?Yield] + +---*/ + + +async function f(...x = []) { + +} diff --git a/test/language/statements/async-function/dflt-params-trailing-comma.js b/test/language/statements/async-function/dflt-params-trailing-comma.js new file mode 100644 index 0000000000000000000000000000000000000000..f4fb4deb651169b6b37b80f31f81a34842e804dd --- /dev/null +++ b/test/language/statements/async-function/dflt-params-trailing-comma.js @@ -0,0 +1,36 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-trailing-comma.case +// - src/function-forms/default/async-func-decl.template +/*--- +description: A trailing comma should not increase the respective length, using default parameters (async function declaration) +esid: sec-async-function-definitions +flags: [generated, async] +info: | + 14.6 Async Function Definitions + + AsyncFunctionDeclaration : + async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody } + + + Trailing comma in the parameters list + + 14.1 Function Definitions + + FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] , +---*/ + + +var callCount = 0; + +// Stores a reference `ref` for case evaluation +async function ref(a, b = 39,) { + assert.sameValue(a, 42); + assert.sameValue(b, 39); + callCount = callCount + 1; +} + +ref(42, undefined, 1).then(() => { + assert.sameValue(callCount, 1, 'function invoked exactly once'); +}).then($DONE, $DONE); + +assert.sameValue(ref.length, 1, 'length is properly set'); diff --git a/test/language/statements/async-function/params-trailing-comma-multiple.js b/test/language/statements/async-function/params-trailing-comma-multiple.js new file mode 100644 index 0000000000000000000000000000000000000000..5a74e80f7cd11eeb33f50fb0b389d939611f0bbb --- /dev/null +++ b/test/language/statements/async-function/params-trailing-comma-multiple.js @@ -0,0 +1,36 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/params-trailing-comma-multiple.case +// - src/function-forms/default/async-func-decl.template +/*--- +description: A trailing comma should not increase the respective length, using multiple parameters (async function declaration) +esid: sec-async-function-definitions +flags: [generated, async] +info: | + 14.6 Async Function Definitions + + AsyncFunctionDeclaration : + async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody } + + + Trailing comma in the parameters list + + 14.1 Function Definitions + + FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] , +---*/ + + +var callCount = 0; + +// Stores a reference `ref` for case evaluation +async function ref(a, b,) { + assert.sameValue(a, 42); + assert.sameValue(b, 39); + callCount = callCount + 1; +} + +ref(42, 39, 1).then(() => { + assert.sameValue(callCount, 1, 'function invoked exactly once'); +}).then($DONE, $DONE); + +assert.sameValue(ref.length, 2, 'length is properly set'); diff --git a/test/language/statements/async-function/params-trailing-comma-single.js b/test/language/statements/async-function/params-trailing-comma-single.js new file mode 100644 index 0000000000000000000000000000000000000000..3a88578ec0f79c202eec0c4655eec90043152c9c --- /dev/null +++ b/test/language/statements/async-function/params-trailing-comma-single.js @@ -0,0 +1,35 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/params-trailing-comma-single.case +// - src/function-forms/default/async-func-decl.template +/*--- +description: A trailing comma should not increase the respective length, using a single parameter (async function declaration) +esid: sec-async-function-definitions +flags: [generated, async] +info: | + 14.6 Async Function Definitions + + AsyncFunctionDeclaration : + async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody } + + + Trailing comma in the parameters list + + 14.1 Function Definitions + + FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] , +---*/ + + +var callCount = 0; + +// Stores a reference `ref` for case evaluation +async function ref(a,) { + assert.sameValue(a, 42); + callCount = callCount + 1; +} + +ref(42, 39).then(() => { + assert.sameValue(callCount, 1, 'function invoked exactly once'); +}).then($DONE, $DONE); + +assert.sameValue(ref.length, 1, 'length is properly set'); diff --git a/test/language/statements/async-function/rest-params-trailing-comma-early-error.js b/test/language/statements/async-function/rest-params-trailing-comma-early-error.js new file mode 100644 index 0000000000000000000000000000000000000000..c01a639e1745e8342840f8c7fc71b7530053e108 --- /dev/null +++ b/test/language/statements/async-function/rest-params-trailing-comma-early-error.js @@ -0,0 +1,32 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/rest-params-trailing-comma-early-error.case +// - src/function-forms/syntax/async-func-decl.template +/*--- +description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (async function declaration) +esid: sec-async-function-definitions +flags: [generated] +negative: + phase: early + type: SyntaxError +info: | + 14.6 Async Function Definitions + + AsyncFunctionDeclaration : + async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody } + + Trailing comma in the parameters list + + 14.1 Function Definitions + + FormalParameters[Yield, Await] : + [empty] + FunctionRestParameter[?Yield, ?Await] + FormalParameterList[?Yield, ?Await] + FormalParameterList[?Yield, ?Await] , + FormalParameterList[?Yield, ?Await] , FunctionRestParameter[?Yield, ?Await] +---*/ + + +async function f(...a,) { + +} diff --git a/test/language/statements/async-generator/args-trailing-comma-multiple.js b/test/language/statements/async-generator/args-trailing-comma-multiple.js new file mode 100644 index 0000000000000000000000000000000000000000..3fa5bf10c18c9fa2f7ba6b3c9c7094c437fe7248 --- /dev/null +++ b/test/language/statements/async-generator/args-trailing-comma-multiple.js @@ -0,0 +1,38 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/args-trailing-comma-multiple.case +// - src/arguments/default/async-gen-func-decl.template +/*--- +description: A trailing comma should not increase the arguments.length, using multiple args (async generator function declaration) +esid: sec-asyncgenerator-definitions-instantiatefunctionobject +features: [async-iteration] +flags: [generated, async] +info: | + AsyncGeneratorDeclaration : async [no LineTerminator here] function * BindingIdentifier + ( FormalParameters ) { AsyncGeneratorBody } + + [...] + 3. Let F be ! AsyncGeneratorFunctionCreate(Normal, FormalParameters, AsyncGeneratorBody, + scope, strict). + [...] + + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +// Stores a reference `ref` for case evaluation +async function* ref() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], 'TC39'); + callCount = callCount + 1; +} + +ref(42, 'TC39',).next().then(() => { + assert.sameValue(callCount, 1, 'generator function invoked exactly once'); +}).then($DONE, $DONE); diff --git a/test/language/statements/async-generator/args-trailing-comma-null.js b/test/language/statements/async-generator/args-trailing-comma-null.js new file mode 100644 index 0000000000000000000000000000000000000000..e909f6fd29f61c48991b4beb3b866177b9e12a05 --- /dev/null +++ b/test/language/statements/async-generator/args-trailing-comma-null.js @@ -0,0 +1,38 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/args-trailing-comma-null.case +// - src/arguments/default/async-gen-func-decl.template +/*--- +description: A trailing comma after null should not increase the arguments.length (async generator function declaration) +esid: sec-asyncgenerator-definitions-instantiatefunctionobject +features: [async-iteration] +flags: [generated, async] +info: | + AsyncGeneratorDeclaration : async [no LineTerminator here] function * BindingIdentifier + ( FormalParameters ) { AsyncGeneratorBody } + + [...] + 3. Let F be ! AsyncGeneratorFunctionCreate(Normal, FormalParameters, AsyncGeneratorBody, + scope, strict). + [...] + + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +// Stores a reference `ref` for case evaluation +async function* ref() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], null); + callCount = callCount + 1; +} + +ref(42, null,).next().then(() => { + assert.sameValue(callCount, 1, 'generator function invoked exactly once'); +}).then($DONE, $DONE); diff --git a/test/language/statements/async-generator/args-trailing-comma-single-args.js b/test/language/statements/async-generator/args-trailing-comma-single-args.js new file mode 100644 index 0000000000000000000000000000000000000000..d66c25ded3e886c9263af3a28af75006eb56fe35 --- /dev/null +++ b/test/language/statements/async-generator/args-trailing-comma-single-args.js @@ -0,0 +1,37 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/args-trailing-comma-single-args.case +// - src/arguments/default/async-gen-func-decl.template +/*--- +description: A trailing comma should not increase the arguments.length, using a single arg (async generator function declaration) +esid: sec-asyncgenerator-definitions-instantiatefunctionobject +features: [async-iteration] +flags: [generated, async] +info: | + AsyncGeneratorDeclaration : async [no LineTerminator here] function * BindingIdentifier + ( FormalParameters ) { AsyncGeneratorBody } + + [...] + 3. Let F be ! AsyncGeneratorFunctionCreate(Normal, FormalParameters, AsyncGeneratorBody, + scope, strict). + [...] + + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +// Stores a reference `ref` for case evaluation +async function* ref() { + assert.sameValue(arguments.length, 1); + assert.sameValue(arguments[0], 42); + callCount = callCount + 1; +} + +ref(42,).next().then(() => { + assert.sameValue(callCount, 1, 'generator function invoked exactly once'); +}).then($DONE, $DONE); diff --git a/test/language/statements/async-generator/args-trailing-comma-undefined.js b/test/language/statements/async-generator/args-trailing-comma-undefined.js new file mode 100644 index 0000000000000000000000000000000000000000..087c872f786fabc1952e99f331503a0eaadc4c7e --- /dev/null +++ b/test/language/statements/async-generator/args-trailing-comma-undefined.js @@ -0,0 +1,38 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/args-trailing-comma-undefined.case +// - src/arguments/default/async-gen-func-decl.template +/*--- +description: A trailing comma after undefined should not increase the arguments.length (async generator function declaration) +esid: sec-asyncgenerator-definitions-instantiatefunctionobject +features: [async-iteration] +flags: [generated, async] +info: | + AsyncGeneratorDeclaration : async [no LineTerminator here] function * BindingIdentifier + ( FormalParameters ) { AsyncGeneratorBody } + + [...] + 3. Let F be ! AsyncGeneratorFunctionCreate(Normal, FormalParameters, AsyncGeneratorBody, + scope, strict). + [...] + + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +// Stores a reference `ref` for case evaluation +async function* ref() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], undefined); + callCount = callCount + 1; +} + +ref(42, undefined,).next().then(() => { + assert.sameValue(callCount, 1, 'generator function invoked exactly once'); +}).then($DONE, $DONE); diff --git a/test/language/statements/async-generator/params-dflt-abrupt.js b/test/language/statements/async-generator/dflt-params-abrupt.js similarity index 92% rename from test/language/statements/async-generator/params-dflt-abrupt.js rename to test/language/statements/async-generator/dflt-params-abrupt.js index d9d5b14131762c2d2c94bc60325d381046d64058..ac3342d589ae023b47f095d93a52f3cffed94e7e 100644 --- a/test/language/statements/async-generator/params-dflt-abrupt.js +++ b/test/language/statements/async-generator/dflt-params-abrupt.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-abrupt.case -// - src/params/error/async-gen-func-decl.template +// - src/function-forms/dflt-params-abrupt.case +// - src/function-forms/error/async-gen-func-decl.template /*--- description: Abrupt completion returned by evaluation of initializer (async generator function declaration) esid: sec-asyncgenerator-definitions-instantiatefunctionobject diff --git a/test/language/statements/async-generator/params-dflt-arg-val-not-undefined.js b/test/language/statements/async-generator/dflt-params-arg-val-not-undefined.js similarity index 94% rename from test/language/statements/async-generator/params-dflt-arg-val-not-undefined.js rename to test/language/statements/async-generator/dflt-params-arg-val-not-undefined.js index b3edd7fa37b9e0225f727772e0cf96cf6964f6b1..a65ebd5b5b086ed068c2b3222659b96fe0885979 100644 --- a/test/language/statements/async-generator/params-dflt-arg-val-not-undefined.js +++ b/test/language/statements/async-generator/dflt-params-arg-val-not-undefined.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-arg-val-not-undefined.case -// - src/params/default/async-gen-func-decl.template +// - src/function-forms/dflt-params-arg-val-not-undefined.case +// - src/function-forms/default/async-gen-func-decl.template /*--- description: Use of intializer when argument value is not `undefined` (async generator function declaration) esid: sec-asyncgenerator-definitions-instantiatefunctionobject diff --git a/test/language/statements/async-generator/params-dflt-arg-val-undefined.js b/test/language/statements/async-generator/dflt-params-arg-val-undefined.js similarity index 92% rename from test/language/statements/async-generator/params-dflt-arg-val-undefined.js rename to test/language/statements/async-generator/dflt-params-arg-val-undefined.js index 210f7ed02fe8c07a3ca1ae67e3e62384f65d2b0c..7f4841cd5241a6d0b7d34358fdcfdd4a7af75bb0 100644 --- a/test/language/statements/async-generator/params-dflt-arg-val-undefined.js +++ b/test/language/statements/async-generator/dflt-params-arg-val-undefined.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-arg-val-undefined.case -// - src/params/default/async-gen-func-decl.template +// - src/function-forms/dflt-params-arg-val-undefined.case +// - src/function-forms/default/async-gen-func-decl.template /*--- description: Use of intializer when argument value is `undefined` (async generator function declaration) esid: sec-asyncgenerator-definitions-instantiatefunctionobject diff --git a/test/language/statements/async-generator/params-dflt-duplicates.js b/test/language/statements/async-generator/dflt-params-duplicates.js similarity index 91% rename from test/language/statements/async-generator/params-dflt-duplicates.js rename to test/language/statements/async-generator/dflt-params-duplicates.js index c4ce7ec567d0dc48336c9e566a8f37c51301a994..d333063cbe346fe88c4e7a0a4dc00083a48a0a66 100644 --- a/test/language/statements/async-generator/params-dflt-duplicates.js +++ b/test/language/statements/async-generator/dflt-params-duplicates.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-duplicates.case -// - src/params/syntax/async-gen-func-decl.template +// - src/function-forms/dflt-params-duplicates.case +// - src/function-forms/syntax/async-gen-func-decl.template /*--- description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (async generator function declaration) esid: sec-asyncgenerator-definitions-instantiatefunctionobject diff --git a/test/language/statements/async-generator/params-dflt-ref-later.js b/test/language/statements/async-generator/dflt-params-ref-later.js similarity index 92% rename from test/language/statements/async-generator/params-dflt-ref-later.js rename to test/language/statements/async-generator/dflt-params-ref-later.js index 0b784bd6d23ad057bf2ab68fdd1e27f11b24fbea..54255d5fd05009f275748cc0e9e4c163e4af1239 100644 --- a/test/language/statements/async-generator/params-dflt-ref-later.js +++ b/test/language/statements/async-generator/dflt-params-ref-later.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-later.case -// - src/params/error/async-gen-func-decl.template +// - src/function-forms/dflt-params-ref-later.case +// - src/function-forms/error/async-gen-func-decl.template /*--- description: Referencing a parameter that occurs later in the ParameterList (async generator function declaration) esid: sec-asyncgenerator-definitions-instantiatefunctionobject diff --git a/test/language/statements/async-generator/params-dflt-ref-prior.js b/test/language/statements/async-generator/dflt-params-ref-prior.js similarity index 93% rename from test/language/statements/async-generator/params-dflt-ref-prior.js rename to test/language/statements/async-generator/dflt-params-ref-prior.js index bd15783b963e6b366b8b28c4e21f0df05e74ba74..1714a5666f1cce1fbbf503c6d6dba0fdb32b7a54 100644 --- a/test/language/statements/async-generator/params-dflt-ref-prior.js +++ b/test/language/statements/async-generator/dflt-params-ref-prior.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-prior.case -// - src/params/default/async-gen-func-decl.template +// - src/function-forms/dflt-params-ref-prior.case +// - src/function-forms/default/async-gen-func-decl.template /*--- description: Referencing a parameter that occurs earlier in the ParameterList (async generator function declaration) esid: sec-asyncgenerator-definitions-instantiatefunctionobject diff --git a/test/language/statements/async-generator/params-dflt-ref-self.js b/test/language/statements/async-generator/dflt-params-ref-self.js similarity index 92% rename from test/language/statements/async-generator/params-dflt-ref-self.js rename to test/language/statements/async-generator/dflt-params-ref-self.js index 593279c3ea073a82985406cdac03ee3106e84b15..97d18e1b5f51495ecfc070a16c4c967f8944340a 100644 --- a/test/language/statements/async-generator/params-dflt-ref-self.js +++ b/test/language/statements/async-generator/dflt-params-ref-self.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-self.case -// - src/params/error/async-gen-func-decl.template +// - src/function-forms/dflt-params-ref-self.case +// - src/function-forms/error/async-gen-func-decl.template /*--- description: Referencing a parameter from within its own initializer (async generator function declaration) esid: sec-asyncgenerator-definitions-instantiatefunctionobject diff --git a/test/language/statements/async-generator/params-dflt-rest.js b/test/language/statements/async-generator/dflt-params-rest.js similarity index 90% rename from test/language/statements/async-generator/params-dflt-rest.js rename to test/language/statements/async-generator/dflt-params-rest.js index ab7f2f509b2ce57bfa699bcd09f631da659fb338..3e1e67aaf568e65a38c9cb6b0979d58b926ae9b6 100644 --- a/test/language/statements/async-generator/params-dflt-rest.js +++ b/test/language/statements/async-generator/dflt-params-rest.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-rest.case -// - src/params/syntax/async-gen-func-decl.template +// - src/function-forms/dflt-params-rest.case +// - src/function-forms/syntax/async-gen-func-decl.template /*--- description: RestParameter does not support an initializer (async generator function declaration) esid: sec-asyncgenerator-definitions-instantiatefunctionobject diff --git a/test/language/statements/async-generator/params-trailing-comma-dflt-param.js b/test/language/statements/async-generator/dflt-params-trailing-comma.js similarity index 91% rename from test/language/statements/async-generator/params-trailing-comma-dflt-param.js rename to test/language/statements/async-generator/dflt-params-trailing-comma.js index 2dccdb9f19e323cfdf4193073ce07d13eb8c5dbc..70317400197303448e524c57e8f0c805035d51ff 100644 --- a/test/language/statements/async-generator/params-trailing-comma-dflt-param.js +++ b/test/language/statements/async-generator/dflt-params-trailing-comma.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-dflt-param.case -// - src/params/default/async-gen-func-decl.template +// - src/function-forms/dflt-params-trailing-comma.case +// - src/function-forms/default/async-gen-func-decl.template /*--- description: A trailing comma should not increase the respective length, using default parameters (async generator function declaration) esid: sec-asyncgenerator-definitions-instantiatefunctionobject diff --git a/test/language/statements/async-generator/params-trailing-comma-multiple-param.js b/test/language/statements/async-generator/params-trailing-comma-multiple.js similarity index 90% rename from test/language/statements/async-generator/params-trailing-comma-multiple-param.js rename to test/language/statements/async-generator/params-trailing-comma-multiple.js index dee70cc77182d029c1c99de0daa2d8954b9dbfe3..c06861d38b66693b2e54a51e915bd5cca0890900 100644 --- a/test/language/statements/async-generator/params-trailing-comma-multiple-param.js +++ b/test/language/statements/async-generator/params-trailing-comma-multiple.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-multiple-param.case -// - src/params/default/async-gen-func-decl.template +// - src/function-forms/params-trailing-comma-multiple.case +// - src/function-forms/default/async-gen-func-decl.template /*--- description: A trailing comma should not increase the respective length, using multiple parameters (async generator function declaration) esid: sec-asyncgenerator-definitions-instantiatefunctionobject diff --git a/test/language/statements/async-generator/params-trailing-comma-single-param.js b/test/language/statements/async-generator/params-trailing-comma-single.js similarity index 90% rename from test/language/statements/async-generator/params-trailing-comma-single-param.js rename to test/language/statements/async-generator/params-trailing-comma-single.js index a5c911f9a38514191029c928c6b8843fd3355871..0f8e99283534d2ab7c68060531e7512bb4bcdbc2 100644 --- a/test/language/statements/async-generator/params-trailing-comma-single-param.js +++ b/test/language/statements/async-generator/params-trailing-comma-single.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-single-param.case -// - src/params/default/async-gen-func-decl.template +// - src/function-forms/params-trailing-comma-single.case +// - src/function-forms/default/async-gen-func-decl.template /*--- description: A trailing comma should not increase the respective length, using a single parameter (async generator function declaration) esid: sec-asyncgenerator-definitions-instantiatefunctionobject diff --git a/test/language/statements/async-generator/params-trailing-comma-rest-early-error.js b/test/language/statements/async-generator/rest-params-trailing-comma-early-error.js similarity index 89% rename from test/language/statements/async-generator/params-trailing-comma-rest-early-error.js rename to test/language/statements/async-generator/rest-params-trailing-comma-early-error.js index 34d07ebb8791019f0febaf12ec96088a17b89660..f6a42b8bdfc1edfb9ad7beb1b3797a074bd7b99f 100644 --- a/test/language/statements/async-generator/params-trailing-comma-rest-early-error.js +++ b/test/language/statements/async-generator/rest-params-trailing-comma-early-error.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-rest-early-error.case -// - src/params/syntax/async-gen-func-decl.template +// - src/function-forms/rest-params-trailing-comma-early-error.case +// - src/function-forms/syntax/async-gen-func-decl.template /*--- description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (async generator function declaration) esid: sec-asyncgenerator-definitions-instantiatefunctionobject diff --git a/test/language/statements/class/async-gen-meth-args-trailing-comma-multiple.js b/test/language/statements/class/async-gen-meth-args-trailing-comma-multiple.js new file mode 100644 index 0000000000000000000000000000000000000000..9ee31b06bfd767f49605f529e386168fbb26b404 --- /dev/null +++ b/test/language/statements/class/async-gen-meth-args-trailing-comma-multiple.js @@ -0,0 +1,64 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/args-trailing-comma-multiple.case +// - src/arguments/default/cls-decl-async-gen-meth.template +/*--- +description: A trailing comma should not increase the arguments.length, using multiple args (class expression method) +esid: sec-class-definitions-runtime-semantics-evaluation +features: [async-iteration] +flags: [generated, async] +info: | + ClassDeclaration : class BindingIdentifier ClassTail + + 1. Let className be StringValue of BindingIdentifier. + 2. Let value be the result of ClassDefinitionEvaluation of ClassTail with + argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + i. Let status be the result of performing + PropertyDefinitionEvaluation for m with arguments proto and + false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncGeneratorMethod : + async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) + { AsyncGeneratorBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true. + Otherwise let strict be false. + 4. Let scope be the running execution context's LexicalEnvironment. + 5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters, + AsyncGeneratorBody, scope, strict). + [...] + + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + +var callCount = 0; +class C { + async *method() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], 'TC39'); + callCount = callCount + 1; + } +} + +// Stores a reference `ref` for case evaluation +var ref = C.prototype.method; + +ref(42, 'TC39',).next().then(() => { + assert.sameValue(callCount, 1, 'method invoked exactly once'); +}).then($DONE, $DONE); diff --git a/test/language/statements/class/async-gen-meth-args-trailing-comma-null.js b/test/language/statements/class/async-gen-meth-args-trailing-comma-null.js new file mode 100644 index 0000000000000000000000000000000000000000..33833dcd7383014c0855fb2170e12a5188113f9c --- /dev/null +++ b/test/language/statements/class/async-gen-meth-args-trailing-comma-null.js @@ -0,0 +1,64 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/args-trailing-comma-null.case +// - src/arguments/default/cls-decl-async-gen-meth.template +/*--- +description: A trailing comma after null should not increase the arguments.length (class expression method) +esid: sec-class-definitions-runtime-semantics-evaluation +features: [async-iteration] +flags: [generated, async] +info: | + ClassDeclaration : class BindingIdentifier ClassTail + + 1. Let className be StringValue of BindingIdentifier. + 2. Let value be the result of ClassDefinitionEvaluation of ClassTail with + argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + i. Let status be the result of performing + PropertyDefinitionEvaluation for m with arguments proto and + false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncGeneratorMethod : + async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) + { AsyncGeneratorBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true. + Otherwise let strict be false. + 4. Let scope be the running execution context's LexicalEnvironment. + 5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters, + AsyncGeneratorBody, scope, strict). + [...] + + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + +var callCount = 0; +class C { + async *method() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], null); + callCount = callCount + 1; + } +} + +// Stores a reference `ref` for case evaluation +var ref = C.prototype.method; + +ref(42, null,).next().then(() => { + assert.sameValue(callCount, 1, 'method invoked exactly once'); +}).then($DONE, $DONE); diff --git a/test/language/statements/class/async-gen-meth-args-trailing-comma-single-args.js b/test/language/statements/class/async-gen-meth-args-trailing-comma-single-args.js new file mode 100644 index 0000000000000000000000000000000000000000..b3e6e0f98d836212874d93b1addbcea5d2dc70b6 --- /dev/null +++ b/test/language/statements/class/async-gen-meth-args-trailing-comma-single-args.js @@ -0,0 +1,63 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/args-trailing-comma-single-args.case +// - src/arguments/default/cls-decl-async-gen-meth.template +/*--- +description: A trailing comma should not increase the arguments.length, using a single arg (class expression method) +esid: sec-class-definitions-runtime-semantics-evaluation +features: [async-iteration] +flags: [generated, async] +info: | + ClassDeclaration : class BindingIdentifier ClassTail + + 1. Let className be StringValue of BindingIdentifier. + 2. Let value be the result of ClassDefinitionEvaluation of ClassTail with + argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + i. Let status be the result of performing + PropertyDefinitionEvaluation for m with arguments proto and + false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncGeneratorMethod : + async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) + { AsyncGeneratorBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true. + Otherwise let strict be false. + 4. Let scope be the running execution context's LexicalEnvironment. + 5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters, + AsyncGeneratorBody, scope, strict). + [...] + + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + +var callCount = 0; +class C { + async *method() { + assert.sameValue(arguments.length, 1); + assert.sameValue(arguments[0], 42); + callCount = callCount + 1; + } +} + +// Stores a reference `ref` for case evaluation +var ref = C.prototype.method; + +ref(42,).next().then(() => { + assert.sameValue(callCount, 1, 'method invoked exactly once'); +}).then($DONE, $DONE); diff --git a/test/language/statements/class/async-gen-meth-args-trailing-comma-undefined.js b/test/language/statements/class/async-gen-meth-args-trailing-comma-undefined.js new file mode 100644 index 0000000000000000000000000000000000000000..9b9c4a3c3afc2d1ef3851c013b3d2ece65eb7a9c --- /dev/null +++ b/test/language/statements/class/async-gen-meth-args-trailing-comma-undefined.js @@ -0,0 +1,64 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/args-trailing-comma-undefined.case +// - src/arguments/default/cls-decl-async-gen-meth.template +/*--- +description: A trailing comma after undefined should not increase the arguments.length (class expression method) +esid: sec-class-definitions-runtime-semantics-evaluation +features: [async-iteration] +flags: [generated, async] +info: | + ClassDeclaration : class BindingIdentifier ClassTail + + 1. Let className be StringValue of BindingIdentifier. + 2. Let value be the result of ClassDefinitionEvaluation of ClassTail with + argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + i. Let status be the result of performing + PropertyDefinitionEvaluation for m with arguments proto and + false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncGeneratorMethod : + async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) + { AsyncGeneratorBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true. + Otherwise let strict be false. + 4. Let scope be the running execution context's LexicalEnvironment. + 5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters, + AsyncGeneratorBody, scope, strict). + [...] + + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + +var callCount = 0; +class C { + async *method() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], undefined); + callCount = callCount + 1; + } +} + +// Stores a reference `ref` for case evaluation +var ref = C.prototype.method; + +ref(42, undefined,).next().then(() => { + assert.sameValue(callCount, 1, 'method invoked exactly once'); +}).then($DONE, $DONE); diff --git a/test/language/statements/class/params-async-gen-meth-dflt-abrupt.js b/test/language/statements/class/async-gen-meth-dflt-params-abrupt.js similarity index 95% rename from test/language/statements/class/params-async-gen-meth-dflt-abrupt.js rename to test/language/statements/class/async-gen-meth-dflt-params-abrupt.js index 68f5f7a1b7f0cee9bb802670617aa26239ed6db8..1e2f473e35135b4d4bbcbb5fef6c77b35b149314 100644 --- a/test/language/statements/class/params-async-gen-meth-dflt-abrupt.js +++ b/test/language/statements/class/async-gen-meth-dflt-params-abrupt.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-abrupt.case -// - src/params/error/cls-decl-async-gen-meth.template +// - src/function-forms/dflt-params-abrupt.case +// - src/function-forms/error/cls-decl-async-gen-meth.template /*--- description: Abrupt completion returned by evaluation of initializer (class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/statements/class/params-async-gen-meth-dflt-arg-val-not-undefined.js b/test/language/statements/class/async-gen-meth-dflt-params-arg-val-not-undefined.js similarity index 94% rename from test/language/statements/class/params-async-gen-meth-dflt-arg-val-not-undefined.js rename to test/language/statements/class/async-gen-meth-dflt-params-arg-val-not-undefined.js index 0252ab3a7223507a0e93b858e40c319750edcbc0..34e66257d08909533cded6cf7f34505c75b320ca 100644 --- a/test/language/statements/class/params-async-gen-meth-dflt-arg-val-not-undefined.js +++ b/test/language/statements/class/async-gen-meth-dflt-params-arg-val-not-undefined.js @@ -1,8 +1,8 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-arg-val-not-undefined.case -// - src/params/default/cls-decl-async-gen-meth.template +// - src/function-forms/dflt-params-arg-val-not-undefined.case +// - src/function-forms/default/cls-decl-async-gen-meth.template /*--- -description: Use of intializer when argument value is not `undefined` (class expression method) +description: Use of intializer when argument value is not `undefined` (class declaration async generator method) esid: sec-class-definitions-runtime-semantics-evaluation features: [default-parameters, async-iteration] flags: [generated, async] diff --git a/test/language/statements/class/params-async-gen-meth-dflt-arg-val-undefined.js b/test/language/statements/class/async-gen-meth-dflt-params-arg-val-undefined.js similarity index 93% rename from test/language/statements/class/params-async-gen-meth-dflt-arg-val-undefined.js rename to test/language/statements/class/async-gen-meth-dflt-params-arg-val-undefined.js index 833d873aaa31e464dac647de6c28cc7e15ebd6c7..08c0068b1df67d1f7fcd0ba5134e5f2470bb2240 100644 --- a/test/language/statements/class/params-async-gen-meth-dflt-arg-val-undefined.js +++ b/test/language/statements/class/async-gen-meth-dflt-params-arg-val-undefined.js @@ -1,8 +1,8 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-arg-val-undefined.case -// - src/params/default/cls-decl-async-gen-meth.template +// - src/function-forms/dflt-params-arg-val-undefined.case +// - src/function-forms/default/cls-decl-async-gen-meth.template /*--- -description: Use of intializer when argument value is `undefined` (class expression method) +description: Use of intializer when argument value is `undefined` (class declaration async generator method) esid: sec-class-definitions-runtime-semantics-evaluation features: [default-parameters, async-iteration] flags: [generated, async] diff --git a/test/language/statements/class/params-async-gen-meth-dflt-duplicates.js b/test/language/statements/class/async-gen-meth-dflt-params-duplicates.js similarity index 94% rename from test/language/statements/class/params-async-gen-meth-dflt-duplicates.js rename to test/language/statements/class/async-gen-meth-dflt-params-duplicates.js index 249d39f7bbaa6b7ae6b2a8085a67981b6b9a8404..6ccbdf276bfefa3efe528ef84178df869d8855bd 100644 --- a/test/language/statements/class/params-async-gen-meth-dflt-duplicates.js +++ b/test/language/statements/class/async-gen-meth-dflt-params-duplicates.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-duplicates.case -// - src/params/syntax/cls-decl-async-gen-meth.template +// - src/function-forms/dflt-params-duplicates.case +// - src/function-forms/syntax/cls-decl-async-gen-meth.template /*--- description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/statements/class/params-async-gen-meth-dflt-ref-later.js b/test/language/statements/class/async-gen-meth-dflt-params-ref-later.js similarity index 95% rename from test/language/statements/class/params-async-gen-meth-dflt-ref-later.js rename to test/language/statements/class/async-gen-meth-dflt-params-ref-later.js index e493997ba3c8adfdbe044fe410114f8341d7de7a..439ca9521427ef3432b5622a8ae797888b0eb346 100644 --- a/test/language/statements/class/params-async-gen-meth-dflt-ref-later.js +++ b/test/language/statements/class/async-gen-meth-dflt-params-ref-later.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-later.case -// - src/params/error/cls-decl-async-gen-meth.template +// - src/function-forms/dflt-params-ref-later.case +// - src/function-forms/error/cls-decl-async-gen-meth.template /*--- description: Referencing a parameter that occurs later in the ParameterList (class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/statements/class/params-async-gen-meth-dflt-ref-prior.js b/test/language/statements/class/async-gen-meth-dflt-params-ref-prior.js similarity index 93% rename from test/language/statements/class/params-async-gen-meth-dflt-ref-prior.js rename to test/language/statements/class/async-gen-meth-dflt-params-ref-prior.js index 01382f822f9d7d9922982817dd70bf3873857ac3..ff1fa505eba6615daff905b2a81eaf2bba2a1f0c 100644 --- a/test/language/statements/class/params-async-gen-meth-dflt-ref-prior.js +++ b/test/language/statements/class/async-gen-meth-dflt-params-ref-prior.js @@ -1,8 +1,8 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-prior.case -// - src/params/default/cls-decl-async-gen-meth.template +// - src/function-forms/dflt-params-ref-prior.case +// - src/function-forms/default/cls-decl-async-gen-meth.template /*--- -description: Referencing a parameter that occurs earlier in the ParameterList (class expression method) +description: Referencing a parameter that occurs earlier in the ParameterList (class declaration async generator method) esid: sec-class-definitions-runtime-semantics-evaluation features: [default-parameters, async-iteration] flags: [generated, async] diff --git a/test/language/statements/class/params-async-gen-meth-dflt-ref-self.js b/test/language/statements/class/async-gen-meth-dflt-params-ref-self.js similarity index 95% rename from test/language/statements/class/params-async-gen-meth-dflt-ref-self.js rename to test/language/statements/class/async-gen-meth-dflt-params-ref-self.js index a2145b880155a0ff5c0288e21504fe31f2d56ec5..a06a514785997c07963e8ad97715ecc80f74dffe 100644 --- a/test/language/statements/class/params-async-gen-meth-dflt-ref-self.js +++ b/test/language/statements/class/async-gen-meth-dflt-params-ref-self.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-self.case -// - src/params/error/cls-decl-async-gen-meth.template +// - src/function-forms/dflt-params-ref-self.case +// - src/function-forms/error/cls-decl-async-gen-meth.template /*--- description: Referencing a parameter from within its own initializer (class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/statements/class/params-async-gen-meth-dflt-rest.js b/test/language/statements/class/async-gen-meth-dflt-params-rest.js similarity index 94% rename from test/language/statements/class/params-async-gen-meth-dflt-rest.js rename to test/language/statements/class/async-gen-meth-dflt-params-rest.js index 97291afb3da17eb192c365aabff33dfa7b3051a7..ebbaec465c418688a3e09a42397c0a6d6f57d994 100644 --- a/test/language/statements/class/params-async-gen-meth-dflt-rest.js +++ b/test/language/statements/class/async-gen-meth-dflt-params-rest.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-rest.case -// - src/params/syntax/cls-decl-async-gen-meth.template +// - src/function-forms/dflt-params-rest.case +// - src/function-forms/syntax/cls-decl-async-gen-meth.template /*--- description: RestParameter does not support an initializer (class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/statements/class/params-async-gen-meth-trailing-comma-dflt-param.js b/test/language/statements/class/async-gen-meth-dflt-params-trailing-comma.js similarity index 91% rename from test/language/statements/class/params-async-gen-meth-trailing-comma-dflt-param.js rename to test/language/statements/class/async-gen-meth-dflt-params-trailing-comma.js index 16b87a2c0cdff34da16970705cd1620cbac8d508..b8b6d693bb683e9222ac0bfe11894b3da8bf99bc 100644 --- a/test/language/statements/class/params-async-gen-meth-trailing-comma-dflt-param.js +++ b/test/language/statements/class/async-gen-meth-dflt-params-trailing-comma.js @@ -1,8 +1,8 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-dflt-param.case -// - src/params/default/cls-decl-async-gen-meth.template +// - src/function-forms/dflt-params-trailing-comma.case +// - src/function-forms/default/cls-decl-async-gen-meth.template /*--- -description: A trailing comma should not increase the respective length, using default parameters (class expression method) +description: A trailing comma should not increase the respective length, using default parameters (class declaration async generator method) esid: sec-class-definitions-runtime-semantics-evaluation features: [async-iteration] flags: [generated, async] diff --git a/test/language/statements/class/params-async-gen-meth-trailing-comma-multiple-param.js b/test/language/statements/class/async-gen-meth-params-trailing-comma-multiple.js similarity index 90% rename from test/language/statements/class/params-async-gen-meth-trailing-comma-multiple-param.js rename to test/language/statements/class/async-gen-meth-params-trailing-comma-multiple.js index 3920841dc5fb6487c104f509b3dfd484657ad450..f1170b8bc4f2e041acd9ce95f6ccc92bdd9807e1 100644 --- a/test/language/statements/class/params-async-gen-meth-trailing-comma-multiple-param.js +++ b/test/language/statements/class/async-gen-meth-params-trailing-comma-multiple.js @@ -1,8 +1,8 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-multiple-param.case -// - src/params/default/cls-decl-async-gen-meth.template +// - src/function-forms/params-trailing-comma-multiple.case +// - src/function-forms/default/cls-decl-async-gen-meth.template /*--- -description: A trailing comma should not increase the respective length, using multiple parameters (class expression method) +description: A trailing comma should not increase the respective length, using multiple parameters (class declaration async generator method) esid: sec-class-definitions-runtime-semantics-evaluation features: [async-iteration] flags: [generated, async] diff --git a/test/language/statements/class/params-async-gen-meth-trailing-comma-single-param.js b/test/language/statements/class/async-gen-meth-params-trailing-comma-single.js similarity index 90% rename from test/language/statements/class/params-async-gen-meth-trailing-comma-single-param.js rename to test/language/statements/class/async-gen-meth-params-trailing-comma-single.js index 4e950fc9f6ad25d6ff29d67719834b160d63311b..0e2453340580c022594450ddded80d842b54823e 100644 --- a/test/language/statements/class/params-async-gen-meth-trailing-comma-single-param.js +++ b/test/language/statements/class/async-gen-meth-params-trailing-comma-single.js @@ -1,8 +1,8 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-single-param.case -// - src/params/default/cls-decl-async-gen-meth.template +// - src/function-forms/params-trailing-comma-single.case +// - src/function-forms/default/cls-decl-async-gen-meth.template /*--- -description: A trailing comma should not increase the respective length, using a single parameter (class expression method) +description: A trailing comma should not increase the respective length, using a single parameter (class declaration async generator method) esid: sec-class-definitions-runtime-semantics-evaluation features: [async-iteration] flags: [generated, async] diff --git a/test/language/statements/class/params-async-gen-meth-trailing-comma-rest-early-error.js b/test/language/statements/class/async-gen-meth-rest-params-trailing-comma-early-error.js similarity index 93% rename from test/language/statements/class/params-async-gen-meth-trailing-comma-rest-early-error.js rename to test/language/statements/class/async-gen-meth-rest-params-trailing-comma-early-error.js index 482ba93b79504854b14dba57e4a0c55ab7ad17f9..6cbb12d0196725326201a215a4a1db3ff5f6935c 100644 --- a/test/language/statements/class/params-async-gen-meth-trailing-comma-rest-early-error.js +++ b/test/language/statements/class/async-gen-meth-rest-params-trailing-comma-early-error.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-rest-early-error.case -// - src/params/syntax/cls-decl-async-gen-meth.template +// - src/function-forms/rest-params-trailing-comma-early-error.case +// - src/function-forms/syntax/cls-decl-async-gen-meth.template /*--- description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/statements/class/async-gen-meth-static-args-trailing-comma-multiple.js b/test/language/statements/class/async-gen-meth-static-args-trailing-comma-multiple.js new file mode 100644 index 0000000000000000000000000000000000000000..fbbe19913ca118cf17c18b00b8d91b82192dd646 --- /dev/null +++ b/test/language/statements/class/async-gen-meth-static-args-trailing-comma-multiple.js @@ -0,0 +1,65 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/args-trailing-comma-multiple.case +// - src/arguments/default/cls-decl-async-gen-meth-static.template +/*--- +description: A trailing comma should not increase the arguments.length, using multiple args (static class expression generator method) +esid: sec-runtime-semantics-bindingclassdeclarationevaluation +features: [async-iteration] +flags: [generated, async] +info: | + ClassDeclaration : class BindingIdentifier ClassTail + + 1. Let className be StringValue of BindingIdentifier. + 2. Let value be the result of ClassDefinitionEvaluation of ClassTail with + argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + b. Else, + Let status be the result of performing PropertyDefinitionEvaluation for + m with arguments F and false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncGeneratorMethod : + async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) + { AsyncGeneratorBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true. + Otherwise let strict be false. + 4. Let scope be the running execution context's LexicalEnvironment. + 5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters, + AsyncGeneratorBody, scope, strict). + [...] + + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +class C { + static async *method() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], 'TC39'); + callCount = callCount + 1; + } +} + +// Stores a reference `ref` for case evaluation +var ref = C.method; + +ref(42, 'TC39',).next().then(() => { + assert.sameValue(callCount, 1, 'method invoked exactly once'); +}).then($DONE, $DONE); diff --git a/test/language/statements/class/async-gen-meth-static-args-trailing-comma-null.js b/test/language/statements/class/async-gen-meth-static-args-trailing-comma-null.js new file mode 100644 index 0000000000000000000000000000000000000000..d91abd06bc25fe17482970d8ec1e3b752f996a7c --- /dev/null +++ b/test/language/statements/class/async-gen-meth-static-args-trailing-comma-null.js @@ -0,0 +1,65 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/args-trailing-comma-null.case +// - src/arguments/default/cls-decl-async-gen-meth-static.template +/*--- +description: A trailing comma after null should not increase the arguments.length (static class expression generator method) +esid: sec-runtime-semantics-bindingclassdeclarationevaluation +features: [async-iteration] +flags: [generated, async] +info: | + ClassDeclaration : class BindingIdentifier ClassTail + + 1. Let className be StringValue of BindingIdentifier. + 2. Let value be the result of ClassDefinitionEvaluation of ClassTail with + argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + b. Else, + Let status be the result of performing PropertyDefinitionEvaluation for + m with arguments F and false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncGeneratorMethod : + async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) + { AsyncGeneratorBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true. + Otherwise let strict be false. + 4. Let scope be the running execution context's LexicalEnvironment. + 5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters, + AsyncGeneratorBody, scope, strict). + [...] + + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +class C { + static async *method() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], null); + callCount = callCount + 1; + } +} + +// Stores a reference `ref` for case evaluation +var ref = C.method; + +ref(42, null,).next().then(() => { + assert.sameValue(callCount, 1, 'method invoked exactly once'); +}).then($DONE, $DONE); diff --git a/test/language/statements/class/async-gen-meth-static-args-trailing-comma-single-args.js b/test/language/statements/class/async-gen-meth-static-args-trailing-comma-single-args.js new file mode 100644 index 0000000000000000000000000000000000000000..1e583efe986f3ec52f4322e8551e60a97a472a81 --- /dev/null +++ b/test/language/statements/class/async-gen-meth-static-args-trailing-comma-single-args.js @@ -0,0 +1,64 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/args-trailing-comma-single-args.case +// - src/arguments/default/cls-decl-async-gen-meth-static.template +/*--- +description: A trailing comma should not increase the arguments.length, using a single arg (static class expression generator method) +esid: sec-runtime-semantics-bindingclassdeclarationevaluation +features: [async-iteration] +flags: [generated, async] +info: | + ClassDeclaration : class BindingIdentifier ClassTail + + 1. Let className be StringValue of BindingIdentifier. + 2. Let value be the result of ClassDefinitionEvaluation of ClassTail with + argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + b. Else, + Let status be the result of performing PropertyDefinitionEvaluation for + m with arguments F and false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncGeneratorMethod : + async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) + { AsyncGeneratorBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true. + Otherwise let strict be false. + 4. Let scope be the running execution context's LexicalEnvironment. + 5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters, + AsyncGeneratorBody, scope, strict). + [...] + + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +class C { + static async *method() { + assert.sameValue(arguments.length, 1); + assert.sameValue(arguments[0], 42); + callCount = callCount + 1; + } +} + +// Stores a reference `ref` for case evaluation +var ref = C.method; + +ref(42,).next().then(() => { + assert.sameValue(callCount, 1, 'method invoked exactly once'); +}).then($DONE, $DONE); diff --git a/test/language/statements/class/async-gen-meth-static-args-trailing-comma-undefined.js b/test/language/statements/class/async-gen-meth-static-args-trailing-comma-undefined.js new file mode 100644 index 0000000000000000000000000000000000000000..d3938284ea0abd3224d95924a596b95210c9612e --- /dev/null +++ b/test/language/statements/class/async-gen-meth-static-args-trailing-comma-undefined.js @@ -0,0 +1,65 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/args-trailing-comma-undefined.case +// - src/arguments/default/cls-decl-async-gen-meth-static.template +/*--- +description: A trailing comma after undefined should not increase the arguments.length (static class expression generator method) +esid: sec-runtime-semantics-bindingclassdeclarationevaluation +features: [async-iteration] +flags: [generated, async] +info: | + ClassDeclaration : class BindingIdentifier ClassTail + + 1. Let className be StringValue of BindingIdentifier. + 2. Let value be the result of ClassDefinitionEvaluation of ClassTail with + argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + b. Else, + Let status be the result of performing PropertyDefinitionEvaluation for + m with arguments F and false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncGeneratorMethod : + async [no LineTerminator here] * PropertyName ( UniqueFormalParameters ) + { AsyncGeneratorBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncGeneratorMethod is strict mode code, let strict be true. + Otherwise let strict be false. + 4. Let scope be the running execution context's LexicalEnvironment. + 5. Let closure be ! AsyncGeneratorFunctionCreate(Method, UniqueFormalParameters, + AsyncGeneratorBody, scope, strict). + [...] + + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +class C { + static async *method() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], undefined); + callCount = callCount + 1; + } +} + +// Stores a reference `ref` for case evaluation +var ref = C.method; + +ref(42, undefined,).next().then(() => { + assert.sameValue(callCount, 1, 'method invoked exactly once'); +}).then($DONE, $DONE); diff --git a/test/language/statements/class/params-async-gen-meth-static-dflt-abrupt.js b/test/language/statements/class/async-gen-meth-static-dflt-params-abrupt.js similarity index 94% rename from test/language/statements/class/params-async-gen-meth-static-dflt-abrupt.js rename to test/language/statements/class/async-gen-meth-static-dflt-params-abrupt.js index 906342013a0c277dbecec4871d9b8d36ef590b9f..747e9e4765e55c5e8f3f1d75050574d1ceccaafd 100644 --- a/test/language/statements/class/params-async-gen-meth-static-dflt-abrupt.js +++ b/test/language/statements/class/async-gen-meth-static-dflt-params-abrupt.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-abrupt.case -// - src/params/error/cls-decl-async-gen-meth-static.template +// - src/function-forms/dflt-params-abrupt.case +// - src/function-forms/error/cls-decl-async-gen-meth-static.template /*--- description: Abrupt completion returned by evaluation of initializer (static class expression generator method) esid: sec-runtime-semantics-bindingclassdeclarationevaluation diff --git a/test/language/statements/class/params-async-gen-meth-static-dflt-arg-val-not-undefined.js b/test/language/statements/class/async-gen-meth-static-dflt-params-arg-val-not-undefined.js similarity index 94% rename from test/language/statements/class/params-async-gen-meth-static-dflt-arg-val-not-undefined.js rename to test/language/statements/class/async-gen-meth-static-dflt-params-arg-val-not-undefined.js index 638ffdda687a1ed9ecdc58d78865ccecedef23d7..40678d93bbedfc4ca992aa1f77bc1e8a5099447b 100644 --- a/test/language/statements/class/params-async-gen-meth-static-dflt-arg-val-not-undefined.js +++ b/test/language/statements/class/async-gen-meth-static-dflt-params-arg-val-not-undefined.js @@ -1,8 +1,8 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-arg-val-not-undefined.case -// - src/params/default/cls-decl-async-gen-meth-static.template +// - src/function-forms/dflt-params-arg-val-not-undefined.case +// - src/function-forms/default/cls-decl-async-gen-meth-static.template /*--- -description: Use of intializer when argument value is not `undefined` (static class expression generator method) +description: Use of intializer when argument value is not `undefined` (static class declaration async generator method) esid: sec-runtime-semantics-bindingclassdeclarationevaluation features: [default-parameters, async-iteration] flags: [generated, async] diff --git a/test/language/statements/class/params-async-gen-meth-static-dflt-arg-val-undefined.js b/test/language/statements/class/async-gen-meth-static-dflt-params-arg-val-undefined.js similarity index 92% rename from test/language/statements/class/params-async-gen-meth-static-dflt-arg-val-undefined.js rename to test/language/statements/class/async-gen-meth-static-dflt-params-arg-val-undefined.js index e06aab096529369e9e16a01022fd256140aa42fd..4f17e577446139af59b428394be6e1e8d9202c22 100644 --- a/test/language/statements/class/params-async-gen-meth-static-dflt-arg-val-undefined.js +++ b/test/language/statements/class/async-gen-meth-static-dflt-params-arg-val-undefined.js @@ -1,8 +1,8 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-arg-val-undefined.case -// - src/params/default/cls-decl-async-gen-meth-static.template +// - src/function-forms/dflt-params-arg-val-undefined.case +// - src/function-forms/default/cls-decl-async-gen-meth-static.template /*--- -description: Use of intializer when argument value is `undefined` (static class expression generator method) +description: Use of intializer when argument value is `undefined` (static class declaration async generator method) esid: sec-runtime-semantics-bindingclassdeclarationevaluation features: [default-parameters, async-iteration] flags: [generated, async] diff --git a/test/language/statements/class/params-async-gen-meth-static-dflt-duplicates.js b/test/language/statements/class/async-gen-meth-static-dflt-params-duplicates.js similarity index 94% rename from test/language/statements/class/params-async-gen-meth-static-dflt-duplicates.js rename to test/language/statements/class/async-gen-meth-static-dflt-params-duplicates.js index 71b0dbf18457ec0bfdc289cea0e0dc23ee908594..93cde2a2fc16b1b4588ec0f6071dd9a11eeb279a 100644 --- a/test/language/statements/class/params-async-gen-meth-static-dflt-duplicates.js +++ b/test/language/statements/class/async-gen-meth-static-dflt-params-duplicates.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-duplicates.case -// - src/params/syntax/cls-decl-async-gen-meth-static.template +// - src/function-forms/dflt-params-duplicates.case +// - src/function-forms/syntax/cls-decl-async-gen-meth-static.template /*--- description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (static class expression generator method) esid: sec-runtime-semantics-bindingclassdeclarationevaluation diff --git a/test/language/statements/class/params-async-gen-meth-static-dflt-ref-later.js b/test/language/statements/class/async-gen-meth-static-dflt-params-ref-later.js similarity index 94% rename from test/language/statements/class/params-async-gen-meth-static-dflt-ref-later.js rename to test/language/statements/class/async-gen-meth-static-dflt-params-ref-later.js index b04a655ac9698384bc9bafd7ce6dd9ac159ff07c..a85285759b4fb7194d2d18edbd6919567b410b60 100644 --- a/test/language/statements/class/params-async-gen-meth-static-dflt-ref-later.js +++ b/test/language/statements/class/async-gen-meth-static-dflt-params-ref-later.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-later.case -// - src/params/error/cls-decl-async-gen-meth-static.template +// - src/function-forms/dflt-params-ref-later.case +// - src/function-forms/error/cls-decl-async-gen-meth-static.template /*--- description: Referencing a parameter that occurs later in the ParameterList (static class expression generator method) esid: sec-runtime-semantics-bindingclassdeclarationevaluation diff --git a/test/language/statements/class/params-async-gen-meth-static-dflt-ref-prior.js b/test/language/statements/class/async-gen-meth-static-dflt-params-ref-prior.js similarity index 92% rename from test/language/statements/class/params-async-gen-meth-static-dflt-ref-prior.js rename to test/language/statements/class/async-gen-meth-static-dflt-params-ref-prior.js index e4eef390ec317b5914836d39f02dcfbdb9fd00b6..1da07641eff46e62c62adb96e8675b1bac722e4d 100644 --- a/test/language/statements/class/params-async-gen-meth-static-dflt-ref-prior.js +++ b/test/language/statements/class/async-gen-meth-static-dflt-params-ref-prior.js @@ -1,8 +1,8 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-prior.case -// - src/params/default/cls-decl-async-gen-meth-static.template +// - src/function-forms/dflt-params-ref-prior.case +// - src/function-forms/default/cls-decl-async-gen-meth-static.template /*--- -description: Referencing a parameter that occurs earlier in the ParameterList (static class expression generator method) +description: Referencing a parameter that occurs earlier in the ParameterList (static class declaration async generator method) esid: sec-runtime-semantics-bindingclassdeclarationevaluation features: [default-parameters, async-iteration] flags: [generated, async] diff --git a/test/language/statements/class/params-async-gen-meth-static-dflt-ref-self.js b/test/language/statements/class/async-gen-meth-static-dflt-params-ref-self.js similarity index 94% rename from test/language/statements/class/params-async-gen-meth-static-dflt-ref-self.js rename to test/language/statements/class/async-gen-meth-static-dflt-params-ref-self.js index 8ff36da0b8ecbffe9ed58d6579cf132c5ae73fee..349d64e97751a9d8684f9691c86a8b0e8c71be18 100644 --- a/test/language/statements/class/params-async-gen-meth-static-dflt-ref-self.js +++ b/test/language/statements/class/async-gen-meth-static-dflt-params-ref-self.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-self.case -// - src/params/error/cls-decl-async-gen-meth-static.template +// - src/function-forms/dflt-params-ref-self.case +// - src/function-forms/error/cls-decl-async-gen-meth-static.template /*--- description: Referencing a parameter from within its own initializer (static class expression generator method) esid: sec-runtime-semantics-bindingclassdeclarationevaluation diff --git a/test/language/statements/class/params-async-gen-meth-static-dflt-rest.js b/test/language/statements/class/async-gen-meth-static-dflt-params-rest.js similarity index 94% rename from test/language/statements/class/params-async-gen-meth-static-dflt-rest.js rename to test/language/statements/class/async-gen-meth-static-dflt-params-rest.js index 367e6a6df47efa90cfaac316c334e86629a3c85e..2d80a1a9d0964aae915bae8fe9da26d3f5af64fd 100644 --- a/test/language/statements/class/params-async-gen-meth-static-dflt-rest.js +++ b/test/language/statements/class/async-gen-meth-static-dflt-params-rest.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-rest.case -// - src/params/syntax/cls-decl-async-gen-meth-static.template +// - src/function-forms/dflt-params-rest.case +// - src/function-forms/syntax/cls-decl-async-gen-meth-static.template /*--- description: RestParameter does not support an initializer (static class expression generator method) esid: sec-runtime-semantics-bindingclassdeclarationevaluation diff --git a/test/language/statements/class/params-async-gen-meth-static-trailing-comma-dflt-param.js b/test/language/statements/class/async-gen-meth-static-dflt-params-trailing-comma.js similarity index 90% rename from test/language/statements/class/params-async-gen-meth-static-trailing-comma-dflt-param.js rename to test/language/statements/class/async-gen-meth-static-dflt-params-trailing-comma.js index 9e1c6b1bca3eaad3e8f4dd3024895e617beefc0c..46f0885cf55a180ee85515734d569aeba1ef67ff 100644 --- a/test/language/statements/class/params-async-gen-meth-static-trailing-comma-dflt-param.js +++ b/test/language/statements/class/async-gen-meth-static-dflt-params-trailing-comma.js @@ -1,8 +1,8 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-dflt-param.case -// - src/params/default/cls-decl-async-gen-meth-static.template +// - src/function-forms/dflt-params-trailing-comma.case +// - src/function-forms/default/cls-decl-async-gen-meth-static.template /*--- -description: A trailing comma should not increase the respective length, using default parameters (static class expression generator method) +description: A trailing comma should not increase the respective length, using default parameters (static class declaration async generator method) esid: sec-runtime-semantics-bindingclassdeclarationevaluation features: [async-iteration] flags: [generated, async] diff --git a/test/language/statements/class/params-async-gen-meth-static-trailing-comma-multiple-param.js b/test/language/statements/class/async-gen-meth-static-params-trailing-comma-multiple.js similarity index 90% rename from test/language/statements/class/params-async-gen-meth-static-trailing-comma-multiple-param.js rename to test/language/statements/class/async-gen-meth-static-params-trailing-comma-multiple.js index 65f08dfdf95b3d9d2e2afd088bf9b703d231b8e7..51c4b0f7fc9dddab71d8cff9a55eb86c52d46271 100644 --- a/test/language/statements/class/params-async-gen-meth-static-trailing-comma-multiple-param.js +++ b/test/language/statements/class/async-gen-meth-static-params-trailing-comma-multiple.js @@ -1,8 +1,8 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-multiple-param.case -// - src/params/default/cls-decl-async-gen-meth-static.template +// - src/function-forms/params-trailing-comma-multiple.case +// - src/function-forms/default/cls-decl-async-gen-meth-static.template /*--- -description: A trailing comma should not increase the respective length, using multiple parameters (static class expression generator method) +description: A trailing comma should not increase the respective length, using multiple parameters (static class declaration async generator method) esid: sec-runtime-semantics-bindingclassdeclarationevaluation features: [async-iteration] flags: [generated, async] diff --git a/test/language/statements/class/params-async-gen-meth-static-trailing-comma-single-param.js b/test/language/statements/class/async-gen-meth-static-params-trailing-comma-single.js similarity index 90% rename from test/language/statements/class/params-async-gen-meth-static-trailing-comma-single-param.js rename to test/language/statements/class/async-gen-meth-static-params-trailing-comma-single.js index 2b8aa496f07586370cc33ffa8d2f581fefa07095..0760254fbcb7edf639598e9bba4dd4f5f2f09edb 100644 --- a/test/language/statements/class/params-async-gen-meth-static-trailing-comma-single-param.js +++ b/test/language/statements/class/async-gen-meth-static-params-trailing-comma-single.js @@ -1,8 +1,8 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-single-param.case -// - src/params/default/cls-decl-async-gen-meth-static.template +// - src/function-forms/params-trailing-comma-single.case +// - src/function-forms/default/cls-decl-async-gen-meth-static.template /*--- -description: A trailing comma should not increase the respective length, using a single parameter (static class expression generator method) +description: A trailing comma should not increase the respective length, using a single parameter (static class declaration async generator method) esid: sec-runtime-semantics-bindingclassdeclarationevaluation features: [async-iteration] flags: [generated, async] diff --git a/test/language/statements/class/params-async-gen-meth-static-trailing-comma-rest-early-error.js b/test/language/statements/class/async-gen-meth-static-rest-params-trailing-comma-early-error.js similarity index 93% rename from test/language/statements/class/params-async-gen-meth-static-trailing-comma-rest-early-error.js rename to test/language/statements/class/async-gen-meth-static-rest-params-trailing-comma-early-error.js index 8d616a80f57f87964867e4f4c8e2dbda8f345c72..09113accbddf3bcea5e62501fe6838d19e2a85ff 100644 --- a/test/language/statements/class/params-async-gen-meth-static-trailing-comma-rest-early-error.js +++ b/test/language/statements/class/async-gen-meth-static-rest-params-trailing-comma-early-error.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-rest-early-error.case -// - src/params/syntax/cls-decl-async-gen-meth-static.template +// - src/function-forms/rest-params-trailing-comma-early-error.case +// - src/function-forms/syntax/cls-decl-async-gen-meth-static.template /*--- description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (static class expression generator method) esid: sec-runtime-semantics-bindingclassdeclarationevaluation diff --git a/test/language/statements/class/async-meth-dflt-params-abrupt.js b/test/language/statements/class/async-meth-dflt-params-abrupt.js new file mode 100644 index 0000000000000000000000000000000000000000..6fb6af006880cdd59dd1a9e2a5112dfb3484099e --- /dev/null +++ b/test/language/statements/class/async-meth-dflt-params-abrupt.js @@ -0,0 +1,68 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-abrupt.case +// - src/function-forms/error/cls-decl-async-meth.template +/*--- +description: Abrupt completion returned by evaluation of initializer (class declaration async method) +esid: sec-class-definitions-runtime-semantics-evaluation +features: [default-parameters] +flags: [generated, async] +info: | + ClassDeclaration : class BindingIdentifier ClassTail + + 1. Let className be StringValue of BindingIdentifier. + 2. Let value be the result of ClassDefinitionEvaluation of ClassTail with + argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + i. Let status be the result of performing + PropertyDefinitionEvaluation for m with arguments proto and + false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + 1. Let status be the result of performing IteratorBindingInitialization for + FormalsList using iteratorRecord and environment as the arguments. + 2. ReturnIfAbrupt(status). + 3. Return the result of performing IteratorBindingInitialization for + FormalParameter using iteratorRecord and environment as the arguments. + +---*/ + + +var callCount = 0; +class C { + async method(_ = (function() { throw new Test262Error(); }())) { + + callCount = callCount + 1; + } +} + +C.prototype.method() + .then(_ => { + throw new Test262Error('function should not be resolved'); + }, error => assert.sameValue(error.constructor, Test262Error)) + .then(() => { + assert.sameValue(callCount, 0, 'function body is not evaluated'); + }, $DONE) + .then($DONE, $DONE); diff --git a/test/language/statements/class/async-meth-dflt-params-arg-val-not-undefined.js b/test/language/statements/class/async-meth-dflt-params-arg-val-not-undefined.js new file mode 100644 index 0000000000000000000000000000000000000000..2f857b0881506c35c027eb48596fe2c524dd2c4c --- /dev/null +++ b/test/language/statements/class/async-meth-dflt-params-arg-val-not-undefined.js @@ -0,0 +1,89 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-arg-val-not-undefined.case +// - src/function-forms/default/cls-decl-async-meth.template +/*--- +description: Use of intializer when argument value is not `undefined` (class declaration async method) +esid: sec-class-definitions-runtime-semantics-evaluation +features: [default-parameters] +flags: [generated, async] +info: | + ClassDeclaration : class BindingIdentifier ClassTail + + 1. Let className be StringValue of BindingIdentifier. + 2. Let value be the result of ClassDefinitionEvaluation of ClassTail with + argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + i. Let status be the result of performing + PropertyDefinitionEvaluation for m with arguments proto and + false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + [...] + 23. Let iteratorRecord be Record {[[Iterator]]: + CreateListIterator(argumentsList), [[Done]]: false}. + 24. If hasDuplicates is true, then + [...] + 25. Else, + a. Perform ? IteratorBindingInitialization for formals with + iteratorRecord and env as arguments. + [...] + +---*/ +var obj = {}; +var falseCount = 0; +var stringCount = 0; +var nanCount = 0; +var zeroCount = 0; +var nullCount = 0; +var objCount = 0; + + +var callCount = 0; +class C { + async method(aFalse = falseCount +=1, aString = stringCount += 1, aNaN = nanCount += 1, a0 = zeroCount += 1, aNull = nullCount += 1, aObj = objCount +=1) { + assert.sameValue(aFalse, false); + assert.sameValue(aString, ''); + assert.sameValue(aNaN, NaN); + assert.sameValue(a0, 0); + assert.sameValue(aNull, null); + assert.sameValue(aObj, obj); + callCount = callCount + 1; + } +} + +// Stores a reference `ref` for case evaluation +var ref = C.prototype.method; + +ref(false, '', NaN, 0, null, obj).then(() => { + assert.sameValue(callCount, 1, 'method invoked exactly once'); +}).then($DONE, $DONE); + +assert.sameValue(falseCount, 0, 'initializer not evaluated: false'); +assert.sameValue(stringCount, 0, 'initializer not evaluated: string'); +assert.sameValue(nanCount, 0, 'initializer not evaluated: NaN'); +assert.sameValue(zeroCount, 0, 'initializer not evaluated: 0'); +assert.sameValue(nullCount, 0, 'initializer not evaluated: null'); +assert.sameValue(objCount, 0, 'initializer not evaluated: object'); diff --git a/test/language/statements/class/async-meth-dflt-params-arg-val-undefined.js b/test/language/statements/class/async-meth-dflt-params-arg-val-undefined.js new file mode 100644 index 0000000000000000000000000000000000000000..810e6440686834a8ee66602ba1fc469a81ee195a --- /dev/null +++ b/test/language/statements/class/async-meth-dflt-params-arg-val-undefined.js @@ -0,0 +1,72 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-arg-val-undefined.case +// - src/function-forms/default/cls-decl-async-meth.template +/*--- +description: Use of intializer when argument value is `undefined` (class declaration async method) +esid: sec-class-definitions-runtime-semantics-evaluation +features: [default-parameters] +flags: [generated, async] +info: | + ClassDeclaration : class BindingIdentifier ClassTail + + 1. Let className be StringValue of BindingIdentifier. + 2. Let value be the result of ClassDefinitionEvaluation of ClassTail with + argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + i. Let status be the result of performing + PropertyDefinitionEvaluation for m with arguments proto and + false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + [...] + 23. Let iteratorRecord be Record {[[Iterator]]: + CreateListIterator(argumentsList), [[Done]]: false}. + 24. If hasDuplicates is true, then + [...] + 25. Else, + a. Perform ? IteratorBindingInitialization for formals with + iteratorRecord and env as arguments. + [...] + +---*/ + + +var callCount = 0; +class C { + async method(fromLiteral = 23, fromExpr = 45, fromHole = 99) { + assert.sameValue(fromLiteral, 23); + assert.sameValue(fromExpr, 45); + assert.sameValue(fromHole, 99); + callCount = callCount + 1; + } +} + +// Stores a reference `ref` for case evaluation +var ref = C.prototype.method; + +ref(undefined, void 0).then(() => { + assert.sameValue(callCount, 1, 'method invoked exactly once'); +}).then($DONE, $DONE); diff --git a/test/language/statements/class/async-meth-dflt-params-duplicates.js b/test/language/statements/class/async-meth-dflt-params-duplicates.js new file mode 100644 index 0000000000000000000000000000000000000000..5e44eb47f19987fb351badfbb6ea373ed6b540cb --- /dev/null +++ b/test/language/statements/class/async-meth-dflt-params-duplicates.js @@ -0,0 +1,63 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-duplicates.case +// - src/function-forms/syntax/cls-decl-async-meth.template +/*--- +description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (class declaration async method) +esid: sec-class-definitions-runtime-semantics-evaluation +features: [default-parameters] +flags: [generated] +negative: + phase: early + type: SyntaxError +info: | + ClassDeclaration : class BindingIdentifier ClassTail + + 1. Let className be StringValue of BindingIdentifier. + 2. Let value be the result of ClassDefinitionEvaluation of ClassTail with + argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + i. Let status be the result of performing + PropertyDefinitionEvaluation for m with arguments proto and + false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] + + + 14.1.2 Static Semantics: Early Errors + + StrictFormalParameters : FormalParameters + + - It is a Syntax Error if BoundNames of FormalParameters contains any + duplicate elements. + + FormalParameters : FormalParameterList + + - It is a Syntax Error if IsSimpleParameterList of FormalParameterList is + false and BoundNames of FormalParameterList contains any duplicate + elements. + +---*/ + + +class C { + async method(x = 0, x) { + + } +} diff --git a/test/language/statements/class/async-meth-dflt-params-ref-later.js b/test/language/statements/class/async-meth-dflt-params-ref-later.js new file mode 100644 index 0000000000000000000000000000000000000000..673c3e4e7c622fab6cd7fb4343fdc43498b554c7 --- /dev/null +++ b/test/language/statements/class/async-meth-dflt-params-ref-later.js @@ -0,0 +1,69 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-ref-later.case +// - src/function-forms/error/cls-decl-async-meth.template +/*--- +description: Referencing a parameter that occurs later in the ParameterList (class declaration async method) +esid: sec-class-definitions-runtime-semantics-evaluation +features: [default-parameters] +flags: [generated, async] +info: | + ClassDeclaration : class BindingIdentifier ClassTail + + 1. Let className be StringValue of BindingIdentifier. + 2. Let value be the result of ClassDefinitionEvaluation of ClassTail with + argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + i. Let status be the result of performing + PropertyDefinitionEvaluation for m with arguments proto and + false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + 1. Let status be the result of performing IteratorBindingInitialization for + FormalsList using iteratorRecord and environment as the arguments. + 2. ReturnIfAbrupt(status). + 3. Return the result of performing IteratorBindingInitialization for + FormalParameter using iteratorRecord and environment as the arguments. + +---*/ +var x = 0; + + +var callCount = 0; +class C { + async method(x = y, y) { + + callCount = callCount + 1; + } +} + +C.prototype.method() + .then(_ => { + throw new Test262Error('function should not be resolved'); + }, error => assert.sameValue(error.constructor, ReferenceError)) + .then(() => { + assert.sameValue(callCount, 0, 'function body is not evaluated'); + }, $DONE) + .then($DONE, $DONE); diff --git a/test/language/statements/class/async-meth-dflt-params-ref-prior.js b/test/language/statements/class/async-meth-dflt-params-ref-prior.js new file mode 100644 index 0000000000000000000000000000000000000000..f6eae505d419fd2eb81faea38a3c44c32c53f21f --- /dev/null +++ b/test/language/statements/class/async-meth-dflt-params-ref-prior.js @@ -0,0 +1,69 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-ref-prior.case +// - src/function-forms/default/cls-decl-async-meth.template +/*--- +description: Referencing a parameter that occurs earlier in the ParameterList (class declaration async method) +esid: sec-class-definitions-runtime-semantics-evaluation +features: [default-parameters] +flags: [generated, async] +info: | + ClassDeclaration : class BindingIdentifier ClassTail + + 1. Let className be StringValue of BindingIdentifier. + 2. Let value be the result of ClassDefinitionEvaluation of ClassTail with + argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + i. Let status be the result of performing + PropertyDefinitionEvaluation for m with arguments proto and + false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + 1. Let status be the result of performing IteratorBindingInitialization for + FormalsList using iteratorRecord and environment as the arguments. + 2. ReturnIfAbrupt(status). + 3. Return the result of performing IteratorBindingInitialization for + FormalParameter using iteratorRecord and environment as the arguments. + +---*/ +var x = 0; + + +var callCount = 0; +class C { + async method(x, y = x, z = y) { + assert.sameValue(x, 3, 'first argument value'); + assert.sameValue(y, 3, 'second argument value'); + assert.sameValue(z, 3, 'third argument value'); + callCount = callCount + 1; + } +} + +// Stores a reference `ref` for case evaluation +var ref = C.prototype.method; + +ref(3).then(() => { + assert.sameValue(callCount, 1, 'method invoked exactly once'); +}).then($DONE, $DONE); diff --git a/test/language/statements/class/async-meth-dflt-params-ref-self.js b/test/language/statements/class/async-meth-dflt-params-ref-self.js new file mode 100644 index 0000000000000000000000000000000000000000..b85d2c1c134b5bfba652a46cf4d9ca02629bf9c5 --- /dev/null +++ b/test/language/statements/class/async-meth-dflt-params-ref-self.js @@ -0,0 +1,69 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-ref-self.case +// - src/function-forms/error/cls-decl-async-meth.template +/*--- +description: Referencing a parameter from within its own initializer (class declaration async method) +esid: sec-class-definitions-runtime-semantics-evaluation +features: [default-parameters] +flags: [generated, async] +info: | + ClassDeclaration : class BindingIdentifier ClassTail + + 1. Let className be StringValue of BindingIdentifier. + 2. Let value be the result of ClassDefinitionEvaluation of ClassTail with + argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + i. Let status be the result of performing + PropertyDefinitionEvaluation for m with arguments proto and + false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + 1. Let status be the result of performing IteratorBindingInitialization for + FormalsList using iteratorRecord and environment as the arguments. + 2. ReturnIfAbrupt(status). + 3. Return the result of performing IteratorBindingInitialization for + FormalParameter using iteratorRecord and environment as the arguments. + +---*/ +var x = 0; + + +var callCount = 0; +class C { + async method(x = x) { + + callCount = callCount + 1; + } +} + +C.prototype.method() + .then(_ => { + throw new Test262Error('function should not be resolved'); + }, error => assert.sameValue(error.constructor, ReferenceError)) + .then(() => { + assert.sameValue(callCount, 0, 'function body is not evaluated'); + }, $DONE) + .then($DONE, $DONE); diff --git a/test/language/statements/class/async-meth-dflt-params-rest.js b/test/language/statements/class/async-meth-dflt-params-rest.js new file mode 100644 index 0000000000000000000000000000000000000000..df894a820c77af4c2dad9d4573635c2fef50fe65 --- /dev/null +++ b/test/language/statements/class/async-meth-dflt-params-rest.js @@ -0,0 +1,67 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-rest.case +// - src/function-forms/syntax/cls-decl-async-meth.template +/*--- +description: RestParameter does not support an initializer (class declaration async method) +esid: sec-class-definitions-runtime-semantics-evaluation +features: [default-parameters] +flags: [generated] +negative: + phase: early + type: SyntaxError +info: | + ClassDeclaration : class BindingIdentifier ClassTail + + 1. Let className be StringValue of BindingIdentifier. + 2. Let value be the result of ClassDefinitionEvaluation of ClassTail with + argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + i. Let status be the result of performing + PropertyDefinitionEvaluation for m with arguments proto and + false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] + + + 14.1 Function Definitions + + Syntax + + FunctionRestParameter[Yield] : + + BindingRestElement[?Yield] + + 13.3.3 Destructuring Binding Patterns + + Syntax + + BindingRestElement[Yield] : + + ...BindingIdentifier[?Yield] + ...BindingPattern[?Yield] + +---*/ + + +class C { + async method(...x = []) { + + } +} diff --git a/test/language/statements/class/async-meth-dflt-params-trailing-comma.js b/test/language/statements/class/async-meth-dflt-params-trailing-comma.js new file mode 100644 index 0000000000000000000000000000000000000000..2dfc6a9888fbf6cae0dd7f7ffba101b077f891cb --- /dev/null +++ b/test/language/statements/class/async-meth-dflt-params-trailing-comma.js @@ -0,0 +1,63 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-trailing-comma.case +// - src/function-forms/default/cls-decl-async-meth.template +/*--- +description: A trailing comma should not increase the respective length, using default parameters (class declaration async method) +esid: sec-class-definitions-runtime-semantics-evaluation +flags: [generated, async] +info: | + ClassDeclaration : class BindingIdentifier ClassTail + + 1. Let className be StringValue of BindingIdentifier. + 2. Let value be the result of ClassDefinitionEvaluation of ClassTail with + argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + i. Let status be the result of performing + PropertyDefinitionEvaluation for m with arguments proto and + false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] + + + Trailing comma in the parameters list + + 14.1 Function Definitions + + FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] , +---*/ + + +var callCount = 0; +class C { + async method(a, b = 39,) { + assert.sameValue(a, 42); + assert.sameValue(b, 39); + callCount = callCount + 1; + } +} + +// Stores a reference `ref` for case evaluation +var ref = C.prototype.method; + +ref(42, undefined, 1).then(() => { + assert.sameValue(callCount, 1, 'method invoked exactly once'); +}).then($DONE, $DONE); + +assert.sameValue(ref.length, 1, 'length is properly set'); diff --git a/test/language/statements/class/async-meth-params-trailing-comma-multiple.js b/test/language/statements/class/async-meth-params-trailing-comma-multiple.js new file mode 100644 index 0000000000000000000000000000000000000000..3ceb1d6d58940e04786690b3de05c499d72ea843 --- /dev/null +++ b/test/language/statements/class/async-meth-params-trailing-comma-multiple.js @@ -0,0 +1,63 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/params-trailing-comma-multiple.case +// - src/function-forms/default/cls-decl-async-meth.template +/*--- +description: A trailing comma should not increase the respective length, using multiple parameters (class declaration async method) +esid: sec-class-definitions-runtime-semantics-evaluation +flags: [generated, async] +info: | + ClassDeclaration : class BindingIdentifier ClassTail + + 1. Let className be StringValue of BindingIdentifier. + 2. Let value be the result of ClassDefinitionEvaluation of ClassTail with + argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + i. Let status be the result of performing + PropertyDefinitionEvaluation for m with arguments proto and + false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] + + + Trailing comma in the parameters list + + 14.1 Function Definitions + + FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] , +---*/ + + +var callCount = 0; +class C { + async method(a, b,) { + assert.sameValue(a, 42); + assert.sameValue(b, 39); + callCount = callCount + 1; + } +} + +// Stores a reference `ref` for case evaluation +var ref = C.prototype.method; + +ref(42, 39, 1).then(() => { + assert.sameValue(callCount, 1, 'method invoked exactly once'); +}).then($DONE, $DONE); + +assert.sameValue(ref.length, 2, 'length is properly set'); diff --git a/test/language/statements/class/async-meth-params-trailing-comma-single.js b/test/language/statements/class/async-meth-params-trailing-comma-single.js new file mode 100644 index 0000000000000000000000000000000000000000..5b86f97ee407e0511f68f85a48ec105b334406aa --- /dev/null +++ b/test/language/statements/class/async-meth-params-trailing-comma-single.js @@ -0,0 +1,62 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/params-trailing-comma-single.case +// - src/function-forms/default/cls-decl-async-meth.template +/*--- +description: A trailing comma should not increase the respective length, using a single parameter (class declaration async method) +esid: sec-class-definitions-runtime-semantics-evaluation +flags: [generated, async] +info: | + ClassDeclaration : class BindingIdentifier ClassTail + + 1. Let className be StringValue of BindingIdentifier. + 2. Let value be the result of ClassDefinitionEvaluation of ClassTail with + argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + i. Let status be the result of performing + PropertyDefinitionEvaluation for m with arguments proto and + false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] + + + Trailing comma in the parameters list + + 14.1 Function Definitions + + FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] , +---*/ + + +var callCount = 0; +class C { + async method(a,) { + assert.sameValue(a, 42); + callCount = callCount + 1; + } +} + +// Stores a reference `ref` for case evaluation +var ref = C.prototype.method; + +ref(42, 39).then(() => { + assert.sameValue(callCount, 1, 'method invoked exactly once'); +}).then($DONE, $DONE); + +assert.sameValue(ref.length, 1, 'length is properly set'); diff --git a/test/language/statements/class/async-meth-rest-params-trailing-comma-early-error.js b/test/language/statements/class/async-meth-rest-params-trailing-comma-early-error.js new file mode 100644 index 0000000000000000000000000000000000000000..15660680a7b657a086e95507187496b40ac247ed --- /dev/null +++ b/test/language/statements/class/async-meth-rest-params-trailing-comma-early-error.js @@ -0,0 +1,59 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/rest-params-trailing-comma-early-error.case +// - src/function-forms/syntax/cls-decl-async-meth.template +/*--- +description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (class declaration async method) +esid: sec-class-definitions-runtime-semantics-evaluation +flags: [generated] +negative: + phase: early + type: SyntaxError +info: | + ClassDeclaration : class BindingIdentifier ClassTail + + 1. Let className be StringValue of BindingIdentifier. + 2. Let value be the result of ClassDefinitionEvaluation of ClassTail with + argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + i. Let status be the result of performing + PropertyDefinitionEvaluation for m with arguments proto and + false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] + + + Trailing comma in the parameters list + + 14.1 Function Definitions + + FormalParameters[Yield, Await] : + [empty] + FunctionRestParameter[?Yield, ?Await] + FormalParameterList[?Yield, ?Await] + FormalParameterList[?Yield, ?Await] , + FormalParameterList[?Yield, ?Await] , FunctionRestParameter[?Yield, ?Await] +---*/ + + +class C { + async method(...a,) { + + } +} diff --git a/test/language/statements/class/async-meth-static-dflt-params-abrupt.js b/test/language/statements/class/async-meth-static-dflt-params-abrupt.js new file mode 100644 index 0000000000000000000000000000000000000000..3d58d2ab3da33eb026d172c1e7310e5a61437dd1 --- /dev/null +++ b/test/language/statements/class/async-meth-static-dflt-params-abrupt.js @@ -0,0 +1,68 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-abrupt.case +// - src/function-forms/error/cls-decl-async-meth-static.template +/*--- +description: Abrupt completion returned by evaluation of initializer (static class declaration async method) +esid: sec-runtime-semantics-bindingclassdeclarationevaluation +features: [default-parameters] +flags: [generated, async] +info: | + ClassDeclaration : class BindingIdentifier ClassTail + + 1. Let className be StringValue of BindingIdentifier. + 2. Let value be the result of ClassDefinitionEvaluation of ClassTail with + argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + b. Else, + Let status be the result of performing PropertyDefinitionEvaluation for + m with arguments F and false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + 1. Let status be the result of performing IteratorBindingInitialization for + FormalsList using iteratorRecord and environment as the arguments. + 2. ReturnIfAbrupt(status). + 3. Return the result of performing IteratorBindingInitialization for + FormalParameter using iteratorRecord and environment as the arguments. + +---*/ + + +var callCount = 0; +class C { + static async method(_ = (function() { throw new Test262Error(); }())) { + + callCount = callCount + 1; + } +} + +C.method() + .then(_ => { + throw new Test262Error('function should not be resolved'); + }, error => assert.sameValue(error.constructor, Test262Error)) + .then(() => { + assert.sameValue(callCount, 0, 'function body is not evaluated'); + }, $DONE) + .then($DONE, $DONE); diff --git a/test/language/statements/class/async-meth-static-dflt-params-arg-val-not-undefined.js b/test/language/statements/class/async-meth-static-dflt-params-arg-val-not-undefined.js new file mode 100644 index 0000000000000000000000000000000000000000..1309bcfd43252858eb5eedb1cba8e8c6db329b7c --- /dev/null +++ b/test/language/statements/class/async-meth-static-dflt-params-arg-val-not-undefined.js @@ -0,0 +1,89 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-arg-val-not-undefined.case +// - src/function-forms/default/cls-decl-async-meth-static.template +/*--- +description: Use of intializer when argument value is not `undefined` (static class declaration async method) +esid: sec-runtime-semantics-bindingclassdeclarationevaluation +features: [default-parameters] +flags: [generated, async] +info: | + ClassDeclaration : class BindingIdentifier ClassTail + + 1. Let className be StringValue of BindingIdentifier. + 2. Let value be the result of ClassDefinitionEvaluation of ClassTail with + argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + b. Else, + Let status be the result of performing PropertyDefinitionEvaluation for + m with arguments F and false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + [...] + 23. Let iteratorRecord be Record {[[Iterator]]: + CreateListIterator(argumentsList), [[Done]]: false}. + 24. If hasDuplicates is true, then + [...] + 25. Else, + a. Perform ? IteratorBindingInitialization for formals with + iteratorRecord and env as arguments. + [...] + +---*/ +var obj = {}; +var falseCount = 0; +var stringCount = 0; +var nanCount = 0; +var zeroCount = 0; +var nullCount = 0; +var objCount = 0; + + +var callCount = 0; +class C { + static async method(aFalse = falseCount +=1, aString = stringCount += 1, aNaN = nanCount += 1, a0 = zeroCount += 1, aNull = nullCount += 1, aObj = objCount +=1) { + assert.sameValue(aFalse, false); + assert.sameValue(aString, ''); + assert.sameValue(aNaN, NaN); + assert.sameValue(a0, 0); + assert.sameValue(aNull, null); + assert.sameValue(aObj, obj); + callCount = callCount + 1; + } +} + +// Stores a reference `ref` for case evaluation +var ref = C.method; + +ref(false, '', NaN, 0, null, obj).then(() => { + assert.sameValue(callCount, 1, 'method invoked exactly once'); +}).then($DONE, $DONE); + +assert.sameValue(falseCount, 0, 'initializer not evaluated: false'); +assert.sameValue(stringCount, 0, 'initializer not evaluated: string'); +assert.sameValue(nanCount, 0, 'initializer not evaluated: NaN'); +assert.sameValue(zeroCount, 0, 'initializer not evaluated: 0'); +assert.sameValue(nullCount, 0, 'initializer not evaluated: null'); +assert.sameValue(objCount, 0, 'initializer not evaluated: object'); diff --git a/test/language/statements/class/async-meth-static-dflt-params-arg-val-undefined.js b/test/language/statements/class/async-meth-static-dflt-params-arg-val-undefined.js new file mode 100644 index 0000000000000000000000000000000000000000..af76655fe2f885aa8e7cf4733d1ffc16d7909151 --- /dev/null +++ b/test/language/statements/class/async-meth-static-dflt-params-arg-val-undefined.js @@ -0,0 +1,72 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-arg-val-undefined.case +// - src/function-forms/default/cls-decl-async-meth-static.template +/*--- +description: Use of intializer when argument value is `undefined` (static class declaration async method) +esid: sec-runtime-semantics-bindingclassdeclarationevaluation +features: [default-parameters] +flags: [generated, async] +info: | + ClassDeclaration : class BindingIdentifier ClassTail + + 1. Let className be StringValue of BindingIdentifier. + 2. Let value be the result of ClassDefinitionEvaluation of ClassTail with + argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + b. Else, + Let status be the result of performing PropertyDefinitionEvaluation for + m with arguments F and false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + [...] + 23. Let iteratorRecord be Record {[[Iterator]]: + CreateListIterator(argumentsList), [[Done]]: false}. + 24. If hasDuplicates is true, then + [...] + 25. Else, + a. Perform ? IteratorBindingInitialization for formals with + iteratorRecord and env as arguments. + [...] + +---*/ + + +var callCount = 0; +class C { + static async method(fromLiteral = 23, fromExpr = 45, fromHole = 99) { + assert.sameValue(fromLiteral, 23); + assert.sameValue(fromExpr, 45); + assert.sameValue(fromHole, 99); + callCount = callCount + 1; + } +} + +// Stores a reference `ref` for case evaluation +var ref = C.method; + +ref(undefined, void 0).then(() => { + assert.sameValue(callCount, 1, 'method invoked exactly once'); +}).then($DONE, $DONE); diff --git a/test/language/statements/class/async-meth-static-dflt-params-duplicates.js b/test/language/statements/class/async-meth-static-dflt-params-duplicates.js new file mode 100644 index 0000000000000000000000000000000000000000..79458288d1de6ad0f3192f0036b335634015abe0 --- /dev/null +++ b/test/language/statements/class/async-meth-static-dflt-params-duplicates.js @@ -0,0 +1,62 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-duplicates.case +// - src/function-forms/syntax/cls-decl-async-meth-static.template +/*--- +description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (static class declaration async method) +esid: sec-runtime-semantics-bindingclassdeclarationevaluation +features: [default-parameters] +flags: [generated] +negative: + phase: early + type: SyntaxError +info: | + ClassDeclaration : class BindingIdentifier ClassTail + + 1. Let className be StringValue of BindingIdentifier. + 2. Let value be the result of ClassDefinitionEvaluation of ClassTail with + argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + b. Else, + Let status be the result of performing PropertyDefinitionEvaluation for + m with arguments F and false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] + + 14.1.2 Static Semantics: Early Errors + + StrictFormalParameters : FormalParameters + + - It is a Syntax Error if BoundNames of FormalParameters contains any + duplicate elements. + + FormalParameters : FormalParameterList + + - It is a Syntax Error if IsSimpleParameterList of FormalParameterList is + false and BoundNames of FormalParameterList contains any duplicate + elements. + +---*/ + + +class C { + static async method(x = 0, x) { + + } +} diff --git a/test/language/statements/class/async-meth-static-dflt-params-ref-later.js b/test/language/statements/class/async-meth-static-dflt-params-ref-later.js new file mode 100644 index 0000000000000000000000000000000000000000..f089ed85535515e254c175324ee90cb66a99e97f --- /dev/null +++ b/test/language/statements/class/async-meth-static-dflt-params-ref-later.js @@ -0,0 +1,69 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-ref-later.case +// - src/function-forms/error/cls-decl-async-meth-static.template +/*--- +description: Referencing a parameter that occurs later in the ParameterList (static class declaration async method) +esid: sec-runtime-semantics-bindingclassdeclarationevaluation +features: [default-parameters] +flags: [generated, async] +info: | + ClassDeclaration : class BindingIdentifier ClassTail + + 1. Let className be StringValue of BindingIdentifier. + 2. Let value be the result of ClassDefinitionEvaluation of ClassTail with + argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + b. Else, + Let status be the result of performing PropertyDefinitionEvaluation for + m with arguments F and false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + 1. Let status be the result of performing IteratorBindingInitialization for + FormalsList using iteratorRecord and environment as the arguments. + 2. ReturnIfAbrupt(status). + 3. Return the result of performing IteratorBindingInitialization for + FormalParameter using iteratorRecord and environment as the arguments. + +---*/ +var x = 0; + + +var callCount = 0; +class C { + static async method(x = y, y) { + + callCount = callCount + 1; + } +} + +C.method() + .then(_ => { + throw new Test262Error('function should not be resolved'); + }, error => assert.sameValue(error.constructor, ReferenceError)) + .then(() => { + assert.sameValue(callCount, 0, 'function body is not evaluated'); + }, $DONE) + .then($DONE, $DONE); diff --git a/test/language/statements/class/async-meth-static-dflt-params-ref-prior.js b/test/language/statements/class/async-meth-static-dflt-params-ref-prior.js new file mode 100644 index 0000000000000000000000000000000000000000..2e2126f89a5ae53ca00816b8629fb9dc0b1ae2e8 --- /dev/null +++ b/test/language/statements/class/async-meth-static-dflt-params-ref-prior.js @@ -0,0 +1,69 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-ref-prior.case +// - src/function-forms/default/cls-decl-async-meth-static.template +/*--- +description: Referencing a parameter that occurs earlier in the ParameterList (static class declaration async method) +esid: sec-runtime-semantics-bindingclassdeclarationevaluation +features: [default-parameters] +flags: [generated, async] +info: | + ClassDeclaration : class BindingIdentifier ClassTail + + 1. Let className be StringValue of BindingIdentifier. + 2. Let value be the result of ClassDefinitionEvaluation of ClassTail with + argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + b. Else, + Let status be the result of performing PropertyDefinitionEvaluation for + m with arguments F and false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + 1. Let status be the result of performing IteratorBindingInitialization for + FormalsList using iteratorRecord and environment as the arguments. + 2. ReturnIfAbrupt(status). + 3. Return the result of performing IteratorBindingInitialization for + FormalParameter using iteratorRecord and environment as the arguments. + +---*/ +var x = 0; + + +var callCount = 0; +class C { + static async method(x, y = x, z = y) { + assert.sameValue(x, 3, 'first argument value'); + assert.sameValue(y, 3, 'second argument value'); + assert.sameValue(z, 3, 'third argument value'); + callCount = callCount + 1; + } +} + +// Stores a reference `ref` for case evaluation +var ref = C.method; + +ref(3).then(() => { + assert.sameValue(callCount, 1, 'method invoked exactly once'); +}).then($DONE, $DONE); diff --git a/test/language/statements/class/async-meth-static-dflt-params-ref-self.js b/test/language/statements/class/async-meth-static-dflt-params-ref-self.js new file mode 100644 index 0000000000000000000000000000000000000000..716f786d4704f3e79376e7bf75cff4f2a965f926 --- /dev/null +++ b/test/language/statements/class/async-meth-static-dflt-params-ref-self.js @@ -0,0 +1,69 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-ref-self.case +// - src/function-forms/error/cls-decl-async-meth-static.template +/*--- +description: Referencing a parameter from within its own initializer (static class declaration async method) +esid: sec-runtime-semantics-bindingclassdeclarationevaluation +features: [default-parameters] +flags: [generated, async] +info: | + ClassDeclaration : class BindingIdentifier ClassTail + + 1. Let className be StringValue of BindingIdentifier. + 2. Let value be the result of ClassDefinitionEvaluation of ClassTail with + argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + b. Else, + Let status be the result of performing PropertyDefinitionEvaluation for + m with arguments F and false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] + + + 14.1.19 Runtime Semantics: IteratorBindingInitialization + + FormalsList : FormalsList , FormalParameter + + 1. Let status be the result of performing IteratorBindingInitialization for + FormalsList using iteratorRecord and environment as the arguments. + 2. ReturnIfAbrupt(status). + 3. Return the result of performing IteratorBindingInitialization for + FormalParameter using iteratorRecord and environment as the arguments. + +---*/ +var x = 0; + + +var callCount = 0; +class C { + static async method(x = x) { + + callCount = callCount + 1; + } +} + +C.method() + .then(_ => { + throw new Test262Error('function should not be resolved'); + }, error => assert.sameValue(error.constructor, ReferenceError)) + .then(() => { + assert.sameValue(callCount, 0, 'function body is not evaluated'); + }, $DONE) + .then($DONE, $DONE); diff --git a/test/language/statements/class/async-meth-static-dflt-params-rest.js b/test/language/statements/class/async-meth-static-dflt-params-rest.js new file mode 100644 index 0000000000000000000000000000000000000000..79052753e62db0ad48497b209ed65242117d9296 --- /dev/null +++ b/test/language/statements/class/async-meth-static-dflt-params-rest.js @@ -0,0 +1,66 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-rest.case +// - src/function-forms/syntax/cls-decl-async-meth-static.template +/*--- +description: RestParameter does not support an initializer (static class declaration async method) +esid: sec-runtime-semantics-bindingclassdeclarationevaluation +features: [default-parameters] +flags: [generated] +negative: + phase: early + type: SyntaxError +info: | + ClassDeclaration : class BindingIdentifier ClassTail + + 1. Let className be StringValue of BindingIdentifier. + 2. Let value be the result of ClassDefinitionEvaluation of ClassTail with + argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + b. Else, + Let status be the result of performing PropertyDefinitionEvaluation for + m with arguments F and false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] + + 14.1 Function Definitions + + Syntax + + FunctionRestParameter[Yield] : + + BindingRestElement[?Yield] + + 13.3.3 Destructuring Binding Patterns + + Syntax + + BindingRestElement[Yield] : + + ...BindingIdentifier[?Yield] + ...BindingPattern[?Yield] + +---*/ + + +class C { + static async method(...x = []) { + + } +} diff --git a/test/language/statements/class/async-meth-static-dflt-params-trailing-comma.js b/test/language/statements/class/async-meth-static-dflt-params-trailing-comma.js new file mode 100644 index 0000000000000000000000000000000000000000..e9a769b125fe222c607151c14d141862c111d8f1 --- /dev/null +++ b/test/language/statements/class/async-meth-static-dflt-params-trailing-comma.js @@ -0,0 +1,63 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/dflt-params-trailing-comma.case +// - src/function-forms/default/cls-decl-async-meth-static.template +/*--- +description: A trailing comma should not increase the respective length, using default parameters (static class declaration async method) +esid: sec-runtime-semantics-bindingclassdeclarationevaluation +flags: [generated, async] +info: | + ClassDeclaration : class BindingIdentifier ClassTail + + 1. Let className be StringValue of BindingIdentifier. + 2. Let value be the result of ClassDefinitionEvaluation of ClassTail with + argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + b. Else, + Let status be the result of performing PropertyDefinitionEvaluation for + m with arguments F and false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] + + + Trailing comma in the parameters list + + 14.1 Function Definitions + + FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] , +---*/ + + +var callCount = 0; +class C { + static async method(a, b = 39,) { + assert.sameValue(a, 42); + assert.sameValue(b, 39); + callCount = callCount + 1; + } +} + +// Stores a reference `ref` for case evaluation +var ref = C.method; + +ref(42, undefined, 1).then(() => { + assert.sameValue(callCount, 1, 'method invoked exactly once'); +}).then($DONE, $DONE); + +assert.sameValue(ref.length, 1, 'length is properly set'); diff --git a/test/language/statements/class/async-meth-static-params-trailing-comma-multiple.js b/test/language/statements/class/async-meth-static-params-trailing-comma-multiple.js new file mode 100644 index 0000000000000000000000000000000000000000..7c0bebd53884be4ba4a10691f17a33bb970afc03 --- /dev/null +++ b/test/language/statements/class/async-meth-static-params-trailing-comma-multiple.js @@ -0,0 +1,63 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/params-trailing-comma-multiple.case +// - src/function-forms/default/cls-decl-async-meth-static.template +/*--- +description: A trailing comma should not increase the respective length, using multiple parameters (static class declaration async method) +esid: sec-runtime-semantics-bindingclassdeclarationevaluation +flags: [generated, async] +info: | + ClassDeclaration : class BindingIdentifier ClassTail + + 1. Let className be StringValue of BindingIdentifier. + 2. Let value be the result of ClassDefinitionEvaluation of ClassTail with + argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + b. Else, + Let status be the result of performing PropertyDefinitionEvaluation for + m with arguments F and false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] + + + Trailing comma in the parameters list + + 14.1 Function Definitions + + FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] , +---*/ + + +var callCount = 0; +class C { + static async method(a, b,) { + assert.sameValue(a, 42); + assert.sameValue(b, 39); + callCount = callCount + 1; + } +} + +// Stores a reference `ref` for case evaluation +var ref = C.method; + +ref(42, 39, 1).then(() => { + assert.sameValue(callCount, 1, 'method invoked exactly once'); +}).then($DONE, $DONE); + +assert.sameValue(ref.length, 2, 'length is properly set'); diff --git a/test/language/statements/class/async-meth-static-params-trailing-comma-single.js b/test/language/statements/class/async-meth-static-params-trailing-comma-single.js new file mode 100644 index 0000000000000000000000000000000000000000..ef5179ae286115130b554172d4b005a8a8b4c9e8 --- /dev/null +++ b/test/language/statements/class/async-meth-static-params-trailing-comma-single.js @@ -0,0 +1,62 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/params-trailing-comma-single.case +// - src/function-forms/default/cls-decl-async-meth-static.template +/*--- +description: A trailing comma should not increase the respective length, using a single parameter (static class declaration async method) +esid: sec-runtime-semantics-bindingclassdeclarationevaluation +flags: [generated, async] +info: | + ClassDeclaration : class BindingIdentifier ClassTail + + 1. Let className be StringValue of BindingIdentifier. + 2. Let value be the result of ClassDefinitionEvaluation of ClassTail with + argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + b. Else, + Let status be the result of performing PropertyDefinitionEvaluation for + m with arguments F and false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] + + + Trailing comma in the parameters list + + 14.1 Function Definitions + + FormalParameters[Yield, Await] : FormalParameterList[?Yield, ?Await] , +---*/ + + +var callCount = 0; +class C { + static async method(a,) { + assert.sameValue(a, 42); + callCount = callCount + 1; + } +} + +// Stores a reference `ref` for case evaluation +var ref = C.method; + +ref(42, 39).then(() => { + assert.sameValue(callCount, 1, 'method invoked exactly once'); +}).then($DONE, $DONE); + +assert.sameValue(ref.length, 1, 'length is properly set'); diff --git a/test/language/statements/class/async-meth-static-rest-params-trailing-comma-early-error.js b/test/language/statements/class/async-meth-static-rest-params-trailing-comma-early-error.js new file mode 100644 index 0000000000000000000000000000000000000000..4747ba74365e99b4921028920ae446a3d1f79c74 --- /dev/null +++ b/test/language/statements/class/async-meth-static-rest-params-trailing-comma-early-error.js @@ -0,0 +1,58 @@ +// This file was procedurally generated from the following sources: +// - src/function-forms/rest-params-trailing-comma-early-error.case +// - src/function-forms/syntax/cls-decl-async-meth-static.template +/*--- +description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (static class declaration async method) +esid: sec-runtime-semantics-bindingclassdeclarationevaluation +flags: [generated] +negative: + phase: early + type: SyntaxError +info: | + ClassDeclaration : class BindingIdentifier ClassTail + + 1. Let className be StringValue of BindingIdentifier. + 2. Let value be the result of ClassDefinitionEvaluation of ClassTail with + argument className. + [...] + + 14.5.14 Runtime Semantics: ClassDefinitionEvaluation + + 21. For each ClassElement m in order from methods + a. If IsStatic of m is false, then + b. Else, + Let status be the result of performing PropertyDefinitionEvaluation for + m with arguments F and false. + [...] + + Runtime Semantics: PropertyDefinitionEvaluation + + AsyncMethod : async PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } + + 1. Let propKey be the result of evaluating PropertyName. + 2. ReturnIfAbrupt(propKey). + 3. If the function code for this AsyncMethod is strict mode code, let strict be true. Otherwise + let strict be false. + 4. Let scope be the LexicalEnvironment of the running execution context. + 5. Let closure be ! AsyncFunctionCreate(Method, UniqueFormalParameters, AsyncFunctionBody, + scope, strict). + [...] + + Trailing comma in the parameters list + + 14.1 Function Definitions + + FormalParameters[Yield, Await] : + [empty] + FunctionRestParameter[?Yield, ?Await] + FormalParameterList[?Yield, ?Await] + FormalParameterList[?Yield, ?Await] , + FormalParameterList[?Yield, ?Await] , FunctionRestParameter[?Yield, ?Await] +---*/ + + +class C { + static async method(...a,) { + + } +} diff --git a/test/language/statements/class/params-gen-meth-dflt-abrupt.js b/test/language/statements/class/gen-meth-dflt-params-abrupt.js similarity index 96% rename from test/language/statements/class/params-gen-meth-dflt-abrupt.js rename to test/language/statements/class/gen-meth-dflt-params-abrupt.js index 84e1c370ca22ec2ea68805e76e21484d0e304555..394a059b0a35d9b6f7d47ec9abdec3b89972c969 100644 --- a/test/language/statements/class/params-gen-meth-dflt-abrupt.js +++ b/test/language/statements/class/gen-meth-dflt-params-abrupt.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-abrupt.case -// - src/params/error/cls-decl-gen-meth.template +// - src/function-forms/dflt-params-abrupt.case +// - src/function-forms/error/cls-decl-gen-meth.template /*--- description: Abrupt completion returned by evaluation of initializer (class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/statements/class/params-gen-meth-dflt-arg-val-not-undefined.js b/test/language/statements/class/gen-meth-dflt-params-arg-val-not-undefined.js similarity index 96% rename from test/language/statements/class/params-gen-meth-dflt-arg-val-not-undefined.js rename to test/language/statements/class/gen-meth-dflt-params-arg-val-not-undefined.js index fdd99e9b3e28353320fb9200e5b92235584cb193..3c6ea0fb00201e274aab7f39c47045ac0af2f7f8 100644 --- a/test/language/statements/class/params-gen-meth-dflt-arg-val-not-undefined.js +++ b/test/language/statements/class/gen-meth-dflt-params-arg-val-not-undefined.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-arg-val-not-undefined.case -// - src/params/default/cls-decl-gen-meth.template +// - src/function-forms/dflt-params-arg-val-not-undefined.case +// - src/function-forms/default/cls-decl-gen-meth.template /*--- description: Use of intializer when argument value is not `undefined` (class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/statements/class/params-gen-meth-dflt-arg-val-undefined.js b/test/language/statements/class/gen-meth-dflt-params-arg-val-undefined.js similarity index 96% rename from test/language/statements/class/params-gen-meth-dflt-arg-val-undefined.js rename to test/language/statements/class/gen-meth-dflt-params-arg-val-undefined.js index 31eae172c333feec079fcdaa3c9599fd41bb150c..6fb2d48a4a3c45dc7603e7569f44b4f9b41a0d08 100644 --- a/test/language/statements/class/params-gen-meth-dflt-arg-val-undefined.js +++ b/test/language/statements/class/gen-meth-dflt-params-arg-val-undefined.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-arg-val-undefined.case -// - src/params/default/cls-decl-gen-meth.template +// - src/function-forms/dflt-params-arg-val-undefined.case +// - src/function-forms/default/cls-decl-gen-meth.template /*--- description: Use of intializer when argument value is `undefined` (class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/statements/class/params-gen-meth-dflt-duplicates.js b/test/language/statements/class/gen-meth-dflt-params-duplicates.js similarity index 95% rename from test/language/statements/class/params-gen-meth-dflt-duplicates.js rename to test/language/statements/class/gen-meth-dflt-params-duplicates.js index 1126eef9439ed118cabacdfb9de550bc4b145a6d..74465d8f638a0f3f639d7b653117bec9394ef25f 100644 --- a/test/language/statements/class/params-gen-meth-dflt-duplicates.js +++ b/test/language/statements/class/gen-meth-dflt-params-duplicates.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-duplicates.case -// - src/params/syntax/cls-decl-gen-meth.template +// - src/function-forms/dflt-params-duplicates.case +// - src/function-forms/syntax/cls-decl-gen-meth.template /*--- description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/statements/class/params-gen-meth-dflt-ref-later.js b/test/language/statements/class/gen-meth-dflt-params-ref-later.js similarity index 96% rename from test/language/statements/class/params-gen-meth-dflt-ref-later.js rename to test/language/statements/class/gen-meth-dflt-params-ref-later.js index 26501ea4f19df519e7e6fb7bb2f6da4dfc217adc..394235c5b683a9790c10710827bd65d3f0bc5bef 100644 --- a/test/language/statements/class/params-gen-meth-dflt-ref-later.js +++ b/test/language/statements/class/gen-meth-dflt-params-ref-later.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-later.case -// - src/params/error/cls-decl-gen-meth.template +// - src/function-forms/dflt-params-ref-later.case +// - src/function-forms/error/cls-decl-gen-meth.template /*--- description: Referencing a parameter that occurs later in the ParameterList (class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/statements/class/params-gen-meth-dflt-ref-prior.js b/test/language/statements/class/gen-meth-dflt-params-ref-prior.js similarity index 96% rename from test/language/statements/class/params-gen-meth-dflt-ref-prior.js rename to test/language/statements/class/gen-meth-dflt-params-ref-prior.js index d7ec950ac04a3200380746cf75e892d0e43a3295..8c723c633696c62a0d70786c8643855ff1b16f7d 100644 --- a/test/language/statements/class/params-gen-meth-dflt-ref-prior.js +++ b/test/language/statements/class/gen-meth-dflt-params-ref-prior.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-prior.case -// - src/params/default/cls-decl-gen-meth.template +// - src/function-forms/dflt-params-ref-prior.case +// - src/function-forms/default/cls-decl-gen-meth.template /*--- description: Referencing a parameter that occurs earlier in the ParameterList (class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/statements/class/params-gen-meth-dflt-ref-self.js b/test/language/statements/class/gen-meth-dflt-params-ref-self.js similarity index 96% rename from test/language/statements/class/params-gen-meth-dflt-ref-self.js rename to test/language/statements/class/gen-meth-dflt-params-ref-self.js index f7422a4093ebafeb5b1852ea61e50a2719d1befe..c4d4ca6bee5f78f427b5c70773c7792732313748 100644 --- a/test/language/statements/class/params-gen-meth-dflt-ref-self.js +++ b/test/language/statements/class/gen-meth-dflt-params-ref-self.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-self.case -// - src/params/error/cls-decl-gen-meth.template +// - src/function-forms/dflt-params-ref-self.case +// - src/function-forms/error/cls-decl-gen-meth.template /*--- description: Referencing a parameter from within its own initializer (class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/statements/class/params-gen-meth-dflt-rest.js b/test/language/statements/class/gen-meth-dflt-params-rest.js similarity index 95% rename from test/language/statements/class/params-gen-meth-dflt-rest.js rename to test/language/statements/class/gen-meth-dflt-params-rest.js index 963bc1effbcefd94f2c54febd1af3d718cac5c7c..16523d9e23e9bbe5bcd2d854fb32136a94af30d3 100644 --- a/test/language/statements/class/params-gen-meth-dflt-rest.js +++ b/test/language/statements/class/gen-meth-dflt-params-rest.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-rest.case -// - src/params/syntax/cls-decl-gen-meth.template +// - src/function-forms/dflt-params-rest.case +// - src/function-forms/syntax/cls-decl-gen-meth.template /*--- description: RestParameter does not support an initializer (class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/statements/class/params-gen-meth-trailing-comma-dflt-param.js b/test/language/statements/class/gen-meth-dflt-params-trailing-comma.js similarity index 95% rename from test/language/statements/class/params-gen-meth-trailing-comma-dflt-param.js rename to test/language/statements/class/gen-meth-dflt-params-trailing-comma.js index a4aef5bc3f4eb5d0e0269e04b6867604cc1b1c3c..691b4d5b77432db5a007d946477b782a78e67fa5 100644 --- a/test/language/statements/class/params-gen-meth-trailing-comma-dflt-param.js +++ b/test/language/statements/class/gen-meth-dflt-params-trailing-comma.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-dflt-param.case -// - src/params/default/cls-decl-gen-meth.template +// - src/function-forms/dflt-params-trailing-comma.case +// - src/function-forms/default/cls-decl-gen-meth.template /*--- description: A trailing comma should not increase the respective length, using default parameters (class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/statements/class/params-gen-meth-trailing-comma-multiple-param.js b/test/language/statements/class/gen-meth-params-trailing-comma-multiple.js similarity index 95% rename from test/language/statements/class/params-gen-meth-trailing-comma-multiple-param.js rename to test/language/statements/class/gen-meth-params-trailing-comma-multiple.js index ec34e2d000429ea5b4174e3279e9b300001ee0b2..113572bdeef6d8ffde68f0b2dbee691d25799183 100644 --- a/test/language/statements/class/params-gen-meth-trailing-comma-multiple-param.js +++ b/test/language/statements/class/gen-meth-params-trailing-comma-multiple.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-multiple-param.case -// - src/params/default/cls-decl-gen-meth.template +// - src/function-forms/params-trailing-comma-multiple.case +// - src/function-forms/default/cls-decl-gen-meth.template /*--- description: A trailing comma should not increase the respective length, using multiple parameters (class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/statements/class/params-gen-meth-trailing-comma-single-param.js b/test/language/statements/class/gen-meth-params-trailing-comma-single.js similarity index 95% rename from test/language/statements/class/params-gen-meth-trailing-comma-single-param.js rename to test/language/statements/class/gen-meth-params-trailing-comma-single.js index af5c2a03e31d9c9180cef1f6d6d4fe94b9a29912..d02f0be4c8c71cef8984538b854e17e3a570644e 100644 --- a/test/language/statements/class/params-gen-meth-trailing-comma-single-param.js +++ b/test/language/statements/class/gen-meth-params-trailing-comma-single.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-single-param.case -// - src/params/default/cls-decl-gen-meth.template +// - src/function-forms/params-trailing-comma-single.case +// - src/function-forms/default/cls-decl-gen-meth.template /*--- description: A trailing comma should not increase the respective length, using a single parameter (class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/statements/class/params-gen-meth-trailing-comma-rest-early-error.js b/test/language/statements/class/gen-meth-rest-params-trailing-comma-early-error.js similarity index 95% rename from test/language/statements/class/params-gen-meth-trailing-comma-rest-early-error.js rename to test/language/statements/class/gen-meth-rest-params-trailing-comma-early-error.js index 80174c76d15efc35b308c8566e43ea3d2f63fee3..46f85a422d7c3a46a51c721f0ec3052de27ee64e 100644 --- a/test/language/statements/class/params-gen-meth-trailing-comma-rest-early-error.js +++ b/test/language/statements/class/gen-meth-rest-params-trailing-comma-early-error.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-rest-early-error.case -// - src/params/syntax/cls-decl-gen-meth.template +// - src/function-forms/rest-params-trailing-comma-early-error.case +// - src/function-forms/syntax/cls-decl-gen-meth.template /*--- description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (class expression method) esid: sec-class-definitions-runtime-semantics-evaluation diff --git a/test/language/statements/class/params-gen-meth-static-dflt-abrupt.js b/test/language/statements/class/gen-meth-static-dflt-params-abrupt.js similarity index 96% rename from test/language/statements/class/params-gen-meth-static-dflt-abrupt.js rename to test/language/statements/class/gen-meth-static-dflt-params-abrupt.js index aedbb3720b16e0d4268954ca68355c5627cbc1c0..302f06d82316a8a294b2cf0887d6e6a197f9c2af 100644 --- a/test/language/statements/class/params-gen-meth-static-dflt-abrupt.js +++ b/test/language/statements/class/gen-meth-static-dflt-params-abrupt.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-abrupt.case -// - src/params/error/cls-decl-gen-meth-static.template +// - src/function-forms/dflt-params-abrupt.case +// - src/function-forms/error/cls-decl-gen-meth-static.template /*--- description: Abrupt completion returned by evaluation of initializer (static class expression generator method) esid: sec-runtime-semantics-bindingclassdeclarationevaluation diff --git a/test/language/statements/class/params-gen-meth-static-dflt-arg-val-not-undefined.js b/test/language/statements/class/gen-meth-static-dflt-params-arg-val-not-undefined.js similarity index 96% rename from test/language/statements/class/params-gen-meth-static-dflt-arg-val-not-undefined.js rename to test/language/statements/class/gen-meth-static-dflt-params-arg-val-not-undefined.js index b9adc7a0ca81337694e7f20a754fb60e27a8d291..5cc3ddcc9470944a9d89f431e7f1c1a4950f4b4e 100644 --- a/test/language/statements/class/params-gen-meth-static-dflt-arg-val-not-undefined.js +++ b/test/language/statements/class/gen-meth-static-dflt-params-arg-val-not-undefined.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-arg-val-not-undefined.case -// - src/params/default/cls-decl-gen-meth-static.template +// - src/function-forms/dflt-params-arg-val-not-undefined.case +// - src/function-forms/default/cls-decl-gen-meth-static.template /*--- description: Use of intializer when argument value is not `undefined` (static class expression generator method) esid: sec-runtime-semantics-bindingclassdeclarationevaluation diff --git a/test/language/statements/class/params-gen-meth-static-dflt-arg-val-undefined.js b/test/language/statements/class/gen-meth-static-dflt-params-arg-val-undefined.js similarity index 95% rename from test/language/statements/class/params-gen-meth-static-dflt-arg-val-undefined.js rename to test/language/statements/class/gen-meth-static-dflt-params-arg-val-undefined.js index 1cf3649dae4d5fc2a34f3f2c78ceae4431819c3b..5254273e140967045120fe0519dee08db2b48d58 100644 --- a/test/language/statements/class/params-gen-meth-static-dflt-arg-val-undefined.js +++ b/test/language/statements/class/gen-meth-static-dflt-params-arg-val-undefined.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-arg-val-undefined.case -// - src/params/default/cls-decl-gen-meth-static.template +// - src/function-forms/dflt-params-arg-val-undefined.case +// - src/function-forms/default/cls-decl-gen-meth-static.template /*--- description: Use of intializer when argument value is `undefined` (static class expression generator method) esid: sec-runtime-semantics-bindingclassdeclarationevaluation diff --git a/test/language/statements/class/params-gen-meth-static-dflt-duplicates.js b/test/language/statements/class/gen-meth-static-dflt-params-duplicates.js similarity index 95% rename from test/language/statements/class/params-gen-meth-static-dflt-duplicates.js rename to test/language/statements/class/gen-meth-static-dflt-params-duplicates.js index d33956ccf73d9d891e03ddbc869b72147e407148..f2625674f02903a6a65b13629b72e355731545dd 100644 --- a/test/language/statements/class/params-gen-meth-static-dflt-duplicates.js +++ b/test/language/statements/class/gen-meth-static-dflt-params-duplicates.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-duplicates.case -// - src/params/syntax/cls-decl-gen-meth-static.template +// - src/function-forms/dflt-params-duplicates.case +// - src/function-forms/syntax/cls-decl-gen-meth-static.template /*--- description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (static class expression generator method) esid: sec-runtime-semantics-bindingclassdeclarationevaluation diff --git a/test/language/statements/class/params-gen-meth-static-dflt-ref-later.js b/test/language/statements/class/gen-meth-static-dflt-params-ref-later.js similarity index 96% rename from test/language/statements/class/params-gen-meth-static-dflt-ref-later.js rename to test/language/statements/class/gen-meth-static-dflt-params-ref-later.js index 6af8064d1b494ff8a71c767948b64e2f276044fb..bb681e8c4b2e1ac7d1ff603872b3650799f33729 100644 --- a/test/language/statements/class/params-gen-meth-static-dflt-ref-later.js +++ b/test/language/statements/class/gen-meth-static-dflt-params-ref-later.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-later.case -// - src/params/error/cls-decl-gen-meth-static.template +// - src/function-forms/dflt-params-ref-later.case +// - src/function-forms/error/cls-decl-gen-meth-static.template /*--- description: Referencing a parameter that occurs later in the ParameterList (static class expression generator method) esid: sec-runtime-semantics-bindingclassdeclarationevaluation diff --git a/test/language/statements/class/params-gen-meth-static-dflt-ref-prior.js b/test/language/statements/class/gen-meth-static-dflt-params-ref-prior.js similarity index 96% rename from test/language/statements/class/params-gen-meth-static-dflt-ref-prior.js rename to test/language/statements/class/gen-meth-static-dflt-params-ref-prior.js index ccd2e16fc45f6cfc8ee0ab7607a997edc5c3df69..948c3c4a7c660f3abfb83d1808b3a53f737e7ba8 100644 --- a/test/language/statements/class/params-gen-meth-static-dflt-ref-prior.js +++ b/test/language/statements/class/gen-meth-static-dflt-params-ref-prior.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-prior.case -// - src/params/default/cls-decl-gen-meth-static.template +// - src/function-forms/dflt-params-ref-prior.case +// - src/function-forms/default/cls-decl-gen-meth-static.template /*--- description: Referencing a parameter that occurs earlier in the ParameterList (static class expression generator method) esid: sec-runtime-semantics-bindingclassdeclarationevaluation diff --git a/test/language/statements/class/params-gen-meth-static-dflt-ref-self.js b/test/language/statements/class/gen-meth-static-dflt-params-ref-self.js similarity index 96% rename from test/language/statements/class/params-gen-meth-static-dflt-ref-self.js rename to test/language/statements/class/gen-meth-static-dflt-params-ref-self.js index 0fd59e5eb593908b0050348653783a35eac5a0d5..b8495b8b0d96766fbb73181b68ddcbd95094f9c4 100644 --- a/test/language/statements/class/params-gen-meth-static-dflt-ref-self.js +++ b/test/language/statements/class/gen-meth-static-dflt-params-ref-self.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-self.case -// - src/params/error/cls-decl-gen-meth-static.template +// - src/function-forms/dflt-params-ref-self.case +// - src/function-forms/error/cls-decl-gen-meth-static.template /*--- description: Referencing a parameter from within its own initializer (static class expression generator method) esid: sec-runtime-semantics-bindingclassdeclarationevaluation diff --git a/test/language/statements/class/params-gen-meth-static-dflt-rest.js b/test/language/statements/class/gen-meth-static-dflt-params-rest.js similarity index 95% rename from test/language/statements/class/params-gen-meth-static-dflt-rest.js rename to test/language/statements/class/gen-meth-static-dflt-params-rest.js index 101e4aef98f1edb8287b6e675ab962cbda612621..b8a91bc8c202d1b8f056a5ed76255724ce529117 100644 --- a/test/language/statements/class/params-gen-meth-static-dflt-rest.js +++ b/test/language/statements/class/gen-meth-static-dflt-params-rest.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-rest.case -// - src/params/syntax/cls-decl-gen-meth-static.template +// - src/function-forms/dflt-params-rest.case +// - src/function-forms/syntax/cls-decl-gen-meth-static.template /*--- description: RestParameter does not support an initializer (static class expression generator method) esid: sec-runtime-semantics-bindingclassdeclarationevaluation diff --git a/test/language/statements/class/params-gen-meth-static-trailing-comma-dflt-param.js b/test/language/statements/class/gen-meth-static-dflt-params-trailing-comma.js similarity index 95% rename from test/language/statements/class/params-gen-meth-static-trailing-comma-dflt-param.js rename to test/language/statements/class/gen-meth-static-dflt-params-trailing-comma.js index 9dae0a9d171bbe6a54560f34b7f43957f0439fc0..1212184a9b63c3bc4bd8f3b0661e3dba7e352649 100644 --- a/test/language/statements/class/params-gen-meth-static-trailing-comma-dflt-param.js +++ b/test/language/statements/class/gen-meth-static-dflt-params-trailing-comma.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-dflt-param.case -// - src/params/default/cls-decl-gen-meth-static.template +// - src/function-forms/dflt-params-trailing-comma.case +// - src/function-forms/default/cls-decl-gen-meth-static.template /*--- description: A trailing comma should not increase the respective length, using default parameters (static class expression generator method) esid: sec-runtime-semantics-bindingclassdeclarationevaluation diff --git a/test/language/statements/class/params-gen-meth-static-trailing-comma-multiple-param.js b/test/language/statements/class/gen-meth-static-params-trailing-comma-multiple.js similarity index 95% rename from test/language/statements/class/params-gen-meth-static-trailing-comma-multiple-param.js rename to test/language/statements/class/gen-meth-static-params-trailing-comma-multiple.js index 9abf69079270b124173d455e809638ad2e03a33c..8fe94f1ed9a23b64503859a329272b86d9b660f9 100644 --- a/test/language/statements/class/params-gen-meth-static-trailing-comma-multiple-param.js +++ b/test/language/statements/class/gen-meth-static-params-trailing-comma-multiple.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-multiple-param.case -// - src/params/default/cls-decl-gen-meth-static.template +// - src/function-forms/params-trailing-comma-multiple.case +// - src/function-forms/default/cls-decl-gen-meth-static.template /*--- description: A trailing comma should not increase the respective length, using multiple parameters (static class expression generator method) esid: sec-runtime-semantics-bindingclassdeclarationevaluation diff --git a/test/language/statements/class/params-gen-meth-static-trailing-comma-single-param.js b/test/language/statements/class/gen-meth-static-params-trailing-comma-single.js similarity index 95% rename from test/language/statements/class/params-gen-meth-static-trailing-comma-single-param.js rename to test/language/statements/class/gen-meth-static-params-trailing-comma-single.js index 8d962fd3e8b4eec171e70073cc996d59ba3fa6c6..44986590a456243162433fcbdda559914aa8c71a 100644 --- a/test/language/statements/class/params-gen-meth-static-trailing-comma-single-param.js +++ b/test/language/statements/class/gen-meth-static-params-trailing-comma-single.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-single-param.case -// - src/params/default/cls-decl-gen-meth-static.template +// - src/function-forms/params-trailing-comma-single.case +// - src/function-forms/default/cls-decl-gen-meth-static.template /*--- description: A trailing comma should not increase the respective length, using a single parameter (static class expression generator method) esid: sec-runtime-semantics-bindingclassdeclarationevaluation diff --git a/test/language/statements/class/params-gen-meth-static-trailing-comma-rest-early-error.js b/test/language/statements/class/gen-meth-static-rest-params-trailing-comma-early-error.js similarity index 94% rename from test/language/statements/class/params-gen-meth-static-trailing-comma-rest-early-error.js rename to test/language/statements/class/gen-meth-static-rest-params-trailing-comma-early-error.js index 107c980582d9d5af21967c955dd0568c9399e261..83f2d043fb7a0df9ce71ce258a1a320604c0a0b1 100644 --- a/test/language/statements/class/params-gen-meth-static-trailing-comma-rest-early-error.js +++ b/test/language/statements/class/gen-meth-static-rest-params-trailing-comma-early-error.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-rest-early-error.case -// - src/params/syntax/cls-decl-gen-meth-static.template +// - src/function-forms/rest-params-trailing-comma-early-error.case +// - src/function-forms/syntax/cls-decl-gen-meth-static.template /*--- description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (static class expression generator method) esid: sec-runtime-semantics-bindingclassdeclarationevaluation diff --git a/test/language/statements/class/params-meth-dflt-abrupt.js b/test/language/statements/class/meth-dflt-params-abrupt.js similarity index 96% rename from test/language/statements/class/params-meth-dflt-abrupt.js rename to test/language/statements/class/meth-dflt-params-abrupt.js index b7838d3fc738a1323c7afbf5a2a67d3723b36130..875a18bd333a6cd9098034344f2181aeb58096f8 100644 --- a/test/language/statements/class/params-meth-dflt-abrupt.js +++ b/test/language/statements/class/meth-dflt-params-abrupt.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-abrupt.case -// - src/params/error/cls-decl-meth.template +// - src/function-forms/dflt-params-abrupt.case +// - src/function-forms/error/cls-decl-meth.template /*--- description: Abrupt completion returned by evaluation of initializer (class expression method) esid: sec-runtime-semantics-bindingclassdeclarationevaluation diff --git a/test/language/statements/class/params-meth-dflt-arg-val-not-undefined.js b/test/language/statements/class/meth-dflt-params-arg-val-not-undefined.js similarity index 96% rename from test/language/statements/class/params-meth-dflt-arg-val-not-undefined.js rename to test/language/statements/class/meth-dflt-params-arg-val-not-undefined.js index 2637fbdb847bfe88c39809a18933324f883d8597..82358186099415e6f28149ec387bceb745fe4eb5 100644 --- a/test/language/statements/class/params-meth-dflt-arg-val-not-undefined.js +++ b/test/language/statements/class/meth-dflt-params-arg-val-not-undefined.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-arg-val-not-undefined.case -// - src/params/default/cls-decl-meth.template +// - src/function-forms/dflt-params-arg-val-not-undefined.case +// - src/function-forms/default/cls-decl-meth.template /*--- description: Use of intializer when argument value is not `undefined` (class expression method) esid: sec-runtime-semantics-bindingclassdeclarationevaluation diff --git a/test/language/statements/class/params-meth-dflt-arg-val-undefined.js b/test/language/statements/class/meth-dflt-params-arg-val-undefined.js similarity index 96% rename from test/language/statements/class/params-meth-dflt-arg-val-undefined.js rename to test/language/statements/class/meth-dflt-params-arg-val-undefined.js index 36cec475fb0dd9e18377c694a1977000d23a3af4..4167abaf383d85c45081d9104d551bfda9a7cf17 100644 --- a/test/language/statements/class/params-meth-dflt-arg-val-undefined.js +++ b/test/language/statements/class/meth-dflt-params-arg-val-undefined.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-arg-val-undefined.case -// - src/params/default/cls-decl-meth.template +// - src/function-forms/dflt-params-arg-val-undefined.case +// - src/function-forms/default/cls-decl-meth.template /*--- description: Use of intializer when argument value is `undefined` (class expression method) esid: sec-runtime-semantics-bindingclassdeclarationevaluation diff --git a/test/language/statements/class/params-meth-dflt-duplicates.js b/test/language/statements/class/meth-dflt-params-duplicates.js similarity index 95% rename from test/language/statements/class/params-meth-dflt-duplicates.js rename to test/language/statements/class/meth-dflt-params-duplicates.js index ad35e955fc83ed3a259e507d4751352e6d473566..f0fa074939483023a8bc287df129c503cccab0ca 100644 --- a/test/language/statements/class/params-meth-dflt-duplicates.js +++ b/test/language/statements/class/meth-dflt-params-duplicates.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-duplicates.case -// - src/params/syntax/cls-decl-meth.template +// - src/function-forms/dflt-params-duplicates.case +// - src/function-forms/syntax/cls-decl-meth.template /*--- description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (class expression method) esid: sec-runtime-semantics-bindingclassdeclarationevaluation diff --git a/test/language/statements/class/params-meth-dflt-ref-later.js b/test/language/statements/class/meth-dflt-params-ref-later.js similarity index 96% rename from test/language/statements/class/params-meth-dflt-ref-later.js rename to test/language/statements/class/meth-dflt-params-ref-later.js index fe776b9753e52eb5f19d74479cda49a8960a533d..ddd5b44df2ff8fc6607ed231e60ee2c0325cf241 100644 --- a/test/language/statements/class/params-meth-dflt-ref-later.js +++ b/test/language/statements/class/meth-dflt-params-ref-later.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-later.case -// - src/params/error/cls-decl-meth.template +// - src/function-forms/dflt-params-ref-later.case +// - src/function-forms/error/cls-decl-meth.template /*--- description: Referencing a parameter that occurs later in the ParameterList (class expression method) esid: sec-runtime-semantics-bindingclassdeclarationevaluation diff --git a/test/language/statements/class/params-meth-dflt-ref-prior.js b/test/language/statements/class/meth-dflt-params-ref-prior.js similarity index 96% rename from test/language/statements/class/params-meth-dflt-ref-prior.js rename to test/language/statements/class/meth-dflt-params-ref-prior.js index eb4ae2890a9368741efbc5fff6bd4179d5cd3303..a5c38482decb2f4c6f8d527fcbe36be2767877fd 100644 --- a/test/language/statements/class/params-meth-dflt-ref-prior.js +++ b/test/language/statements/class/meth-dflt-params-ref-prior.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-prior.case -// - src/params/default/cls-decl-meth.template +// - src/function-forms/dflt-params-ref-prior.case +// - src/function-forms/default/cls-decl-meth.template /*--- description: Referencing a parameter that occurs earlier in the ParameterList (class expression method) esid: sec-runtime-semantics-bindingclassdeclarationevaluation diff --git a/test/language/statements/class/params-meth-dflt-ref-self.js b/test/language/statements/class/meth-dflt-params-ref-self.js similarity index 96% rename from test/language/statements/class/params-meth-dflt-ref-self.js rename to test/language/statements/class/meth-dflt-params-ref-self.js index 95d1ef15941665dbfca5b94bff95d00f9b4698f6..232b5847bb8098e4bc84f3367975420d0a295c17 100644 --- a/test/language/statements/class/params-meth-dflt-ref-self.js +++ b/test/language/statements/class/meth-dflt-params-ref-self.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-self.case -// - src/params/error/cls-decl-meth.template +// - src/function-forms/dflt-params-ref-self.case +// - src/function-forms/error/cls-decl-meth.template /*--- description: Referencing a parameter from within its own initializer (class expression method) esid: sec-runtime-semantics-bindingclassdeclarationevaluation diff --git a/test/language/statements/class/params-meth-dflt-rest.js b/test/language/statements/class/meth-dflt-params-rest.js similarity index 95% rename from test/language/statements/class/params-meth-dflt-rest.js rename to test/language/statements/class/meth-dflt-params-rest.js index 6265a1eddc65f6ad3af1c463cf69c4bf4bc66612..80e3f050a612d863d26d1e76089125af95073fe2 100644 --- a/test/language/statements/class/params-meth-dflt-rest.js +++ b/test/language/statements/class/meth-dflt-params-rest.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-rest.case -// - src/params/syntax/cls-decl-meth.template +// - src/function-forms/dflt-params-rest.case +// - src/function-forms/syntax/cls-decl-meth.template /*--- description: RestParameter does not support an initializer (class expression method) esid: sec-runtime-semantics-bindingclassdeclarationevaluation diff --git a/test/language/statements/class/params-meth-trailing-comma-dflt-param.js b/test/language/statements/class/meth-dflt-params-trailing-comma.js similarity index 95% rename from test/language/statements/class/params-meth-trailing-comma-dflt-param.js rename to test/language/statements/class/meth-dflt-params-trailing-comma.js index 303794abd05938742b553e5977fa94ea0b8dc935..b86193890ea03aa47aa612c2fecf08cd387759f4 100644 --- a/test/language/statements/class/params-meth-trailing-comma-dflt-param.js +++ b/test/language/statements/class/meth-dflt-params-trailing-comma.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-dflt-param.case -// - src/params/default/cls-decl-meth.template +// - src/function-forms/dflt-params-trailing-comma.case +// - src/function-forms/default/cls-decl-meth.template /*--- description: A trailing comma should not increase the respective length, using default parameters (class expression method) esid: sec-runtime-semantics-bindingclassdeclarationevaluation diff --git a/test/language/statements/class/params-meth-trailing-comma-multiple-param.js b/test/language/statements/class/meth-params-trailing-comma-multiple.js similarity index 95% rename from test/language/statements/class/params-meth-trailing-comma-multiple-param.js rename to test/language/statements/class/meth-params-trailing-comma-multiple.js index c266a79aceca303015263c780b1462df78ba34cd..c081597b808549d15fe71fcbbbe9676282719458 100644 --- a/test/language/statements/class/params-meth-trailing-comma-multiple-param.js +++ b/test/language/statements/class/meth-params-trailing-comma-multiple.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-multiple-param.case -// - src/params/default/cls-decl-meth.template +// - src/function-forms/params-trailing-comma-multiple.case +// - src/function-forms/default/cls-decl-meth.template /*--- description: A trailing comma should not increase the respective length, using multiple parameters (class expression method) esid: sec-runtime-semantics-bindingclassdeclarationevaluation diff --git a/test/language/statements/class/params-meth-trailing-comma-single-param.js b/test/language/statements/class/meth-params-trailing-comma-single.js similarity index 95% rename from test/language/statements/class/params-meth-trailing-comma-single-param.js rename to test/language/statements/class/meth-params-trailing-comma-single.js index c7e65d8eae92865285ae6a8928b64c633048e4b3..41cf7998326c4d809d3483f837fb5d66c8ca0fdc 100644 --- a/test/language/statements/class/params-meth-trailing-comma-single-param.js +++ b/test/language/statements/class/meth-params-trailing-comma-single.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-single-param.case -// - src/params/default/cls-decl-meth.template +// - src/function-forms/params-trailing-comma-single.case +// - src/function-forms/default/cls-decl-meth.template /*--- description: A trailing comma should not increase the respective length, using a single parameter (class expression method) esid: sec-runtime-semantics-bindingclassdeclarationevaluation diff --git a/test/language/statements/class/params-meth-trailing-comma-rest-early-error.js b/test/language/statements/class/meth-rest-params-trailing-comma-early-error.js similarity index 95% rename from test/language/statements/class/params-meth-trailing-comma-rest-early-error.js rename to test/language/statements/class/meth-rest-params-trailing-comma-early-error.js index b0738a8c77df581f30bce06aa12cad3d580b6b32..edbc81bd14ed7f7fc316388a94816252d3a6ff01 100644 --- a/test/language/statements/class/params-meth-trailing-comma-rest-early-error.js +++ b/test/language/statements/class/meth-rest-params-trailing-comma-early-error.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-rest-early-error.case -// - src/params/syntax/cls-decl-meth.template +// - src/function-forms/rest-params-trailing-comma-early-error.case +// - src/function-forms/syntax/cls-decl-meth.template /*--- description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (class expression method) esid: sec-runtime-semantics-bindingclassdeclarationevaluation diff --git a/test/language/statements/class/params-meth-static-dflt-abrupt.js b/test/language/statements/class/meth-static-dflt-params-abrupt.js similarity index 96% rename from test/language/statements/class/params-meth-static-dflt-abrupt.js rename to test/language/statements/class/meth-static-dflt-params-abrupt.js index 881f682864ea356d183e2432cc43a1a79da49ec5..fe67013971883bbe35cc3bb3fefd604737f00e97 100644 --- a/test/language/statements/class/params-meth-static-dflt-abrupt.js +++ b/test/language/statements/class/meth-static-dflt-params-abrupt.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-abrupt.case -// - src/params/error/cls-decl-meth-static.template +// - src/function-forms/dflt-params-abrupt.case +// - src/function-forms/error/cls-decl-meth-static.template /*--- description: Abrupt completion returned by evaluation of initializer (static class expression method) esid: sec-runtime-semantics-bindingclassdeclarationevaluation diff --git a/test/language/statements/class/params-meth-static-dflt-arg-val-not-undefined.js b/test/language/statements/class/meth-static-dflt-params-arg-val-not-undefined.js similarity index 96% rename from test/language/statements/class/params-meth-static-dflt-arg-val-not-undefined.js rename to test/language/statements/class/meth-static-dflt-params-arg-val-not-undefined.js index 14ce38b7450a91ad62f415c003ac50fbfd16e024..f55b36e52dcdf699e0e95dd1d05b271b2f300ee1 100644 --- a/test/language/statements/class/params-meth-static-dflt-arg-val-not-undefined.js +++ b/test/language/statements/class/meth-static-dflt-params-arg-val-not-undefined.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-arg-val-not-undefined.case -// - src/params/default/cls-decl-meth-static.template +// - src/function-forms/dflt-params-arg-val-not-undefined.case +// - src/function-forms/default/cls-decl-meth-static.template /*--- description: Use of intializer when argument value is not `undefined` (static class expression method) esid: sec-runtime-semantics-bindingclassdeclarationevaluation diff --git a/test/language/statements/class/params-meth-static-dflt-arg-val-undefined.js b/test/language/statements/class/meth-static-dflt-params-arg-val-undefined.js similarity index 95% rename from test/language/statements/class/params-meth-static-dflt-arg-val-undefined.js rename to test/language/statements/class/meth-static-dflt-params-arg-val-undefined.js index 61582c661a99d9f247b7450e2616594dd87137e2..2ab1300e9c15d126b0a1864df0e9b978ec3b035a 100644 --- a/test/language/statements/class/params-meth-static-dflt-arg-val-undefined.js +++ b/test/language/statements/class/meth-static-dflt-params-arg-val-undefined.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-arg-val-undefined.case -// - src/params/default/cls-decl-meth-static.template +// - src/function-forms/dflt-params-arg-val-undefined.case +// - src/function-forms/default/cls-decl-meth-static.template /*--- description: Use of intializer when argument value is `undefined` (static class expression method) esid: sec-runtime-semantics-bindingclassdeclarationevaluation diff --git a/test/language/statements/class/params-meth-static-dflt-duplicates.js b/test/language/statements/class/meth-static-dflt-params-duplicates.js similarity index 95% rename from test/language/statements/class/params-meth-static-dflt-duplicates.js rename to test/language/statements/class/meth-static-dflt-params-duplicates.js index 832f780a2a00339aa94e0587be4696f6a188152d..5e86018ecc77ad131e28bf0ef5f8c021633c099f 100644 --- a/test/language/statements/class/params-meth-static-dflt-duplicates.js +++ b/test/language/statements/class/meth-static-dflt-params-duplicates.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-duplicates.case -// - src/params/syntax/cls-decl-meth-static.template +// - src/function-forms/dflt-params-duplicates.case +// - src/function-forms/syntax/cls-decl-meth-static.template /*--- description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (static class expression method) esid: sec-runtime-semantics-bindingclassdeclarationevaluation diff --git a/test/language/statements/class/params-meth-static-dflt-ref-later.js b/test/language/statements/class/meth-static-dflt-params-ref-later.js similarity index 95% rename from test/language/statements/class/params-meth-static-dflt-ref-later.js rename to test/language/statements/class/meth-static-dflt-params-ref-later.js index 1e4c068cb82438fbb6ff06e3dd3c9a4b1e1d6ce8..d16b13a1e07411677f09e3458314113df81d7bd2 100644 --- a/test/language/statements/class/params-meth-static-dflt-ref-later.js +++ b/test/language/statements/class/meth-static-dflt-params-ref-later.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-later.case -// - src/params/error/cls-decl-meth-static.template +// - src/function-forms/dflt-params-ref-later.case +// - src/function-forms/error/cls-decl-meth-static.template /*--- description: Referencing a parameter that occurs later in the ParameterList (static class expression method) esid: sec-runtime-semantics-bindingclassdeclarationevaluation diff --git a/test/language/statements/class/params-meth-static-dflt-ref-prior.js b/test/language/statements/class/meth-static-dflt-params-ref-prior.js similarity index 96% rename from test/language/statements/class/params-meth-static-dflt-ref-prior.js rename to test/language/statements/class/meth-static-dflt-params-ref-prior.js index b0de2c3f9bc20f1c00acae2e4809757ad361df02..9bcc6103fdc407360e5135c7722fc13654d0c61d 100644 --- a/test/language/statements/class/params-meth-static-dflt-ref-prior.js +++ b/test/language/statements/class/meth-static-dflt-params-ref-prior.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-prior.case -// - src/params/default/cls-decl-meth-static.template +// - src/function-forms/dflt-params-ref-prior.case +// - src/function-forms/default/cls-decl-meth-static.template /*--- description: Referencing a parameter that occurs earlier in the ParameterList (static class expression method) esid: sec-runtime-semantics-bindingclassdeclarationevaluation diff --git a/test/language/statements/class/params-meth-static-dflt-ref-self.js b/test/language/statements/class/meth-static-dflt-params-ref-self.js similarity index 95% rename from test/language/statements/class/params-meth-static-dflt-ref-self.js rename to test/language/statements/class/meth-static-dflt-params-ref-self.js index ac908d2b76152ec133b0d9356286a6f97f93b74e..a609f7242a516a67488401531a2f16805c446a1b 100644 --- a/test/language/statements/class/params-meth-static-dflt-ref-self.js +++ b/test/language/statements/class/meth-static-dflt-params-ref-self.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-self.case -// - src/params/error/cls-decl-meth-static.template +// - src/function-forms/dflt-params-ref-self.case +// - src/function-forms/error/cls-decl-meth-static.template /*--- description: Referencing a parameter from within its own initializer (static class expression method) esid: sec-runtime-semantics-bindingclassdeclarationevaluation diff --git a/test/language/statements/class/params-meth-static-dflt-rest.js b/test/language/statements/class/meth-static-dflt-params-rest.js similarity index 95% rename from test/language/statements/class/params-meth-static-dflt-rest.js rename to test/language/statements/class/meth-static-dflt-params-rest.js index 54e3936cda96d7dfe0f36917b2f071cb360c822c..f8128ca87080fb7a8beb69125259baf2aa3fc8e4 100644 --- a/test/language/statements/class/params-meth-static-dflt-rest.js +++ b/test/language/statements/class/meth-static-dflt-params-rest.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-rest.case -// - src/params/syntax/cls-decl-meth-static.template +// - src/function-forms/dflt-params-rest.case +// - src/function-forms/syntax/cls-decl-meth-static.template /*--- description: RestParameter does not support an initializer (static class expression method) esid: sec-runtime-semantics-bindingclassdeclarationevaluation diff --git a/test/language/statements/class/params-meth-static-trailing-comma-dflt-param.js b/test/language/statements/class/meth-static-dflt-params-trailing-comma.js similarity index 95% rename from test/language/statements/class/params-meth-static-trailing-comma-dflt-param.js rename to test/language/statements/class/meth-static-dflt-params-trailing-comma.js index 6740652d7c2c1e60e595200c07cff3d2cef9347b..38309b406f702d7b3a489c8083c81243e27301c9 100644 --- a/test/language/statements/class/params-meth-static-trailing-comma-dflt-param.js +++ b/test/language/statements/class/meth-static-dflt-params-trailing-comma.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-dflt-param.case -// - src/params/default/cls-decl-meth-static.template +// - src/function-forms/dflt-params-trailing-comma.case +// - src/function-forms/default/cls-decl-meth-static.template /*--- description: A trailing comma should not increase the respective length, using default parameters (static class expression method) esid: sec-runtime-semantics-bindingclassdeclarationevaluation diff --git a/test/language/statements/class/params-meth-static-trailing-comma-multiple-param.js b/test/language/statements/class/meth-static-params-trailing-comma-multiple.js similarity index 95% rename from test/language/statements/class/params-meth-static-trailing-comma-multiple-param.js rename to test/language/statements/class/meth-static-params-trailing-comma-multiple.js index c35ab4c8ec4832db3163784c2a58cf6ff88eaaab..c6854071655fec44e4d173680a2262bc59abcffe 100644 --- a/test/language/statements/class/params-meth-static-trailing-comma-multiple-param.js +++ b/test/language/statements/class/meth-static-params-trailing-comma-multiple.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-multiple-param.case -// - src/params/default/cls-decl-meth-static.template +// - src/function-forms/params-trailing-comma-multiple.case +// - src/function-forms/default/cls-decl-meth-static.template /*--- description: A trailing comma should not increase the respective length, using multiple parameters (static class expression method) esid: sec-runtime-semantics-bindingclassdeclarationevaluation diff --git a/test/language/statements/class/params-meth-static-trailing-comma-single-param.js b/test/language/statements/class/meth-static-params-trailing-comma-single.js similarity index 95% rename from test/language/statements/class/params-meth-static-trailing-comma-single-param.js rename to test/language/statements/class/meth-static-params-trailing-comma-single.js index 0fecdec2b6196eb31c32955ab73a89fe7ad109fe..ebc60bb79f49799828a6739f867ab3a1190b9555 100644 --- a/test/language/statements/class/params-meth-static-trailing-comma-single-param.js +++ b/test/language/statements/class/meth-static-params-trailing-comma-single.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-single-param.case -// - src/params/default/cls-decl-meth-static.template +// - src/function-forms/params-trailing-comma-single.case +// - src/function-forms/default/cls-decl-meth-static.template /*--- description: A trailing comma should not increase the respective length, using a single parameter (static class expression method) esid: sec-runtime-semantics-bindingclassdeclarationevaluation diff --git a/test/language/statements/class/params-meth-static-trailing-comma-rest-early-error.js b/test/language/statements/class/meth-static-rest-params-trailing-comma-early-error.js similarity index 94% rename from test/language/statements/class/params-meth-static-trailing-comma-rest-early-error.js rename to test/language/statements/class/meth-static-rest-params-trailing-comma-early-error.js index a81f165a50dc89e478d1caabf723aeea74e578ee..30d84ba960817994059c9f8ad11f03ddf4b31ec5 100644 --- a/test/language/statements/class/params-meth-static-trailing-comma-rest-early-error.js +++ b/test/language/statements/class/meth-static-rest-params-trailing-comma-early-error.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-rest-early-error.case -// - src/params/syntax/cls-decl-meth-static.template +// - src/function-forms/rest-params-trailing-comma-early-error.case +// - src/function-forms/syntax/cls-decl-meth-static.template /*--- description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (static class expression method) esid: sec-runtime-semantics-bindingclassdeclarationevaluation diff --git a/test/language/statements/function/params-dflt-abrupt.js b/test/language/statements/function/dflt-params-abrupt.js similarity index 95% rename from test/language/statements/function/params-dflt-abrupt.js rename to test/language/statements/function/dflt-params-abrupt.js index 857046ef5c122c02c9489bff63ac1cdd0ccb9f19..d269400192152ada6b57f8db17fce85a419afb29 100644 --- a/test/language/statements/function/params-dflt-abrupt.js +++ b/test/language/statements/function/dflt-params-abrupt.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-abrupt.case -// - src/params/error/func-decl.template +// - src/function-forms/dflt-params-abrupt.case +// - src/function-forms/error/func-decl.template /*--- description: Abrupt completion returned by evaluation of initializer (function declaration) esid: sec-function-definitions-runtime-semantics-instantiatefunctionobject diff --git a/test/language/statements/function/params-dflt-arg-val-not-undefined.js b/test/language/statements/function/dflt-params-arg-val-not-undefined.js similarity index 95% rename from test/language/statements/function/params-dflt-arg-val-not-undefined.js rename to test/language/statements/function/dflt-params-arg-val-not-undefined.js index aa0f1d24d5dcadbc1395faf05d9014617aa72db2..c53ad2e2dc2c67b50c55f8a69e06f4274af5c6a8 100644 --- a/test/language/statements/function/params-dflt-arg-val-not-undefined.js +++ b/test/language/statements/function/dflt-params-arg-val-not-undefined.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-arg-val-not-undefined.case -// - src/params/default/func-decl.template +// - src/function-forms/dflt-params-arg-val-not-undefined.case +// - src/function-forms/default/func-decl.template /*--- description: Use of intializer when argument value is not `undefined` (function declaration) esid: sec-function-definitions-runtime-semantics-instantiatefunctionobject diff --git a/test/language/statements/function/params-dflt-arg-val-undefined.js b/test/language/statements/function/dflt-params-arg-val-undefined.js similarity index 94% rename from test/language/statements/function/params-dflt-arg-val-undefined.js rename to test/language/statements/function/dflt-params-arg-val-undefined.js index 7928036d187b51893ddf03d56b896cd2ae8e8079..6665612f1e0d4a439e883f948e138bafe1e0501f 100644 --- a/test/language/statements/function/params-dflt-arg-val-undefined.js +++ b/test/language/statements/function/dflt-params-arg-val-undefined.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-arg-val-undefined.case -// - src/params/default/func-decl.template +// - src/function-forms/dflt-params-arg-val-undefined.case +// - src/function-forms/default/func-decl.template /*--- description: Use of intializer when argument value is `undefined` (function declaration) esid: sec-function-definitions-runtime-semantics-instantiatefunctionobject diff --git a/test/language/statements/function/params-dflt-duplicates.js b/test/language/statements/function/dflt-params-duplicates.js similarity index 94% rename from test/language/statements/function/params-dflt-duplicates.js rename to test/language/statements/function/dflt-params-duplicates.js index 166ab91f115d009ce7cde7c29758cd0f983a3911..e3301291aa64a69469abeeb080c41aa059f50ad8 100644 --- a/test/language/statements/function/params-dflt-duplicates.js +++ b/test/language/statements/function/dflt-params-duplicates.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-duplicates.case -// - src/params/syntax/func-decl.template +// - src/function-forms/dflt-params-duplicates.case +// - src/function-forms/syntax/func-decl.template /*--- description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (function declaration) esid: sec-function-definitions-runtime-semantics-instantiatefunctionobject diff --git a/test/language/statements/function/params-dflt-ref-later.js b/test/language/statements/function/dflt-params-ref-later.js similarity index 94% rename from test/language/statements/function/params-dflt-ref-later.js rename to test/language/statements/function/dflt-params-ref-later.js index c02b4ccea549d4581c123ac8c5e71a6d62734fb0..f2a0ef2d034de02f52ca8f13b5f6a7c2c371d046 100644 --- a/test/language/statements/function/params-dflt-ref-later.js +++ b/test/language/statements/function/dflt-params-ref-later.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-later.case -// - src/params/error/func-decl.template +// - src/function-forms/dflt-params-ref-later.case +// - src/function-forms/error/func-decl.template /*--- description: Referencing a parameter that occurs later in the ParameterList (function declaration) esid: sec-function-definitions-runtime-semantics-instantiatefunctionobject diff --git a/test/language/statements/function/params-dflt-ref-prior.js b/test/language/statements/function/dflt-params-ref-prior.js similarity index 95% rename from test/language/statements/function/params-dflt-ref-prior.js rename to test/language/statements/function/dflt-params-ref-prior.js index d77b7d8af89236393c6732ea92ab0c62803b2993..504dade30857a6409ed91c5cfd7d8db2715961ab 100644 --- a/test/language/statements/function/params-dflt-ref-prior.js +++ b/test/language/statements/function/dflt-params-ref-prior.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-prior.case -// - src/params/default/func-decl.template +// - src/function-forms/dflt-params-ref-prior.case +// - src/function-forms/default/func-decl.template /*--- description: Referencing a parameter that occurs earlier in the ParameterList (function declaration) esid: sec-function-definitions-runtime-semantics-instantiatefunctionobject diff --git a/test/language/statements/function/params-dflt-ref-self.js b/test/language/statements/function/dflt-params-ref-self.js similarity index 94% rename from test/language/statements/function/params-dflt-ref-self.js rename to test/language/statements/function/dflt-params-ref-self.js index fa4647c01ccabdf5b848b32eee43ea9abbb6e214..65a7a124f57cec20a4dc69aa581b1e74e5882ba8 100644 --- a/test/language/statements/function/params-dflt-ref-self.js +++ b/test/language/statements/function/dflt-params-ref-self.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-self.case -// - src/params/error/func-decl.template +// - src/function-forms/dflt-params-ref-self.case +// - src/function-forms/error/func-decl.template /*--- description: Referencing a parameter from within its own initializer (function declaration) esid: sec-function-definitions-runtime-semantics-instantiatefunctionobject diff --git a/test/language/statements/function/params-dflt-rest.js b/test/language/statements/function/dflt-params-rest.js similarity index 94% rename from test/language/statements/function/params-dflt-rest.js rename to test/language/statements/function/dflt-params-rest.js index c5f0e3f031115b4d29c24dd58e43ddb0676c1548..577185b131716b8ffbd4f4e5a8d7e13e5e6666f5 100644 --- a/test/language/statements/function/params-dflt-rest.js +++ b/test/language/statements/function/dflt-params-rest.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-rest.case -// - src/params/syntax/func-decl.template +// - src/function-forms/dflt-params-rest.case +// - src/function-forms/syntax/func-decl.template /*--- description: RestParameter does not support an initializer (function declaration) esid: sec-function-definitions-runtime-semantics-instantiatefunctionobject diff --git a/test/language/statements/function/params-trailing-comma-dflt-param.js b/test/language/statements/function/dflt-params-trailing-comma.js similarity index 94% rename from test/language/statements/function/params-trailing-comma-dflt-param.js rename to test/language/statements/function/dflt-params-trailing-comma.js index 798cc36d69404be49c33f49ea9414eec7f5bc85e..61ac65498fbae151c51744b5c2f61eab0ca8f38c 100644 --- a/test/language/statements/function/params-trailing-comma-dflt-param.js +++ b/test/language/statements/function/dflt-params-trailing-comma.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-dflt-param.case -// - src/params/default/func-decl.template +// - src/function-forms/dflt-params-trailing-comma.case +// - src/function-forms/default/func-decl.template /*--- description: A trailing comma should not increase the respective length, using default parameters (function declaration) esid: sec-function-definitions-runtime-semantics-instantiatefunctionobject diff --git a/test/language/statements/function/params-trailing-comma-multiple-param.js b/test/language/statements/function/params-trailing-comma-multiple.js similarity index 93% rename from test/language/statements/function/params-trailing-comma-multiple-param.js rename to test/language/statements/function/params-trailing-comma-multiple.js index 954e8addb0e7d6010eff6f5da0e2682b4b6766bf..5dfed438e95a6f3f9fe1282b0fa4b0c0e5a61d85 100644 --- a/test/language/statements/function/params-trailing-comma-multiple-param.js +++ b/test/language/statements/function/params-trailing-comma-multiple.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-multiple-param.case -// - src/params/default/func-decl.template +// - src/function-forms/params-trailing-comma-multiple.case +// - src/function-forms/default/func-decl.template /*--- description: A trailing comma should not increase the respective length, using multiple parameters (function declaration) esid: sec-function-definitions-runtime-semantics-instantiatefunctionobject diff --git a/test/language/statements/function/params-trailing-comma-single-param.js b/test/language/statements/function/params-trailing-comma-single.js similarity index 93% rename from test/language/statements/function/params-trailing-comma-single-param.js rename to test/language/statements/function/params-trailing-comma-single.js index 0442dc94f542c9719afa555c9b99be1e2c8ffca3..0cdaa47e1c454c2aeba7fc8b5b981c3c178489dd 100644 --- a/test/language/statements/function/params-trailing-comma-single-param.js +++ b/test/language/statements/function/params-trailing-comma-single.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-single-param.case -// - src/params/default/func-decl.template +// - src/function-forms/params-trailing-comma-single.case +// - src/function-forms/default/func-decl.template /*--- description: A trailing comma should not increase the respective length, using a single parameter (function declaration) esid: sec-function-definitions-runtime-semantics-instantiatefunctionobject diff --git a/test/language/statements/function/params-trailing-comma-rest-early-error.js b/test/language/statements/function/rest-params-trailing-comma-early-error.js similarity index 93% rename from test/language/statements/function/params-trailing-comma-rest-early-error.js rename to test/language/statements/function/rest-params-trailing-comma-early-error.js index 97fdf457646e16e6c9c397ac753cce6102a3777d..094615c2595bbf5b1fbb7341ab07019efbac531c 100644 --- a/test/language/statements/function/params-trailing-comma-rest-early-error.js +++ b/test/language/statements/function/rest-params-trailing-comma-early-error.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-rest-early-error.case -// - src/params/syntax/func-decl.template +// - src/function-forms/rest-params-trailing-comma-early-error.case +// - src/function-forms/syntax/func-decl.template /*--- description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (function declaration) esid: sec-function-definitions-runtime-semantics-instantiatefunctionobject diff --git a/test/language/statements/generators/params-dflt-abrupt.js b/test/language/statements/generators/dflt-params-abrupt.js similarity index 94% rename from test/language/statements/generators/params-dflt-abrupt.js rename to test/language/statements/generators/dflt-params-abrupt.js index 67b726d32c04c2b36d61add57c6d21d04aaec96f..14d99ef7b9b4df20244908c3e8889b34e211ebec 100644 --- a/test/language/statements/generators/params-dflt-abrupt.js +++ b/test/language/statements/generators/dflt-params-abrupt.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-abrupt.case -// - src/params/error/gen-func-decl.template +// - src/function-forms/dflt-params-abrupt.case +// - src/function-forms/error/gen-func-decl.template /*--- description: Abrupt completion returned by evaluation of initializer (generator function declaration) esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject diff --git a/test/language/statements/generators/params-dflt-arg-val-not-undefined.js b/test/language/statements/generators/dflt-params-arg-val-not-undefined.js similarity index 95% rename from test/language/statements/generators/params-dflt-arg-val-not-undefined.js rename to test/language/statements/generators/dflt-params-arg-val-not-undefined.js index 1ad912886c1b8dac51c088a9d2c8258befa3753c..f08c4a5258f890bdad6240c4183ec2e3b4ae8983 100644 --- a/test/language/statements/generators/params-dflt-arg-val-not-undefined.js +++ b/test/language/statements/generators/dflt-params-arg-val-not-undefined.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-arg-val-not-undefined.case -// - src/params/default/gen-func-decl.template +// - src/function-forms/dflt-params-arg-val-not-undefined.case +// - src/function-forms/default/gen-func-decl.template /*--- description: Use of intializer when argument value is not `undefined` (generator function declaration) esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject diff --git a/test/language/statements/generators/params-dflt-arg-val-undefined.js b/test/language/statements/generators/dflt-params-arg-val-undefined.js similarity index 94% rename from test/language/statements/generators/params-dflt-arg-val-undefined.js rename to test/language/statements/generators/dflt-params-arg-val-undefined.js index f64a4c96280fc999f135203cf5c0c33f37ce2c68..0d50fc68351409d5b38765c11ff59d3a6282e29e 100644 --- a/test/language/statements/generators/params-dflt-arg-val-undefined.js +++ b/test/language/statements/generators/dflt-params-arg-val-undefined.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-arg-val-undefined.case -// - src/params/default/gen-func-decl.template +// - src/function-forms/dflt-params-arg-val-undefined.case +// - src/function-forms/default/gen-func-decl.template /*--- description: Use of intializer when argument value is `undefined` (generator function declaration) esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject diff --git a/test/language/statements/generators/params-dflt-duplicates.js b/test/language/statements/generators/dflt-params-duplicates.js similarity index 94% rename from test/language/statements/generators/params-dflt-duplicates.js rename to test/language/statements/generators/dflt-params-duplicates.js index 21149681b8f4f3f189456f7e5e619e523ae10703..455c19738d9de00bfc817ebc9dfb98b6a0697801 100644 --- a/test/language/statements/generators/params-dflt-duplicates.js +++ b/test/language/statements/generators/dflt-params-duplicates.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-duplicates.case -// - src/params/syntax/gen-func-decl.template +// - src/function-forms/dflt-params-duplicates.case +// - src/function-forms/syntax/gen-func-decl.template /*--- description: It is a Syntax Error if BoundNames of FormalParameters contains any duplicate elements. (generator function declaration) esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject diff --git a/test/language/statements/generators/params-dflt-ref-later.js b/test/language/statements/generators/dflt-params-ref-later.js similarity index 94% rename from test/language/statements/generators/params-dflt-ref-later.js rename to test/language/statements/generators/dflt-params-ref-later.js index fdc223ca7edc61f29238c54b0c55a34a7aa9c64f..6c351f0186f196814dae93c4078895f30eb53b3b 100644 --- a/test/language/statements/generators/params-dflt-ref-later.js +++ b/test/language/statements/generators/dflt-params-ref-later.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-later.case -// - src/params/error/gen-func-decl.template +// - src/function-forms/dflt-params-ref-later.case +// - src/function-forms/error/gen-func-decl.template /*--- description: Referencing a parameter that occurs later in the ParameterList (generator function declaration) esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject diff --git a/test/language/statements/generators/params-dflt-ref-prior.js b/test/language/statements/generators/dflt-params-ref-prior.js similarity index 95% rename from test/language/statements/generators/params-dflt-ref-prior.js rename to test/language/statements/generators/dflt-params-ref-prior.js index ca40dcc9ca1d214cb09fe9b4b22de8c3b6251b6b..39eb6654db1ba231046a0490811eccd82b4082c1 100644 --- a/test/language/statements/generators/params-dflt-ref-prior.js +++ b/test/language/statements/generators/dflt-params-ref-prior.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-prior.case -// - src/params/default/gen-func-decl.template +// - src/function-forms/dflt-params-ref-prior.case +// - src/function-forms/default/gen-func-decl.template /*--- description: Referencing a parameter that occurs earlier in the ParameterList (generator function declaration) esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject diff --git a/test/language/statements/generators/params-dflt-ref-self.js b/test/language/statements/generators/dflt-params-ref-self.js similarity index 94% rename from test/language/statements/generators/params-dflt-ref-self.js rename to test/language/statements/generators/dflt-params-ref-self.js index 03dbf2c76a57f8f93f4bfc1a2e3bd228d35ffce4..387f8db2ee7c72ba5b5a082d5a1cec49d5146ccd 100644 --- a/test/language/statements/generators/params-dflt-ref-self.js +++ b/test/language/statements/generators/dflt-params-ref-self.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-ref-self.case -// - src/params/error/gen-func-decl.template +// - src/function-forms/dflt-params-ref-self.case +// - src/function-forms/error/gen-func-decl.template /*--- description: Referencing a parameter from within its own initializer (generator function declaration) esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject diff --git a/test/language/statements/generators/params-dflt-rest.js b/test/language/statements/generators/dflt-params-rest.js similarity index 93% rename from test/language/statements/generators/params-dflt-rest.js rename to test/language/statements/generators/dflt-params-rest.js index 3ff34e7f61f3c18fd025c85775b8fac9da5b8645..150421d26e730415fe80662bc87940ddb30d1b52 100644 --- a/test/language/statements/generators/params-dflt-rest.js +++ b/test/language/statements/generators/dflt-params-rest.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/dflt-rest.case -// - src/params/syntax/gen-func-decl.template +// - src/function-forms/dflt-params-rest.case +// - src/function-forms/syntax/gen-func-decl.template /*--- description: RestParameter does not support an initializer (generator function declaration) esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject diff --git a/test/language/statements/generators/params-trailing-comma-dflt-param.js b/test/language/statements/generators/dflt-params-trailing-comma.js similarity index 93% rename from test/language/statements/generators/params-trailing-comma-dflt-param.js rename to test/language/statements/generators/dflt-params-trailing-comma.js index 8a3969b75b992e97ae6abb7c23e5161e8c435b44..37125ebe7fa7358bf846b1ff2924fb99e01a46d5 100644 --- a/test/language/statements/generators/params-trailing-comma-dflt-param.js +++ b/test/language/statements/generators/dflt-params-trailing-comma.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-dflt-param.case -// - src/params/default/gen-func-decl.template +// - src/function-forms/dflt-params-trailing-comma.case +// - src/function-forms/default/gen-func-decl.template /*--- description: A trailing comma should not increase the respective length, using default parameters (generator function declaration) esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject diff --git a/test/language/statements/generators/params-trailing-comma-multiple-param.js b/test/language/statements/generators/params-trailing-comma-multiple.js similarity index 93% rename from test/language/statements/generators/params-trailing-comma-multiple-param.js rename to test/language/statements/generators/params-trailing-comma-multiple.js index ee039ffd1a740969f87668e6c68009dcdd50ecd1..368f87868dc602c25cb0b14d0bb6ed1445fcabb3 100644 --- a/test/language/statements/generators/params-trailing-comma-multiple-param.js +++ b/test/language/statements/generators/params-trailing-comma-multiple.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-multiple-param.case -// - src/params/default/gen-func-decl.template +// - src/function-forms/params-trailing-comma-multiple.case +// - src/function-forms/default/gen-func-decl.template /*--- description: A trailing comma should not increase the respective length, using multiple parameters (generator function declaration) esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject diff --git a/test/language/statements/generators/params-trailing-comma-single-param.js b/test/language/statements/generators/params-trailing-comma-single.js similarity index 93% rename from test/language/statements/generators/params-trailing-comma-single-param.js rename to test/language/statements/generators/params-trailing-comma-single.js index 4a6cf4c070850c0b59d8b8c210126512ed47979f..0627fab7640610ad655c005d8c5f2e0c4297aadf 100644 --- a/test/language/statements/generators/params-trailing-comma-single-param.js +++ b/test/language/statements/generators/params-trailing-comma-single.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-single-param.case -// - src/params/default/gen-func-decl.template +// - src/function-forms/params-trailing-comma-single.case +// - src/function-forms/default/gen-func-decl.template /*--- description: A trailing comma should not increase the respective length, using a single parameter (generator function declaration) esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject diff --git a/test/language/statements/generators/params-trailing-comma-rest-early-error.js b/test/language/statements/generators/rest-params-trailing-comma-early-error.js similarity index 93% rename from test/language/statements/generators/params-trailing-comma-rest-early-error.js rename to test/language/statements/generators/rest-params-trailing-comma-early-error.js index 04b33339ee96512b094d9db20c9986ed06c0aac4..b6a1753a57e8e72b75279bd713039c64fa72c1ac 100644 --- a/test/language/statements/generators/params-trailing-comma-rest-early-error.js +++ b/test/language/statements/generators/rest-params-trailing-comma-early-error.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: -// - src/params/trailing-comma-rest-early-error.case -// - src/params/syntax/gen-func-decl.template +// - src/function-forms/rest-params-trailing-comma-early-error.case +// - src/function-forms/syntax/gen-func-decl.template /*--- description: It's a syntax error if a FunctionRestParameter is followed by a trailing comma (generator function declaration) esid: sec-generator-function-definitions-runtime-semantics-instantiatefunctionobject