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