diff options
Diffstat (limited to 'js/src/tests/test262/built-ins/eval/private-identifiers-not-empty.js')
-rw-r--r-- | js/src/tests/test262/built-ins/eval/private-identifiers-not-empty.js | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/js/src/tests/test262/built-ins/eval/private-identifiers-not-empty.js b/js/src/tests/test262/built-ins/eval/private-identifiers-not-empty.js new file mode 100644 index 0000000000..00640c9563 --- /dev/null +++ b/js/src/tests/test262/built-ins/eval/private-identifiers-not-empty.js @@ -0,0 +1,27 @@ +// |reftest| shell-option(--enable-private-fields) skip-if(!xulRuntime.shell) -- requires shell-options +// Copyright (C) 2019 Caio Lima (Igalia SL). All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. +/*--- +esid: sec-evaldeclarationinstantiation +description: EvalDeclarationInstantiation throws SyntaxError if there is some invalid private identifier on its body +info: | + EvalDeclarationInstantiation(body, varEnv, lexEnv, privateEnv, strict) + ... + 6. Let privateIdentifiers be an empty List. + 7. Let privateEnv be privateEnv. + 8. Repeat while privateEnv is not null, + a. For each binding named N in privateEnv, + i. If privateIdentifiers does not contain N, append N to privateIdentifiers. + b. Let privateEnv be privateEnv's outer environment reference. + 9. If AllPrivateIdentifiersValid of body with the argument privateIdentifiers is false, throw a SyntaxError exception. + ... +features: [class-fields-private] +---*/ + +assert.throws(SyntaxError, function() { + let o = {}; + eval("o.#f"); +}, 'It should be a SyntaxError if AllPrivateIdentifiersValid returns false to eval body'); + + +reportCompare(0, 0); |