diff --git a/src/class-fields/call-expression-privatename.case b/src/class-fields/call-expression-privatename.case new file mode 100644 index 0000000000000000000000000000000000000000..a00e9616c991080028edcb11ac1521f8bc2512d4 --- /dev/null +++ b/src/class-fields/call-expression-privatename.case @@ -0,0 +1,18 @@ +// Copyright (C) 2017 Valerie Young. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +desc: Syntax error if you call delete on call expressions . privatename +template: delete-error +---*/ + +//- infieldsetup +g = this.f; +//- infunctionsetup +var g = this.f; +//- expression +g().#x +//- functiondeclaration + f() { + return this; +} diff --git a/src/class-fields/delete-error/cls-decl-field-delete-covered.template b/src/class-fields/delete-error/cls-decl-field-delete-covered.template new file mode 100644 index 0000000000000000000000000000000000000000..0d5bec7303f010847d92e6845c9106d61273d592 --- /dev/null +++ b/src/class-fields/delete-error/cls-decl-field-delete-covered.template @@ -0,0 +1,29 @@ +// Copyright (C) 2017 Valerie Young. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-class-definitions-static-semantics-early-errors +path: language/statements/class/err-field-delete-covered- +name: in field, covered +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. +features: [class-fields] +negative: + type: SyntaxError + phase: early +---*/ + +throw "Test262: This statement should not be evaluated."; + +class C { + #x; + /*{ infieldsetup }*/ + x = delete (/*{ expression }*/); + /*{ functiondeclaration }*/ +} diff --git a/src/class-fields/delete-error/cls-decl-field-delete-twice-covered.template b/src/class-fields/delete-error/cls-decl-field-delete-twice-covered.template new file mode 100644 index 0000000000000000000000000000000000000000..917cd411a7ee8efaf667c63f6d8bc091118c0953 --- /dev/null +++ b/src/class-fields/delete-error/cls-decl-field-delete-twice-covered.template @@ -0,0 +1,30 @@ +// Copyright (C) 2017 Valerie Young. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-class-definitions-static-semantics-early-errors +path: language/statements/class/err-field-delete-twice-covered- +name: in field, recursively covered +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. +features: [class-fields] +negative: + type: SyntaxError + phase: early +---*/ + +throw "Test262: This statement should not be evaluated."; + +class C { + #x; + /*{ infieldsetup }*/ + x = delete ((/*{ expression }*/)); + + /*{ functiondeclaration }*/ +} diff --git a/src/class-fields/delete-error/cls-decl-field-delete.template b/src/class-fields/delete-error/cls-decl-field-delete.template new file mode 100644 index 0000000000000000000000000000000000000000..68cf7615bd7af17b03cf354762cb4fa0783950ac --- /dev/null +++ b/src/class-fields/delete-error/cls-decl-field-delete.template @@ -0,0 +1,27 @@ +// Copyright (C) 2017 Valerie Young. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-class-definitions-static-semantics-early-errors +path: language/statements/class/err-field-delete- +name: in field +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 . +features: [class-fields] +negative: + type: SyntaxError + phase: early +---*/ + +throw "Test262: This statement should not be evaluated."; + +class C { + #x; + /*{ infieldsetup }*/ + x = delete /*{ expression }*/; + /*{ functiondeclaration }*/ +} diff --git a/src/class-fields/delete-error/cls-decl-method-delete-covered.template b/src/class-fields/delete-error/cls-decl-method-delete-covered.template new file mode 100644 index 0000000000000000000000000000000000000000..2b0200d2c6a5dde857790beec95f1193e9786508 --- /dev/null +++ b/src/class-fields/delete-error/cls-decl-method-delete-covered.template @@ -0,0 +1,33 @@ +// Copyright (C) 2017 Valerie Young. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-class-definitions-static-semantics-early-errors +path: language/statements/class/err-method-delete-covered- +name: in method, covered +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. +features: [class-fields] +negative: + type: SyntaxError + phase: early +---*/ + +throw "Test262: This statement should not be evaluated."; + +class C { + #x; + + x() { + /*{ infunctionsetup }*/ + delete (/*{ expression }*/); + } + + /*{ functiondeclaration }*/ +} diff --git a/src/class-fields/delete-error/cls-decl-method-delete-twice-covered.template b/src/class-fields/delete-error/cls-decl-method-delete-twice-covered.template new file mode 100644 index 0000000000000000000000000000000000000000..f39de82a4136be860e4c12adaf74873a008b717c --- /dev/null +++ b/src/class-fields/delete-error/cls-decl-method-delete-twice-covered.template @@ -0,0 +1,33 @@ +// Copyright (C) 2017 Valerie Young. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-class-definitions-static-semantics-early-errors +path: language/statements/class/err-method-delete-twice-covered- +name: in method, recursively covered +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. +features: [class-fields] +negative: + type: SyntaxError + phase: early +---*/ + +throw "Test262: This statement should not be evaluated."; + +class C { + #x; + + x() { + /*{ infunctionsetup }*/ + delete ((/*{ expression }*/)); + } + + /*{ functiondeclaration }*/ +} diff --git a/src/class-fields/delete-error/cls-decl-method-delete.template b/src/class-fields/delete-error/cls-decl-method-delete.template new file mode 100644 index 0000000000000000000000000000000000000000..1f267683f76abdd51de3858e5d90ae39f527e4b1 --- /dev/null +++ b/src/class-fields/delete-error/cls-decl-method-delete.template @@ -0,0 +1,31 @@ +// Copyright (C) 2017 Valerie Young. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-class-definitions-static-semantics-early-errors +path: language/statements/class/err-method-delete- +name: in method +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 . +features: [class-fields] +negative: + type: SyntaxError + phase: early +---*/ + +throw "Test262: This statement should not be evaluated."; + +class C { + #x; + + x() { + /*{ infunctionsetup }*/ + delete /*{ expression }*/; + } + + /*{ functiondeclaration }*/ +} diff --git a/src/class-fields/delete-error/cls-expr-field-delete-covered.template b/src/class-fields/delete-error/cls-expr-field-delete-covered.template new file mode 100644 index 0000000000000000000000000000000000000000..bf3af2a6cb5593da47d7c6810703de760a1526b7 --- /dev/null +++ b/src/class-fields/delete-error/cls-expr-field-delete-covered.template @@ -0,0 +1,30 @@ +// Copyright (C) 2017 Valerie Young. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-class-definitions-static-semantics-early-errors +path: language/expressions/class/err-field-delete-covered- +name: in field, covered +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. +features: [class-fields] +negative: + type: SyntaxError + phase: early +---*/ + +throw "Test262: This statement should not be evaluated."; + +var C = class { + #x; + /*{ infieldsetup }*/ + x = delete (/*{ expression }*/); + + /*{ functiondeclaration }*/ +} diff --git a/src/class-fields/delete-error/cls-expr-field-delete-twice-covered.template b/src/class-fields/delete-error/cls-expr-field-delete-twice-covered.template new file mode 100644 index 0000000000000000000000000000000000000000..595b706dcbc863d7be8fb6e01facbabd5c0fbe49 --- /dev/null +++ b/src/class-fields/delete-error/cls-expr-field-delete-twice-covered.template @@ -0,0 +1,30 @@ +// Copyright (C) 2017 Valerie Young. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-class-definitions-static-semantics-early-errors +path: language/expressions/class/err-field-delete-twice-covered- +name: in field, recursively covered +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. +features: [class-fields] +negative: + type: SyntaxError + phase: early +---*/ + +throw "Test262: This statement should not be evaluated."; + +var C = class { + #x; + /*{ infieldsetup }*/ + x = delete ((/*{ expression }*/)); + + /*{ functiondeclaration }*/ +} diff --git a/src/class-fields/delete-error/cls-expr-field-delete.template b/src/class-fields/delete-error/cls-expr-field-delete.template new file mode 100644 index 0000000000000000000000000000000000000000..29eea4fcf39dc5fb6287800a0e9ef5083b696fa3 --- /dev/null +++ b/src/class-fields/delete-error/cls-expr-field-delete.template @@ -0,0 +1,28 @@ +// Copyright (C) 2017 Valerie Young. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-class-definitions-static-semantics-early-errors +path: language/expressions/class/err-field-delete- +name: in field +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 . +features: [class-fields] +negative: + type: SyntaxError + phase: early +---*/ + +throw "Test262: This statement should not be evaluated."; + +var C = class { + #x; + /*{ infieldsetup }*/ + x = delete /*{ expression }*/; + + /*{ functiondeclaration }*/ +} diff --git a/src/class-fields/delete-error/cls-expr-method-delete-covered.template b/src/class-fields/delete-error/cls-expr-method-delete-covered.template new file mode 100644 index 0000000000000000000000000000000000000000..41ebc0e3bb3c29098387871c88144bc58be6aec2 --- /dev/null +++ b/src/class-fields/delete-error/cls-expr-method-delete-covered.template @@ -0,0 +1,33 @@ +// Copyright (C) 2017 Valerie Young. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-class-definitions-static-semantics-early-errors +path: language/expressions/class/err-method-delete-covered- +name: in method, covered +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. +features: [class-fields] +negative: + type: SyntaxError + phase: early +---*/ + +throw "Test262: This statement should not be evaluated."; + +var C = class { + #x; + + x() { + /*{ infunctionsetup }*/ + delete (/*{ expression }*/); + } + + /*{ functiondeclaration }*/ +} diff --git a/src/class-fields/delete-error/cls-expr-method-delete-twice-covered.template b/src/class-fields/delete-error/cls-expr-method-delete-twice-covered.template new file mode 100644 index 0000000000000000000000000000000000000000..f456e7c7ca02f321cae696627087aec69705f2f1 --- /dev/null +++ b/src/class-fields/delete-error/cls-expr-method-delete-twice-covered.template @@ -0,0 +1,33 @@ +// Copyright (C) 2017 Valerie Young. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-class-definitions-static-semantics-early-errors +path: language/expressions/class/err-method-delete-twice-covered- +name: in method, recursively covered +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. +features: [class-fields] +negative: + type: SyntaxError + phase: early +---*/ + +throw "Test262: This statement should not be evaluated."; + +var C = class { + #x; + + x() { + /*{ infunctionsetup }*/ + delete ((/*{ expression }*/)); + } + + /*{ functiondeclaration }*/ +} diff --git a/src/class-fields/delete-error/cls-expr-method-delete.template b/src/class-fields/delete-error/cls-expr-method-delete.template new file mode 100644 index 0000000000000000000000000000000000000000..c80c0faa00225d06dd00f5bc4c673a797511bb0b --- /dev/null +++ b/src/class-fields/delete-error/cls-expr-method-delete.template @@ -0,0 +1,31 @@ +// Copyright (C) 2017 Valerie Young. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-class-definitions-static-semantics-early-errors +path: language/expressions/class/err-method-delete- +name: in method +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 . +features: [class-fields] +negative: + type: SyntaxError + phase: early +---*/ + +throw "Test262: This statement should not be evaluated."; + +var C = class { + #x; + + x() { + /*{ infunctionsetup }*/ + delete /*{ expression }*/; + } + + /*{ functiondeclaration }*/ +} diff --git a/src/class-fields/member-expression-privatename.case b/src/class-fields/member-expression-privatename.case new file mode 100644 index 0000000000000000000000000000000000000000..595cdcea750c8c8be80b4618fe00ec61e132d9b9 --- /dev/null +++ b/src/class-fields/member-expression-privatename.case @@ -0,0 +1,10 @@ +// Copyright (C) 2017 Valerie Young. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +desc: Syntax error if you call delete on member expressions . privatename +template: delete-error +---*/ + +//- expression +this.#x diff --git a/test/language/expressions/class/err-field-delete-call-expression-privatename.js b/test/language/expressions/class/err-field-delete-call-expression-privatename.js new file mode 100644 index 0000000000000000000000000000000000000000..5941f1b87f4c0b9c5e68abb377047ee85e898876 --- /dev/null +++ b/test/language/expressions/class/err-field-delete-call-expression-privatename.js @@ -0,0 +1,32 @@ +// This file was procedurally generated from the following sources: +// - src/class-fields/call-expression-privatename.case +// - src/class-fields/delete-error/cls-expr-field-delete.template +/*--- +description: Syntax error if you call delete on call expressions . privatename (in field) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-fields] +flags: [generated] +negative: + phase: early + 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().#x; + + f() { + return this; + } +} diff --git a/test/language/expressions/class/err-field-delete-covered-call-expression-privatename.js b/test/language/expressions/class/err-field-delete-covered-call-expression-privatename.js new file mode 100644 index 0000000000000000000000000000000000000000..2709caa8148c088917a614405c4f9eb9f7926cf5 --- /dev/null +++ b/test/language/expressions/class/err-field-delete-covered-call-expression-privatename.js @@ -0,0 +1,34 @@ +// This file was procedurally generated from the following sources: +// - src/class-fields/call-expression-privatename.case +// - src/class-fields/delete-error/cls-expr-field-delete-covered.template +/*--- +description: Syntax error if you call delete on call expressions . privatename (in field, covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-fields] +flags: [generated] +negative: + phase: early + 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().#x); + + f() { + return this; + } +} diff --git a/test/language/expressions/class/err-field-delete-covered-member-expression-privatename.js b/test/language/expressions/class/err-field-delete-covered-member-expression-privatename.js new file mode 100644 index 0000000000000000000000000000000000000000..84e557e6223d5dd6cd3d0487f16e893a4309a9f1 --- /dev/null +++ b/test/language/expressions/class/err-field-delete-covered-member-expression-privatename.js @@ -0,0 +1,32 @@ +// This file was procedurally generated from the following sources: +// - src/class-fields/member-expression-privatename.case +// - src/class-fields/delete-error/cls-expr-field-delete-covered.template +/*--- +description: Syntax error if you call delete on member expressions . privatename (in field, covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-fields] +flags: [generated] +negative: + phase: early + 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.#x); + + +} diff --git a/test/language/expressions/class/err-field-delete-member-expression-privatename.js b/test/language/expressions/class/err-field-delete-member-expression-privatename.js new file mode 100644 index 0000000000000000000000000000000000000000..6e8381e2214c23503dcef176ca325aba27fc1a56 --- /dev/null +++ b/test/language/expressions/class/err-field-delete-member-expression-privatename.js @@ -0,0 +1,30 @@ +// This file was procedurally generated from the following sources: +// - src/class-fields/member-expression-privatename.case +// - src/class-fields/delete-error/cls-expr-field-delete.template +/*--- +description: Syntax error if you call delete on member expressions . privatename (in field) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-fields] +flags: [generated] +negative: + phase: early + 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.#x; + + +} diff --git a/test/language/expressions/class/err-field-delete-twice-covered-call-expression-privatename.js b/test/language/expressions/class/err-field-delete-twice-covered-call-expression-privatename.js new file mode 100644 index 0000000000000000000000000000000000000000..ccc0f4f17254067d5cd3444023631b0525f82e97 --- /dev/null +++ b/test/language/expressions/class/err-field-delete-twice-covered-call-expression-privatename.js @@ -0,0 +1,34 @@ +// This file was procedurally generated from the following sources: +// - src/class-fields/call-expression-privatename.case +// - src/class-fields/delete-error/cls-expr-field-delete-twice-covered.template +/*--- +description: Syntax error if you call delete on call expressions . privatename (in field, recursively covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-fields] +flags: [generated] +negative: + phase: early + 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().#x)); + + f() { + return this; + } +} diff --git a/test/language/expressions/class/err-field-delete-twice-covered-member-expression-privatename.js b/test/language/expressions/class/err-field-delete-twice-covered-member-expression-privatename.js new file mode 100644 index 0000000000000000000000000000000000000000..c170745c4fe4ae91e79e4e0398bdeb0dee205aa4 --- /dev/null +++ b/test/language/expressions/class/err-field-delete-twice-covered-member-expression-privatename.js @@ -0,0 +1,32 @@ +// This file was procedurally generated from the following sources: +// - src/class-fields/member-expression-privatename.case +// - src/class-fields/delete-error/cls-expr-field-delete-twice-covered.template +/*--- +description: Syntax error if you call delete on member expressions . privatename (in field, recursively covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-fields] +flags: [generated] +negative: + phase: early + 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.#x)); + + +} diff --git a/test/language/expressions/class/err-method-delete-call-expression-privatename.js b/test/language/expressions/class/err-method-delete-call-expression-privatename.js new file mode 100644 index 0000000000000000000000000000000000000000..ad7390815c0156c57ca07bd069f788d9403ccb0d --- /dev/null +++ b/test/language/expressions/class/err-method-delete-call-expression-privatename.js @@ -0,0 +1,35 @@ +// This file was procedurally generated from the following sources: +// - src/class-fields/call-expression-privatename.case +// - src/class-fields/delete-error/cls-expr-method-delete.template +/*--- +description: Syntax error if you call delete on call expressions . privatename (in method) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-fields] +flags: [generated] +negative: + phase: early + 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().#x; + } + + f() { + return this; + } +} diff --git a/test/language/expressions/class/err-method-delete-covered-call-expression-privatename.js b/test/language/expressions/class/err-method-delete-covered-call-expression-privatename.js new file mode 100644 index 0000000000000000000000000000000000000000..3b85fdf5f48b2b311be002ffb37b5b54ebd56982 --- /dev/null +++ b/test/language/expressions/class/err-method-delete-covered-call-expression-privatename.js @@ -0,0 +1,37 @@ +// This file was procedurally generated from the following sources: +// - src/class-fields/call-expression-privatename.case +// - src/class-fields/delete-error/cls-expr-method-delete-covered.template +/*--- +description: Syntax error if you call delete on call expressions . privatename (in method, covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-fields] +flags: [generated] +negative: + phase: early + 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().#x); + } + + f() { + return this; + } +} diff --git a/test/language/expressions/class/err-method-delete-covered-member-expression-privatename.js b/test/language/expressions/class/err-method-delete-covered-member-expression-privatename.js new file mode 100644 index 0000000000000000000000000000000000000000..ae0ef4619c6580b2b1093f1545eca39cdb054858 --- /dev/null +++ b/test/language/expressions/class/err-method-delete-covered-member-expression-privatename.js @@ -0,0 +1,35 @@ +// This file was procedurally generated from the following sources: +// - src/class-fields/member-expression-privatename.case +// - src/class-fields/delete-error/cls-expr-method-delete-covered.template +/*--- +description: Syntax error if you call delete on member expressions . privatename (in method, covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-fields] +flags: [generated] +negative: + phase: early + 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.#x); + } + + +} diff --git a/test/language/expressions/class/err-method-delete-member-expression-privatename.js b/test/language/expressions/class/err-method-delete-member-expression-privatename.js new file mode 100644 index 0000000000000000000000000000000000000000..5ac00be8820eba0d816ddbd52488f95ee336b189 --- /dev/null +++ b/test/language/expressions/class/err-method-delete-member-expression-privatename.js @@ -0,0 +1,33 @@ +// This file was procedurally generated from the following sources: +// - src/class-fields/member-expression-privatename.case +// - src/class-fields/delete-error/cls-expr-method-delete.template +/*--- +description: Syntax error if you call delete on member expressions . privatename (in method) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-fields] +flags: [generated] +negative: + phase: early + 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.#x; + } + + +} diff --git a/test/language/expressions/class/err-method-delete-twice-covered-call-expression-privatename.js b/test/language/expressions/class/err-method-delete-twice-covered-call-expression-privatename.js new file mode 100644 index 0000000000000000000000000000000000000000..02aa7e63dc12b887185a971ac1c8afe0d4125591 --- /dev/null +++ b/test/language/expressions/class/err-method-delete-twice-covered-call-expression-privatename.js @@ -0,0 +1,37 @@ +// This file was procedurally generated from the following sources: +// - src/class-fields/call-expression-privatename.case +// - src/class-fields/delete-error/cls-expr-method-delete-twice-covered.template +/*--- +description: Syntax error if you call delete on call expressions . privatename (in method, recursively covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-fields] +flags: [generated] +negative: + phase: early + 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().#x)); + } + + f() { + return this; + } +} diff --git a/test/language/expressions/class/err-method-delete-twice-covered-member-expression-privatename.js b/test/language/expressions/class/err-method-delete-twice-covered-member-expression-privatename.js new file mode 100644 index 0000000000000000000000000000000000000000..6ca6f29abebf027759c3a698cc4a3e4b7264c207 --- /dev/null +++ b/test/language/expressions/class/err-method-delete-twice-covered-member-expression-privatename.js @@ -0,0 +1,35 @@ +// This file was procedurally generated from the following sources: +// - src/class-fields/member-expression-privatename.case +// - src/class-fields/delete-error/cls-expr-method-delete-twice-covered.template +/*--- +description: Syntax error if you call delete on member expressions . privatename (in method, recursively covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-fields] +flags: [generated] +negative: + phase: early + 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.#x)); + } + + +} diff --git a/test/language/expressions/class/fields-duplicate-privatenames.js b/test/language/expressions/class/fields-duplicate-privatenames.js new file mode 100644 index 0000000000000000000000000000000000000000..8d1d03da1488632b28781847aa0c13795e0eda87 --- /dev/null +++ b/test/language/expressions/class/fields-duplicate-privatenames.js @@ -0,0 +1,24 @@ +// Copyright 2017 Valerie Young. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: Syntax error if the same private field defined twice +esid: sec-class-definitions-static-semantics-early-errors +features: [class-fields] +negative: + phase: early + type: SyntaxError +info: | + Static Semantics: Early Errors + + ClassBody : ClassElementList + It is a Syntax Error if PrivateBoundNames of ClassBody contains any duplicate entries. +---*/ + + +throw "Test262: This statement should not be evaluated."; + +var C = class { + #x; + #x; +} diff --git a/test/language/statements/class/err-field-delete-call-expression-privatename.js b/test/language/statements/class/err-field-delete-call-expression-privatename.js new file mode 100644 index 0000000000000000000000000000000000000000..359c1a75596503d5c12a717bb67efdddadf07be7 --- /dev/null +++ b/test/language/statements/class/err-field-delete-call-expression-privatename.js @@ -0,0 +1,31 @@ +// This file was procedurally generated from the following sources: +// - src/class-fields/call-expression-privatename.case +// - src/class-fields/delete-error/cls-decl-field-delete.template +/*--- +description: Syntax error if you call delete on call expressions . privatename (in field) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-fields] +flags: [generated] +negative: + phase: early + 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().#x; + f() { + return this; + } +} diff --git a/test/language/statements/class/err-field-delete-covered-call-expression-privatename.js b/test/language/statements/class/err-field-delete-covered-call-expression-privatename.js new file mode 100644 index 0000000000000000000000000000000000000000..21afe2958c5f11987784fa4b3340f9e8b0cf858a --- /dev/null +++ b/test/language/statements/class/err-field-delete-covered-call-expression-privatename.js @@ -0,0 +1,33 @@ +// This file was procedurally generated from the following sources: +// - src/class-fields/call-expression-privatename.case +// - src/class-fields/delete-error/cls-decl-field-delete-covered.template +/*--- +description: Syntax error if you call delete on call expressions . privatename (in field, covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-fields] +flags: [generated] +negative: + phase: early + 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().#x); + f() { + return this; + } +} diff --git a/test/language/statements/class/err-field-delete-covered-member-expression-privatename.js b/test/language/statements/class/err-field-delete-covered-member-expression-privatename.js new file mode 100644 index 0000000000000000000000000000000000000000..d1042e1a42cdd12cc2bd1daeda7dc19b8d309166 --- /dev/null +++ b/test/language/statements/class/err-field-delete-covered-member-expression-privatename.js @@ -0,0 +1,31 @@ +// This file was procedurally generated from the following sources: +// - src/class-fields/member-expression-privatename.case +// - src/class-fields/delete-error/cls-decl-field-delete-covered.template +/*--- +description: Syntax error if you call delete on member expressions . privatename (in field, covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-fields] +flags: [generated] +negative: + phase: early + 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.#x); + +} diff --git a/test/language/statements/class/err-field-delete-member-expression-privatename.js b/test/language/statements/class/err-field-delete-member-expression-privatename.js new file mode 100644 index 0000000000000000000000000000000000000000..57dea8b7ab4049cc5da1220aca92f59a6a9ce3b5 --- /dev/null +++ b/test/language/statements/class/err-field-delete-member-expression-privatename.js @@ -0,0 +1,29 @@ +// This file was procedurally generated from the following sources: +// - src/class-fields/member-expression-privatename.case +// - src/class-fields/delete-error/cls-decl-field-delete.template +/*--- +description: Syntax error if you call delete on member expressions . privatename (in field) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-fields] +flags: [generated] +negative: + phase: early + 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.#x; + +} diff --git a/test/language/statements/class/err-field-delete-twice-covered-call-expression-privatename.js b/test/language/statements/class/err-field-delete-twice-covered-call-expression-privatename.js new file mode 100644 index 0000000000000000000000000000000000000000..f142c1970322d5df9f6f09c89fb62ab5585997e2 --- /dev/null +++ b/test/language/statements/class/err-field-delete-twice-covered-call-expression-privatename.js @@ -0,0 +1,34 @@ +// This file was procedurally generated from the following sources: +// - src/class-fields/call-expression-privatename.case +// - src/class-fields/delete-error/cls-decl-field-delete-twice-covered.template +/*--- +description: Syntax error if you call delete on call expressions . privatename (in field, recursively covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-fields] +flags: [generated] +negative: + phase: early + 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().#x)); + + f() { + return this; + } +} diff --git a/test/language/statements/class/err-field-delete-twice-covered-member-expression-privatename.js b/test/language/statements/class/err-field-delete-twice-covered-member-expression-privatename.js new file mode 100644 index 0000000000000000000000000000000000000000..41fea77b4364c47c84d1ce74ddaae8fe9b865177 --- /dev/null +++ b/test/language/statements/class/err-field-delete-twice-covered-member-expression-privatename.js @@ -0,0 +1,32 @@ +// This file was procedurally generated from the following sources: +// - src/class-fields/member-expression-privatename.case +// - src/class-fields/delete-error/cls-decl-field-delete-twice-covered.template +/*--- +description: Syntax error if you call delete on member expressions . privatename (in field, recursively covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-fields] +flags: [generated] +negative: + phase: early + 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.#x)); + + +} diff --git a/test/language/statements/class/err-method-delete-call-expression-privatename.js b/test/language/statements/class/err-method-delete-call-expression-privatename.js new file mode 100644 index 0000000000000000000000000000000000000000..f55917d582feb2662ced857dc04c0b934dd88c61 --- /dev/null +++ b/test/language/statements/class/err-method-delete-call-expression-privatename.js @@ -0,0 +1,35 @@ +// This file was procedurally generated from the following sources: +// - src/class-fields/call-expression-privatename.case +// - src/class-fields/delete-error/cls-decl-method-delete.template +/*--- +description: Syntax error if you call delete on call expressions . privatename (in method) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-fields] +flags: [generated] +negative: + phase: early + 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().#x; + } + + f() { + return this; + } +} diff --git a/test/language/statements/class/err-method-delete-covered-call-expression-privatename.js b/test/language/statements/class/err-method-delete-covered-call-expression-privatename.js new file mode 100644 index 0000000000000000000000000000000000000000..b6e14a0c6b03eee199dc7ee584a57d4a42cd72d7 --- /dev/null +++ b/test/language/statements/class/err-method-delete-covered-call-expression-privatename.js @@ -0,0 +1,37 @@ +// This file was procedurally generated from the following sources: +// - src/class-fields/call-expression-privatename.case +// - src/class-fields/delete-error/cls-decl-method-delete-covered.template +/*--- +description: Syntax error if you call delete on call expressions . privatename (in method, covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-fields] +flags: [generated] +negative: + phase: early + 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().#x); + } + + f() { + return this; + } +} diff --git a/test/language/statements/class/err-method-delete-covered-member-expression-privatename.js b/test/language/statements/class/err-method-delete-covered-member-expression-privatename.js new file mode 100644 index 0000000000000000000000000000000000000000..71fc2c51f933e960359889691f2c1291107740c0 --- /dev/null +++ b/test/language/statements/class/err-method-delete-covered-member-expression-privatename.js @@ -0,0 +1,35 @@ +// This file was procedurally generated from the following sources: +// - src/class-fields/member-expression-privatename.case +// - src/class-fields/delete-error/cls-decl-method-delete-covered.template +/*--- +description: Syntax error if you call delete on member expressions . privatename (in method, covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-fields] +flags: [generated] +negative: + phase: early + 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.#x); + } + + +} diff --git a/test/language/statements/class/err-method-delete-member-expression-privatename.js b/test/language/statements/class/err-method-delete-member-expression-privatename.js new file mode 100644 index 0000000000000000000000000000000000000000..492410f3cfc731909d1baabf4a8bd5ba0f259737 --- /dev/null +++ b/test/language/statements/class/err-method-delete-member-expression-privatename.js @@ -0,0 +1,33 @@ +// This file was procedurally generated from the following sources: +// - src/class-fields/member-expression-privatename.case +// - src/class-fields/delete-error/cls-decl-method-delete.template +/*--- +description: Syntax error if you call delete on member expressions . privatename (in method) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-fields] +flags: [generated] +negative: + phase: early + 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.#x; + } + + +} diff --git a/test/language/statements/class/err-method-delete-twice-covered-call-expression-privatename.js b/test/language/statements/class/err-method-delete-twice-covered-call-expression-privatename.js new file mode 100644 index 0000000000000000000000000000000000000000..9781eb9a5914f9005fe0ceaea1eb8a0fd299c0db --- /dev/null +++ b/test/language/statements/class/err-method-delete-twice-covered-call-expression-privatename.js @@ -0,0 +1,37 @@ +// This file was procedurally generated from the following sources: +// - src/class-fields/call-expression-privatename.case +// - src/class-fields/delete-error/cls-decl-method-delete-twice-covered.template +/*--- +description: Syntax error if you call delete on call expressions . privatename (in method, recursively covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-fields] +flags: [generated] +negative: + phase: early + 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().#x)); + } + + f() { + return this; + } +} diff --git a/test/language/statements/class/err-method-delete-twice-covered-member-expression-privatename.js b/test/language/statements/class/err-method-delete-twice-covered-member-expression-privatename.js new file mode 100644 index 0000000000000000000000000000000000000000..fdc6b8c270d20ddf6a6c2dfeb590a49747debb84 --- /dev/null +++ b/test/language/statements/class/err-method-delete-twice-covered-member-expression-privatename.js @@ -0,0 +1,35 @@ +// This file was procedurally generated from the following sources: +// - src/class-fields/member-expression-privatename.case +// - src/class-fields/delete-error/cls-decl-method-delete-twice-covered.template +/*--- +description: Syntax error if you call delete on member expressions . privatename (in method, recursively covered) +esid: sec-class-definitions-static-semantics-early-errors +features: [class-fields] +flags: [generated] +negative: + phase: early + 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.#x)); + } + + +} diff --git a/test/language/statements/class/fields-duplicate-privatenames.js b/test/language/statements/class/fields-duplicate-privatenames.js new file mode 100644 index 0000000000000000000000000000000000000000..ee77d36ae23dfa7c7049e6ff59cb078fb7f82a30 --- /dev/null +++ b/test/language/statements/class/fields-duplicate-privatenames.js @@ -0,0 +1,24 @@ +// Copyright 2017 Valerie Young. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +description: Syntax error if the same private field defined twice +esid: sec-class-definitions-static-semantics-early-errors +features: [class-fields] +negative: + phase: early + type: SyntaxError +info: | + Static Semantics: Early Errors + + ClassBody : ClassElementList + It is a Syntax Error if PrivateBoundNames of ClassBody contains any duplicate entries. +---*/ + + +throw "Test262: This statement should not be evaluated."; + +class C { + #x; + #x; +}