mirror of
https://github.com/tc39/test262.git
synced 2025-11-02 12:44:05 +01:00
58 lines
1.7 KiB
JavaScript
58 lines
1.7 KiB
JavaScript
// This file was procedurally generated from the following sources:
|
|
// - src/invalid-private-names/member-expression-bad-reference.case
|
|
// - src/invalid-private-names/default/cls-expr-inner-method.template
|
|
/*---
|
|
description: bad reference in member expression (Invalid private names should throw a SyntaxError, method in inner class expression)
|
|
esid: sec-static-semantics-early-errors
|
|
features: [class-fields-private, class]
|
|
flags: [generated]
|
|
negative:
|
|
phase: parse
|
|
type: SyntaxError
|
|
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.
|
|
|
|
|
|
Static Semantics: AllPrivateNamesValid
|
|
|
|
MemberExpression : MemberExpression . PrivateName
|
|
|
|
1. If StringValue of PrivateName is in names, return true.
|
|
2. Return false.
|
|
|
|
CallExpression : CallExpression . PrivateName
|
|
|
|
1. If StringValue of PrivateName is in names, return true.
|
|
2. Return false.
|
|
|
|
---*/
|
|
|
|
|
|
$DONOTEVALUATE();
|
|
|
|
var C = class {
|
|
#x = 42;
|
|
m() {
|
|
class Inner {
|
|
z() { something.#x }
|
|
}
|
|
}
|
|
};
|