privatename-not-valid-eval-earlyerr-3.js (792B)
1 // Copyright (C) 2017 Valerie Young. All rights reserved. 2 // This code is governed by the BSD license found in the LICENSE file. 3 /*--- 4 esid: sec-scripts-static-semantics-early-errors 5 description: Early error when referencing privatename that has not been declared in class. 6 info: | 7 Static Semantics: Early Errors 8 ScriptBody : StatementList 9 10 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. 11 12 features: [class, class-fields-private, class-fields-public] 13 ---*/ 14 15 var executed = false; 16 17 class C { 18 y = eval("executed = true; this.#x;") 19 } 20 21 assert.throws(SyntaxError, function() { 22 new C(); 23 }); 24 25 assert.sameValue(executed, false); 26 27 reportCompare(0, 0);