| // 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- |
| name: > |
| Invalid private names should throw a SyntaxError, |
| method in class expression |
| 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. |
| features: [class] |
| esid: sec-static-semantics-early-errors |
| negative: |
| phase: parse |
| type: SyntaxError |
| ---*/ |
| |
| $DONOTEVALUATE(); |
| |
| var C = class { |
| m() { /*{ body }*/ } |
| }; |