From 889857ccb5ce8d4f75b8f94db1e08d192b0fd956 Mon Sep 17 00:00:00 2001 From: Valerie R Young Date: Tue, 31 Oct 2017 14:19:30 -0400 Subject: Fixes for forbidden property names --- src/class-fields/propname-constructor.case | 2 +- .../propname-error/cls-decl-computed-name.template | 2 +- .../propname-error/cls-decl-literal-name.template | 2 +- .../propname-error/cls-decl-string-name.template | 4 ++-- .../propname-error/cls-decl-variable-name.template | 22 ++++++++++++++++++++++ .../propname-error/cls-expr-computed-name.template | 2 +- .../propname-error/cls-expr-literal-name.template | 2 +- .../propname-error/cls-expr-string-name.template | 4 ++-- .../propname-error/cls-expr-variable-name.template | 22 ++++++++++++++++++++++ src/class-fields/static-propname-constructor.case | 2 +- src/class-fields/static-propname-prototype.case | 2 +- 11 files changed, 55 insertions(+), 11 deletions(-) create mode 100644 src/class-fields/propname-error/cls-decl-variable-name.template create mode 100644 src/class-fields/propname-error/cls-expr-variable-name.template (limited to 'src') diff --git a/src/class-fields/propname-constructor.case b/src/class-fields/propname-constructor.case index a700e9911..3353606dd 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 72e252f80..406a20970 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 b51b78ef2..3c4ce9e9e 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 173990f66..743f20f74 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 000000000..cbda5b831 --- /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 dc3768183..e509263ee 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 84d8310ab..bd87b81d2 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 b6a3af65c..189a1bd80 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 000000000..50b255197 --- /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 ffa6754e2..ff3d00af6 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 9b2e9ab33..99d85ff64 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: -- cgit v1.2.1