Remove invalid private name templates

Inner classes have access to outer private names.

Fixes #2039
This commit is contained in:
André Bargull 2019-01-30 06:44:10 -08:00
parent 9345023d5f
commit 1d8316cb3a
2 changed files with 0 additions and 88 deletions

View File

@ -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 }*/ }
}
}
}

View File

@ -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 }*/ }
}
}
};