diff --git a/src/class-fields/propname-constructor.case b/src/class-fields/propname-constructor.case index a700e991198123e04e1e0d9d7ad11d22cf3f03ff..3353606ddb8d09b79ad488e37634c6d637f087cb 100644 --- a/src/class-fields/propname-constructor.case +++ b/src/class-fields/propname-constructor.case @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -desc: Static class fields cannot have PropName 'constructor' +desc: class fields forbid PropName 'constructor' info: | // This test file tests the following early error: diff --git a/src/class-fields/propname-error/cls-decl-computed-name.template b/src/class-fields/propname-error/cls-decl-computed-name.template index 72e252f80884f7457cbe5e53d78fbc053b021f8d..406a209707dab4763058f471022dd314228fb338 100644 --- a/src/class-fields/propname-error/cls-decl-computed-name.template +++ b/src/class-fields/propname-error/cls-decl-computed-name.template @@ -4,7 +4,7 @@ /*--- esid: sec-class-definitions-static-semantics-early-errors path: language/statements/class/fields-computed-name- -name: computed +name: no early error -- PropName of ComputedPropertyName not forbidden value info: | Static Semantics: PropName ... diff --git a/src/class-fields/propname-error/cls-decl-literal-name.template b/src/class-fields/propname-error/cls-decl-literal-name.template index b51b78ef2010dc1e40dbfca41409f7b287229f75..3c4ce9e9e74346d93172c72f884eb92798d1bd54 100644 --- a/src/class-fields/propname-error/cls-decl-literal-name.template +++ b/src/class-fields/propname-error/cls-decl-literal-name.template @@ -4,7 +4,7 @@ /*--- esid: sec-class-definitions-static-semantics-early-errors path: language/statements/class/fields-literal-name- -name: literal name +name: early error -- PropName of IdentifierName is forbidden value negative: type: SyntaxError phase: early diff --git a/src/class-fields/propname-error/cls-decl-string-name.template b/src/class-fields/propname-error/cls-decl-string-name.template index 173990f6603d4acfa4ec267d2d9e68b60475ab20..743f20f744f42021d3909eaccd16a32cc3ec520b 100644 --- a/src/class-fields/propname-error/cls-decl-string-name.template +++ b/src/class-fields/propname-error/cls-decl-string-name.template @@ -4,14 +4,14 @@ /*--- esid: sec-class-definitions-static-semantics-early-errors path: language/statements/class/fields-string-name- -name: string name +name: early error -- PropName of StringLiteral is forbidden value negative: type: SyntaxError phase: early info: | Static Semantics: PropName ... - LiteralPropertyName:StringLiteral + LiteralPropertyName : StringLiteral Return the String value whose code units are the SV of the StringLiteral. ---*/ diff --git a/src/class-fields/propname-error/cls-decl-variable-name.template b/src/class-fields/propname-error/cls-decl-variable-name.template new file mode 100644 index 0000000000000000000000000000000000000000..cbda5b8319321bfe233b48adecaf8491420bbf2b --- /dev/null +++ b/src/class-fields/propname-error/cls-decl-variable-name.template @@ -0,0 +1,22 @@ +// 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/fields-computed-variable-name- +name: no early error -- PropName of ComputedPropertyName not forbidden value +info: | + Static Semantics: PropName + ... + ComputedPropertyName : [ AssignmentExpression ] + Return empty. +---*/ + +var /*{ propname }*/ = 'foo'; +class C { + /*{ static }*/ [/*{ propname }*/]; +} + +var c = new C(); + +assert.sameValue(c.hasOwnProperty("foo"), true); diff --git a/src/class-fields/propname-error/cls-expr-computed-name.template b/src/class-fields/propname-error/cls-expr-computed-name.template index dc37681833e49248a32957d943e8aa90996b33d3..e509263eea36c874ce0c147ec3c26216d6d0bfdc 100644 --- a/src/class-fields/propname-error/cls-expr-computed-name.template +++ b/src/class-fields/propname-error/cls-expr-computed-name.template @@ -4,7 +4,7 @@ /*--- esid: sec-class-definitions-static-semantics-early-errors path: language/expressions/class/fields-computed-name- -name: computed +name: no early error -- PropName of ComputedPropertyName not forbidden value info: | Static Semantics: PropName ... diff --git a/src/class-fields/propname-error/cls-expr-literal-name.template b/src/class-fields/propname-error/cls-expr-literal-name.template index 84d8310abb8612ad2b2306a258752c622c5db22b..bd87b81d2ae7a812ac3a0937aa82b9134dd12557 100644 --- a/src/class-fields/propname-error/cls-expr-literal-name.template +++ b/src/class-fields/propname-error/cls-expr-literal-name.template @@ -4,7 +4,7 @@ /*--- esid: sec-class-definitions-static-semantics-early-errors path: language/expressions/class/fields-literal-name- -name: literal name +name: early error -- PropName of IdentifierName is forbidden negative: type: SyntaxError phase: early diff --git a/src/class-fields/propname-error/cls-expr-string-name.template b/src/class-fields/propname-error/cls-expr-string-name.template index b6a3af65c2c2b73d160e2fb06537ace6f363bd33..189a1bd80f473c60a3a5730fffc17e035cba1d59 100644 --- a/src/class-fields/propname-error/cls-expr-string-name.template +++ b/src/class-fields/propname-error/cls-expr-string-name.template @@ -4,14 +4,14 @@ /*--- esid: sec-class-definitions-static-semantics-early-errors path: language/expressions/class/fields-string-name- -name: string name +name: early error -- PropName of StringLiteral is forbidden negative: type: SyntaxError phase: early info: | Static Semantics: PropName ... - LiteralPropertyName:StringLiteral + LiteralPropertyName : StringLiteral Return the String value whose code units are the SV of the StringLiteral. ---*/ diff --git a/src/class-fields/propname-error/cls-expr-variable-name.template b/src/class-fields/propname-error/cls-expr-variable-name.template new file mode 100644 index 0000000000000000000000000000000000000000..50b255197f9f61549b18e6db7c36150cf0c7bcaf --- /dev/null +++ b/src/class-fields/propname-error/cls-expr-variable-name.template @@ -0,0 +1,22 @@ +// 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/fields-computed-variable-name- +name: no early error -- PropName of ComputedPropertyName not forbidden value +info: | + Static Semantics: PropName + ... + ComputedPropertyName : [ AssignmentExpression ] + Return empty. +---*/ + +var /*{ propname }*/ = 'foo'; +var C = class { + /*{ static }*/ [/*{ propname }*/]; +} + +var c = new C(); + +assert.sameValue(c.hasOwnProperty("foo"), true); diff --git a/src/class-fields/static-propname-constructor.case b/src/class-fields/static-propname-constructor.case index ffa6754e204b53655c8071149d36d7b80ba18891..ff3d00af6abefb7d68838d00e5ec6130bd877d3d 100644 --- a/src/class-fields/static-propname-constructor.case +++ b/src/class-fields/static-propname-constructor.case @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -desc: Static class field cannot have PropName 'constructor' +desc: static class field forbid PropName 'constructor' info: | // This test file tests the following early error: diff --git a/src/class-fields/static-propname-prototype.case b/src/class-fields/static-propname-prototype.case index 9b2e9ab331b5596924fbf38a1c1f1fd2f555b8b0..99d85ff64a6c5118290ce2d77fb0c3b7c42326b7 100644 --- a/src/class-fields/static-propname-prototype.case +++ b/src/class-fields/static-propname-prototype.case @@ -2,7 +2,7 @@ // This code is governed by the BSD license found in the LICENSE file. /*--- -desc: Static class fields cannot have PropName 'prototype' +desc: static class fields forbid PropName 'prototype' info: | // This test file tests the following early error: