[parser] Disallow static fields named constructor (#10461)
* Disallow static fields named `constructor` in a class
- Disallowed static fields named `constructor` in a class (previously only non-static were disallowed)
- Updated the text for the error for one consolidated warning, for both static and non-static fields
- Added a test
- Updated an existing test in the `flow` test suite of the parser to reflect the parse error.
Strangely, the test used to pass and started failing when inlining the `isNonstaticConstructor` method, without any changes.
In that test, `constructor` was a field, so in theory it should never have passed.
Would appreciate some feedback on this, as I'm not 100% sure if this is somehow related to Flow
* Update test262 whitelist
* Add comment and fix && operator
This commit is contained in:
committed by
Nicolò Ribaudo
parent
87dc201411
commit
9c1ad0a9f7
@@ -12,10 +12,6 @@ language/expressions/async-arrow-function/early-errors-arrow-await-in-formals.js
|
||||
language/expressions/async-arrow-function/early-errors-arrow-await-in-formals.js(strict mode)
|
||||
language/expressions/class/elements/fields-duplicate-privatenames.js(default)
|
||||
language/expressions/class/elements/fields-duplicate-privatenames.js(strict mode)
|
||||
language/expressions/class/elements/fields-literal-name-static-propname-constructor.js(default)
|
||||
language/expressions/class/elements/fields-literal-name-static-propname-constructor.js(strict mode)
|
||||
language/expressions/class/elements/fields-string-name-static-propname-constructor.js(default)
|
||||
language/expressions/class/elements/fields-string-name-static-propname-constructor.js(strict mode)
|
||||
language/expressions/class/elements/private-methods/prod-private-method-initialize-order.js(default)
|
||||
language/expressions/class/elements/private-methods/prod-private-method-initialize-order.js(strict mode)
|
||||
language/expressions/class/elements/syntax/early-errors/grammar-private-environment-on-class-heritage-chained-usage.js(default)
|
||||
@@ -188,10 +184,6 @@ language/module-code/top-level-await/syntax/try-await-expr.js(default)
|
||||
language/module-code/top-level-await/syntax/try-await-expr.js(strict mode)
|
||||
language/statements/class/elements/fields-duplicate-privatenames.js(default)
|
||||
language/statements/class/elements/fields-duplicate-privatenames.js(strict mode)
|
||||
language/statements/class/elements/fields-literal-name-static-propname-constructor.js(default)
|
||||
language/statements/class/elements/fields-literal-name-static-propname-constructor.js(strict mode)
|
||||
language/statements/class/elements/fields-string-name-static-propname-constructor.js(default)
|
||||
language/statements/class/elements/fields-string-name-static-propname-constructor.js(strict mode)
|
||||
language/statements/class/elements/private-field-is-visible-in-computed-properties.js(default)
|
||||
language/statements/class/elements/private-field-is-visible-in-computed-properties.js(strict mode)
|
||||
language/statements/class/elements/private-field-with-initialized-id-is-visible-in-computed-properties.js(default)
|
||||
|
||||
Reference in New Issue
Block a user