From ab540afaa1ea8f7cb75ac2b89c2b8ee405789bb1 Mon Sep 17 00:00:00 2001 From: Leo Balter Date: Wed, 7 Nov 2018 18:14:13 -0500 Subject: [PATCH] Generate tests --- ...-expression-private-method-accessor-get.js | 42 +++++++++++++++++ ...-expression-private-method-accessor-set.js | 42 +++++++++++++++++ ...all-expression-private-method-async-gen.js | 4 +- ...te-call-expression-private-method-async.js | 4 +- ...lete-call-expression-private-method-gen.js | 4 +- ...r-delete-call-expression-private-method.js | 4 +- ...te-call-expression-private-no-reference.js | 42 +++++++++++++++++ ...-err-delete-call-expression-privatename.js | 2 +- ...-expression-private-method-accessor-get.js | 41 +++++++++++++++++ ...-expression-private-method-accessor-set.js | 41 +++++++++++++++++ ...ber-expression-private-method-async-gen.js | 6 +-- ...-member-expression-private-method-async.js | 6 +-- ...te-member-expression-private-method-gen.js | 6 +-- ...delete-member-expression-private-method.js | 2 +- ...-member-expression-private-no-reference.js | 40 +++++++++++++++++ ...rr-delete-member-expression-privatename.js | 4 +- ...-expression-private-method-accessor-get.js | 36 +++++++++++++++ ...-expression-private-method-accessor-set.js | 36 +++++++++++++++ ...all-expression-private-method-async-gen.js | 4 +- ...te-call-expression-private-method-async.js | 4 +- ...lete-call-expression-private-method-gen.js | 4 +- ...r-delete-call-expression-private-method.js | 4 +- ...te-call-expression-private-no-reference.js | 36 +++++++++++++++ ...-err-delete-call-expression-privatename.js | 2 +- ...-expression-private-method-accessor-get.js | 35 +++++++++++++++ ...-expression-private-method-accessor-set.js | 35 +++++++++++++++ ...ber-expression-private-method-async-gen.js | 6 +-- ...-member-expression-private-method-async.js | 6 +-- ...te-member-expression-private-method-gen.js | 6 +-- ...delete-member-expression-private-method.js | 2 +- ...-member-expression-private-no-reference.js | 34 ++++++++++++++ ...rr-delete-member-expression-privatename.js | 4 +- ...-expression-private-method-accessor-get.js | 42 +++++++++++++++++ ...-expression-private-method-accessor-set.js | 42 +++++++++++++++++ ...all-expression-private-method-async-gen.js | 4 +- ...te-call-expression-private-method-async.js | 4 +- ...lete-call-expression-private-method-gen.js | 4 +- ...r-delete-call-expression-private-method.js | 4 +- ...te-call-expression-private-no-reference.js | 42 +++++++++++++++++ ...-err-delete-call-expression-privatename.js | 2 +- ...-expression-private-method-accessor-get.js | 41 +++++++++++++++++ ...-expression-private-method-accessor-set.js | 41 +++++++++++++++++ ...ber-expression-private-method-async-gen.js | 6 +-- ...-member-expression-private-method-async.js | 6 +-- ...te-member-expression-private-method-gen.js | 6 +-- ...delete-member-expression-private-method.js | 2 +- ...-member-expression-private-no-reference.js | 40 +++++++++++++++++ ...rr-delete-member-expression-privatename.js | 4 +- ...-expression-private-method-accessor-get.js | 45 +++++++++++++++++++ ...-expression-private-method-accessor-set.js | 45 +++++++++++++++++++ ...all-expression-private-method-async-gen.js | 4 +- ...te-call-expression-private-method-async.js | 4 +- ...lete-call-expression-private-method-gen.js | 4 +- ...r-delete-call-expression-private-method.js | 4 +- ...te-call-expression-private-no-reference.js | 45 +++++++++++++++++++ ...-err-delete-call-expression-privatename.js | 4 +- ...-expression-private-method-accessor-get.js | 44 ++++++++++++++++++ ...-expression-private-method-accessor-set.js | 44 ++++++++++++++++++ ...ber-expression-private-method-async-gen.js | 6 +-- ...-member-expression-private-method-async.js | 6 +-- ...te-member-expression-private-method-gen.js | 6 +-- ...delete-member-expression-private-method.js | 2 +- ...-member-expression-private-no-reference.js | 43 ++++++++++++++++++ ...rr-delete-member-expression-privatename.js | 4 +- ...-expression-private-method-accessor-get.js | 39 ++++++++++++++++ ...-expression-private-method-accessor-set.js | 39 ++++++++++++++++ ...all-expression-private-method-async-gen.js | 4 +- ...te-call-expression-private-method-async.js | 4 +- ...lete-call-expression-private-method-gen.js | 4 +- ...r-delete-call-expression-private-method.js | 4 +- ...te-call-expression-private-no-reference.js | 39 ++++++++++++++++ ...-err-delete-call-expression-privatename.js | 4 +- ...-expression-private-method-accessor-get.js | 38 ++++++++++++++++ ...-expression-private-method-accessor-set.js | 38 ++++++++++++++++ ...ber-expression-private-method-async-gen.js | 6 +-- ...-member-expression-private-method-async.js | 6 +-- ...te-member-expression-private-method-gen.js | 6 +-- ...delete-member-expression-private-method.js | 2 +- ...-member-expression-private-no-reference.js | 37 +++++++++++++++ ...rr-delete-member-expression-privatename.js | 4 +- ...-expression-private-method-accessor-get.js | 45 +++++++++++++++++++ ...-expression-private-method-accessor-set.js | 45 +++++++++++++++++++ ...all-expression-private-method-async-gen.js | 4 +- ...te-call-expression-private-method-async.js | 4 +- ...lete-call-expression-private-method-gen.js | 4 +- ...r-delete-call-expression-private-method.js | 4 +- ...te-call-expression-private-no-reference.js | 45 +++++++++++++++++++ ...-err-delete-call-expression-privatename.js | 4 +- ...-expression-private-method-accessor-get.js | 44 ++++++++++++++++++ ...-expression-private-method-accessor-set.js | 44 ++++++++++++++++++ ...ber-expression-private-method-async-gen.js | 6 +-- ...-member-expression-private-method-async.js | 6 +-- ...te-member-expression-private-method-gen.js | 6 +-- ...delete-member-expression-private-method.js | 2 +- ...-member-expression-private-no-reference.js | 43 ++++++++++++++++++ ...rr-delete-member-expression-privatename.js | 4 +- ...-expression-private-method-accessor-get.js | 41 +++++++++++++++++ ...-expression-private-method-accessor-set.js | 41 +++++++++++++++++ ...all-expression-private-method-async-gen.js | 4 +- ...te-call-expression-private-method-async.js | 4 +- ...lete-call-expression-private-method-gen.js | 4 +- ...r-delete-call-expression-private-method.js | 4 +- ...te-call-expression-private-no-reference.js | 41 +++++++++++++++++ ...-err-delete-call-expression-privatename.js | 2 +- ...-expression-private-method-accessor-get.js | 40 +++++++++++++++++ ...-expression-private-method-accessor-set.js | 40 +++++++++++++++++ ...ber-expression-private-method-async-gen.js | 6 +-- ...-member-expression-private-method-async.js | 6 +-- ...te-member-expression-private-method-gen.js | 6 +-- ...delete-member-expression-private-method.js | 2 +- ...-member-expression-private-no-reference.js | 39 ++++++++++++++++ ...rr-delete-member-expression-privatename.js | 4 +- ...-expression-private-method-accessor-get.js | 35 +++++++++++++++ ...-expression-private-method-accessor-set.js | 35 +++++++++++++++ ...all-expression-private-method-async-gen.js | 4 +- ...te-call-expression-private-method-async.js | 4 +- ...lete-call-expression-private-method-gen.js | 4 +- ...r-delete-call-expression-private-method.js | 4 +- ...te-call-expression-private-no-reference.js | 35 +++++++++++++++ ...-err-delete-call-expression-privatename.js | 2 +- ...-expression-private-method-accessor-get.js | 34 ++++++++++++++ ...-expression-private-method-accessor-set.js | 34 ++++++++++++++ ...ber-expression-private-method-async-gen.js | 6 +-- ...-member-expression-private-method-async.js | 6 +-- ...te-member-expression-private-method-gen.js | 6 +-- ...delete-member-expression-private-method.js | 2 +- ...-member-expression-private-no-reference.js | 33 ++++++++++++++ ...rr-delete-member-expression-privatename.js | 4 +- ...-expression-private-method-accessor-get.js | 42 +++++++++++++++++ ...-expression-private-method-accessor-set.js | 42 +++++++++++++++++ ...all-expression-private-method-async-gen.js | 4 +- ...te-call-expression-private-method-async.js | 4 +- ...lete-call-expression-private-method-gen.js | 4 +- ...r-delete-call-expression-private-method.js | 4 +- ...te-call-expression-private-no-reference.js | 42 +++++++++++++++++ ...-err-delete-call-expression-privatename.js | 2 +- ...-expression-private-method-accessor-get.js | 41 +++++++++++++++++ ...-expression-private-method-accessor-set.js | 41 +++++++++++++++++ ...ber-expression-private-method-async-gen.js | 6 +-- ...-member-expression-private-method-async.js | 6 +-- ...te-member-expression-private-method-gen.js | 6 +-- ...delete-member-expression-private-method.js | 2 +- ...-member-expression-private-no-reference.js | 40 +++++++++++++++++ ...rr-delete-member-expression-privatename.js | 4 +- ...-expression-private-method-accessor-get.js | 45 +++++++++++++++++++ ...-expression-private-method-accessor-set.js | 45 +++++++++++++++++++ ...all-expression-private-method-async-gen.js | 4 +- ...te-call-expression-private-method-async.js | 4 +- ...lete-call-expression-private-method-gen.js | 4 +- ...r-delete-call-expression-private-method.js | 4 +- ...te-call-expression-private-no-reference.js | 45 +++++++++++++++++++ ...-err-delete-call-expression-privatename.js | 4 +- ...-expression-private-method-accessor-get.js | 44 ++++++++++++++++++ ...-expression-private-method-accessor-set.js | 44 ++++++++++++++++++ ...ber-expression-private-method-async-gen.js | 6 +-- ...-member-expression-private-method-async.js | 6 +-- ...te-member-expression-private-method-gen.js | 6 +-- ...delete-member-expression-private-method.js | 2 +- ...-member-expression-private-no-reference.js | 43 ++++++++++++++++++ ...rr-delete-member-expression-privatename.js | 4 +- ...-expression-private-method-accessor-get.js | 39 ++++++++++++++++ ...-expression-private-method-accessor-set.js | 39 ++++++++++++++++ ...all-expression-private-method-async-gen.js | 4 +- ...te-call-expression-private-method-async.js | 4 +- ...lete-call-expression-private-method-gen.js | 4 +- ...r-delete-call-expression-private-method.js | 4 +- ...te-call-expression-private-no-reference.js | 39 ++++++++++++++++ ...-err-delete-call-expression-privatename.js | 4 +- ...-expression-private-method-accessor-get.js | 38 ++++++++++++++++ ...-expression-private-method-accessor-set.js | 38 ++++++++++++++++ ...ber-expression-private-method-async-gen.js | 6 +-- ...-member-expression-private-method-async.js | 6 +-- ...te-member-expression-private-method-gen.js | 6 +-- ...delete-member-expression-private-method.js | 2 +- ...-member-expression-private-no-reference.js | 37 +++++++++++++++ ...rr-delete-member-expression-privatename.js | 4 +- ...-expression-private-method-accessor-get.js | 45 +++++++++++++++++++ ...-expression-private-method-accessor-set.js | 45 +++++++++++++++++++ ...all-expression-private-method-async-gen.js | 4 +- ...te-call-expression-private-method-async.js | 4 +- ...lete-call-expression-private-method-gen.js | 4 +- ...r-delete-call-expression-private-method.js | 4 +- ...te-call-expression-private-no-reference.js | 45 +++++++++++++++++++ ...-err-delete-call-expression-privatename.js | 4 +- ...-expression-private-method-accessor-get.js | 44 ++++++++++++++++++ ...-expression-private-method-accessor-set.js | 44 ++++++++++++++++++ ...ber-expression-private-method-async-gen.js | 6 +-- ...-member-expression-private-method-async.js | 6 +-- ...te-member-expression-private-method-gen.js | 6 +-- ...delete-member-expression-private-method.js | 2 +- ...-member-expression-private-no-reference.js | 43 ++++++++++++++++++ ...rr-delete-member-expression-privatename.js | 4 +- 192 files changed, 3186 insertions(+), 258 deletions(-) create mode 100644 test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-private-method-accessor-get.js create mode 100644 test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-private-method-accessor-set.js create mode 100644 test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-private-no-reference.js create mode 100644 test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-private-method-accessor-get.js create mode 100644 test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-private-method-accessor-set.js create mode 100644 test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-private-no-reference.js create mode 100644 test/language/expressions/class/err-field-delete-err-delete-call-expression-private-method-accessor-get.js create mode 100644 test/language/expressions/class/err-field-delete-err-delete-call-expression-private-method-accessor-set.js create mode 100644 test/language/expressions/class/err-field-delete-err-delete-call-expression-private-no-reference.js create mode 100644 test/language/expressions/class/err-field-delete-err-delete-member-expression-private-method-accessor-get.js create mode 100644 test/language/expressions/class/err-field-delete-err-delete-member-expression-private-method-accessor-set.js create mode 100644 test/language/expressions/class/err-field-delete-err-delete-member-expression-private-no-reference.js create mode 100644 test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-accessor-get.js create mode 100644 test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-accessor-set.js create mode 100644 test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-private-no-reference.js create mode 100644 test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-accessor-get.js create mode 100644 test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-accessor-set.js create mode 100644 test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-private-no-reference.js create mode 100644 test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-private-method-accessor-get.js create mode 100644 test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-private-method-accessor-set.js create mode 100644 test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-private-no-reference.js create mode 100644 test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-private-method-accessor-get.js create mode 100644 test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-private-method-accessor-set.js create mode 100644 test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-private-no-reference.js create mode 100644 test/language/expressions/class/err-method-delete-err-delete-call-expression-private-method-accessor-get.js create mode 100644 test/language/expressions/class/err-method-delete-err-delete-call-expression-private-method-accessor-set.js create mode 100644 test/language/expressions/class/err-method-delete-err-delete-call-expression-private-no-reference.js create mode 100644 test/language/expressions/class/err-method-delete-err-delete-member-expression-private-method-accessor-get.js create mode 100644 test/language/expressions/class/err-method-delete-err-delete-member-expression-private-method-accessor-set.js create mode 100644 test/language/expressions/class/err-method-delete-err-delete-member-expression-private-no-reference.js create mode 100644 test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-accessor-get.js create mode 100644 test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-accessor-set.js create mode 100644 test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-private-no-reference.js create mode 100644 test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-accessor-get.js create mode 100644 test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-accessor-set.js create mode 100644 test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-private-no-reference.js create mode 100644 test/language/statements/class/err-field-delete-covered-err-delete-call-expression-private-method-accessor-get.js create mode 100644 test/language/statements/class/err-field-delete-covered-err-delete-call-expression-private-method-accessor-set.js create mode 100644 test/language/statements/class/err-field-delete-covered-err-delete-call-expression-private-no-reference.js create mode 100644 test/language/statements/class/err-field-delete-covered-err-delete-member-expression-private-method-accessor-get.js create mode 100644 test/language/statements/class/err-field-delete-covered-err-delete-member-expression-private-method-accessor-set.js create mode 100644 test/language/statements/class/err-field-delete-covered-err-delete-member-expression-private-no-reference.js create mode 100644 test/language/statements/class/err-field-delete-err-delete-call-expression-private-method-accessor-get.js create mode 100644 test/language/statements/class/err-field-delete-err-delete-call-expression-private-method-accessor-set.js create mode 100644 test/language/statements/class/err-field-delete-err-delete-call-expression-private-no-reference.js create mode 100644 test/language/statements/class/err-field-delete-err-delete-member-expression-private-method-accessor-get.js create mode 100644 test/language/statements/class/err-field-delete-err-delete-member-expression-private-method-accessor-set.js create mode 100644 test/language/statements/class/err-field-delete-err-delete-member-expression-private-no-reference.js create mode 100644 test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-accessor-get.js create mode 100644 test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-accessor-set.js create mode 100644 test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-private-no-reference.js create mode 100644 test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-accessor-get.js create mode 100644 test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-accessor-set.js create mode 100644 test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-private-no-reference.js create mode 100644 test/language/statements/class/err-method-delete-covered-err-delete-call-expression-private-method-accessor-get.js create mode 100644 test/language/statements/class/err-method-delete-covered-err-delete-call-expression-private-method-accessor-set.js create mode 100644 test/language/statements/class/err-method-delete-covered-err-delete-call-expression-private-no-reference.js create mode 100644 test/language/statements/class/err-method-delete-covered-err-delete-member-expression-private-method-accessor-get.js create mode 100644 test/language/statements/class/err-method-delete-covered-err-delete-member-expression-private-method-accessor-set.js create mode 100644 test/language/statements/class/err-method-delete-covered-err-delete-member-expression-private-no-reference.js create mode 100644 test/language/statements/class/err-method-delete-err-delete-call-expression-private-method-accessor-get.js create mode 100644 test/language/statements/class/err-method-delete-err-delete-call-expression-private-method-accessor-set.js create mode 100644 test/language/statements/class/err-method-delete-err-delete-call-expression-private-no-reference.js create mode 100644 test/language/statements/class/err-method-delete-err-delete-member-expression-private-method-accessor-get.js create mode 100644 test/language/statements/class/err-method-delete-err-delete-member-expression-private-method-accessor-set.js create mode 100644 test/language/statements/class/err-method-delete-err-delete-member-expression-private-no-reference.js create mode 100644 test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-accessor-get.js create mode 100644 test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-accessor-set.js create mode 100644 test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-private-no-reference.js create mode 100644 test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-accessor-get.js create mode 100644 test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-accessor-set.js create mode 100644 test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-private-no-reference.js diff --git a/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-private-method-accessor-get.js b/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-private-method-accessor-get.js new file mode 100644 index 0000000000..022055787b --- /dev/null +++ b/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-private-method-accessor-get.js @@ -0,0 +1,42 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-call-expression-private-method-accessor-get.case +// - src/class-elements/delete-error/cls-expr-field-delete-covered.template +/*--- +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName accessor get method (in field, covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-methods-private, class-fields-public, class, class-fields-private] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + + It is a Syntax Error if the derived UnaryExpression is + PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and + CoverParenthesizedExpressionAndArrowParameterList ultimately derives a + phrase that, if used in place of UnaryExpression, would produce a + Syntax Error according to these rules. This rule is recursively applied. + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +var C = class { + #x; + g = this.f; + x = delete (g().#m); + + f() { + return this; + } +} diff --git a/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-private-method-accessor-set.js b/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-private-method-accessor-set.js new file mode 100644 index 0000000000..0c126c1607 --- /dev/null +++ b/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-private-method-accessor-set.js @@ -0,0 +1,42 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-call-expression-private-method-accessor-set.case +// - src/class-elements/delete-error/cls-expr-field-delete-covered.template +/*--- +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName accessor set method (in field, covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class, class-fields-private, class-methods-private, class-fields-public] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + + It is a Syntax Error if the derived UnaryExpression is + PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and + CoverParenthesizedExpressionAndArrowParameterList ultimately derives a + phrase that, if used in place of UnaryExpression, would produce a + Syntax Error according to these rules. This rule is recursively applied. + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +var C = class { + #x; + g = this.f; + x = delete (g().#m); + + f() { + return this; + } +} diff --git a/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-private-method-async-gen.js b/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-private-method-async-gen.js index e0cd1449a3..3ec29edfa8 100644 --- a/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-private-method-async-gen.js +++ b/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-private-method-async-gen.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-private-method-async-gen.case // - src/class-elements/delete-error/cls-expr-field-delete-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, covered) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName async generator (in field, covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-methods-private, class-fields-public] +features: [class-methods-private, async-iteration, class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-private-method-async.js b/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-private-method-async.js index fe2c0144e7..8a15a01b35 100644 --- a/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-private-method-async.js +++ b/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-private-method-async.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-private-method-async.case // - src/class-elements/delete-error/cls-expr-field-delete-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, covered) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName async method (in field, covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-methods-private, class-fields-public] +features: [class-methods-private, async-functions, class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-private-method-gen.js b/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-private-method-gen.js index 2c2bf14b1f..9d7bd3b2f3 100644 --- a/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-private-method-gen.js +++ b/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-private-method-gen.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-private-method-gen.case // - src/class-elements/delete-error/cls-expr-field-delete-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, covered) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName generator (in field, covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-methods-private, class-fields-public] +features: [class-methods-private, generators, class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-private-method.js b/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-private-method.js index 81926aa80b..29fbcf8d33 100644 --- a/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-private-method.js +++ b/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-private-method.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-private-method.case // - src/class-elements/delete-error/cls-expr-field-delete-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, covered) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName private ordinary method (in field, covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-methods-private, class-fields-public] +features: [class-methods-private, class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-private-no-reference.js b/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-private-no-reference.js new file mode 100644 index 0000000000..5904400f7f --- /dev/null +++ b/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-private-no-reference.js @@ -0,0 +1,42 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-call-expression-private-no-reference.case +// - src/class-elements/delete-error/cls-expr-field-delete-covered.template +/*--- +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName no referencing class element (in field, covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class, class-fields-private, class-fields-public] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + + It is a Syntax Error if the derived UnaryExpression is + PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and + CoverParenthesizedExpressionAndArrowParameterList ultimately derives a + phrase that, if used in place of UnaryExpression, would produce a + Syntax Error according to these rules. This rule is recursively applied. + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +var C = class { + #x; + g = this.f; + x = delete (g().#m); + + f() { + return this; + } +} diff --git a/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-privatename.js b/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-privatename.js index 3a6beeebcb..57e7217f55 100644 --- a/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-privatename.js +++ b/test/language/expressions/class/err-field-delete-covered-err-delete-call-expression-privatename.js @@ -2,7 +2,7 @@ // - src/class-elements/err-delete-call-expression-privatename.case // - src/class-elements/delete-error/cls-expr-field-delete-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, covered) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName private field (in field, covered) esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] diff --git a/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-private-method-accessor-get.js b/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-private-method-accessor-get.js new file mode 100644 index 0000000000..9816f437fb --- /dev/null +++ b/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-private-method-accessor-get.js @@ -0,0 +1,41 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-member-expression-private-method-accessor-get.case +// - src/class-elements/delete-error/cls-expr-field-delete-covered.template +/*--- +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName accessor get method (in field, covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-methods-private, class, class-fields-private, class-fields-public] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + + It is a Syntax Error if the derived UnaryExpression is + PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and + CoverParenthesizedExpressionAndArrowParameterList ultimately derives a + phrase that, if used in place of UnaryExpression, would produce a + Syntax Error according to these rules. This rule is recursively applied. + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +var C = class { + #x; + + x = delete (this.#m +); + + +} diff --git a/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-private-method-accessor-set.js b/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-private-method-accessor-set.js new file mode 100644 index 0000000000..07e394c984 --- /dev/null +++ b/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-private-method-accessor-set.js @@ -0,0 +1,41 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-member-expression-private-method-accessor-set.case +// - src/class-elements/delete-error/cls-expr-field-delete-covered.template +/*--- +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName accessor set method (in field, covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-methods-private, class, class-fields-private, class-fields-public] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + + It is a Syntax Error if the derived UnaryExpression is + PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and + CoverParenthesizedExpressionAndArrowParameterList ultimately derives a + phrase that, if used in place of UnaryExpression, would produce a + Syntax Error according to these rules. This rule is recursively applied. + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +var C = class { + #x; + + x = delete (this.#m +); + + +} diff --git a/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-private-method-async-gen.js b/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-private-method-async-gen.js index 1c4cbf5e96..43930fd1c0 100644 --- a/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-private-method-async-gen.js +++ b/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-private-method-async-gen.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-member-expression-private-method-async-gen.case // - src/class-elements/delete-error/cls-expr-field-delete-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, covered) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName async generator (in field, covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class-methods-private, class, class-fields-private, class-fields-public] +features: [class-methods-private, async-iteration, class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] negative: phase: parse @@ -37,5 +37,5 @@ var C = class { x = delete (this.#m ); - + async *#m() {} } diff --git a/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-private-method-async.js b/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-private-method-async.js index 96ecc7e0e8..a4dc786842 100644 --- a/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-private-method-async.js +++ b/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-private-method-async.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-member-expression-private-method-async.case // - src/class-elements/delete-error/cls-expr-field-delete-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, covered) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName async method (in field, covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class-methods-private, class, class-fields-private, class-fields-public] +features: [class-methods-private, async-functions, class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] negative: phase: parse @@ -37,5 +37,5 @@ var C = class { x = delete (this.#m ); - + async #m() {} } diff --git a/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-private-method-gen.js b/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-private-method-gen.js index 52482f8e48..ee58a1186d 100644 --- a/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-private-method-gen.js +++ b/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-private-method-gen.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-member-expression-private-method-gen.case // - src/class-elements/delete-error/cls-expr-field-delete-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, covered) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName generator (in field, covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class-methods-private, class, class-fields-private, class-fields-public] +features: [class-methods-private, generators, class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] negative: phase: parse @@ -37,5 +37,5 @@ var C = class { x = delete (this.#m ); - + *#m() {} } diff --git a/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-private-method.js b/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-private-method.js index 7bfa1f7a14..de8b82fc71 100644 --- a/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-private-method.js +++ b/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-private-method.js @@ -2,7 +2,7 @@ // - src/class-elements/err-delete-member-expression-private-method.case // - src/class-elements/delete-error/cls-expr-field-delete-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, covered) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName private ordinary method (in field, covered) esid: sec-class-definitions-static-semantics-early-errors features: [class-methods-private, class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] diff --git a/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-private-no-reference.js b/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-private-no-reference.js new file mode 100644 index 0000000000..8ce8be9af2 --- /dev/null +++ b/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-private-no-reference.js @@ -0,0 +1,40 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-member-expression-private-no-reference.case +// - src/class-elements/delete-error/cls-expr-field-delete-covered.template +/*--- +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName no referencing class element (in field, covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class, class-fields-private, class-fields-public] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + + It is a Syntax Error if the derived UnaryExpression is + PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and + CoverParenthesizedExpressionAndArrowParameterList ultimately derives a + phrase that, if used in place of UnaryExpression, would produce a + Syntax Error according to these rules. This rule is recursively applied. + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +var C = class { + #x; + + x = delete (this.#m); + + +} diff --git a/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-privatename.js b/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-privatename.js index 35be85f9f4..fc9f49a2f8 100644 --- a/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-privatename.js +++ b/test/language/expressions/class/err-field-delete-covered-err-delete-member-expression-privatename.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-member-expression-privatename.case // - src/class-elements/delete-error/cls-expr-field-delete-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, covered) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName private field (in field, covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class-fields-private, class, class-fields-public] +features: [class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/expressions/class/err-field-delete-err-delete-call-expression-private-method-accessor-get.js b/test/language/expressions/class/err-field-delete-err-delete-call-expression-private-method-accessor-get.js new file mode 100644 index 0000000000..fbcd6474e0 --- /dev/null +++ b/test/language/expressions/class/err-field-delete-err-delete-call-expression-private-method-accessor-get.js @@ -0,0 +1,36 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-call-expression-private-method-accessor-get.case +// - src/class-elements/delete-error/cls-expr-field-delete.template +/*--- +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName accessor get method (in field) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-methods-private, class-fields-public, class, class-fields-private] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +var C = class { + #x; + g = this.f; + x = delete g().#m; + + f() { + return this; + } +} diff --git a/test/language/expressions/class/err-field-delete-err-delete-call-expression-private-method-accessor-set.js b/test/language/expressions/class/err-field-delete-err-delete-call-expression-private-method-accessor-set.js new file mode 100644 index 0000000000..6975218e22 --- /dev/null +++ b/test/language/expressions/class/err-field-delete-err-delete-call-expression-private-method-accessor-set.js @@ -0,0 +1,36 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-call-expression-private-method-accessor-set.case +// - src/class-elements/delete-error/cls-expr-field-delete.template +/*--- +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName accessor set method (in field) +esid: sec-class-definitions-static-semantics-early-errors +features: [class, class-fields-private, class-methods-private, class-fields-public] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +var C = class { + #x; + g = this.f; + x = delete g().#m; + + f() { + return this; + } +} diff --git a/test/language/expressions/class/err-field-delete-err-delete-call-expression-private-method-async-gen.js b/test/language/expressions/class/err-field-delete-err-delete-call-expression-private-method-async-gen.js index b967ea1a9f..354962f6e9 100644 --- a/test/language/expressions/class/err-field-delete-err-delete-call-expression-private-method-async-gen.js +++ b/test/language/expressions/class/err-field-delete-err-delete-call-expression-private-method-async-gen.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-private-method-async-gen.case // - src/class-elements/delete-error/cls-expr-field-delete.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName async generator (in field) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-methods-private, class-fields-public] +features: [class-methods-private, async-iteration, class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/expressions/class/err-field-delete-err-delete-call-expression-private-method-async.js b/test/language/expressions/class/err-field-delete-err-delete-call-expression-private-method-async.js index 0f2fb4f559..f901af7ae0 100644 --- a/test/language/expressions/class/err-field-delete-err-delete-call-expression-private-method-async.js +++ b/test/language/expressions/class/err-field-delete-err-delete-call-expression-private-method-async.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-private-method-async.case // - src/class-elements/delete-error/cls-expr-field-delete.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName async method (in field) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-methods-private, class-fields-public] +features: [class-methods-private, async-functions, class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/expressions/class/err-field-delete-err-delete-call-expression-private-method-gen.js b/test/language/expressions/class/err-field-delete-err-delete-call-expression-private-method-gen.js index b45028a20a..5000fabcf5 100644 --- a/test/language/expressions/class/err-field-delete-err-delete-call-expression-private-method-gen.js +++ b/test/language/expressions/class/err-field-delete-err-delete-call-expression-private-method-gen.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-private-method-gen.case // - src/class-elements/delete-error/cls-expr-field-delete.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName generator (in field) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-methods-private, class-fields-public] +features: [class-methods-private, generators, class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/expressions/class/err-field-delete-err-delete-call-expression-private-method.js b/test/language/expressions/class/err-field-delete-err-delete-call-expression-private-method.js index 0354a71faf..f85af1e85e 100644 --- a/test/language/expressions/class/err-field-delete-err-delete-call-expression-private-method.js +++ b/test/language/expressions/class/err-field-delete-err-delete-call-expression-private-method.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-private-method.case // - src/class-elements/delete-error/cls-expr-field-delete.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName private ordinary method (in field) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-methods-private, class-fields-public] +features: [class-methods-private, class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/expressions/class/err-field-delete-err-delete-call-expression-private-no-reference.js b/test/language/expressions/class/err-field-delete-err-delete-call-expression-private-no-reference.js new file mode 100644 index 0000000000..f0758f5c50 --- /dev/null +++ b/test/language/expressions/class/err-field-delete-err-delete-call-expression-private-no-reference.js @@ -0,0 +1,36 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-call-expression-private-no-reference.case +// - src/class-elements/delete-error/cls-expr-field-delete.template +/*--- +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName no referencing class element (in field) +esid: sec-class-definitions-static-semantics-early-errors +features: [class, class-fields-private, class-fields-public] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +var C = class { + #x; + g = this.f; + x = delete g().#m; + + f() { + return this; + } +} diff --git a/test/language/expressions/class/err-field-delete-err-delete-call-expression-privatename.js b/test/language/expressions/class/err-field-delete-err-delete-call-expression-privatename.js index b820cd3a75..b27cb1dbbb 100644 --- a/test/language/expressions/class/err-field-delete-err-delete-call-expression-privatename.js +++ b/test/language/expressions/class/err-field-delete-err-delete-call-expression-privatename.js @@ -2,7 +2,7 @@ // - src/class-elements/err-delete-call-expression-privatename.case // - src/class-elements/delete-error/cls-expr-field-delete.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName private field (in field) esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] diff --git a/test/language/expressions/class/err-field-delete-err-delete-member-expression-private-method-accessor-get.js b/test/language/expressions/class/err-field-delete-err-delete-member-expression-private-method-accessor-get.js new file mode 100644 index 0000000000..fb2629aa60 --- /dev/null +++ b/test/language/expressions/class/err-field-delete-err-delete-member-expression-private-method-accessor-get.js @@ -0,0 +1,35 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-member-expression-private-method-accessor-get.case +// - src/class-elements/delete-error/cls-expr-field-delete.template +/*--- +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName accessor get method (in field) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-methods-private, class, class-fields-private, class-fields-public] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +var C = class { + #x; + + x = delete this.#m +; + + +} diff --git a/test/language/expressions/class/err-field-delete-err-delete-member-expression-private-method-accessor-set.js b/test/language/expressions/class/err-field-delete-err-delete-member-expression-private-method-accessor-set.js new file mode 100644 index 0000000000..950cab6f99 --- /dev/null +++ b/test/language/expressions/class/err-field-delete-err-delete-member-expression-private-method-accessor-set.js @@ -0,0 +1,35 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-member-expression-private-method-accessor-set.case +// - src/class-elements/delete-error/cls-expr-field-delete.template +/*--- +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName accessor set method (in field) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-methods-private, class, class-fields-private, class-fields-public] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +var C = class { + #x; + + x = delete this.#m +; + + +} diff --git a/test/language/expressions/class/err-field-delete-err-delete-member-expression-private-method-async-gen.js b/test/language/expressions/class/err-field-delete-err-delete-member-expression-private-method-async-gen.js index 3483908500..b2a373e438 100644 --- a/test/language/expressions/class/err-field-delete-err-delete-member-expression-private-method-async-gen.js +++ b/test/language/expressions/class/err-field-delete-err-delete-member-expression-private-method-async-gen.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-member-expression-private-method-async-gen.case // - src/class-elements/delete-error/cls-expr-field-delete.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName async generator (in field) esid: sec-class-definitions-static-semantics-early-errors -features: [class-methods-private, class, class-fields-private, class-fields-public] +features: [class-methods-private, async-iteration, class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] negative: phase: parse @@ -31,5 +31,5 @@ var C = class { x = delete this.#m ; - + async *#m() {} } diff --git a/test/language/expressions/class/err-field-delete-err-delete-member-expression-private-method-async.js b/test/language/expressions/class/err-field-delete-err-delete-member-expression-private-method-async.js index 7457e1ec20..6ae75180df 100644 --- a/test/language/expressions/class/err-field-delete-err-delete-member-expression-private-method-async.js +++ b/test/language/expressions/class/err-field-delete-err-delete-member-expression-private-method-async.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-member-expression-private-method-async.case // - src/class-elements/delete-error/cls-expr-field-delete.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName async method (in field) esid: sec-class-definitions-static-semantics-early-errors -features: [class-methods-private, class, class-fields-private, class-fields-public] +features: [class-methods-private, async-functions, class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] negative: phase: parse @@ -31,5 +31,5 @@ var C = class { x = delete this.#m ; - + async #m() {} } diff --git a/test/language/expressions/class/err-field-delete-err-delete-member-expression-private-method-gen.js b/test/language/expressions/class/err-field-delete-err-delete-member-expression-private-method-gen.js index 25da0aa632..92b5a07162 100644 --- a/test/language/expressions/class/err-field-delete-err-delete-member-expression-private-method-gen.js +++ b/test/language/expressions/class/err-field-delete-err-delete-member-expression-private-method-gen.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-member-expression-private-method-gen.case // - src/class-elements/delete-error/cls-expr-field-delete.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName generator (in field) esid: sec-class-definitions-static-semantics-early-errors -features: [class-methods-private, class, class-fields-private, class-fields-public] +features: [class-methods-private, generators, class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] negative: phase: parse @@ -31,5 +31,5 @@ var C = class { x = delete this.#m ; - + *#m() {} } diff --git a/test/language/expressions/class/err-field-delete-err-delete-member-expression-private-method.js b/test/language/expressions/class/err-field-delete-err-delete-member-expression-private-method.js index 9b7522a093..bec084c2d7 100644 --- a/test/language/expressions/class/err-field-delete-err-delete-member-expression-private-method.js +++ b/test/language/expressions/class/err-field-delete-err-delete-member-expression-private-method.js @@ -2,7 +2,7 @@ // - src/class-elements/err-delete-member-expression-private-method.case // - src/class-elements/delete-error/cls-expr-field-delete.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName private ordinary method (in field) esid: sec-class-definitions-static-semantics-early-errors features: [class-methods-private, class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] diff --git a/test/language/expressions/class/err-field-delete-err-delete-member-expression-private-no-reference.js b/test/language/expressions/class/err-field-delete-err-delete-member-expression-private-no-reference.js new file mode 100644 index 0000000000..47da94d834 --- /dev/null +++ b/test/language/expressions/class/err-field-delete-err-delete-member-expression-private-no-reference.js @@ -0,0 +1,34 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-member-expression-private-no-reference.case +// - src/class-elements/delete-error/cls-expr-field-delete.template +/*--- +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName no referencing class element (in field) +esid: sec-class-definitions-static-semantics-early-errors +features: [class, class-fields-private, class-fields-public] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +var C = class { + #x; + + x = delete this.#m; + + +} diff --git a/test/language/expressions/class/err-field-delete-err-delete-member-expression-privatename.js b/test/language/expressions/class/err-field-delete-err-delete-member-expression-privatename.js index 7e0d67d406..dfaae84838 100644 --- a/test/language/expressions/class/err-field-delete-err-delete-member-expression-privatename.js +++ b/test/language/expressions/class/err-field-delete-err-delete-member-expression-privatename.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-member-expression-privatename.case // - src/class-elements/delete-error/cls-expr-field-delete.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName private field (in field) esid: sec-class-definitions-static-semantics-early-errors -features: [class-fields-private, class, class-fields-public] +features: [class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-accessor-get.js b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-accessor-get.js new file mode 100644 index 0000000000..3e90a979d1 --- /dev/null +++ b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-accessor-get.js @@ -0,0 +1,42 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-call-expression-private-method-accessor-get.case +// - src/class-elements/delete-error/cls-expr-field-delete-twice-covered.template +/*--- +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName accessor get method (in field, recursively covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-methods-private, class-fields-public, class, class-fields-private] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + + It is a Syntax Error if the derived UnaryExpression is + PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and + CoverParenthesizedExpressionAndArrowParameterList ultimately derives a + phrase that, if used in place of UnaryExpression, would produce a + Syntax Error according to these rules. This rule is recursively applied. + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +var C = class { + #x; + g = this.f; + x = delete ((g().#m)); + + f() { + return this; + } +} diff --git a/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-accessor-set.js b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-accessor-set.js new file mode 100644 index 0000000000..5dbed7c017 --- /dev/null +++ b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-accessor-set.js @@ -0,0 +1,42 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-call-expression-private-method-accessor-set.case +// - src/class-elements/delete-error/cls-expr-field-delete-twice-covered.template +/*--- +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName accessor set method (in field, recursively covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class, class-fields-private, class-methods-private, class-fields-public] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + + It is a Syntax Error if the derived UnaryExpression is + PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and + CoverParenthesizedExpressionAndArrowParameterList ultimately derives a + phrase that, if used in place of UnaryExpression, would produce a + Syntax Error according to these rules. This rule is recursively applied. + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +var C = class { + #x; + g = this.f; + x = delete ((g().#m)); + + f() { + return this; + } +} diff --git a/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-async-gen.js b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-async-gen.js index 498d88ab98..80e557e137 100644 --- a/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-async-gen.js +++ b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-async-gen.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-private-method-async-gen.case // - src/class-elements/delete-error/cls-expr-field-delete-twice-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, recursively covered) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName async generator (in field, recursively covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-methods-private, class-fields-public] +features: [class-methods-private, async-iteration, class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-async.js b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-async.js index dfa9029085..09591cd36b 100644 --- a/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-async.js +++ b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-async.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-private-method-async.case // - src/class-elements/delete-error/cls-expr-field-delete-twice-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, recursively covered) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName async method (in field, recursively covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-methods-private, class-fields-public] +features: [class-methods-private, async-functions, class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-gen.js b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-gen.js index 31b0644207..f9a420fe9c 100644 --- a/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-gen.js +++ b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-gen.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-private-method-gen.case // - src/class-elements/delete-error/cls-expr-field-delete-twice-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, recursively covered) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName generator (in field, recursively covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-methods-private, class-fields-public] +features: [class-methods-private, generators, class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-private-method.js b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-private-method.js index b51df544a2..39788cb0c9 100644 --- a/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-private-method.js +++ b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-private-method.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-private-method.case // - src/class-elements/delete-error/cls-expr-field-delete-twice-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, recursively covered) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName private ordinary method (in field, recursively covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-methods-private, class-fields-public] +features: [class-methods-private, class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-private-no-reference.js b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-private-no-reference.js new file mode 100644 index 0000000000..2eca0c6e8c --- /dev/null +++ b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-private-no-reference.js @@ -0,0 +1,42 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-call-expression-private-no-reference.case +// - src/class-elements/delete-error/cls-expr-field-delete-twice-covered.template +/*--- +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName no referencing class element (in field, recursively covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class, class-fields-private, class-fields-public] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + + It is a Syntax Error if the derived UnaryExpression is + PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and + CoverParenthesizedExpressionAndArrowParameterList ultimately derives a + phrase that, if used in place of UnaryExpression, would produce a + Syntax Error according to these rules. This rule is recursively applied. + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +var C = class { + #x; + g = this.f; + x = delete ((g().#m)); + + f() { + return this; + } +} diff --git a/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-privatename.js b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-privatename.js index 428b6c3ec5..df52559f1b 100644 --- a/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-privatename.js +++ b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-call-expression-privatename.js @@ -2,7 +2,7 @@ // - src/class-elements/err-delete-call-expression-privatename.case // - src/class-elements/delete-error/cls-expr-field-delete-twice-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, recursively covered) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName private field (in field, recursively covered) esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] diff --git a/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-accessor-get.js b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-accessor-get.js new file mode 100644 index 0000000000..2162a4720e --- /dev/null +++ b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-accessor-get.js @@ -0,0 +1,41 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-member-expression-private-method-accessor-get.case +// - src/class-elements/delete-error/cls-expr-field-delete-twice-covered.template +/*--- +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName accessor get method (in field, recursively covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-methods-private, class, class-fields-private, class-fields-public] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + + It is a Syntax Error if the derived UnaryExpression is + PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and + CoverParenthesizedExpressionAndArrowParameterList ultimately derives a + phrase that, if used in place of UnaryExpression, would produce a + Syntax Error according to these rules. This rule is recursively applied. + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +var C = class { + #x; + + x = delete ((this.#m +)); + + +} diff --git a/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-accessor-set.js b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-accessor-set.js new file mode 100644 index 0000000000..1f0e32f39e --- /dev/null +++ b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-accessor-set.js @@ -0,0 +1,41 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-member-expression-private-method-accessor-set.case +// - src/class-elements/delete-error/cls-expr-field-delete-twice-covered.template +/*--- +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName accessor set method (in field, recursively covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-methods-private, class, class-fields-private, class-fields-public] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + + It is a Syntax Error if the derived UnaryExpression is + PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and + CoverParenthesizedExpressionAndArrowParameterList ultimately derives a + phrase that, if used in place of UnaryExpression, would produce a + Syntax Error according to these rules. This rule is recursively applied. + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +var C = class { + #x; + + x = delete ((this.#m +)); + + +} diff --git a/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-async-gen.js b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-async-gen.js index b27f8f40ba..eb5311c045 100644 --- a/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-async-gen.js +++ b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-async-gen.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-member-expression-private-method-async-gen.case // - src/class-elements/delete-error/cls-expr-field-delete-twice-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, recursively covered) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName async generator (in field, recursively covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class-methods-private, class, class-fields-private, class-fields-public] +features: [class-methods-private, async-iteration, class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] negative: phase: parse @@ -37,5 +37,5 @@ var C = class { x = delete ((this.#m )); - + async *#m() {} } diff --git a/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-async.js b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-async.js index 50f049337a..06e39e0814 100644 --- a/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-async.js +++ b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-async.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-member-expression-private-method-async.case // - src/class-elements/delete-error/cls-expr-field-delete-twice-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, recursively covered) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName async method (in field, recursively covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class-methods-private, class, class-fields-private, class-fields-public] +features: [class-methods-private, async-functions, class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] negative: phase: parse @@ -37,5 +37,5 @@ var C = class { x = delete ((this.#m )); - + async #m() {} } diff --git a/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-gen.js b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-gen.js index 693b77792c..caa4eea141 100644 --- a/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-gen.js +++ b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-gen.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-member-expression-private-method-gen.case // - src/class-elements/delete-error/cls-expr-field-delete-twice-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, recursively covered) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName generator (in field, recursively covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class-methods-private, class, class-fields-private, class-fields-public] +features: [class-methods-private, generators, class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] negative: phase: parse @@ -37,5 +37,5 @@ var C = class { x = delete ((this.#m )); - + *#m() {} } diff --git a/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-private-method.js b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-private-method.js index 42b33c457e..815f035ca7 100644 --- a/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-private-method.js +++ b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-private-method.js @@ -2,7 +2,7 @@ // - src/class-elements/err-delete-member-expression-private-method.case // - src/class-elements/delete-error/cls-expr-field-delete-twice-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, recursively covered) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName private ordinary method (in field, recursively covered) esid: sec-class-definitions-static-semantics-early-errors features: [class-methods-private, class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] diff --git a/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-private-no-reference.js b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-private-no-reference.js new file mode 100644 index 0000000000..4bb45d097b --- /dev/null +++ b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-private-no-reference.js @@ -0,0 +1,40 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-member-expression-private-no-reference.case +// - src/class-elements/delete-error/cls-expr-field-delete-twice-covered.template +/*--- +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName no referencing class element (in field, recursively covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class, class-fields-private, class-fields-public] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + + It is a Syntax Error if the derived UnaryExpression is + PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and + CoverParenthesizedExpressionAndArrowParameterList ultimately derives a + phrase that, if used in place of UnaryExpression, would produce a + Syntax Error according to these rules. This rule is recursively applied. + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +var C = class { + #x; + + x = delete ((this.#m)); + + +} diff --git a/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-privatename.js b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-privatename.js index 1db6d3b16c..99174c0331 100644 --- a/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-privatename.js +++ b/test/language/expressions/class/err-field-delete-twice-covered-err-delete-member-expression-privatename.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-member-expression-privatename.case // - src/class-elements/delete-error/cls-expr-field-delete-twice-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, recursively covered) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName private field (in field, recursively covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class-fields-private, class, class-fields-public] +features: [class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-private-method-accessor-get.js b/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-private-method-accessor-get.js new file mode 100644 index 0000000000..c6d7a96a3b --- /dev/null +++ b/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-private-method-accessor-get.js @@ -0,0 +1,45 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-call-expression-private-method-accessor-get.case +// - src/class-elements/delete-error/cls-expr-method-delete-covered.template +/*--- +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName accessor get method (in method, covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-methods-private, class-fields-public, class, class-fields-private] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + + It is a Syntax Error if the derived UnaryExpression is + PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and + CoverParenthesizedExpressionAndArrowParameterList ultimately derives a + phrase that, if used in place of UnaryExpression, would produce a + Syntax Error according to these rules. This rule is recursively applied. + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +var C = class { + #x; + + x() { + var g = this.f; + delete (g().#m); + } + + f() { + return this; + } +} diff --git a/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-private-method-accessor-set.js b/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-private-method-accessor-set.js new file mode 100644 index 0000000000..fc1fabfc2f --- /dev/null +++ b/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-private-method-accessor-set.js @@ -0,0 +1,45 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-call-expression-private-method-accessor-set.case +// - src/class-elements/delete-error/cls-expr-method-delete-covered.template +/*--- +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName accessor set method (in method, covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class, class-fields-private, class-methods-private, class-fields-public] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + + It is a Syntax Error if the derived UnaryExpression is + PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and + CoverParenthesizedExpressionAndArrowParameterList ultimately derives a + phrase that, if used in place of UnaryExpression, would produce a + Syntax Error according to these rules. This rule is recursively applied. + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +var C = class { + #x; + + x() { + var g = this.f; + delete (g().#m); + } + + f() { + return this; + } +} diff --git a/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-private-method-async-gen.js b/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-private-method-async-gen.js index fe565e2a8f..7c3a6c60fa 100644 --- a/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-private-method-async-gen.js +++ b/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-private-method-async-gen.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-private-method-async-gen.case // - src/class-elements/delete-error/cls-expr-method-delete-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, covered) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName async generator (in method, covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-methods-private, class-fields-public] +features: [class-methods-private, async-iteration, class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-private-method-async.js b/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-private-method-async.js index 859936f4c8..80e38ad95d 100644 --- a/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-private-method-async.js +++ b/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-private-method-async.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-private-method-async.case // - src/class-elements/delete-error/cls-expr-method-delete-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, covered) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName async method (in method, covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-methods-private, class-fields-public] +features: [class-methods-private, async-functions, class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-private-method-gen.js b/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-private-method-gen.js index 0a614f5f54..3812eb3a0f 100644 --- a/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-private-method-gen.js +++ b/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-private-method-gen.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-private-method-gen.case // - src/class-elements/delete-error/cls-expr-method-delete-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, covered) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName generator (in method, covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-methods-private, class-fields-public] +features: [class-methods-private, generators, class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-private-method.js b/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-private-method.js index 9d0a1d1ebe..2a56f816c0 100644 --- a/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-private-method.js +++ b/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-private-method.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-private-method.case // - src/class-elements/delete-error/cls-expr-method-delete-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, covered) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName private ordinary method (in method, covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-methods-private, class-fields-public] +features: [class-methods-private, class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-private-no-reference.js b/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-private-no-reference.js new file mode 100644 index 0000000000..aff64b4f79 --- /dev/null +++ b/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-private-no-reference.js @@ -0,0 +1,45 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-call-expression-private-no-reference.case +// - src/class-elements/delete-error/cls-expr-method-delete-covered.template +/*--- +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName no referencing class element (in method, covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class, class-fields-private] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + + It is a Syntax Error if the derived UnaryExpression is + PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and + CoverParenthesizedExpressionAndArrowParameterList ultimately derives a + phrase that, if used in place of UnaryExpression, would produce a + Syntax Error according to these rules. This rule is recursively applied. + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +var C = class { + #x; + + x() { + var g = this.f; + delete (g().#m); + } + + f() { + return this; + } +} diff --git a/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-privatename.js b/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-privatename.js index a3617ff2b1..598423d555 100644 --- a/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-privatename.js +++ b/test/language/expressions/class/err-method-delete-covered-err-delete-call-expression-privatename.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-privatename.case // - src/class-elements/delete-error/cls-expr-method-delete-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, covered) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName private field (in method, covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-fields-public] +features: [class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-private-method-accessor-get.js b/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-private-method-accessor-get.js new file mode 100644 index 0000000000..97091a6352 --- /dev/null +++ b/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-private-method-accessor-get.js @@ -0,0 +1,44 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-member-expression-private-method-accessor-get.case +// - src/class-elements/delete-error/cls-expr-method-delete-covered.template +/*--- +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName accessor get method (in method, covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-methods-private, class, class-fields-private] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + + It is a Syntax Error if the derived UnaryExpression is + PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and + CoverParenthesizedExpressionAndArrowParameterList ultimately derives a + phrase that, if used in place of UnaryExpression, would produce a + Syntax Error according to these rules. This rule is recursively applied. + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +var C = class { + #x; + + x() { + + delete (this.#m +); + } + + +} diff --git a/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-private-method-accessor-set.js b/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-private-method-accessor-set.js new file mode 100644 index 0000000000..396575b49f --- /dev/null +++ b/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-private-method-accessor-set.js @@ -0,0 +1,44 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-member-expression-private-method-accessor-set.case +// - src/class-elements/delete-error/cls-expr-method-delete-covered.template +/*--- +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName accessor set method (in method, covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-methods-private, class, class-fields-private] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + + It is a Syntax Error if the derived UnaryExpression is + PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and + CoverParenthesizedExpressionAndArrowParameterList ultimately derives a + phrase that, if used in place of UnaryExpression, would produce a + Syntax Error according to these rules. This rule is recursively applied. + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +var C = class { + #x; + + x() { + + delete (this.#m +); + } + + +} diff --git a/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-private-method-async-gen.js b/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-private-method-async-gen.js index e4a942d60f..0940bdf966 100644 --- a/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-private-method-async-gen.js +++ b/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-private-method-async-gen.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-member-expression-private-method-async-gen.case // - src/class-elements/delete-error/cls-expr-method-delete-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, covered) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName async generator (in method, covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class-methods-private, class, class-fields-private] +features: [class-methods-private, async-iteration, class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse @@ -40,5 +40,5 @@ var C = class { ); } - + async *#m() {} } diff --git a/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-private-method-async.js b/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-private-method-async.js index 25b2565ac0..bdf2c72783 100644 --- a/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-private-method-async.js +++ b/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-private-method-async.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-member-expression-private-method-async.case // - src/class-elements/delete-error/cls-expr-method-delete-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, covered) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName async method (in method, covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class-methods-private, class, class-fields-private] +features: [class-methods-private, async-functions, class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse @@ -40,5 +40,5 @@ var C = class { ); } - + async #m() {} } diff --git a/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-private-method-gen.js b/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-private-method-gen.js index 1bd77a6137..3901ebce33 100644 --- a/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-private-method-gen.js +++ b/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-private-method-gen.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-member-expression-private-method-gen.case // - src/class-elements/delete-error/cls-expr-method-delete-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, covered) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName generator (in method, covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class-methods-private, class, class-fields-private] +features: [class-methods-private, generators, class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse @@ -40,5 +40,5 @@ var C = class { ); } - + *#m() {} } diff --git a/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-private-method.js b/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-private-method.js index 3cd2e4c6d1..5dcc9a277a 100644 --- a/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-private-method.js +++ b/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-private-method.js @@ -2,7 +2,7 @@ // - src/class-elements/err-delete-member-expression-private-method.case // - src/class-elements/delete-error/cls-expr-method-delete-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, covered) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName private ordinary method (in method, covered) esid: sec-class-definitions-static-semantics-early-errors features: [class-methods-private, class, class-fields-private] flags: [generated, onlyStrict] diff --git a/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-private-no-reference.js b/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-private-no-reference.js new file mode 100644 index 0000000000..bc44cc8800 --- /dev/null +++ b/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-private-no-reference.js @@ -0,0 +1,43 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-member-expression-private-no-reference.case +// - src/class-elements/delete-error/cls-expr-method-delete-covered.template +/*--- +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName no referencing class element (in method, covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class, class-fields-private] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + + It is a Syntax Error if the derived UnaryExpression is + PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and + CoverParenthesizedExpressionAndArrowParameterList ultimately derives a + phrase that, if used in place of UnaryExpression, would produce a + Syntax Error according to these rules. This rule is recursively applied. + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +var C = class { + #x; + + x() { + + delete (this.#m); + } + + +} diff --git a/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-privatename.js b/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-privatename.js index b83515b19b..5ea0cd7ecb 100644 --- a/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-privatename.js +++ b/test/language/expressions/class/err-method-delete-covered-err-delete-member-expression-privatename.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-member-expression-privatename.case // - src/class-elements/delete-error/cls-expr-method-delete-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, covered) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName private field (in method, covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class-fields-private, class] +features: [class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/expressions/class/err-method-delete-err-delete-call-expression-private-method-accessor-get.js b/test/language/expressions/class/err-method-delete-err-delete-call-expression-private-method-accessor-get.js new file mode 100644 index 0000000000..7d3261fd2d --- /dev/null +++ b/test/language/expressions/class/err-method-delete-err-delete-call-expression-private-method-accessor-get.js @@ -0,0 +1,39 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-call-expression-private-method-accessor-get.case +// - src/class-elements/delete-error/cls-expr-method-delete.template +/*--- +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName accessor get method (in method) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-methods-private, class-fields-public, class, class-fields-private] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +var C = class { + #x; + + x() { + var g = this.f; + delete g().#m; + } + + f() { + return this; + } +} diff --git a/test/language/expressions/class/err-method-delete-err-delete-call-expression-private-method-accessor-set.js b/test/language/expressions/class/err-method-delete-err-delete-call-expression-private-method-accessor-set.js new file mode 100644 index 0000000000..405971b5b6 --- /dev/null +++ b/test/language/expressions/class/err-method-delete-err-delete-call-expression-private-method-accessor-set.js @@ -0,0 +1,39 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-call-expression-private-method-accessor-set.case +// - src/class-elements/delete-error/cls-expr-method-delete.template +/*--- +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName accessor set method (in method) +esid: sec-class-definitions-static-semantics-early-errors +features: [class, class-fields-private, class-methods-private, class-fields-public] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +var C = class { + #x; + + x() { + var g = this.f; + delete g().#m; + } + + f() { + return this; + } +} diff --git a/test/language/expressions/class/err-method-delete-err-delete-call-expression-private-method-async-gen.js b/test/language/expressions/class/err-method-delete-err-delete-call-expression-private-method-async-gen.js index a78ddb0648..4bc2bf0a54 100644 --- a/test/language/expressions/class/err-method-delete-err-delete-call-expression-private-method-async-gen.js +++ b/test/language/expressions/class/err-method-delete-err-delete-call-expression-private-method-async-gen.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-private-method-async-gen.case // - src/class-elements/delete-error/cls-expr-method-delete.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName async generator (in method) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-methods-private, class-fields-public] +features: [class-methods-private, async-iteration, class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/expressions/class/err-method-delete-err-delete-call-expression-private-method-async.js b/test/language/expressions/class/err-method-delete-err-delete-call-expression-private-method-async.js index f44d0c0dea..81584c0e80 100644 --- a/test/language/expressions/class/err-method-delete-err-delete-call-expression-private-method-async.js +++ b/test/language/expressions/class/err-method-delete-err-delete-call-expression-private-method-async.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-private-method-async.case // - src/class-elements/delete-error/cls-expr-method-delete.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName async method (in method) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-methods-private, class-fields-public] +features: [class-methods-private, async-functions, class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/expressions/class/err-method-delete-err-delete-call-expression-private-method-gen.js b/test/language/expressions/class/err-method-delete-err-delete-call-expression-private-method-gen.js index a9450d49d5..004b184db7 100644 --- a/test/language/expressions/class/err-method-delete-err-delete-call-expression-private-method-gen.js +++ b/test/language/expressions/class/err-method-delete-err-delete-call-expression-private-method-gen.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-private-method-gen.case // - src/class-elements/delete-error/cls-expr-method-delete.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName generator (in method) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-methods-private, class-fields-public] +features: [class-methods-private, generators, class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/expressions/class/err-method-delete-err-delete-call-expression-private-method.js b/test/language/expressions/class/err-method-delete-err-delete-call-expression-private-method.js index ff17918f57..1a65ca28e1 100644 --- a/test/language/expressions/class/err-method-delete-err-delete-call-expression-private-method.js +++ b/test/language/expressions/class/err-method-delete-err-delete-call-expression-private-method.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-private-method.case // - src/class-elements/delete-error/cls-expr-method-delete.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName private ordinary method (in method) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-methods-private, class-fields-public] +features: [class-methods-private, class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/expressions/class/err-method-delete-err-delete-call-expression-private-no-reference.js b/test/language/expressions/class/err-method-delete-err-delete-call-expression-private-no-reference.js new file mode 100644 index 0000000000..d09d9e0ec3 --- /dev/null +++ b/test/language/expressions/class/err-method-delete-err-delete-call-expression-private-no-reference.js @@ -0,0 +1,39 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-call-expression-private-no-reference.case +// - src/class-elements/delete-error/cls-expr-method-delete.template +/*--- +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName no referencing class element (in method) +esid: sec-class-definitions-static-semantics-early-errors +features: [class, class-fields-private] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +var C = class { + #x; + + x() { + var g = this.f; + delete g().#m; + } + + f() { + return this; + } +} diff --git a/test/language/expressions/class/err-method-delete-err-delete-call-expression-privatename.js b/test/language/expressions/class/err-method-delete-err-delete-call-expression-privatename.js index 4d6459aa04..5c5528a7d7 100644 --- a/test/language/expressions/class/err-method-delete-err-delete-call-expression-privatename.js +++ b/test/language/expressions/class/err-method-delete-err-delete-call-expression-privatename.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-privatename.case // - src/class-elements/delete-error/cls-expr-method-delete.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName private field (in method) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-fields-public] +features: [class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/expressions/class/err-method-delete-err-delete-member-expression-private-method-accessor-get.js b/test/language/expressions/class/err-method-delete-err-delete-member-expression-private-method-accessor-get.js new file mode 100644 index 0000000000..bc1db5ef83 --- /dev/null +++ b/test/language/expressions/class/err-method-delete-err-delete-member-expression-private-method-accessor-get.js @@ -0,0 +1,38 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-member-expression-private-method-accessor-get.case +// - src/class-elements/delete-error/cls-expr-method-delete.template +/*--- +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName accessor get method (in method) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-methods-private, class, class-fields-private] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +var C = class { + #x; + + x() { + + delete this.#m +; + } + + +} diff --git a/test/language/expressions/class/err-method-delete-err-delete-member-expression-private-method-accessor-set.js b/test/language/expressions/class/err-method-delete-err-delete-member-expression-private-method-accessor-set.js new file mode 100644 index 0000000000..a7c23e0d34 --- /dev/null +++ b/test/language/expressions/class/err-method-delete-err-delete-member-expression-private-method-accessor-set.js @@ -0,0 +1,38 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-member-expression-private-method-accessor-set.case +// - src/class-elements/delete-error/cls-expr-method-delete.template +/*--- +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName accessor set method (in method) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-methods-private, class, class-fields-private] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +var C = class { + #x; + + x() { + + delete this.#m +; + } + + +} diff --git a/test/language/expressions/class/err-method-delete-err-delete-member-expression-private-method-async-gen.js b/test/language/expressions/class/err-method-delete-err-delete-member-expression-private-method-async-gen.js index 5b100cee0e..16d83ac20d 100644 --- a/test/language/expressions/class/err-method-delete-err-delete-member-expression-private-method-async-gen.js +++ b/test/language/expressions/class/err-method-delete-err-delete-member-expression-private-method-async-gen.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-member-expression-private-method-async-gen.case // - src/class-elements/delete-error/cls-expr-method-delete.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName async generator (in method) esid: sec-class-definitions-static-semantics-early-errors -features: [class-methods-private, class, class-fields-private] +features: [class-methods-private, async-iteration, class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse @@ -34,5 +34,5 @@ var C = class { ; } - + async *#m() {} } diff --git a/test/language/expressions/class/err-method-delete-err-delete-member-expression-private-method-async.js b/test/language/expressions/class/err-method-delete-err-delete-member-expression-private-method-async.js index 5cab49c52e..d394992e8e 100644 --- a/test/language/expressions/class/err-method-delete-err-delete-member-expression-private-method-async.js +++ b/test/language/expressions/class/err-method-delete-err-delete-member-expression-private-method-async.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-member-expression-private-method-async.case // - src/class-elements/delete-error/cls-expr-method-delete.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName async method (in method) esid: sec-class-definitions-static-semantics-early-errors -features: [class-methods-private, class, class-fields-private] +features: [class-methods-private, async-functions, class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse @@ -34,5 +34,5 @@ var C = class { ; } - + async #m() {} } diff --git a/test/language/expressions/class/err-method-delete-err-delete-member-expression-private-method-gen.js b/test/language/expressions/class/err-method-delete-err-delete-member-expression-private-method-gen.js index 350332223b..ccee6cc9cb 100644 --- a/test/language/expressions/class/err-method-delete-err-delete-member-expression-private-method-gen.js +++ b/test/language/expressions/class/err-method-delete-err-delete-member-expression-private-method-gen.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-member-expression-private-method-gen.case // - src/class-elements/delete-error/cls-expr-method-delete.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName generator (in method) esid: sec-class-definitions-static-semantics-early-errors -features: [class-methods-private, class, class-fields-private] +features: [class-methods-private, generators, class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse @@ -34,5 +34,5 @@ var C = class { ; } - + *#m() {} } diff --git a/test/language/expressions/class/err-method-delete-err-delete-member-expression-private-method.js b/test/language/expressions/class/err-method-delete-err-delete-member-expression-private-method.js index f5fbdaa6be..054a476385 100644 --- a/test/language/expressions/class/err-method-delete-err-delete-member-expression-private-method.js +++ b/test/language/expressions/class/err-method-delete-err-delete-member-expression-private-method.js @@ -2,7 +2,7 @@ // - src/class-elements/err-delete-member-expression-private-method.case // - src/class-elements/delete-error/cls-expr-method-delete.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName private ordinary method (in method) esid: sec-class-definitions-static-semantics-early-errors features: [class-methods-private, class, class-fields-private] flags: [generated, onlyStrict] diff --git a/test/language/expressions/class/err-method-delete-err-delete-member-expression-private-no-reference.js b/test/language/expressions/class/err-method-delete-err-delete-member-expression-private-no-reference.js new file mode 100644 index 0000000000..26c9fa2aa1 --- /dev/null +++ b/test/language/expressions/class/err-method-delete-err-delete-member-expression-private-no-reference.js @@ -0,0 +1,37 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-member-expression-private-no-reference.case +// - src/class-elements/delete-error/cls-expr-method-delete.template +/*--- +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName no referencing class element (in method) +esid: sec-class-definitions-static-semantics-early-errors +features: [class, class-fields-private] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +var C = class { + #x; + + x() { + + delete this.#m; + } + + +} diff --git a/test/language/expressions/class/err-method-delete-err-delete-member-expression-privatename.js b/test/language/expressions/class/err-method-delete-err-delete-member-expression-privatename.js index b115b91add..6bc7b160eb 100644 --- a/test/language/expressions/class/err-method-delete-err-delete-member-expression-privatename.js +++ b/test/language/expressions/class/err-method-delete-err-delete-member-expression-privatename.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-member-expression-privatename.case // - src/class-elements/delete-error/cls-expr-method-delete.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName private field (in method) esid: sec-class-definitions-static-semantics-early-errors -features: [class-fields-private, class] +features: [class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-accessor-get.js b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-accessor-get.js new file mode 100644 index 0000000000..53531d404a --- /dev/null +++ b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-accessor-get.js @@ -0,0 +1,45 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-call-expression-private-method-accessor-get.case +// - src/class-elements/delete-error/cls-expr-method-delete-twice-covered.template +/*--- +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName accessor get method (in method, recursively covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-methods-private, class-fields-public, class, class-fields-private] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + + It is a Syntax Error if the derived UnaryExpression is + PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and + CoverParenthesizedExpressionAndArrowParameterList ultimately derives a + phrase that, if used in place of UnaryExpression, would produce a + Syntax Error according to these rules. This rule is recursively applied. + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +var C = class { + #x; + + x() { + var g = this.f; + delete ((g().#m)); + } + + f() { + return this; + } +} diff --git a/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-accessor-set.js b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-accessor-set.js new file mode 100644 index 0000000000..e8ff9b0df1 --- /dev/null +++ b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-accessor-set.js @@ -0,0 +1,45 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-call-expression-private-method-accessor-set.case +// - src/class-elements/delete-error/cls-expr-method-delete-twice-covered.template +/*--- +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName accessor set method (in method, recursively covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class, class-fields-private, class-methods-private, class-fields-public] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + + It is a Syntax Error if the derived UnaryExpression is + PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and + CoverParenthesizedExpressionAndArrowParameterList ultimately derives a + phrase that, if used in place of UnaryExpression, would produce a + Syntax Error according to these rules. This rule is recursively applied. + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +var C = class { + #x; + + x() { + var g = this.f; + delete ((g().#m)); + } + + f() { + return this; + } +} diff --git a/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-async-gen.js b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-async-gen.js index 15ba93738b..87aff2a08e 100644 --- a/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-async-gen.js +++ b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-async-gen.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-private-method-async-gen.case // - src/class-elements/delete-error/cls-expr-method-delete-twice-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, recursively covered) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName async generator (in method, recursively covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-methods-private, class-fields-public] +features: [class-methods-private, async-iteration, class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-async.js b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-async.js index 5b9a044c9e..2e6b165918 100644 --- a/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-async.js +++ b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-async.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-private-method-async.case // - src/class-elements/delete-error/cls-expr-method-delete-twice-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, recursively covered) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName async method (in method, recursively covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-methods-private, class-fields-public] +features: [class-methods-private, async-functions, class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-gen.js b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-gen.js index 753d3145e7..1f2e6f74e5 100644 --- a/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-gen.js +++ b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-gen.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-private-method-gen.case // - src/class-elements/delete-error/cls-expr-method-delete-twice-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, recursively covered) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName generator (in method, recursively covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-methods-private, class-fields-public] +features: [class-methods-private, generators, class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-private-method.js b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-private-method.js index f51adde5f6..b29c6bfb8b 100644 --- a/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-private-method.js +++ b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-private-method.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-private-method.case // - src/class-elements/delete-error/cls-expr-method-delete-twice-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, recursively covered) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName private ordinary method (in method, recursively covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-methods-private, class-fields-public] +features: [class-methods-private, class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-private-no-reference.js b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-private-no-reference.js new file mode 100644 index 0000000000..6ea1bef465 --- /dev/null +++ b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-private-no-reference.js @@ -0,0 +1,45 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-call-expression-private-no-reference.case +// - src/class-elements/delete-error/cls-expr-method-delete-twice-covered.template +/*--- +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName no referencing class element (in method, recursively covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class, class-fields-private] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + + It is a Syntax Error if the derived UnaryExpression is + PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and + CoverParenthesizedExpressionAndArrowParameterList ultimately derives a + phrase that, if used in place of UnaryExpression, would produce a + Syntax Error according to these rules. This rule is recursively applied. + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +var C = class { + #x; + + x() { + var g = this.f; + delete ((g().#m)); + } + + f() { + return this; + } +} diff --git a/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-privatename.js b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-privatename.js index d38b568071..24fd268378 100644 --- a/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-privatename.js +++ b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-call-expression-privatename.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-privatename.case // - src/class-elements/delete-error/cls-expr-method-delete-twice-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, recursively covered) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName private field (in method, recursively covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-fields-public] +features: [class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-accessor-get.js b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-accessor-get.js new file mode 100644 index 0000000000..314a5cee4a --- /dev/null +++ b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-accessor-get.js @@ -0,0 +1,44 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-member-expression-private-method-accessor-get.case +// - src/class-elements/delete-error/cls-expr-method-delete-twice-covered.template +/*--- +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName accessor get method (in method, recursively covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-methods-private, class, class-fields-private] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + + It is a Syntax Error if the derived UnaryExpression is + PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and + CoverParenthesizedExpressionAndArrowParameterList ultimately derives a + phrase that, if used in place of UnaryExpression, would produce a + Syntax Error according to these rules. This rule is recursively applied. + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +var C = class { + #x; + + x() { + + delete ((this.#m +)); + } + + +} diff --git a/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-accessor-set.js b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-accessor-set.js new file mode 100644 index 0000000000..69fcafa90b --- /dev/null +++ b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-accessor-set.js @@ -0,0 +1,44 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-member-expression-private-method-accessor-set.case +// - src/class-elements/delete-error/cls-expr-method-delete-twice-covered.template +/*--- +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName accessor set method (in method, recursively covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-methods-private, class, class-fields-private] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + + It is a Syntax Error if the derived UnaryExpression is + PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and + CoverParenthesizedExpressionAndArrowParameterList ultimately derives a + phrase that, if used in place of UnaryExpression, would produce a + Syntax Error according to these rules. This rule is recursively applied. + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +var C = class { + #x; + + x() { + + delete ((this.#m +)); + } + + +} diff --git a/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-async-gen.js b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-async-gen.js index 9ed9ddf0d5..5ac5552e25 100644 --- a/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-async-gen.js +++ b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-async-gen.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-member-expression-private-method-async-gen.case // - src/class-elements/delete-error/cls-expr-method-delete-twice-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, recursively covered) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName async generator (in method, recursively covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class-methods-private, class, class-fields-private] +features: [class-methods-private, async-iteration, class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse @@ -40,5 +40,5 @@ var C = class { )); } - + async *#m() {} } diff --git a/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-async.js b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-async.js index bda94fa753..5f03915dc0 100644 --- a/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-async.js +++ b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-async.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-member-expression-private-method-async.case // - src/class-elements/delete-error/cls-expr-method-delete-twice-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, recursively covered) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName async method (in method, recursively covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class-methods-private, class, class-fields-private] +features: [class-methods-private, async-functions, class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse @@ -40,5 +40,5 @@ var C = class { )); } - + async #m() {} } diff --git a/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-gen.js b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-gen.js index d854d47538..f457b3b0fa 100644 --- a/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-gen.js +++ b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-gen.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-member-expression-private-method-gen.case // - src/class-elements/delete-error/cls-expr-method-delete-twice-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, recursively covered) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName generator (in method, recursively covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class-methods-private, class, class-fields-private] +features: [class-methods-private, generators, class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse @@ -40,5 +40,5 @@ var C = class { )); } - + *#m() {} } diff --git a/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-private-method.js b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-private-method.js index 1b56bfdf55..887a2e16ae 100644 --- a/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-private-method.js +++ b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-private-method.js @@ -2,7 +2,7 @@ // - src/class-elements/err-delete-member-expression-private-method.case // - src/class-elements/delete-error/cls-expr-method-delete-twice-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, recursively covered) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName private ordinary method (in method, recursively covered) esid: sec-class-definitions-static-semantics-early-errors features: [class-methods-private, class, class-fields-private] flags: [generated, onlyStrict] diff --git a/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-private-no-reference.js b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-private-no-reference.js new file mode 100644 index 0000000000..a89c05360e --- /dev/null +++ b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-private-no-reference.js @@ -0,0 +1,43 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-member-expression-private-no-reference.case +// - src/class-elements/delete-error/cls-expr-method-delete-twice-covered.template +/*--- +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName no referencing class element (in method, recursively covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class, class-fields-private] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + + It is a Syntax Error if the derived UnaryExpression is + PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and + CoverParenthesizedExpressionAndArrowParameterList ultimately derives a + phrase that, if used in place of UnaryExpression, would produce a + Syntax Error according to these rules. This rule is recursively applied. + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +var C = class { + #x; + + x() { + + delete ((this.#m)); + } + + +} diff --git a/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-privatename.js b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-privatename.js index ba1409305b..f9b1ab978f 100644 --- a/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-privatename.js +++ b/test/language/expressions/class/err-method-delete-twice-covered-err-delete-member-expression-privatename.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-member-expression-privatename.case // - src/class-elements/delete-error/cls-expr-method-delete-twice-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, recursively covered) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName private field (in method, recursively covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class-fields-private, class] +features: [class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-private-method-accessor-get.js b/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-private-method-accessor-get.js new file mode 100644 index 0000000000..56ad756e6a --- /dev/null +++ b/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-private-method-accessor-get.js @@ -0,0 +1,41 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-call-expression-private-method-accessor-get.case +// - src/class-elements/delete-error/cls-decl-field-delete-covered.template +/*--- +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName accessor get method (in field, covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-methods-private, class-fields-public, class, class-fields-private] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + + It is a Syntax Error if the derived UnaryExpression is + PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and + CoverParenthesizedExpressionAndArrowParameterList ultimately derives a + phrase that, if used in place of UnaryExpression, would produce a + Syntax Error according to these rules. This rule is recursively applied. + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +class C { + #x; + g = this.f; + x = delete (g().#m); + f() { + return this; + } +} diff --git a/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-private-method-accessor-set.js b/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-private-method-accessor-set.js new file mode 100644 index 0000000000..3949eb76a7 --- /dev/null +++ b/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-private-method-accessor-set.js @@ -0,0 +1,41 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-call-expression-private-method-accessor-set.case +// - src/class-elements/delete-error/cls-decl-field-delete-covered.template +/*--- +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName accessor set method (in field, covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class, class-fields-private, class-methods-private, class-fields-public] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + + It is a Syntax Error if the derived UnaryExpression is + PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and + CoverParenthesizedExpressionAndArrowParameterList ultimately derives a + phrase that, if used in place of UnaryExpression, would produce a + Syntax Error according to these rules. This rule is recursively applied. + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +class C { + #x; + g = this.f; + x = delete (g().#m); + f() { + return this; + } +} diff --git a/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-private-method-async-gen.js b/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-private-method-async-gen.js index dc41395c8b..d161f8609f 100644 --- a/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-private-method-async-gen.js +++ b/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-private-method-async-gen.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-private-method-async-gen.case // - src/class-elements/delete-error/cls-decl-field-delete-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, covered) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName async generator (in field, covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-methods-private, class-fields-public] +features: [class-methods-private, async-iteration, class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-private-method-async.js b/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-private-method-async.js index 84a5677abb..e64c827651 100644 --- a/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-private-method-async.js +++ b/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-private-method-async.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-private-method-async.case // - src/class-elements/delete-error/cls-decl-field-delete-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, covered) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName async method (in field, covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-methods-private, class-fields-public] +features: [class-methods-private, async-functions, class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-private-method-gen.js b/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-private-method-gen.js index 9f67675420..91fb60f4ed 100644 --- a/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-private-method-gen.js +++ b/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-private-method-gen.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-private-method-gen.case // - src/class-elements/delete-error/cls-decl-field-delete-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, covered) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName generator (in field, covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-methods-private, class-fields-public] +features: [class-methods-private, generators, class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-private-method.js b/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-private-method.js index 507fb4bccd..d0c3575d8a 100644 --- a/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-private-method.js +++ b/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-private-method.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-private-method.case // - src/class-elements/delete-error/cls-decl-field-delete-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, covered) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName private ordinary method (in field, covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-methods-private, class-fields-public] +features: [class-methods-private, class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-private-no-reference.js b/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-private-no-reference.js new file mode 100644 index 0000000000..fee8050132 --- /dev/null +++ b/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-private-no-reference.js @@ -0,0 +1,41 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-call-expression-private-no-reference.case +// - src/class-elements/delete-error/cls-decl-field-delete-covered.template +/*--- +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName no referencing class element (in field, covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class, class-fields-private, class-fields-public] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + + It is a Syntax Error if the derived UnaryExpression is + PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and + CoverParenthesizedExpressionAndArrowParameterList ultimately derives a + phrase that, if used in place of UnaryExpression, would produce a + Syntax Error according to these rules. This rule is recursively applied. + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +class C { + #x; + g = this.f; + x = delete (g().#m); + f() { + return this; + } +} diff --git a/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-privatename.js b/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-privatename.js index 527bd983ee..12228306af 100644 --- a/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-privatename.js +++ b/test/language/statements/class/err-field-delete-covered-err-delete-call-expression-privatename.js @@ -2,7 +2,7 @@ // - src/class-elements/err-delete-call-expression-privatename.case // - src/class-elements/delete-error/cls-decl-field-delete-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, covered) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName private field (in field, covered) esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] diff --git a/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-private-method-accessor-get.js b/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-private-method-accessor-get.js new file mode 100644 index 0000000000..3de6bd17c9 --- /dev/null +++ b/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-private-method-accessor-get.js @@ -0,0 +1,40 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-member-expression-private-method-accessor-get.case +// - src/class-elements/delete-error/cls-decl-field-delete-covered.template +/*--- +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName accessor get method (in field, covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-methods-private, class, class-fields-private, class-fields-public] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + + It is a Syntax Error if the derived UnaryExpression is + PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and + CoverParenthesizedExpressionAndArrowParameterList ultimately derives a + phrase that, if used in place of UnaryExpression, would produce a + Syntax Error according to these rules. This rule is recursively applied. + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +class C { + #x; + + x = delete (this.#m +); + +} diff --git a/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-private-method-accessor-set.js b/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-private-method-accessor-set.js new file mode 100644 index 0000000000..bc1f4e8d4a --- /dev/null +++ b/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-private-method-accessor-set.js @@ -0,0 +1,40 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-member-expression-private-method-accessor-set.case +// - src/class-elements/delete-error/cls-decl-field-delete-covered.template +/*--- +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName accessor set method (in field, covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-methods-private, class, class-fields-private, class-fields-public] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + + It is a Syntax Error if the derived UnaryExpression is + PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and + CoverParenthesizedExpressionAndArrowParameterList ultimately derives a + phrase that, if used in place of UnaryExpression, would produce a + Syntax Error according to these rules. This rule is recursively applied. + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +class C { + #x; + + x = delete (this.#m +); + +} diff --git a/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-private-method-async-gen.js b/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-private-method-async-gen.js index 92bd8fb324..61e5379b3e 100644 --- a/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-private-method-async-gen.js +++ b/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-private-method-async-gen.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-member-expression-private-method-async-gen.case // - src/class-elements/delete-error/cls-decl-field-delete-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, covered) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName async generator (in field, covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class-methods-private, class, class-fields-private, class-fields-public] +features: [class-methods-private, async-iteration, class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] negative: phase: parse @@ -36,5 +36,5 @@ class C { x = delete (this.#m ); - + async *#m() {} } diff --git a/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-private-method-async.js b/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-private-method-async.js index 7706ee76aa..bbd87f265c 100644 --- a/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-private-method-async.js +++ b/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-private-method-async.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-member-expression-private-method-async.case // - src/class-elements/delete-error/cls-decl-field-delete-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, covered) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName async method (in field, covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class-methods-private, class, class-fields-private, class-fields-public] +features: [class-methods-private, async-functions, class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] negative: phase: parse @@ -36,5 +36,5 @@ class C { x = delete (this.#m ); - + async #m() {} } diff --git a/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-private-method-gen.js b/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-private-method-gen.js index 75470c8324..3534ce6580 100644 --- a/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-private-method-gen.js +++ b/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-private-method-gen.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-member-expression-private-method-gen.case // - src/class-elements/delete-error/cls-decl-field-delete-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, covered) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName generator (in field, covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class-methods-private, class, class-fields-private, class-fields-public] +features: [class-methods-private, generators, class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] negative: phase: parse @@ -36,5 +36,5 @@ class C { x = delete (this.#m ); - + *#m() {} } diff --git a/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-private-method.js b/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-private-method.js index 4a6f0ea927..449a4afae9 100644 --- a/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-private-method.js +++ b/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-private-method.js @@ -2,7 +2,7 @@ // - src/class-elements/err-delete-member-expression-private-method.case // - src/class-elements/delete-error/cls-decl-field-delete-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, covered) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName private ordinary method (in field, covered) esid: sec-class-definitions-static-semantics-early-errors features: [class-methods-private, class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] diff --git a/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-private-no-reference.js b/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-private-no-reference.js new file mode 100644 index 0000000000..eff2f03997 --- /dev/null +++ b/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-private-no-reference.js @@ -0,0 +1,39 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-member-expression-private-no-reference.case +// - src/class-elements/delete-error/cls-decl-field-delete-covered.template +/*--- +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName no referencing class element (in field, covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class, class-fields-private, class-fields-public] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + + It is a Syntax Error if the derived UnaryExpression is + PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and + CoverParenthesizedExpressionAndArrowParameterList ultimately derives a + phrase that, if used in place of UnaryExpression, would produce a + Syntax Error according to these rules. This rule is recursively applied. + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +class C { + #x; + + x = delete (this.#m); + +} diff --git a/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-privatename.js b/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-privatename.js index 87598e0898..d15045a3e8 100644 --- a/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-privatename.js +++ b/test/language/statements/class/err-field-delete-covered-err-delete-member-expression-privatename.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-member-expression-privatename.case // - src/class-elements/delete-error/cls-decl-field-delete-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, covered) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName private field (in field, covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class-fields-private, class, class-fields-public] +features: [class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/statements/class/err-field-delete-err-delete-call-expression-private-method-accessor-get.js b/test/language/statements/class/err-field-delete-err-delete-call-expression-private-method-accessor-get.js new file mode 100644 index 0000000000..9b38fc409a --- /dev/null +++ b/test/language/statements/class/err-field-delete-err-delete-call-expression-private-method-accessor-get.js @@ -0,0 +1,35 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-call-expression-private-method-accessor-get.case +// - src/class-elements/delete-error/cls-decl-field-delete.template +/*--- +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName accessor get method (in field) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-methods-private, class-fields-public, class, class-fields-private] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +class C { + #x; + g = this.f; + x = delete g().#m; + f() { + return this; + } +} diff --git a/test/language/statements/class/err-field-delete-err-delete-call-expression-private-method-accessor-set.js b/test/language/statements/class/err-field-delete-err-delete-call-expression-private-method-accessor-set.js new file mode 100644 index 0000000000..f3df025d7b --- /dev/null +++ b/test/language/statements/class/err-field-delete-err-delete-call-expression-private-method-accessor-set.js @@ -0,0 +1,35 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-call-expression-private-method-accessor-set.case +// - src/class-elements/delete-error/cls-decl-field-delete.template +/*--- +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName accessor set method (in field) +esid: sec-class-definitions-static-semantics-early-errors +features: [class, class-fields-private, class-methods-private, class-fields-public] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +class C { + #x; + g = this.f; + x = delete g().#m; + f() { + return this; + } +} diff --git a/test/language/statements/class/err-field-delete-err-delete-call-expression-private-method-async-gen.js b/test/language/statements/class/err-field-delete-err-delete-call-expression-private-method-async-gen.js index 65dfa3a196..f965784bc3 100644 --- a/test/language/statements/class/err-field-delete-err-delete-call-expression-private-method-async-gen.js +++ b/test/language/statements/class/err-field-delete-err-delete-call-expression-private-method-async-gen.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-private-method-async-gen.case // - src/class-elements/delete-error/cls-decl-field-delete.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName async generator (in field) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-methods-private, class-fields-public] +features: [class-methods-private, async-iteration, class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/statements/class/err-field-delete-err-delete-call-expression-private-method-async.js b/test/language/statements/class/err-field-delete-err-delete-call-expression-private-method-async.js index eaff833586..c09dccca7b 100644 --- a/test/language/statements/class/err-field-delete-err-delete-call-expression-private-method-async.js +++ b/test/language/statements/class/err-field-delete-err-delete-call-expression-private-method-async.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-private-method-async.case // - src/class-elements/delete-error/cls-decl-field-delete.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName async method (in field) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-methods-private, class-fields-public] +features: [class-methods-private, async-functions, class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/statements/class/err-field-delete-err-delete-call-expression-private-method-gen.js b/test/language/statements/class/err-field-delete-err-delete-call-expression-private-method-gen.js index c91489364a..9d1cf184dc 100644 --- a/test/language/statements/class/err-field-delete-err-delete-call-expression-private-method-gen.js +++ b/test/language/statements/class/err-field-delete-err-delete-call-expression-private-method-gen.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-private-method-gen.case // - src/class-elements/delete-error/cls-decl-field-delete.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName generator (in field) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-methods-private, class-fields-public] +features: [class-methods-private, generators, class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/statements/class/err-field-delete-err-delete-call-expression-private-method.js b/test/language/statements/class/err-field-delete-err-delete-call-expression-private-method.js index 59970b651f..9767b76c70 100644 --- a/test/language/statements/class/err-field-delete-err-delete-call-expression-private-method.js +++ b/test/language/statements/class/err-field-delete-err-delete-call-expression-private-method.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-private-method.case // - src/class-elements/delete-error/cls-decl-field-delete.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName private ordinary method (in field) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-methods-private, class-fields-public] +features: [class-methods-private, class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/statements/class/err-field-delete-err-delete-call-expression-private-no-reference.js b/test/language/statements/class/err-field-delete-err-delete-call-expression-private-no-reference.js new file mode 100644 index 0000000000..e3ddf2818d --- /dev/null +++ b/test/language/statements/class/err-field-delete-err-delete-call-expression-private-no-reference.js @@ -0,0 +1,35 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-call-expression-private-no-reference.case +// - src/class-elements/delete-error/cls-decl-field-delete.template +/*--- +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName no referencing class element (in field) +esid: sec-class-definitions-static-semantics-early-errors +features: [class, class-fields-private, class-fields-public] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +class C { + #x; + g = this.f; + x = delete g().#m; + f() { + return this; + } +} diff --git a/test/language/statements/class/err-field-delete-err-delete-call-expression-privatename.js b/test/language/statements/class/err-field-delete-err-delete-call-expression-privatename.js index 1fb46f0584..f076fd9c9f 100644 --- a/test/language/statements/class/err-field-delete-err-delete-call-expression-privatename.js +++ b/test/language/statements/class/err-field-delete-err-delete-call-expression-privatename.js @@ -2,7 +2,7 @@ // - src/class-elements/err-delete-call-expression-privatename.case // - src/class-elements/delete-error/cls-decl-field-delete.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName private field (in field) esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] diff --git a/test/language/statements/class/err-field-delete-err-delete-member-expression-private-method-accessor-get.js b/test/language/statements/class/err-field-delete-err-delete-member-expression-private-method-accessor-get.js new file mode 100644 index 0000000000..c1c3ca28cb --- /dev/null +++ b/test/language/statements/class/err-field-delete-err-delete-member-expression-private-method-accessor-get.js @@ -0,0 +1,34 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-member-expression-private-method-accessor-get.case +// - src/class-elements/delete-error/cls-decl-field-delete.template +/*--- +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName accessor get method (in field) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-methods-private, class, class-fields-private, class-fields-public] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +class C { + #x; + + x = delete this.#m +; + +} diff --git a/test/language/statements/class/err-field-delete-err-delete-member-expression-private-method-accessor-set.js b/test/language/statements/class/err-field-delete-err-delete-member-expression-private-method-accessor-set.js new file mode 100644 index 0000000000..4a4d31c986 --- /dev/null +++ b/test/language/statements/class/err-field-delete-err-delete-member-expression-private-method-accessor-set.js @@ -0,0 +1,34 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-member-expression-private-method-accessor-set.case +// - src/class-elements/delete-error/cls-decl-field-delete.template +/*--- +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName accessor set method (in field) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-methods-private, class, class-fields-private, class-fields-public] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +class C { + #x; + + x = delete this.#m +; + +} diff --git a/test/language/statements/class/err-field-delete-err-delete-member-expression-private-method-async-gen.js b/test/language/statements/class/err-field-delete-err-delete-member-expression-private-method-async-gen.js index 233b8eb4ae..737c4f359f 100644 --- a/test/language/statements/class/err-field-delete-err-delete-member-expression-private-method-async-gen.js +++ b/test/language/statements/class/err-field-delete-err-delete-member-expression-private-method-async-gen.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-member-expression-private-method-async-gen.case // - src/class-elements/delete-error/cls-decl-field-delete.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName async generator (in field) esid: sec-class-definitions-static-semantics-early-errors -features: [class-methods-private, class, class-fields-private, class-fields-public] +features: [class-methods-private, async-iteration, class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] negative: phase: parse @@ -30,5 +30,5 @@ class C { x = delete this.#m ; - + async *#m() {} } diff --git a/test/language/statements/class/err-field-delete-err-delete-member-expression-private-method-async.js b/test/language/statements/class/err-field-delete-err-delete-member-expression-private-method-async.js index f7f114f098..d852b17816 100644 --- a/test/language/statements/class/err-field-delete-err-delete-member-expression-private-method-async.js +++ b/test/language/statements/class/err-field-delete-err-delete-member-expression-private-method-async.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-member-expression-private-method-async.case // - src/class-elements/delete-error/cls-decl-field-delete.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName async method (in field) esid: sec-class-definitions-static-semantics-early-errors -features: [class-methods-private, class, class-fields-private, class-fields-public] +features: [class-methods-private, async-functions, class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] negative: phase: parse @@ -30,5 +30,5 @@ class C { x = delete this.#m ; - + async #m() {} } diff --git a/test/language/statements/class/err-field-delete-err-delete-member-expression-private-method-gen.js b/test/language/statements/class/err-field-delete-err-delete-member-expression-private-method-gen.js index c707ace238..300b3a52fa 100644 --- a/test/language/statements/class/err-field-delete-err-delete-member-expression-private-method-gen.js +++ b/test/language/statements/class/err-field-delete-err-delete-member-expression-private-method-gen.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-member-expression-private-method-gen.case // - src/class-elements/delete-error/cls-decl-field-delete.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName generator (in field) esid: sec-class-definitions-static-semantics-early-errors -features: [class-methods-private, class, class-fields-private, class-fields-public] +features: [class-methods-private, generators, class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] negative: phase: parse @@ -30,5 +30,5 @@ class C { x = delete this.#m ; - + *#m() {} } diff --git a/test/language/statements/class/err-field-delete-err-delete-member-expression-private-method.js b/test/language/statements/class/err-field-delete-err-delete-member-expression-private-method.js index c3980c9bf7..14c859fc03 100644 --- a/test/language/statements/class/err-field-delete-err-delete-member-expression-private-method.js +++ b/test/language/statements/class/err-field-delete-err-delete-member-expression-private-method.js @@ -2,7 +2,7 @@ // - src/class-elements/err-delete-member-expression-private-method.case // - src/class-elements/delete-error/cls-decl-field-delete.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName private ordinary method (in field) esid: sec-class-definitions-static-semantics-early-errors features: [class-methods-private, class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] diff --git a/test/language/statements/class/err-field-delete-err-delete-member-expression-private-no-reference.js b/test/language/statements/class/err-field-delete-err-delete-member-expression-private-no-reference.js new file mode 100644 index 0000000000..b81f593b45 --- /dev/null +++ b/test/language/statements/class/err-field-delete-err-delete-member-expression-private-no-reference.js @@ -0,0 +1,33 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-member-expression-private-no-reference.case +// - src/class-elements/delete-error/cls-decl-field-delete.template +/*--- +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName no referencing class element (in field) +esid: sec-class-definitions-static-semantics-early-errors +features: [class, class-fields-private, class-fields-public] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +class C { + #x; + + x = delete this.#m; + +} diff --git a/test/language/statements/class/err-field-delete-err-delete-member-expression-privatename.js b/test/language/statements/class/err-field-delete-err-delete-member-expression-privatename.js index b141545b42..755ba0151e 100644 --- a/test/language/statements/class/err-field-delete-err-delete-member-expression-privatename.js +++ b/test/language/statements/class/err-field-delete-err-delete-member-expression-privatename.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-member-expression-privatename.case // - src/class-elements/delete-error/cls-decl-field-delete.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName private field (in field) esid: sec-class-definitions-static-semantics-early-errors -features: [class-fields-private, class, class-fields-public] +features: [class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-accessor-get.js b/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-accessor-get.js new file mode 100644 index 0000000000..49c5a6d63c --- /dev/null +++ b/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-accessor-get.js @@ -0,0 +1,42 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-call-expression-private-method-accessor-get.case +// - src/class-elements/delete-error/cls-decl-field-delete-twice-covered.template +/*--- +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName accessor get method (in field, recursively covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-methods-private, class-fields-public, class, class-fields-private] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + + It is a Syntax Error if the derived UnaryExpression is + PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and + CoverParenthesizedExpressionAndArrowParameterList ultimately derives a + phrase that, if used in place of UnaryExpression, would produce a + Syntax Error according to these rules. This rule is recursively applied. + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +class C { + #x; + g = this.f; + x = delete ((g().#m)); + + f() { + return this; + } +} diff --git a/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-accessor-set.js b/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-accessor-set.js new file mode 100644 index 0000000000..efe2014c5a --- /dev/null +++ b/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-accessor-set.js @@ -0,0 +1,42 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-call-expression-private-method-accessor-set.case +// - src/class-elements/delete-error/cls-decl-field-delete-twice-covered.template +/*--- +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName accessor set method (in field, recursively covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class, class-fields-private, class-methods-private, class-fields-public] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + + It is a Syntax Error if the derived UnaryExpression is + PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and + CoverParenthesizedExpressionAndArrowParameterList ultimately derives a + phrase that, if used in place of UnaryExpression, would produce a + Syntax Error according to these rules. This rule is recursively applied. + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +class C { + #x; + g = this.f; + x = delete ((g().#m)); + + f() { + return this; + } +} diff --git a/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-async-gen.js b/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-async-gen.js index 8871ce46a0..f3148aa2c6 100644 --- a/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-async-gen.js +++ b/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-async-gen.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-private-method-async-gen.case // - src/class-elements/delete-error/cls-decl-field-delete-twice-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, recursively covered) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName async generator (in field, recursively covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-methods-private, class-fields-public] +features: [class-methods-private, async-iteration, class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-async.js b/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-async.js index 13f15a1407..dce9e28182 100644 --- a/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-async.js +++ b/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-async.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-private-method-async.case // - src/class-elements/delete-error/cls-decl-field-delete-twice-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, recursively covered) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName async method (in field, recursively covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-methods-private, class-fields-public] +features: [class-methods-private, async-functions, class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-gen.js b/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-gen.js index 186528c21b..201709812b 100644 --- a/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-gen.js +++ b/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-private-method-gen.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-private-method-gen.case // - src/class-elements/delete-error/cls-decl-field-delete-twice-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, recursively covered) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName generator (in field, recursively covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-methods-private, class-fields-public] +features: [class-methods-private, generators, class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-private-method.js b/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-private-method.js index 50b84c0f91..5e87836ca6 100644 --- a/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-private-method.js +++ b/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-private-method.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-private-method.case // - src/class-elements/delete-error/cls-decl-field-delete-twice-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, recursively covered) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName private ordinary method (in field, recursively covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-methods-private, class-fields-public] +features: [class-methods-private, class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-private-no-reference.js b/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-private-no-reference.js new file mode 100644 index 0000000000..cf911e748e --- /dev/null +++ b/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-private-no-reference.js @@ -0,0 +1,42 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-call-expression-private-no-reference.case +// - src/class-elements/delete-error/cls-decl-field-delete-twice-covered.template +/*--- +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName no referencing class element (in field, recursively covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class, class-fields-private, class-fields-public] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + + It is a Syntax Error if the derived UnaryExpression is + PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and + CoverParenthesizedExpressionAndArrowParameterList ultimately derives a + phrase that, if used in place of UnaryExpression, would produce a + Syntax Error according to these rules. This rule is recursively applied. + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +class C { + #x; + g = this.f; + x = delete ((g().#m)); + + f() { + return this; + } +} diff --git a/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-privatename.js b/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-privatename.js index 04af0074f1..2bd514b1d1 100644 --- a/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-privatename.js +++ b/test/language/statements/class/err-field-delete-twice-covered-err-delete-call-expression-privatename.js @@ -2,7 +2,7 @@ // - src/class-elements/err-delete-call-expression-privatename.case // - src/class-elements/delete-error/cls-decl-field-delete-twice-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, recursively covered) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName private field (in field, recursively covered) esid: sec-class-definitions-static-semantics-early-errors features: [class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] diff --git a/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-accessor-get.js b/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-accessor-get.js new file mode 100644 index 0000000000..315dbc3476 --- /dev/null +++ b/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-accessor-get.js @@ -0,0 +1,41 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-member-expression-private-method-accessor-get.case +// - src/class-elements/delete-error/cls-decl-field-delete-twice-covered.template +/*--- +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName accessor get method (in field, recursively covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-methods-private, class, class-fields-private, class-fields-public] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + + It is a Syntax Error if the derived UnaryExpression is + PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and + CoverParenthesizedExpressionAndArrowParameterList ultimately derives a + phrase that, if used in place of UnaryExpression, would produce a + Syntax Error according to these rules. This rule is recursively applied. + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +class C { + #x; + + x = delete ((this.#m +)); + + +} diff --git a/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-accessor-set.js b/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-accessor-set.js new file mode 100644 index 0000000000..e962c924d2 --- /dev/null +++ b/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-accessor-set.js @@ -0,0 +1,41 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-member-expression-private-method-accessor-set.case +// - src/class-elements/delete-error/cls-decl-field-delete-twice-covered.template +/*--- +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName accessor set method (in field, recursively covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-methods-private, class, class-fields-private, class-fields-public] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + + It is a Syntax Error if the derived UnaryExpression is + PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and + CoverParenthesizedExpressionAndArrowParameterList ultimately derives a + phrase that, if used in place of UnaryExpression, would produce a + Syntax Error according to these rules. This rule is recursively applied. + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +class C { + #x; + + x = delete ((this.#m +)); + + +} diff --git a/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-async-gen.js b/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-async-gen.js index 1ed22bbf44..7a48309bd4 100644 --- a/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-async-gen.js +++ b/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-async-gen.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-member-expression-private-method-async-gen.case // - src/class-elements/delete-error/cls-decl-field-delete-twice-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, recursively covered) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName async generator (in field, recursively covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class-methods-private, class, class-fields-private, class-fields-public] +features: [class-methods-private, async-iteration, class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] negative: phase: parse @@ -37,5 +37,5 @@ class C { x = delete ((this.#m )); - + async *#m() {} } diff --git a/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-async.js b/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-async.js index a5bf66a854..235361bb42 100644 --- a/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-async.js +++ b/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-async.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-member-expression-private-method-async.case // - src/class-elements/delete-error/cls-decl-field-delete-twice-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, recursively covered) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName async method (in field, recursively covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class-methods-private, class, class-fields-private, class-fields-public] +features: [class-methods-private, async-functions, class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] negative: phase: parse @@ -37,5 +37,5 @@ class C { x = delete ((this.#m )); - + async #m() {} } diff --git a/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-gen.js b/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-gen.js index 7b85917b38..daaaefdaad 100644 --- a/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-gen.js +++ b/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-private-method-gen.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-member-expression-private-method-gen.case // - src/class-elements/delete-error/cls-decl-field-delete-twice-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, recursively covered) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName generator (in field, recursively covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class-methods-private, class, class-fields-private, class-fields-public] +features: [class-methods-private, generators, class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] negative: phase: parse @@ -37,5 +37,5 @@ class C { x = delete ((this.#m )); - + *#m() {} } diff --git a/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-private-method.js b/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-private-method.js index 174eacf25f..25e568afad 100644 --- a/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-private-method.js +++ b/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-private-method.js @@ -2,7 +2,7 @@ // - src/class-elements/err-delete-member-expression-private-method.case // - src/class-elements/delete-error/cls-decl-field-delete-twice-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, recursively covered) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName private ordinary method (in field, recursively covered) esid: sec-class-definitions-static-semantics-early-errors features: [class-methods-private, class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] diff --git a/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-private-no-reference.js b/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-private-no-reference.js new file mode 100644 index 0000000000..8a305cb440 --- /dev/null +++ b/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-private-no-reference.js @@ -0,0 +1,40 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-member-expression-private-no-reference.case +// - src/class-elements/delete-error/cls-decl-field-delete-twice-covered.template +/*--- +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName no referencing class element (in field, recursively covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class, class-fields-private, class-fields-public] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + + It is a Syntax Error if the derived UnaryExpression is + PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and + CoverParenthesizedExpressionAndArrowParameterList ultimately derives a + phrase that, if used in place of UnaryExpression, would produce a + Syntax Error according to these rules. This rule is recursively applied. + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +class C { + #x; + + x = delete ((this.#m)); + + +} diff --git a/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-privatename.js b/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-privatename.js index 0aeafc533a..d1c7dc723b 100644 --- a/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-privatename.js +++ b/test/language/statements/class/err-field-delete-twice-covered-err-delete-member-expression-privatename.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-member-expression-privatename.case // - src/class-elements/delete-error/cls-decl-field-delete-twice-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in field, recursively covered) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName private field (in field, recursively covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class-fields-private, class, class-fields-public] +features: [class, class-fields-private, class-fields-public] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-private-method-accessor-get.js b/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-private-method-accessor-get.js new file mode 100644 index 0000000000..0e7da6469e --- /dev/null +++ b/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-private-method-accessor-get.js @@ -0,0 +1,45 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-call-expression-private-method-accessor-get.case +// - src/class-elements/delete-error/cls-decl-method-delete-covered.template +/*--- +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName accessor get method (in method, covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-methods-private, class-fields-public, class, class-fields-private] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + + It is a Syntax Error if the derived UnaryExpression is + PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and + CoverParenthesizedExpressionAndArrowParameterList ultimately derives a + phrase that, if used in place of UnaryExpression, would produce a + Syntax Error according to these rules. This rule is recursively applied. + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +class C { + #x; + + x() { + var g = this.f; + delete (g().#m); + } + + f() { + return this; + } +} diff --git a/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-private-method-accessor-set.js b/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-private-method-accessor-set.js new file mode 100644 index 0000000000..86cc23a646 --- /dev/null +++ b/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-private-method-accessor-set.js @@ -0,0 +1,45 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-call-expression-private-method-accessor-set.case +// - src/class-elements/delete-error/cls-decl-method-delete-covered.template +/*--- +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName accessor set method (in method, covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class, class-fields-private, class-methods-private, class-fields-public] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + + It is a Syntax Error if the derived UnaryExpression is + PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and + CoverParenthesizedExpressionAndArrowParameterList ultimately derives a + phrase that, if used in place of UnaryExpression, would produce a + Syntax Error according to these rules. This rule is recursively applied. + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +class C { + #x; + + x() { + var g = this.f; + delete (g().#m); + } + + f() { + return this; + } +} diff --git a/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-private-method-async-gen.js b/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-private-method-async-gen.js index e4e4914e9f..112536fdf1 100644 --- a/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-private-method-async-gen.js +++ b/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-private-method-async-gen.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-private-method-async-gen.case // - src/class-elements/delete-error/cls-decl-method-delete-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, covered) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName async generator (in method, covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-methods-private, class-fields-public] +features: [class-methods-private, async-iteration, class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-private-method-async.js b/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-private-method-async.js index b4317e1678..c99221e3c6 100644 --- a/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-private-method-async.js +++ b/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-private-method-async.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-private-method-async.case // - src/class-elements/delete-error/cls-decl-method-delete-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, covered) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName async method (in method, covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-methods-private, class-fields-public] +features: [class-methods-private, async-functions, class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-private-method-gen.js b/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-private-method-gen.js index 489cd25cb1..32bc9d3bc7 100644 --- a/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-private-method-gen.js +++ b/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-private-method-gen.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-private-method-gen.case // - src/class-elements/delete-error/cls-decl-method-delete-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, covered) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName generator (in method, covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-methods-private, class-fields-public] +features: [class-methods-private, generators, class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-private-method.js b/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-private-method.js index c1c56d3923..4f19e6b4a7 100644 --- a/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-private-method.js +++ b/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-private-method.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-private-method.case // - src/class-elements/delete-error/cls-decl-method-delete-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, covered) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName private ordinary method (in method, covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-methods-private, class-fields-public] +features: [class-methods-private, class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-private-no-reference.js b/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-private-no-reference.js new file mode 100644 index 0000000000..8dea65e48e --- /dev/null +++ b/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-private-no-reference.js @@ -0,0 +1,45 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-call-expression-private-no-reference.case +// - src/class-elements/delete-error/cls-decl-method-delete-covered.template +/*--- +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName no referencing class element (in method, covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class, class-fields-private] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + + It is a Syntax Error if the derived UnaryExpression is + PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and + CoverParenthesizedExpressionAndArrowParameterList ultimately derives a + phrase that, if used in place of UnaryExpression, would produce a + Syntax Error according to these rules. This rule is recursively applied. + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +class C { + #x; + + x() { + var g = this.f; + delete (g().#m); + } + + f() { + return this; + } +} diff --git a/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-privatename.js b/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-privatename.js index 083d02edf1..c3b4b159a0 100644 --- a/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-privatename.js +++ b/test/language/statements/class/err-method-delete-covered-err-delete-call-expression-privatename.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-privatename.case // - src/class-elements/delete-error/cls-decl-method-delete-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, covered) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName private field (in method, covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-fields-public] +features: [class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-private-method-accessor-get.js b/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-private-method-accessor-get.js new file mode 100644 index 0000000000..90703d3188 --- /dev/null +++ b/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-private-method-accessor-get.js @@ -0,0 +1,44 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-member-expression-private-method-accessor-get.case +// - src/class-elements/delete-error/cls-decl-method-delete-covered.template +/*--- +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName accessor get method (in method, covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-methods-private, class, class-fields-private] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + + It is a Syntax Error if the derived UnaryExpression is + PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and + CoverParenthesizedExpressionAndArrowParameterList ultimately derives a + phrase that, if used in place of UnaryExpression, would produce a + Syntax Error according to these rules. This rule is recursively applied. + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +class C { + #x; + + x() { + + delete (this.#m +); + } + + +} diff --git a/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-private-method-accessor-set.js b/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-private-method-accessor-set.js new file mode 100644 index 0000000000..b1ad4f9f79 --- /dev/null +++ b/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-private-method-accessor-set.js @@ -0,0 +1,44 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-member-expression-private-method-accessor-set.case +// - src/class-elements/delete-error/cls-decl-method-delete-covered.template +/*--- +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName accessor set method (in method, covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-methods-private, class, class-fields-private] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + + It is a Syntax Error if the derived UnaryExpression is + PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and + CoverParenthesizedExpressionAndArrowParameterList ultimately derives a + phrase that, if used in place of UnaryExpression, would produce a + Syntax Error according to these rules. This rule is recursively applied. + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +class C { + #x; + + x() { + + delete (this.#m +); + } + + +} diff --git a/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-private-method-async-gen.js b/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-private-method-async-gen.js index d3c617c9a2..2724543ff1 100644 --- a/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-private-method-async-gen.js +++ b/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-private-method-async-gen.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-member-expression-private-method-async-gen.case // - src/class-elements/delete-error/cls-decl-method-delete-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, covered) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName async generator (in method, covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class-methods-private, class, class-fields-private] +features: [class-methods-private, async-iteration, class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse @@ -40,5 +40,5 @@ class C { ); } - + async *#m() {} } diff --git a/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-private-method-async.js b/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-private-method-async.js index 80d81b2fec..b5af9e411a 100644 --- a/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-private-method-async.js +++ b/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-private-method-async.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-member-expression-private-method-async.case // - src/class-elements/delete-error/cls-decl-method-delete-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, covered) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName async method (in method, covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class-methods-private, class, class-fields-private] +features: [class-methods-private, async-functions, class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse @@ -40,5 +40,5 @@ class C { ); } - + async #m() {} } diff --git a/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-private-method-gen.js b/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-private-method-gen.js index f79318e282..4ca5dcdf06 100644 --- a/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-private-method-gen.js +++ b/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-private-method-gen.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-member-expression-private-method-gen.case // - src/class-elements/delete-error/cls-decl-method-delete-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, covered) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName generator (in method, covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class-methods-private, class, class-fields-private] +features: [class-methods-private, generators, class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse @@ -40,5 +40,5 @@ class C { ); } - + *#m() {} } diff --git a/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-private-method.js b/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-private-method.js index 2d17acb3f0..4ba3dad9e5 100644 --- a/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-private-method.js +++ b/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-private-method.js @@ -2,7 +2,7 @@ // - src/class-elements/err-delete-member-expression-private-method.case // - src/class-elements/delete-error/cls-decl-method-delete-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, covered) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName private ordinary method (in method, covered) esid: sec-class-definitions-static-semantics-early-errors features: [class-methods-private, class, class-fields-private] flags: [generated, onlyStrict] diff --git a/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-private-no-reference.js b/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-private-no-reference.js new file mode 100644 index 0000000000..9441ee8c9d --- /dev/null +++ b/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-private-no-reference.js @@ -0,0 +1,43 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-member-expression-private-no-reference.case +// - src/class-elements/delete-error/cls-decl-method-delete-covered.template +/*--- +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName no referencing class element (in method, covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class, class-fields-private] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + + It is a Syntax Error if the derived UnaryExpression is + PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and + CoverParenthesizedExpressionAndArrowParameterList ultimately derives a + phrase that, if used in place of UnaryExpression, would produce a + Syntax Error according to these rules. This rule is recursively applied. + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +class C { + #x; + + x() { + + delete (this.#m); + } + + +} diff --git a/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-privatename.js b/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-privatename.js index 7bc210d933..09c06ad38b 100644 --- a/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-privatename.js +++ b/test/language/statements/class/err-method-delete-covered-err-delete-member-expression-privatename.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-member-expression-privatename.case // - src/class-elements/delete-error/cls-decl-method-delete-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, covered) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName private field (in method, covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class-fields-private, class] +features: [class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/statements/class/err-method-delete-err-delete-call-expression-private-method-accessor-get.js b/test/language/statements/class/err-method-delete-err-delete-call-expression-private-method-accessor-get.js new file mode 100644 index 0000000000..04d61751e2 --- /dev/null +++ b/test/language/statements/class/err-method-delete-err-delete-call-expression-private-method-accessor-get.js @@ -0,0 +1,39 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-call-expression-private-method-accessor-get.case +// - src/class-elements/delete-error/cls-decl-method-delete.template +/*--- +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName accessor get method (in method) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-methods-private, class-fields-public, class, class-fields-private] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +class C { + #x; + + x() { + var g = this.f; + delete g().#m; + } + + f() { + return this; + } +} diff --git a/test/language/statements/class/err-method-delete-err-delete-call-expression-private-method-accessor-set.js b/test/language/statements/class/err-method-delete-err-delete-call-expression-private-method-accessor-set.js new file mode 100644 index 0000000000..a9ca1bb467 --- /dev/null +++ b/test/language/statements/class/err-method-delete-err-delete-call-expression-private-method-accessor-set.js @@ -0,0 +1,39 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-call-expression-private-method-accessor-set.case +// - src/class-elements/delete-error/cls-decl-method-delete.template +/*--- +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName accessor set method (in method) +esid: sec-class-definitions-static-semantics-early-errors +features: [class, class-fields-private, class-methods-private, class-fields-public] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +class C { + #x; + + x() { + var g = this.f; + delete g().#m; + } + + f() { + return this; + } +} diff --git a/test/language/statements/class/err-method-delete-err-delete-call-expression-private-method-async-gen.js b/test/language/statements/class/err-method-delete-err-delete-call-expression-private-method-async-gen.js index 1ab0d9ec14..1bafd2a591 100644 --- a/test/language/statements/class/err-method-delete-err-delete-call-expression-private-method-async-gen.js +++ b/test/language/statements/class/err-method-delete-err-delete-call-expression-private-method-async-gen.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-private-method-async-gen.case // - src/class-elements/delete-error/cls-decl-method-delete.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName async generator (in method) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-methods-private, class-fields-public] +features: [class-methods-private, async-iteration, class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/statements/class/err-method-delete-err-delete-call-expression-private-method-async.js b/test/language/statements/class/err-method-delete-err-delete-call-expression-private-method-async.js index 8be5dabcd9..6cc3bfa641 100644 --- a/test/language/statements/class/err-method-delete-err-delete-call-expression-private-method-async.js +++ b/test/language/statements/class/err-method-delete-err-delete-call-expression-private-method-async.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-private-method-async.case // - src/class-elements/delete-error/cls-decl-method-delete.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName async method (in method) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-methods-private, class-fields-public] +features: [class-methods-private, async-functions, class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/statements/class/err-method-delete-err-delete-call-expression-private-method-gen.js b/test/language/statements/class/err-method-delete-err-delete-call-expression-private-method-gen.js index 55b4d53587..54690f4f69 100644 --- a/test/language/statements/class/err-method-delete-err-delete-call-expression-private-method-gen.js +++ b/test/language/statements/class/err-method-delete-err-delete-call-expression-private-method-gen.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-private-method-gen.case // - src/class-elements/delete-error/cls-decl-method-delete.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName generator (in method) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-methods-private, class-fields-public] +features: [class-methods-private, generators, class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/statements/class/err-method-delete-err-delete-call-expression-private-method.js b/test/language/statements/class/err-method-delete-err-delete-call-expression-private-method.js index ecc7f9b202..2219ceab2a 100644 --- a/test/language/statements/class/err-method-delete-err-delete-call-expression-private-method.js +++ b/test/language/statements/class/err-method-delete-err-delete-call-expression-private-method.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-private-method.case // - src/class-elements/delete-error/cls-decl-method-delete.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName private ordinary method (in method) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-methods-private, class-fields-public] +features: [class-methods-private, class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/statements/class/err-method-delete-err-delete-call-expression-private-no-reference.js b/test/language/statements/class/err-method-delete-err-delete-call-expression-private-no-reference.js new file mode 100644 index 0000000000..deb178b0f3 --- /dev/null +++ b/test/language/statements/class/err-method-delete-err-delete-call-expression-private-no-reference.js @@ -0,0 +1,39 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-call-expression-private-no-reference.case +// - src/class-elements/delete-error/cls-decl-method-delete.template +/*--- +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName no referencing class element (in method) +esid: sec-class-definitions-static-semantics-early-errors +features: [class, class-fields-private] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +class C { + #x; + + x() { + var g = this.f; + delete g().#m; + } + + f() { + return this; + } +} diff --git a/test/language/statements/class/err-method-delete-err-delete-call-expression-privatename.js b/test/language/statements/class/err-method-delete-err-delete-call-expression-privatename.js index b421f815ed..ccb6cf7d7a 100644 --- a/test/language/statements/class/err-method-delete-err-delete-call-expression-privatename.js +++ b/test/language/statements/class/err-method-delete-err-delete-call-expression-privatename.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-privatename.case // - src/class-elements/delete-error/cls-decl-method-delete.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName private field (in method) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-fields-public] +features: [class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/statements/class/err-method-delete-err-delete-member-expression-private-method-accessor-get.js b/test/language/statements/class/err-method-delete-err-delete-member-expression-private-method-accessor-get.js new file mode 100644 index 0000000000..97898e4f4a --- /dev/null +++ b/test/language/statements/class/err-method-delete-err-delete-member-expression-private-method-accessor-get.js @@ -0,0 +1,38 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-member-expression-private-method-accessor-get.case +// - src/class-elements/delete-error/cls-decl-method-delete.template +/*--- +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName accessor get method (in method) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-methods-private, class, class-fields-private] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +class C { + #x; + + x() { + + delete this.#m +; + } + + +} diff --git a/test/language/statements/class/err-method-delete-err-delete-member-expression-private-method-accessor-set.js b/test/language/statements/class/err-method-delete-err-delete-member-expression-private-method-accessor-set.js new file mode 100644 index 0000000000..0110db8a5f --- /dev/null +++ b/test/language/statements/class/err-method-delete-err-delete-member-expression-private-method-accessor-set.js @@ -0,0 +1,38 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-member-expression-private-method-accessor-set.case +// - src/class-elements/delete-error/cls-decl-method-delete.template +/*--- +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName accessor set method (in method) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-methods-private, class, class-fields-private] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +class C { + #x; + + x() { + + delete this.#m +; + } + + +} diff --git a/test/language/statements/class/err-method-delete-err-delete-member-expression-private-method-async-gen.js b/test/language/statements/class/err-method-delete-err-delete-member-expression-private-method-async-gen.js index 5134a0f20f..f2b77dd375 100644 --- a/test/language/statements/class/err-method-delete-err-delete-member-expression-private-method-async-gen.js +++ b/test/language/statements/class/err-method-delete-err-delete-member-expression-private-method-async-gen.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-member-expression-private-method-async-gen.case // - src/class-elements/delete-error/cls-decl-method-delete.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName async generator (in method) esid: sec-class-definitions-static-semantics-early-errors -features: [class-methods-private, class, class-fields-private] +features: [class-methods-private, async-iteration, class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse @@ -34,5 +34,5 @@ class C { ; } - + async *#m() {} } diff --git a/test/language/statements/class/err-method-delete-err-delete-member-expression-private-method-async.js b/test/language/statements/class/err-method-delete-err-delete-member-expression-private-method-async.js index 93ee42b635..61827a3081 100644 --- a/test/language/statements/class/err-method-delete-err-delete-member-expression-private-method-async.js +++ b/test/language/statements/class/err-method-delete-err-delete-member-expression-private-method-async.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-member-expression-private-method-async.case // - src/class-elements/delete-error/cls-decl-method-delete.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName async method (in method) esid: sec-class-definitions-static-semantics-early-errors -features: [class-methods-private, class, class-fields-private] +features: [class-methods-private, async-functions, class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse @@ -34,5 +34,5 @@ class C { ; } - + async #m() {} } diff --git a/test/language/statements/class/err-method-delete-err-delete-member-expression-private-method-gen.js b/test/language/statements/class/err-method-delete-err-delete-member-expression-private-method-gen.js index 89778cdb82..9c71129811 100644 --- a/test/language/statements/class/err-method-delete-err-delete-member-expression-private-method-gen.js +++ b/test/language/statements/class/err-method-delete-err-delete-member-expression-private-method-gen.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-member-expression-private-method-gen.case // - src/class-elements/delete-error/cls-decl-method-delete.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName generator (in method) esid: sec-class-definitions-static-semantics-early-errors -features: [class-methods-private, class, class-fields-private] +features: [class-methods-private, generators, class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse @@ -34,5 +34,5 @@ class C { ; } - + *#m() {} } diff --git a/test/language/statements/class/err-method-delete-err-delete-member-expression-private-method.js b/test/language/statements/class/err-method-delete-err-delete-member-expression-private-method.js index fb80c5dab0..9596186b9c 100644 --- a/test/language/statements/class/err-method-delete-err-delete-member-expression-private-method.js +++ b/test/language/statements/class/err-method-delete-err-delete-member-expression-private-method.js @@ -2,7 +2,7 @@ // - src/class-elements/err-delete-member-expression-private-method.case // - src/class-elements/delete-error/cls-decl-method-delete.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName private ordinary method (in method) esid: sec-class-definitions-static-semantics-early-errors features: [class-methods-private, class, class-fields-private] flags: [generated, onlyStrict] diff --git a/test/language/statements/class/err-method-delete-err-delete-member-expression-private-no-reference.js b/test/language/statements/class/err-method-delete-err-delete-member-expression-private-no-reference.js new file mode 100644 index 0000000000..d037f4b902 --- /dev/null +++ b/test/language/statements/class/err-method-delete-err-delete-member-expression-private-no-reference.js @@ -0,0 +1,37 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-member-expression-private-no-reference.case +// - src/class-elements/delete-error/cls-decl-method-delete.template +/*--- +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName no referencing class element (in method) +esid: sec-class-definitions-static-semantics-early-errors +features: [class, class-fields-private] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +class C { + #x; + + x() { + + delete this.#m; + } + + +} diff --git a/test/language/statements/class/err-method-delete-err-delete-member-expression-privatename.js b/test/language/statements/class/err-method-delete-err-delete-member-expression-privatename.js index be5718eea8..55adc88a78 100644 --- a/test/language/statements/class/err-method-delete-err-delete-member-expression-privatename.js +++ b/test/language/statements/class/err-method-delete-err-delete-member-expression-privatename.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-member-expression-privatename.case // - src/class-elements/delete-error/cls-decl-method-delete.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName private field (in method) esid: sec-class-definitions-static-semantics-early-errors -features: [class-fields-private, class] +features: [class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-accessor-get.js b/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-accessor-get.js new file mode 100644 index 0000000000..e412e2f601 --- /dev/null +++ b/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-accessor-get.js @@ -0,0 +1,45 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-call-expression-private-method-accessor-get.case +// - src/class-elements/delete-error/cls-decl-method-delete-twice-covered.template +/*--- +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName accessor get method (in method, recursively covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-methods-private, class-fields-public, class, class-fields-private] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + + It is a Syntax Error if the derived UnaryExpression is + PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and + CoverParenthesizedExpressionAndArrowParameterList ultimately derives a + phrase that, if used in place of UnaryExpression, would produce a + Syntax Error according to these rules. This rule is recursively applied. + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +class C { + #x; + + x() { + var g = this.f; + delete ((g().#m)); + } + + f() { + return this; + } +} diff --git a/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-accessor-set.js b/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-accessor-set.js new file mode 100644 index 0000000000..e09261a4ec --- /dev/null +++ b/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-accessor-set.js @@ -0,0 +1,45 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-call-expression-private-method-accessor-set.case +// - src/class-elements/delete-error/cls-decl-method-delete-twice-covered.template +/*--- +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName accessor set method (in method, recursively covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class, class-fields-private, class-methods-private, class-fields-public] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + + It is a Syntax Error if the derived UnaryExpression is + PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and + CoverParenthesizedExpressionAndArrowParameterList ultimately derives a + phrase that, if used in place of UnaryExpression, would produce a + Syntax Error according to these rules. This rule is recursively applied. + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +class C { + #x; + + x() { + var g = this.f; + delete ((g().#m)); + } + + f() { + return this; + } +} diff --git a/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-async-gen.js b/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-async-gen.js index 40395fc2e4..6d51a9edbe 100644 --- a/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-async-gen.js +++ b/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-async-gen.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-private-method-async-gen.case // - src/class-elements/delete-error/cls-decl-method-delete-twice-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, recursively covered) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName async generator (in method, recursively covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-methods-private, class-fields-public] +features: [class-methods-private, async-iteration, class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-async.js b/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-async.js index aa05660900..87619dea68 100644 --- a/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-async.js +++ b/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-async.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-private-method-async.case // - src/class-elements/delete-error/cls-decl-method-delete-twice-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, recursively covered) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName async method (in method, recursively covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-methods-private, class-fields-public] +features: [class-methods-private, async-functions, class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-gen.js b/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-gen.js index 90b4f748ce..d910b5a6f0 100644 --- a/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-gen.js +++ b/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-private-method-gen.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-private-method-gen.case // - src/class-elements/delete-error/cls-decl-method-delete-twice-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, recursively covered) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName generator (in method, recursively covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-methods-private, class-fields-public] +features: [class-methods-private, generators, class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-private-method.js b/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-private-method.js index be245a2f20..8a8d7636ef 100644 --- a/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-private-method.js +++ b/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-private-method.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-private-method.case // - src/class-elements/delete-error/cls-decl-method-delete-twice-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, recursively covered) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName private ordinary method (in method, recursively covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-methods-private, class-fields-public] +features: [class-methods-private, class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-private-no-reference.js b/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-private-no-reference.js new file mode 100644 index 0000000000..16180e688c --- /dev/null +++ b/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-private-no-reference.js @@ -0,0 +1,45 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-call-expression-private-no-reference.case +// - src/class-elements/delete-error/cls-decl-method-delete-twice-covered.template +/*--- +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName no referencing class element (in method, recursively covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class, class-fields-private] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + + It is a Syntax Error if the derived UnaryExpression is + PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and + CoverParenthesizedExpressionAndArrowParameterList ultimately derives a + phrase that, if used in place of UnaryExpression, would produce a + Syntax Error according to these rules. This rule is recursively applied. + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +class C { + #x; + + x() { + var g = this.f; + delete ((g().#m)); + } + + f() { + return this; + } +} diff --git a/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-privatename.js b/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-privatename.js index 2c5dfccc53..440eb7032d 100644 --- a/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-privatename.js +++ b/test/language/statements/class/err-method-delete-twice-covered-err-delete-call-expression-privatename.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-call-expression-privatename.case // - src/class-elements/delete-error/cls-decl-method-delete-twice-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, recursively covered) +description: It's a SyntaxError if delete operator is applied to CallExpression.PrivateName private field (in method, recursively covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class, class-fields-private, class-fields-public] +features: [class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse diff --git a/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-accessor-get.js b/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-accessor-get.js new file mode 100644 index 0000000000..fdc57a91e2 --- /dev/null +++ b/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-accessor-get.js @@ -0,0 +1,44 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-member-expression-private-method-accessor-get.case +// - src/class-elements/delete-error/cls-decl-method-delete-twice-covered.template +/*--- +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName accessor get method (in method, recursively covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-methods-private, class, class-fields-private] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + + It is a Syntax Error if the derived UnaryExpression is + PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and + CoverParenthesizedExpressionAndArrowParameterList ultimately derives a + phrase that, if used in place of UnaryExpression, would produce a + Syntax Error according to these rules. This rule is recursively applied. + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +class C { + #x; + + x() { + + delete ((this.#m +)); + } + + +} diff --git a/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-accessor-set.js b/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-accessor-set.js new file mode 100644 index 0000000000..4aaf46b917 --- /dev/null +++ b/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-accessor-set.js @@ -0,0 +1,44 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-member-expression-private-method-accessor-set.case +// - src/class-elements/delete-error/cls-decl-method-delete-twice-covered.template +/*--- +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName accessor set method (in method, recursively covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-methods-private, class, class-fields-private] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + + It is a Syntax Error if the derived UnaryExpression is + PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and + CoverParenthesizedExpressionAndArrowParameterList ultimately derives a + phrase that, if used in place of UnaryExpression, would produce a + Syntax Error according to these rules. This rule is recursively applied. + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +class C { + #x; + + x() { + + delete ((this.#m +)); + } + + +} diff --git a/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-async-gen.js b/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-async-gen.js index acf546aeb2..9ee5131695 100644 --- a/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-async-gen.js +++ b/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-async-gen.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-member-expression-private-method-async-gen.case // - src/class-elements/delete-error/cls-decl-method-delete-twice-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, recursively covered) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName async generator (in method, recursively covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class-methods-private, class, class-fields-private] +features: [class-methods-private, async-iteration, class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse @@ -40,5 +40,5 @@ class C { )); } - + async *#m() {} } diff --git a/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-async.js b/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-async.js index 14cb0d8dad..ddeb208b27 100644 --- a/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-async.js +++ b/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-async.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-member-expression-private-method-async.case // - src/class-elements/delete-error/cls-decl-method-delete-twice-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, recursively covered) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName async method (in method, recursively covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class-methods-private, class, class-fields-private] +features: [class-methods-private, async-functions, class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse @@ -40,5 +40,5 @@ class C { )); } - + async #m() {} } diff --git a/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-gen.js b/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-gen.js index 31d38e2a13..1b8dfd482a 100644 --- a/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-gen.js +++ b/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-private-method-gen.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-member-expression-private-method-gen.case // - src/class-elements/delete-error/cls-decl-method-delete-twice-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, recursively covered) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName generator (in method, recursively covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class-methods-private, class, class-fields-private] +features: [class-methods-private, generators, class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse @@ -40,5 +40,5 @@ class C { )); } - + *#m() {} } diff --git a/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-private-method.js b/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-private-method.js index 9434bec4e0..06995d137b 100644 --- a/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-private-method.js +++ b/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-private-method.js @@ -2,7 +2,7 @@ // - src/class-elements/err-delete-member-expression-private-method.case // - src/class-elements/delete-error/cls-decl-method-delete-twice-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, recursively covered) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName private ordinary method (in method, recursively covered) esid: sec-class-definitions-static-semantics-early-errors features: [class-methods-private, class, class-fields-private] flags: [generated, onlyStrict] diff --git a/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-private-no-reference.js b/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-private-no-reference.js new file mode 100644 index 0000000000..e93073f3c3 --- /dev/null +++ b/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-private-no-reference.js @@ -0,0 +1,43 @@ +// This file was procedurally generated from the following sources: +// - src/class-elements/err-delete-member-expression-private-no-reference.case +// - src/class-elements/delete-error/cls-decl-method-delete-twice-covered.template +/*--- +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName no referencing class element (in method, recursively covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class, class-fields-private] +flags: [generated, onlyStrict] +negative: + phase: parse + type: SyntaxError +info: | + Static Semantics: Early Errors + + UnaryExpression : delete UnaryExpression + + It is a Syntax Error if the UnaryExpression is contained in strict mode + code and the derived UnaryExpression is + PrimaryExpression : IdentifierReference , + MemberExpression : MemberExpression.PrivateName , or + CallExpression : CallExpression.PrivateName . + + It is a Syntax Error if the derived UnaryExpression is + PrimaryExpression : CoverParenthesizedExpressionAndArrowParameterList and + CoverParenthesizedExpressionAndArrowParameterList ultimately derives a + phrase that, if used in place of UnaryExpression, would produce a + Syntax Error according to these rules. This rule is recursively applied. + +---*/ + + +throw "Test262: This statement should not be evaluated."; + +class C { + #x; + + x() { + + delete ((this.#m)); + } + + +} diff --git a/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-privatename.js b/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-privatename.js index 4d4678d440..f0b5048e43 100644 --- a/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-privatename.js +++ b/test/language/statements/class/err-method-delete-twice-covered-err-delete-member-expression-privatename.js @@ -2,9 +2,9 @@ // - src/class-elements/err-delete-member-expression-privatename.case // - src/class-elements/delete-error/cls-decl-method-delete-twice-covered.template /*--- -description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName (in method, recursively covered) +description: It's a SyntaxError if delete operator is applied to MemberExpression.PrivateName private field (in method, recursively covered) esid: sec-class-definitions-static-semantics-early-errors -features: [class-fields-private, class] +features: [class, class-fields-private] flags: [generated, onlyStrict] negative: phase: parse