mirror of https://github.com/tc39/test262.git
Adding cases to check if SyntaxError is thrown if AllPrivateIdentifiersValid returns false. (#2301)
This commit is contained in:
parent
8d41122c2b
commit
fbbab61b4a
|
@ -0,0 +1,20 @@
|
||||||
|
// 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-createdynamicfunction
|
||||||
|
description: CreateDynamicFunction throws SyntaxError if there is some invalid private identifier on its body
|
||||||
|
info: |
|
||||||
|
CreateDynamicFunction(constructor, newTarget, kind, args)
|
||||||
|
...
|
||||||
|
29. Let privateIdentifiers be an empty List.
|
||||||
|
30. If AllPrivateIdentifiersValid of body with the argument privateIdentifiers is false, throw a SyntaxError exception.
|
||||||
|
31. If AllPrivateIdentifiersValid of parameters with the argument privateIdentifiers is false, throw a SyntaxError exception.
|
||||||
|
...
|
||||||
|
features: [class-fields-private]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
assert.throws(SyntaxError, function() {
|
||||||
|
let o = {};
|
||||||
|
new Function("o.#f");
|
||||||
|
}, 'It should be a SyntaxError if AllPrivateIdentifiersValid returns false to dynamic function body');
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
// 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');
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
// 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-static-semantics-early-errors
|
||||||
|
description: >
|
||||||
|
ModuleBody : ModuleItemList
|
||||||
|
It is a Syntax Error if AllPrivateIdentifiersValid of ModuleItemList with an empty List as an argument is false.
|
||||||
|
flags: [module]
|
||||||
|
features: [class-static-fields-private]
|
||||||
|
negative:
|
||||||
|
phase: parse
|
||||||
|
type: SyntaxError
|
||||||
|
---*/
|
||||||
|
|
||||||
|
$DONOTEVALUATE();
|
||||||
|
|
||||||
|
var x = {};
|
||||||
|
x.#f = 'Test262';
|
Loading…
Reference in New Issue