From da22db06d16f05763a0ef04d66b5ea903876f7f4 Mon Sep 17 00:00:00 2001 From: Leonardo Balter <leonardo.balter@gmail.com> Date: Tue, 14 Mar 2017 16:30:12 -0400 Subject: [PATCH] Generate tests --- ...eth-static-trailing-comma-multiple-args.js | 38 +++++++++++++++++++ ...ecl-gen-meth-static-trailing-comma-null.js | 38 +++++++++++++++++++ ...-meth-static-trailing-comma-single-args.js | 37 ++++++++++++++++++ ...en-meth-static-trailing-comma-undefined.js | 38 +++++++++++++++++++ ...l-gen-meth-trailing-comma-multiple-args.js | 38 +++++++++++++++++++ .../cls-decl-gen-meth-trailing-comma-null.js | 38 +++++++++++++++++++ ...ecl-gen-meth-trailing-comma-single-args.js | 37 ++++++++++++++++++ ...-decl-gen-meth-trailing-comma-undefined.js | 38 +++++++++++++++++++ ...eth-static-trailing-comma-multiple-args.js | 38 +++++++++++++++++++ ...ls-decl-meth-static-trailing-comma-null.js | 38 +++++++++++++++++++ ...-meth-static-trailing-comma-single-args.js | 37 ++++++++++++++++++ ...cl-meth-static-trailing-comma-undefined.js | 38 +++++++++++++++++++ ...-decl-meth-trailing-comma-multiple-args.js | 38 +++++++++++++++++++ .../cls-decl-meth-trailing-comma-null.js | 38 +++++++++++++++++++ ...ls-decl-meth-trailing-comma-single-args.js | 37 ++++++++++++++++++ .../cls-decl-meth-trailing-comma-undefined.js | 38 +++++++++++++++++++ ...eth-static-trailing-comma-multiple-args.js | 38 +++++++++++++++++++ ...xpr-gen-meth-static-trailing-comma-null.js | 38 +++++++++++++++++++ ...-meth-static-trailing-comma-single-args.js | 37 ++++++++++++++++++ ...en-meth-static-trailing-comma-undefined.js | 38 +++++++++++++++++++ ...r-gen-meth-trailing-comma-multiple-args.js | 38 +++++++++++++++++++ .../cls-expr-gen-meth-trailing-comma-null.js | 38 +++++++++++++++++++ ...xpr-gen-meth-trailing-comma-single-args.js | 37 ++++++++++++++++++ ...-expr-gen-meth-trailing-comma-undefined.js | 38 +++++++++++++++++++ ...eth-static-trailing-comma-multiple-args.js | 38 +++++++++++++++++++ ...ls-expr-meth-static-trailing-comma-null.js | 38 +++++++++++++++++++ ...-meth-static-trailing-comma-single-args.js | 37 ++++++++++++++++++ ...pr-meth-static-trailing-comma-undefined.js | 38 +++++++++++++++++++ ...-expr-meth-trailing-comma-multiple-args.js | 38 +++++++++++++++++++ .../cls-expr-meth-trailing-comma-null.js | 38 +++++++++++++++++++ ...ls-expr-meth-trailing-comma-single-args.js | 37 ++++++++++++++++++ .../cls-expr-meth-trailing-comma-undefined.js | 38 +++++++++++++++++++ .../func-decl-trailing-comma-multiple-args.js | 34 +++++++++++++++++ .../func-decl-trailing-comma-null.js | 34 +++++++++++++++++ .../func-decl-trailing-comma-single-args.js | 33 ++++++++++++++++ .../func-decl-trailing-comma-undefined.js | 34 +++++++++++++++++ .../func-expr-trailing-comma-multiple-args.js | 35 +++++++++++++++++ .../func-expr-trailing-comma-null.js | 35 +++++++++++++++++ .../func-expr-trailing-comma-single-args.js | 34 +++++++++++++++++ .../func-expr-trailing-comma-undefined.js | 35 +++++++++++++++++ ...-func-decl-trailing-comma-multiple-args.js | 34 +++++++++++++++++ .../gen-func-decl-trailing-comma-null.js | 34 +++++++++++++++++ ...en-func-decl-trailing-comma-single-args.js | 33 ++++++++++++++++ .../gen-func-decl-trailing-comma-undefined.js | 34 +++++++++++++++++ ...-func-expr-trailing-comma-multiple-args.js | 35 +++++++++++++++++ .../gen-func-expr-trailing-comma-null.js | 35 +++++++++++++++++ ...en-func-expr-trailing-comma-single-args.js | 34 +++++++++++++++++ .../gen-func-expr-trailing-comma-undefined.js | 35 +++++++++++++++++ .../gen-meth-trailing-comma-multiple-args.js | 38 +++++++++++++++++++ .../gen-meth-trailing-comma-null.js | 38 +++++++++++++++++++ .../gen-meth-trailing-comma-single-args.js | 37 ++++++++++++++++++ .../gen-meth-trailing-comma-undefined.js | 38 +++++++++++++++++++ .../meth-trailing-comma-multiple-args.js | 38 +++++++++++++++++++ .../meth-trailing-comma-null.js | 38 +++++++++++++++++++ .../meth-trailing-comma-single-args.js | 37 ++++++++++++++++++ .../meth-trailing-comma-undefined.js | 38 +++++++++++++++++++ 56 files changed, 2058 insertions(+) create mode 100644 test/language/arguments-object/cls-decl-gen-meth-static-trailing-comma-multiple-args.js create mode 100644 test/language/arguments-object/cls-decl-gen-meth-static-trailing-comma-null.js create mode 100644 test/language/arguments-object/cls-decl-gen-meth-static-trailing-comma-single-args.js create mode 100644 test/language/arguments-object/cls-decl-gen-meth-static-trailing-comma-undefined.js create mode 100644 test/language/arguments-object/cls-decl-gen-meth-trailing-comma-multiple-args.js create mode 100644 test/language/arguments-object/cls-decl-gen-meth-trailing-comma-null.js create mode 100644 test/language/arguments-object/cls-decl-gen-meth-trailing-comma-single-args.js create mode 100644 test/language/arguments-object/cls-decl-gen-meth-trailing-comma-undefined.js create mode 100644 test/language/arguments-object/cls-decl-meth-static-trailing-comma-multiple-args.js create mode 100644 test/language/arguments-object/cls-decl-meth-static-trailing-comma-null.js create mode 100644 test/language/arguments-object/cls-decl-meth-static-trailing-comma-single-args.js create mode 100644 test/language/arguments-object/cls-decl-meth-static-trailing-comma-undefined.js create mode 100644 test/language/arguments-object/cls-decl-meth-trailing-comma-multiple-args.js create mode 100644 test/language/arguments-object/cls-decl-meth-trailing-comma-null.js create mode 100644 test/language/arguments-object/cls-decl-meth-trailing-comma-single-args.js create mode 100644 test/language/arguments-object/cls-decl-meth-trailing-comma-undefined.js create mode 100644 test/language/arguments-object/cls-expr-gen-meth-static-trailing-comma-multiple-args.js create mode 100644 test/language/arguments-object/cls-expr-gen-meth-static-trailing-comma-null.js create mode 100644 test/language/arguments-object/cls-expr-gen-meth-static-trailing-comma-single-args.js create mode 100644 test/language/arguments-object/cls-expr-gen-meth-static-trailing-comma-undefined.js create mode 100644 test/language/arguments-object/cls-expr-gen-meth-trailing-comma-multiple-args.js create mode 100644 test/language/arguments-object/cls-expr-gen-meth-trailing-comma-null.js create mode 100644 test/language/arguments-object/cls-expr-gen-meth-trailing-comma-single-args.js create mode 100644 test/language/arguments-object/cls-expr-gen-meth-trailing-comma-undefined.js create mode 100644 test/language/arguments-object/cls-expr-meth-static-trailing-comma-multiple-args.js create mode 100644 test/language/arguments-object/cls-expr-meth-static-trailing-comma-null.js create mode 100644 test/language/arguments-object/cls-expr-meth-static-trailing-comma-single-args.js create mode 100644 test/language/arguments-object/cls-expr-meth-static-trailing-comma-undefined.js create mode 100644 test/language/arguments-object/cls-expr-meth-trailing-comma-multiple-args.js create mode 100644 test/language/arguments-object/cls-expr-meth-trailing-comma-null.js create mode 100644 test/language/arguments-object/cls-expr-meth-trailing-comma-single-args.js create mode 100644 test/language/arguments-object/cls-expr-meth-trailing-comma-undefined.js create mode 100644 test/language/arguments-object/func-decl-trailing-comma-multiple-args.js create mode 100644 test/language/arguments-object/func-decl-trailing-comma-null.js create mode 100644 test/language/arguments-object/func-decl-trailing-comma-single-args.js create mode 100644 test/language/arguments-object/func-decl-trailing-comma-undefined.js create mode 100644 test/language/arguments-object/func-expr-trailing-comma-multiple-args.js create mode 100644 test/language/arguments-object/func-expr-trailing-comma-null.js create mode 100644 test/language/arguments-object/func-expr-trailing-comma-single-args.js create mode 100644 test/language/arguments-object/func-expr-trailing-comma-undefined.js create mode 100644 test/language/arguments-object/gen-func-decl-trailing-comma-multiple-args.js create mode 100644 test/language/arguments-object/gen-func-decl-trailing-comma-null.js create mode 100644 test/language/arguments-object/gen-func-decl-trailing-comma-single-args.js create mode 100644 test/language/arguments-object/gen-func-decl-trailing-comma-undefined.js create mode 100644 test/language/arguments-object/gen-func-expr-trailing-comma-multiple-args.js create mode 100644 test/language/arguments-object/gen-func-expr-trailing-comma-null.js create mode 100644 test/language/arguments-object/gen-func-expr-trailing-comma-single-args.js create mode 100644 test/language/arguments-object/gen-func-expr-trailing-comma-undefined.js create mode 100644 test/language/arguments-object/gen-meth-trailing-comma-multiple-args.js create mode 100644 test/language/arguments-object/gen-meth-trailing-comma-null.js create mode 100644 test/language/arguments-object/gen-meth-trailing-comma-single-args.js create mode 100644 test/language/arguments-object/gen-meth-trailing-comma-undefined.js create mode 100644 test/language/arguments-object/meth-trailing-comma-multiple-args.js create mode 100644 test/language/arguments-object/meth-trailing-comma-null.js create mode 100644 test/language/arguments-object/meth-trailing-comma-single-args.js create mode 100644 test/language/arguments-object/meth-trailing-comma-undefined.js 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-trailing-comma-multiple-args.js new file mode 100644 index 0000000000..af22068be0 --- /dev/null +++ b/test/language/arguments-object/cls-decl-gen-meth-static-trailing-comma-multiple-args.js @@ -0,0 +1,38 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/trailing-comma-multiple-args.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) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +class C { + static *method() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], 'TC39'); + callCount = callCount + 1; + } +} + +C.method(42, 'TC39',).next(); + +// Stores a reference `ref` for case evaluation +var ref = C.method; + +assert.sameValue(callCount, 1, 'method invoked exactly once'); 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-trailing-comma-null.js new file mode 100644 index 0000000000..04b050d3fd --- /dev/null +++ b/test/language/arguments-object/cls-decl-gen-meth-static-trailing-comma-null.js @@ -0,0 +1,38 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/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) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +class C { + static *method() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], null); + callCount = callCount + 1; + } +} + +C.method(42, null,).next(); + +// Stores a reference `ref` for case evaluation +var ref = C.method; + +assert.sameValue(callCount, 1, 'method invoked exactly once'); 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-trailing-comma-single-args.js new file mode 100644 index 0000000000..f277d51337 --- /dev/null +++ b/test/language/arguments-object/cls-decl-gen-meth-static-trailing-comma-single-args.js @@ -0,0 +1,37 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/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) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +class C { + static *method() { + assert.sameValue(arguments.length, 1); + assert.sameValue(arguments[0], 42); + callCount = callCount + 1; + } +} + +C.method(42,).next(); + +// Stores a reference `ref` for case evaluation +var ref = C.method; + +assert.sameValue(callCount, 1, 'method invoked exactly once'); 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-trailing-comma-undefined.js new file mode 100644 index 0000000000..b2782f1cd6 --- /dev/null +++ b/test/language/arguments-object/cls-decl-gen-meth-static-trailing-comma-undefined.js @@ -0,0 +1,38 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/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) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +class C { + static *method() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], undefined); + callCount = callCount + 1; + } +} + +C.method(42, undefined,).next(); + +// Stores a reference `ref` for case evaluation +var ref = C.method; + +assert.sameValue(callCount, 1, 'method invoked exactly once'); 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-trailing-comma-multiple-args.js new file mode 100644 index 0000000000..19404642d0 --- /dev/null +++ b/test/language/arguments-object/cls-decl-gen-meth-trailing-comma-multiple-args.js @@ -0,0 +1,38 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/trailing-comma-multiple-args.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) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +class C { + *method() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], 'TC39'); + callCount = callCount + 1; + } +} + +C.prototype.method(42, 'TC39',).next(); + +// Stores a reference `ref` for case evaluation +var ref = C.prototype.method; + +assert.sameValue(callCount, 1, 'method invoked exactly once'); diff --git a/test/language/arguments-object/cls-decl-gen-meth-trailing-comma-null.js b/test/language/arguments-object/cls-decl-gen-meth-trailing-comma-null.js new file mode 100644 index 0000000000..8a960cdcb0 --- /dev/null +++ b/test/language/arguments-object/cls-decl-gen-meth-trailing-comma-null.js @@ -0,0 +1,38 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/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) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +class C { + *method() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], null); + callCount = callCount + 1; + } +} + +C.prototype.method(42, null,).next(); + +// Stores a reference `ref` for case evaluation +var ref = C.prototype.method; + +assert.sameValue(callCount, 1, 'method invoked exactly once'); 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-trailing-comma-single-args.js new file mode 100644 index 0000000000..d507f4e5ec --- /dev/null +++ b/test/language/arguments-object/cls-decl-gen-meth-trailing-comma-single-args.js @@ -0,0 +1,37 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/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) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +class C { + *method() { + assert.sameValue(arguments.length, 1); + assert.sameValue(arguments[0], 42); + callCount = callCount + 1; + } +} + +C.prototype.method(42,).next(); + +// Stores a reference `ref` for case evaluation +var ref = C.prototype.method; + +assert.sameValue(callCount, 1, 'method invoked exactly once'); diff --git a/test/language/arguments-object/cls-decl-gen-meth-trailing-comma-undefined.js b/test/language/arguments-object/cls-decl-gen-meth-trailing-comma-undefined.js new file mode 100644 index 0000000000..453f515a4b --- /dev/null +++ b/test/language/arguments-object/cls-decl-gen-meth-trailing-comma-undefined.js @@ -0,0 +1,38 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/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) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +class C { + *method() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], undefined); + callCount = callCount + 1; + } +} + +C.prototype.method(42, undefined,).next(); + +// Stores a reference `ref` for case evaluation +var ref = C.prototype.method; + +assert.sameValue(callCount, 1, 'method invoked exactly once'); 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-trailing-comma-multiple-args.js new file mode 100644 index 0000000000..7d0c69d154 --- /dev/null +++ b/test/language/arguments-object/cls-decl-meth-static-trailing-comma-multiple-args.js @@ -0,0 +1,38 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/trailing-comma-multiple-args.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) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +class C { + static method() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], 'TC39'); + callCount = callCount + 1; + } +} + +C.method(42, 'TC39',); + +// Stores a reference `ref` for case evaluation +var ref = C.method; + +assert.sameValue(callCount, 1, 'method invoked exactly once'); diff --git a/test/language/arguments-object/cls-decl-meth-static-trailing-comma-null.js b/test/language/arguments-object/cls-decl-meth-static-trailing-comma-null.js new file mode 100644 index 0000000000..6ac2ace1c0 --- /dev/null +++ b/test/language/arguments-object/cls-decl-meth-static-trailing-comma-null.js @@ -0,0 +1,38 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/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) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +class C { + static method() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], null); + callCount = callCount + 1; + } +} + +C.method(42, null,); + +// Stores a reference `ref` for case evaluation +var ref = C.method; + +assert.sameValue(callCount, 1, 'method invoked exactly once'); 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-trailing-comma-single-args.js new file mode 100644 index 0000000000..7389cc51e9 --- /dev/null +++ b/test/language/arguments-object/cls-decl-meth-static-trailing-comma-single-args.js @@ -0,0 +1,37 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/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) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +class C { + static method() { + assert.sameValue(arguments.length, 1); + assert.sameValue(arguments[0], 42); + callCount = callCount + 1; + } +} + +C.method(42,); + +// Stores a reference `ref` for case evaluation +var ref = C.method; + +assert.sameValue(callCount, 1, 'method invoked exactly once'); diff --git a/test/language/arguments-object/cls-decl-meth-static-trailing-comma-undefined.js b/test/language/arguments-object/cls-decl-meth-static-trailing-comma-undefined.js new file mode 100644 index 0000000000..3ee1f645ba --- /dev/null +++ b/test/language/arguments-object/cls-decl-meth-static-trailing-comma-undefined.js @@ -0,0 +1,38 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/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) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +class C { + static method() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], undefined); + callCount = callCount + 1; + } +} + +C.method(42, undefined,); + +// Stores a reference `ref` for case evaluation +var ref = C.method; + +assert.sameValue(callCount, 1, 'method invoked exactly once'); diff --git a/test/language/arguments-object/cls-decl-meth-trailing-comma-multiple-args.js b/test/language/arguments-object/cls-decl-meth-trailing-comma-multiple-args.js new file mode 100644 index 0000000000..b5910ff593 --- /dev/null +++ b/test/language/arguments-object/cls-decl-meth-trailing-comma-multiple-args.js @@ -0,0 +1,38 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/trailing-comma-multiple-args.case +// - src/arguments/default/cls-decl-meth.template +/*--- +description: A trailing comma should not increase the arguments.length, using multiple args (class declaration method) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +class C { + method() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], 'TC39'); + callCount = callCount + 1; + } +} + +C.prototype.method(42, 'TC39',); + +// Stores a reference `ref` for case evaluation +var ref = C.prototype.method; + +assert.sameValue(callCount, 1, 'method invoked exactly once'); diff --git a/test/language/arguments-object/cls-decl-meth-trailing-comma-null.js b/test/language/arguments-object/cls-decl-meth-trailing-comma-null.js new file mode 100644 index 0000000000..32a9d3a764 --- /dev/null +++ b/test/language/arguments-object/cls-decl-meth-trailing-comma-null.js @@ -0,0 +1,38 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/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) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +class C { + method() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], null); + callCount = callCount + 1; + } +} + +C.prototype.method(42, null,); + +// Stores a reference `ref` for case evaluation +var ref = C.prototype.method; + +assert.sameValue(callCount, 1, 'method invoked exactly once'); diff --git a/test/language/arguments-object/cls-decl-meth-trailing-comma-single-args.js b/test/language/arguments-object/cls-decl-meth-trailing-comma-single-args.js new file mode 100644 index 0000000000..b3a6ba8a71 --- /dev/null +++ b/test/language/arguments-object/cls-decl-meth-trailing-comma-single-args.js @@ -0,0 +1,37 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/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) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +class C { + method() { + assert.sameValue(arguments.length, 1); + assert.sameValue(arguments[0], 42); + callCount = callCount + 1; + } +} + +C.prototype.method(42,); + +// Stores a reference `ref` for case evaluation +var ref = C.prototype.method; + +assert.sameValue(callCount, 1, 'method invoked exactly once'); diff --git a/test/language/arguments-object/cls-decl-meth-trailing-comma-undefined.js b/test/language/arguments-object/cls-decl-meth-trailing-comma-undefined.js new file mode 100644 index 0000000000..ac3710a870 --- /dev/null +++ b/test/language/arguments-object/cls-decl-meth-trailing-comma-undefined.js @@ -0,0 +1,38 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/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) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +class C { + method() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], undefined); + callCount = callCount + 1; + } +} + +C.prototype.method(42, undefined,); + +// Stores a reference `ref` for case evaluation +var ref = C.prototype.method; + +assert.sameValue(callCount, 1, 'method invoked exactly once'); 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-trailing-comma-multiple-args.js new file mode 100644 index 0000000000..1a797aa980 --- /dev/null +++ b/test/language/arguments-object/cls-expr-gen-meth-static-trailing-comma-multiple-args.js @@ -0,0 +1,38 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/trailing-comma-multiple-args.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) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + 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 *method() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], 'TC39'); + callCount = callCount + 1; + } +}; + +C.method(42, 'TC39',).next(); + +// Stores a reference `ref` for case evaluation +var ref = C.method; + +assert.sameValue(callCount, 1, 'method invoked exactly once'); 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-trailing-comma-null.js new file mode 100644 index 0000000000..770887168c --- /dev/null +++ b/test/language/arguments-object/cls-expr-gen-meth-static-trailing-comma-null.js @@ -0,0 +1,38 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/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) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + 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 *method() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], null); + callCount = callCount + 1; + } +}; + +C.method(42, null,).next(); + +// Stores a reference `ref` for case evaluation +var ref = C.method; + +assert.sameValue(callCount, 1, 'method invoked exactly once'); 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-trailing-comma-single-args.js new file mode 100644 index 0000000000..f729a442ca --- /dev/null +++ b/test/language/arguments-object/cls-expr-gen-meth-static-trailing-comma-single-args.js @@ -0,0 +1,37 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/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) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + 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 *method() { + assert.sameValue(arguments.length, 1); + assert.sameValue(arguments[0], 42); + callCount = callCount + 1; + } +}; + +C.method(42,).next(); + +// Stores a reference `ref` for case evaluation +var ref = C.method; + +assert.sameValue(callCount, 1, 'method invoked exactly once'); 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-trailing-comma-undefined.js new file mode 100644 index 0000000000..5a36a31ab2 --- /dev/null +++ b/test/language/arguments-object/cls-expr-gen-meth-static-trailing-comma-undefined.js @@ -0,0 +1,38 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/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) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + 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 *method() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], undefined); + callCount = callCount + 1; + } +}; + +C.method(42, undefined,).next(); + +// Stores a reference `ref` for case evaluation +var ref = C.method; + +assert.sameValue(callCount, 1, 'method invoked exactly once'); 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-trailing-comma-multiple-args.js new file mode 100644 index 0000000000..67ce4d54c5 --- /dev/null +++ b/test/language/arguments-object/cls-expr-gen-meth-trailing-comma-multiple-args.js @@ -0,0 +1,38 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/trailing-comma-multiple-args.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) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +var C = class { + *method() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], 'TC39'); + callCount = callCount + 1; + } +}; + +C.prototype.method(42, 'TC39',).next(); + +// Stores a reference `ref` for case evaluation +var ref = C.prototype.method; + +assert.sameValue(callCount, 1, 'method invoked exactly once'); diff --git a/test/language/arguments-object/cls-expr-gen-meth-trailing-comma-null.js b/test/language/arguments-object/cls-expr-gen-meth-trailing-comma-null.js new file mode 100644 index 0000000000..b3b8402818 --- /dev/null +++ b/test/language/arguments-object/cls-expr-gen-meth-trailing-comma-null.js @@ -0,0 +1,38 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/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) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +var C = class { + *method() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], null); + callCount = callCount + 1; + } +}; + +C.prototype.method(42, null,).next(); + +// Stores a reference `ref` for case evaluation +var ref = C.prototype.method; + +assert.sameValue(callCount, 1, 'method invoked exactly once'); 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-trailing-comma-single-args.js new file mode 100644 index 0000000000..2b025b1f27 --- /dev/null +++ b/test/language/arguments-object/cls-expr-gen-meth-trailing-comma-single-args.js @@ -0,0 +1,37 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/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) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +var C = class { + *method() { + assert.sameValue(arguments.length, 1); + assert.sameValue(arguments[0], 42); + callCount = callCount + 1; + } +}; + +C.prototype.method(42,).next(); + +// Stores a reference `ref` for case evaluation +var ref = C.prototype.method; + +assert.sameValue(callCount, 1, 'method invoked exactly once'); diff --git a/test/language/arguments-object/cls-expr-gen-meth-trailing-comma-undefined.js b/test/language/arguments-object/cls-expr-gen-meth-trailing-comma-undefined.js new file mode 100644 index 0000000000..666723a9a1 --- /dev/null +++ b/test/language/arguments-object/cls-expr-gen-meth-trailing-comma-undefined.js @@ -0,0 +1,38 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/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) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +var C = class { + *method() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], undefined); + callCount = callCount + 1; + } +}; + +C.prototype.method(42, undefined,).next(); + +// Stores a reference `ref` for case evaluation +var ref = C.prototype.method; + +assert.sameValue(callCount, 1, 'method invoked exactly once'); 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-trailing-comma-multiple-args.js new file mode 100644 index 0000000000..9720302d40 --- /dev/null +++ b/test/language/arguments-object/cls-expr-meth-static-trailing-comma-multiple-args.js @@ -0,0 +1,38 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/trailing-comma-multiple-args.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) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + 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 method() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], 'TC39'); + callCount = callCount + 1; + } +}; + +C.method(42, 'TC39',); + +// Stores a reference `ref` for case evaluation +var ref = C.method; + +assert.sameValue(callCount, 1, 'method invoked exactly once'); diff --git a/test/language/arguments-object/cls-expr-meth-static-trailing-comma-null.js b/test/language/arguments-object/cls-expr-meth-static-trailing-comma-null.js new file mode 100644 index 0000000000..02ebc63c38 --- /dev/null +++ b/test/language/arguments-object/cls-expr-meth-static-trailing-comma-null.js @@ -0,0 +1,38 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/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) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + 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 method() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], null); + callCount = callCount + 1; + } +}; + +C.method(42, null,); + +// Stores a reference `ref` for case evaluation +var ref = C.method; + +assert.sameValue(callCount, 1, 'method invoked exactly once'); 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-trailing-comma-single-args.js new file mode 100644 index 0000000000..81cb12a473 --- /dev/null +++ b/test/language/arguments-object/cls-expr-meth-static-trailing-comma-single-args.js @@ -0,0 +1,37 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/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) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + 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 method() { + assert.sameValue(arguments.length, 1); + assert.sameValue(arguments[0], 42); + callCount = callCount + 1; + } +}; + +C.method(42,); + +// Stores a reference `ref` for case evaluation +var ref = C.method; + +assert.sameValue(callCount, 1, 'method invoked exactly once'); diff --git a/test/language/arguments-object/cls-expr-meth-static-trailing-comma-undefined.js b/test/language/arguments-object/cls-expr-meth-static-trailing-comma-undefined.js new file mode 100644 index 0000000000..1c4d255317 --- /dev/null +++ b/test/language/arguments-object/cls-expr-meth-static-trailing-comma-undefined.js @@ -0,0 +1,38 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/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) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + 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 method() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], undefined); + callCount = callCount + 1; + } +}; + +C.method(42, undefined,); + +// Stores a reference `ref` for case evaluation +var ref = C.method; + +assert.sameValue(callCount, 1, 'method invoked exactly once'); diff --git a/test/language/arguments-object/cls-expr-meth-trailing-comma-multiple-args.js b/test/language/arguments-object/cls-expr-meth-trailing-comma-multiple-args.js new file mode 100644 index 0000000000..cf08d53d0b --- /dev/null +++ b/test/language/arguments-object/cls-expr-meth-trailing-comma-multiple-args.js @@ -0,0 +1,38 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/trailing-comma-multiple-args.case +// - src/arguments/default/cls-expr-meth.template +/*--- +description: A trailing comma should not increase the arguments.length, using multiple args (class expression method) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +var C = class { + method() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], 'TC39'); + callCount = callCount + 1; + } +}; + +C.prototype.method(42, 'TC39',); + +// Stores a reference `ref` for case evaluation +var ref = C.prototype.method; + +assert.sameValue(callCount, 1, 'method invoked exactly once'); diff --git a/test/language/arguments-object/cls-expr-meth-trailing-comma-null.js b/test/language/arguments-object/cls-expr-meth-trailing-comma-null.js new file mode 100644 index 0000000000..b1460168d4 --- /dev/null +++ b/test/language/arguments-object/cls-expr-meth-trailing-comma-null.js @@ -0,0 +1,38 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/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) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +var C = class { + method() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], null); + callCount = callCount + 1; + } +}; + +C.prototype.method(42, null,); + +// Stores a reference `ref` for case evaluation +var ref = C.prototype.method; + +assert.sameValue(callCount, 1, 'method invoked exactly once'); diff --git a/test/language/arguments-object/cls-expr-meth-trailing-comma-single-args.js b/test/language/arguments-object/cls-expr-meth-trailing-comma-single-args.js new file mode 100644 index 0000000000..4b68d6fd37 --- /dev/null +++ b/test/language/arguments-object/cls-expr-meth-trailing-comma-single-args.js @@ -0,0 +1,37 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/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) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +var C = class { + method() { + assert.sameValue(arguments.length, 1); + assert.sameValue(arguments[0], 42); + callCount = callCount + 1; + } +}; + +C.prototype.method(42,); + +// Stores a reference `ref` for case evaluation +var ref = C.prototype.method; + +assert.sameValue(callCount, 1, 'method invoked exactly once'); diff --git a/test/language/arguments-object/cls-expr-meth-trailing-comma-undefined.js b/test/language/arguments-object/cls-expr-meth-trailing-comma-undefined.js new file mode 100644 index 0000000000..ffd2447438 --- /dev/null +++ b/test/language/arguments-object/cls-expr-meth-trailing-comma-undefined.js @@ -0,0 +1,38 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/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) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +var C = class { + method() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], undefined); + callCount = callCount + 1; + } +}; + +C.prototype.method(42, undefined,); + +// Stores a reference `ref` for case evaluation +var ref = C.prototype.method; + +assert.sameValue(callCount, 1, 'method invoked exactly once'); diff --git a/test/language/arguments-object/func-decl-trailing-comma-multiple-args.js b/test/language/arguments-object/func-decl-trailing-comma-multiple-args.js new file mode 100644 index 0000000000..a431a3a944 --- /dev/null +++ b/test/language/arguments-object/func-decl-trailing-comma-multiple-args.js @@ -0,0 +1,34 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/trailing-comma-multiple-args.case +// - src/arguments/default/func-decl.template +/*--- +description: A trailing comma should not increase the arguments.length, using multiple args (function declaration) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + 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 +function ref() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], 'TC39'); + callCount = callCount + 1; +} + +ref(42, 'TC39',); + +assert.sameValue(callCount, 1, 'function invoked exactly once'); diff --git a/test/language/arguments-object/func-decl-trailing-comma-null.js b/test/language/arguments-object/func-decl-trailing-comma-null.js new file mode 100644 index 0000000000..2aa8c8284e --- /dev/null +++ b/test/language/arguments-object/func-decl-trailing-comma-null.js @@ -0,0 +1,34 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/trailing-comma-null.case +// - src/arguments/default/func-decl.template +/*--- +description: A trailing comma after null should not increase the arguments.length (function declaration) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + 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 +function ref() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], null); + callCount = callCount + 1; +} + +ref(42, null,); + +assert.sameValue(callCount, 1, 'function invoked exactly once'); diff --git a/test/language/arguments-object/func-decl-trailing-comma-single-args.js b/test/language/arguments-object/func-decl-trailing-comma-single-args.js new file mode 100644 index 0000000000..19f4eab18c --- /dev/null +++ b/test/language/arguments-object/func-decl-trailing-comma-single-args.js @@ -0,0 +1,33 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/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) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + 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 +function ref() { + assert.sameValue(arguments.length, 1); + assert.sameValue(arguments[0], 42); + callCount = callCount + 1; +} + +ref(42,); + +assert.sameValue(callCount, 1, 'function invoked exactly once'); diff --git a/test/language/arguments-object/func-decl-trailing-comma-undefined.js b/test/language/arguments-object/func-decl-trailing-comma-undefined.js new file mode 100644 index 0000000000..cb4bb55ca0 --- /dev/null +++ b/test/language/arguments-object/func-decl-trailing-comma-undefined.js @@ -0,0 +1,34 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/trailing-comma-undefined.case +// - src/arguments/default/func-decl.template +/*--- +description: A trailing comma after undefined should not increase the arguments.length (function declaration) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + 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 +function ref() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], undefined); + callCount = callCount + 1; +} + +ref(42, undefined,); + +assert.sameValue(callCount, 1, 'function invoked exactly once'); diff --git a/test/language/arguments-object/func-expr-trailing-comma-multiple-args.js b/test/language/arguments-object/func-expr-trailing-comma-multiple-args.js new file mode 100644 index 0000000000..07a9ca9fd9 --- /dev/null +++ b/test/language/arguments-object/func-expr-trailing-comma-multiple-args.js @@ -0,0 +1,35 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/trailing-comma-multiple-args.case +// - src/arguments/default/func-expr.template +/*--- +description: A trailing comma should not increase the arguments.length, using multiple args (function expression) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + 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 = function() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], 'TC39'); + callCount = callCount + 1; +}; + +ref(42, 'TC39',); + +assert.sameValue(callCount, 1, 'function invoked exactly once'); diff --git a/test/language/arguments-object/func-expr-trailing-comma-null.js b/test/language/arguments-object/func-expr-trailing-comma-null.js new file mode 100644 index 0000000000..242d0dd28b --- /dev/null +++ b/test/language/arguments-object/func-expr-trailing-comma-null.js @@ -0,0 +1,35 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/trailing-comma-null.case +// - src/arguments/default/func-expr.template +/*--- +description: A trailing comma after null should not increase the arguments.length (function expression) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + 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 = function() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], null); + callCount = callCount + 1; +}; + +ref(42, null,); + +assert.sameValue(callCount, 1, 'function invoked exactly once'); diff --git a/test/language/arguments-object/func-expr-trailing-comma-single-args.js b/test/language/arguments-object/func-expr-trailing-comma-single-args.js new file mode 100644 index 0000000000..3fc9a95c35 --- /dev/null +++ b/test/language/arguments-object/func-expr-trailing-comma-single-args.js @@ -0,0 +1,34 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/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) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + 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 = function() { + assert.sameValue(arguments.length, 1); + assert.sameValue(arguments[0], 42); + callCount = callCount + 1; +}; + +ref(42,); + +assert.sameValue(callCount, 1, 'function invoked exactly once'); diff --git a/test/language/arguments-object/func-expr-trailing-comma-undefined.js b/test/language/arguments-object/func-expr-trailing-comma-undefined.js new file mode 100644 index 0000000000..1516acf3de --- /dev/null +++ b/test/language/arguments-object/func-expr-trailing-comma-undefined.js @@ -0,0 +1,35 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/trailing-comma-undefined.case +// - src/arguments/default/func-expr.template +/*--- +description: A trailing comma after undefined should not increase the arguments.length (function expression) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + 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 = function() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], undefined); + callCount = callCount + 1; +}; + +ref(42, undefined,); + +assert.sameValue(callCount, 1, 'function invoked exactly once'); diff --git a/test/language/arguments-object/gen-func-decl-trailing-comma-multiple-args.js b/test/language/arguments-object/gen-func-decl-trailing-comma-multiple-args.js new file mode 100644 index 0000000000..ff1ac6f609 --- /dev/null +++ b/test/language/arguments-object/gen-func-decl-trailing-comma-multiple-args.js @@ -0,0 +1,34 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/trailing-comma-multiple-args.case +// - src/arguments/default/gen-func-decl.template +/*--- +description: A trailing comma should not increase the arguments.length, using multiple args (generator function declaration) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + 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 +function* ref() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], 'TC39'); + callCount = callCount + 1; +} + +ref(42, 'TC39',).next(); + +assert.sameValue(callCount, 1, 'generator function invoked exactly once'); diff --git a/test/language/arguments-object/gen-func-decl-trailing-comma-null.js b/test/language/arguments-object/gen-func-decl-trailing-comma-null.js new file mode 100644 index 0000000000..7d3a1ecf3f --- /dev/null +++ b/test/language/arguments-object/gen-func-decl-trailing-comma-null.js @@ -0,0 +1,34 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/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) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + 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 +function* ref() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], null); + callCount = callCount + 1; +} + +ref(42, null,).next(); + +assert.sameValue(callCount, 1, 'generator function invoked exactly once'); diff --git a/test/language/arguments-object/gen-func-decl-trailing-comma-single-args.js b/test/language/arguments-object/gen-func-decl-trailing-comma-single-args.js new file mode 100644 index 0000000000..000a932a56 --- /dev/null +++ b/test/language/arguments-object/gen-func-decl-trailing-comma-single-args.js @@ -0,0 +1,33 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/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) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + 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 +function* ref() { + assert.sameValue(arguments.length, 1); + assert.sameValue(arguments[0], 42); + callCount = callCount + 1; +} + +ref(42,).next(); + +assert.sameValue(callCount, 1, 'generator function invoked exactly once'); diff --git a/test/language/arguments-object/gen-func-decl-trailing-comma-undefined.js b/test/language/arguments-object/gen-func-decl-trailing-comma-undefined.js new file mode 100644 index 0000000000..e1d772bc39 --- /dev/null +++ b/test/language/arguments-object/gen-func-decl-trailing-comma-undefined.js @@ -0,0 +1,34 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/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) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + 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 +function* ref() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], undefined); + callCount = callCount + 1; +} + +ref(42, undefined,).next(); + +assert.sameValue(callCount, 1, 'generator function invoked exactly once'); diff --git a/test/language/arguments-object/gen-func-expr-trailing-comma-multiple-args.js b/test/language/arguments-object/gen-func-expr-trailing-comma-multiple-args.js new file mode 100644 index 0000000000..63f0911461 --- /dev/null +++ b/test/language/arguments-object/gen-func-expr-trailing-comma-multiple-args.js @@ -0,0 +1,35 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/trailing-comma-multiple-args.case +// - src/arguments/default/gen-func-expr.template +/*--- +description: A trailing comma should not increase the arguments.length, using multiple args (generator function expression) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + 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 = function*() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], 'TC39'); + callCount = callCount + 1; +}; + +ref(42, 'TC39',).next(); + +assert.sameValue(callCount, 1, 'generator function invoked exactly once'); diff --git a/test/language/arguments-object/gen-func-expr-trailing-comma-null.js b/test/language/arguments-object/gen-func-expr-trailing-comma-null.js new file mode 100644 index 0000000000..cac540994a --- /dev/null +++ b/test/language/arguments-object/gen-func-expr-trailing-comma-null.js @@ -0,0 +1,35 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/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) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + 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 = function*() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], null); + callCount = callCount + 1; +}; + +ref(42, null,).next(); + +assert.sameValue(callCount, 1, 'generator function invoked exactly once'); diff --git a/test/language/arguments-object/gen-func-expr-trailing-comma-single-args.js b/test/language/arguments-object/gen-func-expr-trailing-comma-single-args.js new file mode 100644 index 0000000000..a8a977ec15 --- /dev/null +++ b/test/language/arguments-object/gen-func-expr-trailing-comma-single-args.js @@ -0,0 +1,34 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/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) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + 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 = function*() { + assert.sameValue(arguments.length, 1); + assert.sameValue(arguments[0], 42); + callCount = callCount + 1; +}; + +ref(42,).next(); + +assert.sameValue(callCount, 1, 'generator function invoked exactly once'); diff --git a/test/language/arguments-object/gen-func-expr-trailing-comma-undefined.js b/test/language/arguments-object/gen-func-expr-trailing-comma-undefined.js new file mode 100644 index 0000000000..8c9f829e65 --- /dev/null +++ b/test/language/arguments-object/gen-func-expr-trailing-comma-undefined.js @@ -0,0 +1,35 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/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) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + 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 = function*() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], undefined); + callCount = callCount + 1; +}; + +ref(42, undefined,).next(); + +assert.sameValue(callCount, 1, 'generator function invoked exactly once'); diff --git a/test/language/arguments-object/gen-meth-trailing-comma-multiple-args.js b/test/language/arguments-object/gen-meth-trailing-comma-multiple-args.js new file mode 100644 index 0000000000..633968c46b --- /dev/null +++ b/test/language/arguments-object/gen-meth-trailing-comma-multiple-args.js @@ -0,0 +1,38 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/trailing-comma-multiple-args.case +// - src/arguments/default/gen-meth.template +/*--- +description: A trailing comma should not increase the arguments.length, using multiple args (generator method) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +var obj = { + *method() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], 'TC39'); + callCount = callCount + 1; + } +}; + +obj.method(42, 'TC39',).next(); + +// Stores a reference `ref` for case evaluation +var ref = obj.method; + +assert.sameValue(callCount, 1, 'generator method invoked exactly once'); diff --git a/test/language/arguments-object/gen-meth-trailing-comma-null.js b/test/language/arguments-object/gen-meth-trailing-comma-null.js new file mode 100644 index 0000000000..f39d4abf8e --- /dev/null +++ b/test/language/arguments-object/gen-meth-trailing-comma-null.js @@ -0,0 +1,38 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/trailing-comma-null.case +// - src/arguments/default/gen-meth.template +/*--- +description: A trailing comma after null should not increase the arguments.length (generator method) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +var obj = { + *method() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], null); + callCount = callCount + 1; + } +}; + +obj.method(42, null,).next(); + +// Stores a reference `ref` for case evaluation +var ref = obj.method; + +assert.sameValue(callCount, 1, 'generator method invoked exactly once'); diff --git a/test/language/arguments-object/gen-meth-trailing-comma-single-args.js b/test/language/arguments-object/gen-meth-trailing-comma-single-args.js new file mode 100644 index 0000000000..b162f30b3e --- /dev/null +++ b/test/language/arguments-object/gen-meth-trailing-comma-single-args.js @@ -0,0 +1,37 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/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) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +var obj = { + *method() { + assert.sameValue(arguments.length, 1); + assert.sameValue(arguments[0], 42); + callCount = callCount + 1; + } +}; + +obj.method(42,).next(); + +// Stores a reference `ref` for case evaluation +var ref = obj.method; + +assert.sameValue(callCount, 1, 'generator method invoked exactly once'); diff --git a/test/language/arguments-object/gen-meth-trailing-comma-undefined.js b/test/language/arguments-object/gen-meth-trailing-comma-undefined.js new file mode 100644 index 0000000000..438aeae9ea --- /dev/null +++ b/test/language/arguments-object/gen-meth-trailing-comma-undefined.js @@ -0,0 +1,38 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/trailing-comma-undefined.case +// - src/arguments/default/gen-meth.template +/*--- +description: A trailing comma after undefined should not increase the arguments.length (generator method) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +var obj = { + *method() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], undefined); + callCount = callCount + 1; + } +}; + +obj.method(42, undefined,).next(); + +// Stores a reference `ref` for case evaluation +var ref = obj.method; + +assert.sameValue(callCount, 1, 'generator method invoked exactly once'); diff --git a/test/language/arguments-object/meth-trailing-comma-multiple-args.js b/test/language/arguments-object/meth-trailing-comma-multiple-args.js new file mode 100644 index 0000000000..6bd15dcc08 --- /dev/null +++ b/test/language/arguments-object/meth-trailing-comma-multiple-args.js @@ -0,0 +1,38 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/trailing-comma-multiple-args.case +// - src/arguments/default/meth.template +/*--- +description: A trailing comma should not increase the arguments.length, using multiple args (method) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +var obj = { + method() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], 'TC39'); + callCount = callCount + 1; + } +}; + +obj.method(42, 'TC39',); + +// Stores a reference `ref` for case evaluation +var ref = obj.method; + +assert.sameValue(callCount, 1, 'method invoked exactly once'); diff --git a/test/language/arguments-object/meth-trailing-comma-null.js b/test/language/arguments-object/meth-trailing-comma-null.js new file mode 100644 index 0000000000..9645f4739c --- /dev/null +++ b/test/language/arguments-object/meth-trailing-comma-null.js @@ -0,0 +1,38 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/trailing-comma-null.case +// - src/arguments/default/meth.template +/*--- +description: A trailing comma after null should not increase the arguments.length (method) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +var obj = { + method() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], null); + callCount = callCount + 1; + } +}; + +obj.method(42, null,); + +// Stores a reference `ref` for case evaluation +var ref = obj.method; + +assert.sameValue(callCount, 1, 'method invoked exactly once'); diff --git a/test/language/arguments-object/meth-trailing-comma-single-args.js b/test/language/arguments-object/meth-trailing-comma-single-args.js new file mode 100644 index 0000000000..571fe47a8f --- /dev/null +++ b/test/language/arguments-object/meth-trailing-comma-single-args.js @@ -0,0 +1,37 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/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) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +var obj = { + method() { + assert.sameValue(arguments.length, 1); + assert.sameValue(arguments[0], 42); + callCount = callCount + 1; + } +}; + +obj.method(42,); + +// Stores a reference `ref` for case evaluation +var ref = obj.method; + +assert.sameValue(callCount, 1, 'method invoked exactly once'); diff --git a/test/language/arguments-object/meth-trailing-comma-undefined.js b/test/language/arguments-object/meth-trailing-comma-undefined.js new file mode 100644 index 0000000000..aee2de278d --- /dev/null +++ b/test/language/arguments-object/meth-trailing-comma-undefined.js @@ -0,0 +1,38 @@ +// This file was procedurally generated from the following sources: +// - src/arguments/trailing-comma-undefined.case +// - src/arguments/default/meth.template +/*--- +description: A trailing comma after undefined should not increase the arguments.length (method) +esid: sec-arguments-exotic-objects +flags: [generated] +info: | + 9.4.4 Arguments Exotic Objects + + Most ECMAScript functions make an arguments object available to their code. Depending upon the + characteristics of the function definition, its arguments object is either an ordinary object + or an arguments exotic object. + + Trailing comma in the arguments list + + 12.3 Left-Hand-Side Expressions + + Arguments[Yield, Await] : ( ArgumentList[?Yield, ?Await] , ) +---*/ + + +var callCount = 0; +var obj = { + method() { + assert.sameValue(arguments.length, 2); + assert.sameValue(arguments[0], 42); + assert.sameValue(arguments[1], undefined); + callCount = callCount + 1; + } +}; + +obj.method(42, undefined,); + +// Stores a reference `ref` for case evaluation +var ref = obj.method; + +assert.sameValue(callCount, 1, 'method invoked exactly once'); -- GitLab