mirror of https://github.com/tc39/test262.git
Remove invalid private name templates
Inner classes have access to outer private names. Fixes #2039
This commit is contained in:
parent
9345023d5f
commit
1d8316cb3a
|
@ -1,44 +0,0 @@
|
||||||
// Copyright (C) 2018 Leo Balter. All rights reserved.
|
|
||||||
// This code is governed by the BSD license found in the LICENSE file.
|
|
||||||
|
|
||||||
/*---
|
|
||||||
path: language/statements/class/elements/syntax/early-errors/invalid-names/method-inner-
|
|
||||||
name: >
|
|
||||||
Invalid private names should throw a SyntaxError,
|
|
||||||
method in inner class declaration
|
|
||||||
features: [class, class-fields-private]
|
|
||||||
esid: sec-static-semantics-early-errors
|
|
||||||
info: |
|
|
||||||
ScriptBody:StatementList
|
|
||||||
It is a Syntax Error if AllPrivateNamesValid of StatementList with an empty List
|
|
||||||
as an argument is false unless the source code is eval code that is being
|
|
||||||
processed by a direct eval.
|
|
||||||
|
|
||||||
ModuleBody:ModuleItemList
|
|
||||||
It is a Syntax Error if AllPrivateNamesValid of ModuleItemList with an empty List
|
|
||||||
as an argument is false.
|
|
||||||
|
|
||||||
Static Semantics: AllPrivateNamesValid
|
|
||||||
|
|
||||||
ClassBody : ClassElementList
|
|
||||||
1. Let newNames be the concatenation of names with PrivateBoundNames of ClassBody.
|
|
||||||
2. Return AllPrivateNamesValid of ClassElementList with the argument newNames.
|
|
||||||
|
|
||||||
For all other grammatical productions, recurse on subexpressions/substatements,
|
|
||||||
passing in the names of the caller. If all pieces return true, then return true.
|
|
||||||
If any returns false, return false.
|
|
||||||
negative:
|
|
||||||
phase: parse
|
|
||||||
type: SyntaxError
|
|
||||||
---*/
|
|
||||||
|
|
||||||
$DONOTEVALUATE();
|
|
||||||
|
|
||||||
class C {
|
|
||||||
#x = 42;
|
|
||||||
m() {
|
|
||||||
class Inner {
|
|
||||||
z() { /*{ body }*/ }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,44 +0,0 @@
|
||||||
// Copyright (C) 2018 Leo Balter. All rights reserved.
|
|
||||||
// This code is governed by the BSD license found in the LICENSE file.
|
|
||||||
|
|
||||||
/*---
|
|
||||||
path: language/expressions/class/elements/syntax/early-errors/invalid-names/method-inner-
|
|
||||||
name: >
|
|
||||||
Invalid private names should throw a SyntaxError,
|
|
||||||
method in inner class expression
|
|
||||||
features: [class, class-fields-private]
|
|
||||||
info: |
|
|
||||||
ScriptBody:StatementList
|
|
||||||
It is a Syntax Error if AllPrivateNamesValid of StatementList with an empty List
|
|
||||||
as an argument is false unless the source code is eval code that is being
|
|
||||||
processed by a direct eval.
|
|
||||||
|
|
||||||
ModuleBody:ModuleItemList
|
|
||||||
It is a Syntax Error if AllPrivateNamesValid of ModuleItemList with an empty List
|
|
||||||
as an argument is false.
|
|
||||||
|
|
||||||
Static Semantics: AllPrivateNamesValid
|
|
||||||
|
|
||||||
ClassBody : ClassElementList
|
|
||||||
1. Let newNames be the concatenation of names with PrivateBoundNames of ClassBody.
|
|
||||||
2. Return AllPrivateNamesValid of ClassElementList with the argument newNames.
|
|
||||||
|
|
||||||
For all other grammatical productions, recurse on subexpressions/substatements,
|
|
||||||
passing in the names of the caller. If all pieces return true, then return true.
|
|
||||||
If any returns false, return false.
|
|
||||||
esid: sec-static-semantics-early-errors
|
|
||||||
negative:
|
|
||||||
phase: parse
|
|
||||||
type: SyntaxError
|
|
||||||
---*/
|
|
||||||
|
|
||||||
$DONOTEVALUATE();
|
|
||||||
|
|
||||||
var C = class {
|
|
||||||
#x = 42;
|
|
||||||
m() {
|
|
||||||
class Inner {
|
|
||||||
z() { /*{ body }*/ }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
Loading…
Reference in New Issue