From d8efa93becc6311e9884d420dffea3a50cd979d1 Mon Sep 17 00:00:00 2001 From: Rick Waldron Date: Wed, 14 Oct 2020 14:02:44 -0400 Subject: [PATCH] Generate tests --- ...body-direct-eval-err-contains-arguments.js | 2 +- ...vate-direct-eval-err-contains-arguments.js | 2 +- .../direct-eval-err-contains-arguments.js | 2 +- .../indirect-eval-contains-arguments.js | 22 +++++++++++ .../indirect-eval-err-contains-arguments.js | 36 ----------------- ...sted-direct-eval-err-contains-arguments.js | 2 +- ...nested-indirect-eval-contains-arguments.js | 21 ++++++++++ ...ed-indirect-eval-err-contains-arguments.js | 36 ----------------- ...vate-direct-eval-err-contains-arguments.js | 2 +- ...rivate-indirect-eval-contains-arguments.js | 24 ++++++++++++ ...te-indirect-eval-err-contains-arguments.js | 39 ------------------- ...vate-direct-eval-err-contains-arguments.js | 2 +- ...rivate-indirect-eval-contains-arguments.js | 24 ++++++++++++ ...te-indirect-eval-err-contains-arguments.js | 36 ----------------- ...body-direct-eval-err-contains-arguments.js | 2 +- ...vate-direct-eval-err-contains-arguments.js | 2 +- .../direct-eval-err-contains-arguments.js | 2 +- .../indirect-eval-contains-arguments.js | 21 ++++++++++ .../indirect-eval-err-contains-arguments.js | 36 ----------------- ...sted-direct-eval-err-contains-arguments.js | 2 +- ...nested-indirect-eval-contains-arguments.js | 23 +++++++++++ ...ed-indirect-eval-err-contains-arguments.js | 39 ------------------- ...vate-direct-eval-err-contains-arguments.js | 2 +- ...rivate-indirect-eval-contains-arguments.js | 24 ++++++++++++ ...te-indirect-eval-err-contains-arguments.js | 36 ----------------- ...vate-direct-eval-err-contains-arguments.js | 2 +- ...rivate-indirect-eval-contains-arguments.js | 23 +++++++++++ ...te-indirect-eval-err-contains-arguments.js | 36 ----------------- 28 files changed, 194 insertions(+), 306 deletions(-) create mode 100644 test/language/expressions/class/elements/indirect-eval-contains-arguments.js delete mode 100644 test/language/expressions/class/elements/indirect-eval-err-contains-arguments.js create mode 100644 test/language/expressions/class/elements/nested-indirect-eval-contains-arguments.js delete mode 100644 test/language/expressions/class/elements/nested-indirect-eval-err-contains-arguments.js create mode 100644 test/language/expressions/class/elements/nested-private-indirect-eval-contains-arguments.js delete mode 100644 test/language/expressions/class/elements/nested-private-indirect-eval-err-contains-arguments.js create mode 100644 test/language/expressions/class/elements/private-indirect-eval-contains-arguments.js delete mode 100644 test/language/expressions/class/elements/private-indirect-eval-err-contains-arguments.js create mode 100644 test/language/statements/class/elements/indirect-eval-contains-arguments.js delete mode 100644 test/language/statements/class/elements/indirect-eval-err-contains-arguments.js create mode 100644 test/language/statements/class/elements/nested-indirect-eval-contains-arguments.js delete mode 100644 test/language/statements/class/elements/nested-indirect-eval-err-contains-arguments.js create mode 100644 test/language/statements/class/elements/nested-private-indirect-eval-contains-arguments.js delete mode 100644 test/language/statements/class/elements/nested-private-indirect-eval-err-contains-arguments.js create mode 100644 test/language/statements/class/elements/private-indirect-eval-contains-arguments.js delete mode 100644 test/language/statements/class/elements/private-indirect-eval-err-contains-arguments.js diff --git a/test/language/expressions/class/elements/arrow-body-direct-eval-err-contains-arguments.js b/test/language/expressions/class/elements/arrow-body-direct-eval-err-contains-arguments.js index 7a76c8bb7b..fd203c073b 100644 --- a/test/language/expressions/class/elements/arrow-body-direct-eval-err-contains-arguments.js +++ b/test/language/expressions/class/elements/arrow-body-direct-eval-err-contains-arguments.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: // - src/class-elements/eval-err-contains-arguments.case -// - src/class-elements/initializer-eval-arguments/cls-expr-fields-eval-arrow-body.template +// - src/class-elements/initializer-direct-eval-arguments/cls-expr-fields-eval-arrow-body.template /*--- description: error if `arguments` in StatementList of eval (direct eval) esid: sec-performeval-rules-in-initializer diff --git a/test/language/expressions/class/elements/arrow-body-private-direct-eval-err-contains-arguments.js b/test/language/expressions/class/elements/arrow-body-private-direct-eval-err-contains-arguments.js index ce6c619359..c186f8e0f3 100644 --- a/test/language/expressions/class/elements/arrow-body-private-direct-eval-err-contains-arguments.js +++ b/test/language/expressions/class/elements/arrow-body-private-direct-eval-err-contains-arguments.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: // - src/class-elements/eval-err-contains-arguments.case -// - src/class-elements/initializer-eval-arguments/cls-expr-private-fields-eval-arrow-body.template +// - src/class-elements/initializer-direct-eval-arguments/cls-expr-private-fields-eval-arrow-body.template /*--- description: error if `arguments` in StatementList of eval (direct eval) esid: sec-performeval-rules-in-initializer diff --git a/test/language/expressions/class/elements/direct-eval-err-contains-arguments.js b/test/language/expressions/class/elements/direct-eval-err-contains-arguments.js index b60189c852..533d77105a 100644 --- a/test/language/expressions/class/elements/direct-eval-err-contains-arguments.js +++ b/test/language/expressions/class/elements/direct-eval-err-contains-arguments.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: // - src/class-elements/eval-err-contains-arguments.case -// - src/class-elements/initializer-eval-arguments/cls-expr-fields-eval.template +// - src/class-elements/initializer-direct-eval-arguments/cls-expr-fields-eval.template /*--- description: error if `arguments` in StatementList of eval (direct eval) esid: sec-performeval-rules-in-initializer diff --git a/test/language/expressions/class/elements/indirect-eval-contains-arguments.js b/test/language/expressions/class/elements/indirect-eval-contains-arguments.js new file mode 100644 index 0000000000..14dc7dd8d7 --- /dev/null +++ b/test/language/expressions/class/elements/indirect-eval-contains-arguments.js @@ -0,0 +1,22 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/eval-contains-arguments.case +// - src/class-elements/initializer-indirect-eval-arguments/cls-expr-fields-indirect-eval.template +/*--- +description: No error if `arguments` in StatementList of eval (indirect eval) +esid: sec-performeval-rules-in-initializer +features: [class, class-fields-public] +flags: [generated, noStrict] +info: | + For indirect eval, the "Additional Early Error Rules for Eval Inside Initializer" + (in #sec-performeval-rules-in-initializer) are NOT applicable. + +---*/ + + +var arguments = 1; +var executed = false; +var C = class { + x = (0, eval)('arguments;'); +} + +assert.sameValue(new C().x, arguments); diff --git a/test/language/expressions/class/elements/indirect-eval-err-contains-arguments.js b/test/language/expressions/class/elements/indirect-eval-err-contains-arguments.js deleted file mode 100644 index 44536da099..0000000000 --- a/test/language/expressions/class/elements/indirect-eval-err-contains-arguments.js +++ /dev/null @@ -1,36 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/class-elements/eval-err-contains-arguments.case -// - src/class-elements/initializer-eval-arguments/cls-expr-fields-indirect-eval.template -/*--- -description: error if `arguments` in StatementList of eval (indirect eval) -esid: sec-performeval-rules-in-initializer -features: [class, class-fields-public] -flags: [generated] -info: | - Additional Early Error Rules for Eval Inside Initializer - These static semantics are applied by PerformEval when a direct eval call occurs inside a class field initializer. - ScriptBody : StatementList - - It is a Syntax Error if ContainsArguments of StatementList is true. - ... - - Static Semantics: ContainsArguments - IdentifierReference : Identifier - - 1. If the StringValue of Identifier is "arguments", return true. - ... - For all other grammatical productions, recurse on all nonterminals. If any piece returns true, then return true. Otherwise return false. - ----*/ - - -var executed = false; -var C = class { - x = (0, eval)('executed = true; arguments;'); -} - -assert.throws(ReferenceError, function() { - new C(); -}); - -assert.sameValue(executed, true); diff --git a/test/language/expressions/class/elements/nested-direct-eval-err-contains-arguments.js b/test/language/expressions/class/elements/nested-direct-eval-err-contains-arguments.js index 686c5aefa2..2a7de60e15 100644 --- a/test/language/expressions/class/elements/nested-direct-eval-err-contains-arguments.js +++ b/test/language/expressions/class/elements/nested-direct-eval-err-contains-arguments.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: // - src/class-elements/eval-err-contains-arguments.case -// - src/class-elements/initializer-eval-arguments/cls-expr-fields-eval-nested.template +// - src/class-elements/initializer-direct-eval-arguments/cls-expr-fields-eval-nested.template /*--- description: error if `arguments` in StatementList of eval (direct eval) esid: sec-performeval-rules-in-initializer diff --git a/test/language/expressions/class/elements/nested-indirect-eval-contains-arguments.js b/test/language/expressions/class/elements/nested-indirect-eval-contains-arguments.js new file mode 100644 index 0000000000..45f1106c00 --- /dev/null +++ b/test/language/expressions/class/elements/nested-indirect-eval-contains-arguments.js @@ -0,0 +1,21 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/eval-contains-arguments.case +// - src/class-elements/initializer-indirect-eval-arguments/cls-expr-fields-indirect-eval-nested.template +/*--- +description: No error if `arguments` in StatementList of eval (indirect eval) +esid: sec-performeval-rules-in-initializer +features: [class, class-fields-public] +flags: [generated, noStrict] +info: | + For indirect eval, the "Additional Early Error Rules for Eval Inside Initializer" + (in #sec-performeval-rules-in-initializer) are NOT applicable. + +---*/ + + +var arguments = 1; +var C = class { + x = () => (0, eval)('arguments;'); +} + +assert.sameValue(new C().x(), arguments); diff --git a/test/language/expressions/class/elements/nested-indirect-eval-err-contains-arguments.js b/test/language/expressions/class/elements/nested-indirect-eval-err-contains-arguments.js deleted file mode 100644 index c485d1e00f..0000000000 --- a/test/language/expressions/class/elements/nested-indirect-eval-err-contains-arguments.js +++ /dev/null @@ -1,36 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/class-elements/eval-err-contains-arguments.case -// - src/class-elements/initializer-eval-arguments/cls-expr-fields-indirect-eval-nested.template -/*--- -description: error if `arguments` in StatementList of eval (indirect eval) -esid: sec-performeval-rules-in-initializer -features: [class, class-fields-public] -flags: [generated] -info: | - Additional Early Error Rules for Eval Inside Initializer - These static semantics are applied by PerformEval when a direct eval call occurs inside a class field initializer. - ScriptBody : StatementList - - It is a Syntax Error if ContainsArguments of StatementList is true. - ... - - Static Semantics: ContainsArguments - IdentifierReference : Identifier - - 1. If the StringValue of Identifier is "arguments", return true. - ... - For all other grammatical productions, recurse on all nonterminals. If any piece returns true, then return true. Otherwise return false. - ----*/ - - -var executed = false; -var C = class { - x = () => (0, eval)('executed = true; arguments;'); -} - -assert.throws(ReferenceError, function() { - new C().x(); -}); - -assert.sameValue(executed, true); diff --git a/test/language/expressions/class/elements/nested-private-direct-eval-err-contains-arguments.js b/test/language/expressions/class/elements/nested-private-direct-eval-err-contains-arguments.js index 42a8b97e8d..123d15cd21 100644 --- a/test/language/expressions/class/elements/nested-private-direct-eval-err-contains-arguments.js +++ b/test/language/expressions/class/elements/nested-private-direct-eval-err-contains-arguments.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: // - src/class-elements/eval-err-contains-arguments.case -// - src/class-elements/initializer-eval-arguments/cls-expr-private-fields-eval-nested.template +// - src/class-elements/initializer-direct-eval-arguments/cls-expr-private-fields-eval-nested.template /*--- description: error if `arguments` in StatementList of eval (direct eval) esid: sec-performeval-rules-in-initializer diff --git a/test/language/expressions/class/elements/nested-private-indirect-eval-contains-arguments.js b/test/language/expressions/class/elements/nested-private-indirect-eval-contains-arguments.js new file mode 100644 index 0000000000..5377c40381 --- /dev/null +++ b/test/language/expressions/class/elements/nested-private-indirect-eval-contains-arguments.js @@ -0,0 +1,24 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/eval-contains-arguments.case +// - src/class-elements/initializer-indirect-eval-arguments/cls-expr-private-fields-indirect-eval-nested.template +/*--- +description: No error if `arguments` in StatementList of eval (indirect eval) +esid: sec-performeval-rules-in-initializer +features: [class, class-fields-public, class-fields-private] +flags: [generated, noStrict] +info: | + For indirect eval, the "Additional Early Error Rules for Eval Inside Initializer" + (in #sec-performeval-rules-in-initializer) are NOT applicable. + +---*/ + + +var arguments = 1; +var C = class { + #x = () => (0, eval)('arguments;'); + x() { + return this.#x(); + } +} + +assert.sameValue(new C().x(), arguments); diff --git a/test/language/expressions/class/elements/nested-private-indirect-eval-err-contains-arguments.js b/test/language/expressions/class/elements/nested-private-indirect-eval-err-contains-arguments.js deleted file mode 100644 index 64e85d6856..0000000000 --- a/test/language/expressions/class/elements/nested-private-indirect-eval-err-contains-arguments.js +++ /dev/null @@ -1,39 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/class-elements/eval-err-contains-arguments.case -// - src/class-elements/initializer-eval-arguments/cls-expr-private-fields-indirect-eval-nested.template -/*--- -description: error if `arguments` in StatementList of eval (indirect eval) -esid: sec-performeval-rules-in-initializer -features: [class, class-fields-public, class-fields-private] -flags: [generated] -info: | - Additional Early Error Rules for Eval Inside Initializer - These static semantics are applied by PerformEval when a direct eval call occurs inside a class field initializer. - ScriptBody : StatementList - - It is a Syntax Error if ContainsArguments of StatementList is true. - ... - - Static Semantics: ContainsArguments - IdentifierReference : Identifier - - 1. If the StringValue of Identifier is "arguments", return true. - ... - For all other grammatical productions, recurse on all nonterminals. If any piece returns true, then return true. Otherwise return false. - ----*/ - - -var executed = false; -var C = class { - #x = () => (0, eval)('executed = true; arguments;'); - x() { - this.#x(); - } -} - -assert.throws(ReferenceError, function() { - new C().x(); -}); - -assert.sameValue(executed, true); diff --git a/test/language/expressions/class/elements/private-direct-eval-err-contains-arguments.js b/test/language/expressions/class/elements/private-direct-eval-err-contains-arguments.js index 8bce422c9f..d171430374 100644 --- a/test/language/expressions/class/elements/private-direct-eval-err-contains-arguments.js +++ b/test/language/expressions/class/elements/private-direct-eval-err-contains-arguments.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: // - src/class-elements/eval-err-contains-arguments.case -// - src/class-elements/initializer-eval-arguments/cls-expr-private-fields-eval.template +// - src/class-elements/initializer-direct-eval-arguments/cls-expr-private-fields-eval.template /*--- description: error if `arguments` in StatementList of eval (direct eval) esid: sec-performeval-rules-in-initializer diff --git a/test/language/expressions/class/elements/private-indirect-eval-contains-arguments.js b/test/language/expressions/class/elements/private-indirect-eval-contains-arguments.js new file mode 100644 index 0000000000..a805bbc71c --- /dev/null +++ b/test/language/expressions/class/elements/private-indirect-eval-contains-arguments.js @@ -0,0 +1,24 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/eval-contains-arguments.case +// - src/class-elements/initializer-indirect-eval-arguments/cls-expr-private-fields-indirect-eval.template +/*--- +description: No error if `arguments` in StatementList of eval (indirect eval) +esid: sec-performeval-rules-in-initializer +features: [class, class-fields-public, class-fields-private] +flags: [generated, noStrict] +info: | + For indirect eval, the "Additional Early Error Rules for Eval Inside Initializer" + (in #sec-performeval-rules-in-initializer) are NOT applicable. + +---*/ + + +var arguments = 1; +var C = class { + #x = (0, eval)('arguments;'); + x() { + return this.#x; + } +} + +assert.sameValue(new C().x(), arguments); diff --git a/test/language/expressions/class/elements/private-indirect-eval-err-contains-arguments.js b/test/language/expressions/class/elements/private-indirect-eval-err-contains-arguments.js deleted file mode 100644 index 2d18028635..0000000000 --- a/test/language/expressions/class/elements/private-indirect-eval-err-contains-arguments.js +++ /dev/null @@ -1,36 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/class-elements/eval-err-contains-arguments.case -// - src/class-elements/initializer-eval-arguments/cls-expr-private-fields-indirect-eval.template -/*--- -description: error if `arguments` in StatementList of eval (indirect eval) -esid: sec-performeval-rules-in-initializer -features: [class, class-fields-public, class-fields-private] -flags: [generated] -info: | - Additional Early Error Rules for Eval Inside Initializer - These static semantics are applied by PerformEval when a direct eval call occurs inside a class field initializer. - ScriptBody : StatementList - - It is a Syntax Error if ContainsArguments of StatementList is true. - ... - - Static Semantics: ContainsArguments - IdentifierReference : Identifier - - 1. If the StringValue of Identifier is "arguments", return true. - ... - For all other grammatical productions, recurse on all nonterminals. If any piece returns true, then return true. Otherwise return false. - ----*/ - - -var executed = false; -var C = class { - #x = (0, eval)('executed = true; arguments;'); -} - -assert.throws(ReferenceError, function() { - new C(); -}); - -assert.sameValue(executed, true); diff --git a/test/language/statements/class/elements/arrow-body-direct-eval-err-contains-arguments.js b/test/language/statements/class/elements/arrow-body-direct-eval-err-contains-arguments.js index 92ace77361..5806fbc22d 100644 --- a/test/language/statements/class/elements/arrow-body-direct-eval-err-contains-arguments.js +++ b/test/language/statements/class/elements/arrow-body-direct-eval-err-contains-arguments.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: // - src/class-elements/eval-err-contains-arguments.case -// - src/class-elements/initializer-eval-arguments/cls-decl-fields-eval-arrow-body.template +// - src/class-elements/initializer-direct-eval-arguments/cls-decl-fields-eval-arrow-body.template /*--- description: error if `arguments` in StatementList of eval (direct eval) esid: sec-performeval-rules-in-initializer diff --git a/test/language/statements/class/elements/arrow-body-private-direct-eval-err-contains-arguments.js b/test/language/statements/class/elements/arrow-body-private-direct-eval-err-contains-arguments.js index 35cda00172..5b59a79907 100644 --- a/test/language/statements/class/elements/arrow-body-private-direct-eval-err-contains-arguments.js +++ b/test/language/statements/class/elements/arrow-body-private-direct-eval-err-contains-arguments.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: // - src/class-elements/eval-err-contains-arguments.case -// - src/class-elements/initializer-eval-arguments/cls-decl-private-fields-eval-arrow-body.template +// - src/class-elements/initializer-direct-eval-arguments/cls-decl-private-fields-eval-arrow-body.template /*--- description: error if `arguments` in StatementList of eval (direct eval) esid: sec-performeval-rules-in-initializer diff --git a/test/language/statements/class/elements/direct-eval-err-contains-arguments.js b/test/language/statements/class/elements/direct-eval-err-contains-arguments.js index b9dede6c07..ad27fb6afa 100644 --- a/test/language/statements/class/elements/direct-eval-err-contains-arguments.js +++ b/test/language/statements/class/elements/direct-eval-err-contains-arguments.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: // - src/class-elements/eval-err-contains-arguments.case -// - src/class-elements/initializer-eval-arguments/cls-decl-fields-eval.template +// - src/class-elements/initializer-direct-eval-arguments/cls-decl-fields-eval.template /*--- description: error if `arguments` in StatementList of eval (direct eval) esid: sec-performeval-rules-in-initializer diff --git a/test/language/statements/class/elements/indirect-eval-contains-arguments.js b/test/language/statements/class/elements/indirect-eval-contains-arguments.js new file mode 100644 index 0000000000..34676b5db0 --- /dev/null +++ b/test/language/statements/class/elements/indirect-eval-contains-arguments.js @@ -0,0 +1,21 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/eval-contains-arguments.case +// - src/class-elements/initializer-indirect-eval-arguments/cls-decl-fields-indirect-eval.template +/*--- +description: No error if `arguments` in StatementList of eval (indirect eval) +esid: sec-performeval-rules-in-initializer +features: [class, class-fields-public] +flags: [generated, noStrict] +info: | + For indirect eval, the "Additional Early Error Rules for Eval Inside Initializer" + (in #sec-performeval-rules-in-initializer) are NOT applicable. + +---*/ + + +var arguments = 1; +class C { + x = (0, eval)('arguments;'); +} + +assert.sameValue(new C().x, arguments); diff --git a/test/language/statements/class/elements/indirect-eval-err-contains-arguments.js b/test/language/statements/class/elements/indirect-eval-err-contains-arguments.js deleted file mode 100644 index b9a8ae0524..0000000000 --- a/test/language/statements/class/elements/indirect-eval-err-contains-arguments.js +++ /dev/null @@ -1,36 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/class-elements/eval-err-contains-arguments.case -// - src/class-elements/initializer-eval-arguments/cls-decl-fields-indirect-eval.template -/*--- -description: error if `arguments` in StatementList of eval (indirect eval) -esid: sec-performeval-rules-in-initializer -features: [class, class-fields-public] -flags: [generated] -info: | - Additional Early Error Rules for Eval Inside Initializer - These static semantics are applied by PerformEval when a direct eval call occurs inside a class field initializer. - ScriptBody : StatementList - - It is a Syntax Error if ContainsArguments of StatementList is true. - ... - - Static Semantics: ContainsArguments - IdentifierReference : Identifier - - 1. If the StringValue of Identifier is "arguments", return true. - ... - For all other grammatical productions, recurse on all nonterminals. If any piece returns true, then return true. Otherwise return false. - ----*/ - - -var executed = false; -class C { - x = (0, eval)('executed = true; arguments;'); -} - -assert.throws(ReferenceError, function() { - new C(); -}); - -assert.sameValue(executed, true); diff --git a/test/language/statements/class/elements/nested-direct-eval-err-contains-arguments.js b/test/language/statements/class/elements/nested-direct-eval-err-contains-arguments.js index 592ff91c0a..c92d36dc95 100644 --- a/test/language/statements/class/elements/nested-direct-eval-err-contains-arguments.js +++ b/test/language/statements/class/elements/nested-direct-eval-err-contains-arguments.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: // - src/class-elements/eval-err-contains-arguments.case -// - src/class-elements/initializer-eval-arguments/cls-decl-fields-eval-nested.template +// - src/class-elements/initializer-direct-eval-arguments/cls-decl-fields-eval-nested.template /*--- description: error if `arguments` in StatementList of eval (direct eval) esid: sec-performeval-rules-in-initializer diff --git a/test/language/statements/class/elements/nested-indirect-eval-contains-arguments.js b/test/language/statements/class/elements/nested-indirect-eval-contains-arguments.js new file mode 100644 index 0000000000..1562b874a8 --- /dev/null +++ b/test/language/statements/class/elements/nested-indirect-eval-contains-arguments.js @@ -0,0 +1,23 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/eval-contains-arguments.case +// - src/class-elements/initializer-indirect-eval-arguments/cls-decl-fields-indirect-eval-nested.template +/*--- +description: No error if `arguments` in StatementList of eval (indirect eval) +esid: sec-performeval-rules-in-initializer +features: [class, class-fields-public] +flags: [generated, noStrict] +info: | + For indirect eval, the "Additional Early Error Rules for Eval Inside Initializer" + (in #sec-performeval-rules-in-initializer) are NOT applicable. + +---*/ + + +var arguments = 1; +class C { + x = () => { + var t = () => (0, eval)('arguments;'); + return t(); + } +} +assert.sameValue(new C().x(), arguments); diff --git a/test/language/statements/class/elements/nested-indirect-eval-err-contains-arguments.js b/test/language/statements/class/elements/nested-indirect-eval-err-contains-arguments.js deleted file mode 100644 index cdb7e4d4f6..0000000000 --- a/test/language/statements/class/elements/nested-indirect-eval-err-contains-arguments.js +++ /dev/null @@ -1,39 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/class-elements/eval-err-contains-arguments.case -// - src/class-elements/initializer-eval-arguments/cls-decl-fields-indirect-eval-nested.template -/*--- -description: error if `arguments` in StatementList of eval (indirect eval) -esid: sec-performeval-rules-in-initializer -features: [class, class-fields-public] -flags: [generated] -info: | - Additional Early Error Rules for Eval Inside Initializer - These static semantics are applied by PerformEval when a direct eval call occurs inside a class field initializer. - ScriptBody : StatementList - - It is a Syntax Error if ContainsArguments of StatementList is true. - ... - - Static Semantics: ContainsArguments - IdentifierReference : Identifier - - 1. If the StringValue of Identifier is "arguments", return true. - ... - For all other grammatical productions, recurse on all nonterminals. If any piece returns true, then return true. Otherwise return false. - ----*/ - - -var executed = false; -class C { - x = () => { - var t = () => { (0, eval)('executed = true; arguments;'); }; - t(); - } -} - -assert.throws(ReferenceError, function() { - new C().x(); -}); - -assert.sameValue(executed, false); diff --git a/test/language/statements/class/elements/nested-private-direct-eval-err-contains-arguments.js b/test/language/statements/class/elements/nested-private-direct-eval-err-contains-arguments.js index 348280e8ad..52fab3e9ae 100644 --- a/test/language/statements/class/elements/nested-private-direct-eval-err-contains-arguments.js +++ b/test/language/statements/class/elements/nested-private-direct-eval-err-contains-arguments.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: // - src/class-elements/eval-err-contains-arguments.case -// - src/class-elements/initializer-eval-arguments/cls-decl-private-fields-eval-nested.template +// - src/class-elements/initializer-direct-eval-arguments/cls-decl-private-fields-eval-nested.template /*--- description: error if `arguments` in StatementList of eval (direct eval) esid: sec-performeval-rules-in-initializer diff --git a/test/language/statements/class/elements/nested-private-indirect-eval-contains-arguments.js b/test/language/statements/class/elements/nested-private-indirect-eval-contains-arguments.js new file mode 100644 index 0000000000..f0a4547a8c --- /dev/null +++ b/test/language/statements/class/elements/nested-private-indirect-eval-contains-arguments.js @@ -0,0 +1,24 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/eval-contains-arguments.case +// - src/class-elements/initializer-indirect-eval-arguments/cls-decl-private-fields-indirect-eval-nested.template +/*--- +description: No error if `arguments` in StatementList of eval (indirect eval) +esid: sec-performeval-rules-in-initializer +features: [class, class-fields-public, class-fields-private] +flags: [generated, noStrict] +info: | + For indirect eval, the "Additional Early Error Rules for Eval Inside Initializer" + (in #sec-performeval-rules-in-initializer) are NOT applicable. + +---*/ + + +var arguments = 1; +class C { + #x = (0, eval)('arguments;'); + x() { + return this.#x; + } +} + +assert.sameValue(new C().x(), arguments); diff --git a/test/language/statements/class/elements/nested-private-indirect-eval-err-contains-arguments.js b/test/language/statements/class/elements/nested-private-indirect-eval-err-contains-arguments.js deleted file mode 100644 index fbcfc71441..0000000000 --- a/test/language/statements/class/elements/nested-private-indirect-eval-err-contains-arguments.js +++ /dev/null @@ -1,36 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/class-elements/eval-err-contains-arguments.case -// - src/class-elements/initializer-eval-arguments/cls-decl-private-fields-indirect-eval-nested.template -/*--- -description: error if `arguments` in StatementList of eval (indirect eval) -esid: sec-performeval-rules-in-initializer -features: [class, class-fields-public, class-fields-private] -flags: [generated] -info: | - Additional Early Error Rules for Eval Inside Initializer - These static semantics are applied by PerformEval when a direct eval call occurs inside a class field initializer. - ScriptBody : StatementList - - It is a Syntax Error if ContainsArguments of StatementList is true. - ... - - Static Semantics: ContainsArguments - IdentifierReference : Identifier - - 1. If the StringValue of Identifier is "arguments", return true. - ... - For all other grammatical productions, recurse on all nonterminals. If any piece returns true, then return true. Otherwise return false. - ----*/ - - -var executed = false; -class C { - #x = (0, eval)('executed = true; arguments;'); -} - -assert.throws(ReferenceError, function() { - new C(); -}); - -assert.sameValue(executed, true); diff --git a/test/language/statements/class/elements/private-direct-eval-err-contains-arguments.js b/test/language/statements/class/elements/private-direct-eval-err-contains-arguments.js index 9ee40de219..dcf253f6ae 100644 --- a/test/language/statements/class/elements/private-direct-eval-err-contains-arguments.js +++ b/test/language/statements/class/elements/private-direct-eval-err-contains-arguments.js @@ -1,6 +1,6 @@ // This file was procedurally generated from the following sources: // - src/class-elements/eval-err-contains-arguments.case -// - src/class-elements/initializer-eval-arguments/cls-decl-private-fields-eval.template +// - src/class-elements/initializer-direct-eval-arguments/cls-decl-private-fields-eval.template /*--- description: error if `arguments` in StatementList of eval (direct eval) esid: sec-performeval-rules-in-initializer diff --git a/test/language/statements/class/elements/private-indirect-eval-contains-arguments.js b/test/language/statements/class/elements/private-indirect-eval-contains-arguments.js new file mode 100644 index 0000000000..6faf79cb9e --- /dev/null +++ b/test/language/statements/class/elements/private-indirect-eval-contains-arguments.js @@ -0,0 +1,23 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/eval-contains-arguments.case +// - src/class-elements/initializer-indirect-eval-arguments/cls-decl-private-fields-indirect-eval.template +/*--- +description: No error if `arguments` in StatementList of eval (indirect eval) +esid: sec-performeval-rules-in-initializer +features: [class, class-fields-public, class-fields-private] +flags: [generated, noStrict] +info: | + For indirect eval, the "Additional Early Error Rules for Eval Inside Initializer" + (in #sec-performeval-rules-in-initializer) are NOT applicable. + +---*/ + + +var arguments = 1; +class C { + #x = (0, eval)('arguments;'); + x() { + return this.#x; + } +} +assert.sameValue(new C().x(), arguments); diff --git a/test/language/statements/class/elements/private-indirect-eval-err-contains-arguments.js b/test/language/statements/class/elements/private-indirect-eval-err-contains-arguments.js deleted file mode 100644 index 90a8a6dea8..0000000000 --- a/test/language/statements/class/elements/private-indirect-eval-err-contains-arguments.js +++ /dev/null @@ -1,36 +0,0 @@ -// This file was procedurally generated from the following sources: -// - src/class-elements/eval-err-contains-arguments.case -// - src/class-elements/initializer-eval-arguments/cls-decl-private-fields-indirect-eval.template -/*--- -description: error if `arguments` in StatementList of eval (indirect eval) -esid: sec-performeval-rules-in-initializer -features: [class, class-fields-public, class-fields-private] -flags: [generated] -info: | - Additional Early Error Rules for Eval Inside Initializer - These static semantics are applied by PerformEval when a direct eval call occurs inside a class field initializer. - ScriptBody : StatementList - - It is a Syntax Error if ContainsArguments of StatementList is true. - ... - - Static Semantics: ContainsArguments - IdentifierReference : Identifier - - 1. If the StringValue of Identifier is "arguments", return true. - ... - For all other grammatical productions, recurse on all nonterminals. If any piece returns true, then return true. Otherwise return false. - ----*/ - - -var executed = false; -class C { - #x = (0, eval)('executed = true; arguments;'); -} - -assert.throws(ReferenceError, function() { - new C(); -}); - -assert.sameValue(executed, true);