block-decl-strict-strict.js |
---
description: AnnexB extension not honored in strict mode (Block statement in the global scope containing a function declaration)
es6id: B.3.3.2
flags: [onlyStrict]
info: |
B.3.3.2 Changes to GlobalDeclarationInstantiation
1. 1. Let strict be IsStrict of script
2. If strict is *false*, then
[...]
--- |
634 |
browser.js |
|
0 |
decl-func-dup.js |
---
es6id: 13.1
description: >
redeclaration outermost:
allowed to redeclare function declaration with function declaration
--- |
381 |
decl-func.js |
---
esid: sec-globaldeclarationinstantiation
es6id: 15.1.8
description: Declaration of function where permissible
info: |
[...]
9. Let declaredFunctionNames be a new empty List.
10. For each d in varDeclarations, in reverse list order do
a. If d is neither a VariableDeclaration or a ForBinding, then
i. Assert: d is either a FunctionDeclaration or a
GeneratorDeclaration.
ii. NOTE If there are multiple FunctionDeclarations for the same name,
the last declaration is used.
iii. Let fn be the sole element of the BoundNames of d.
iv. If fn is not an element of declaredFunctionNames, then
1. Let fnDefinable be ? envRec.CanDeclareGlobalFunction(fn).
2. If fnDefinable is false, throw a TypeError exception.
3. Append fn to declaredFunctionNames.
4. Insert d as the first element of functionsToInitialize.
[...]
17. For each production f in functionsToInitialize, do
a. Let fn be the sole element of the BoundNames of f.
b. Let fo be the result of performing InstantiateFunctionObject for f
with argument env.
c. Perform ? envRec.CreateGlobalFunctionBinding(fn, fo, false).
[...]
8.1.1.4.16 CanDeclareGlobalFunction
1. Let envRec be the global Environment Record for which the method was
invoked.
2. Let ObjRec be envRec.[[ObjectRecord]].
3. Let globalObject be the binding object for ObjRec.
4. Let existingProp be ? globalObject.[[GetOwnProperty]](N).
5. If existingProp is undefined, return ? IsExtensible(globalObject).
includes: [propertyHelper.js]
--- |
2020 |
decl-lex-configurable-global.js |
---
esid: sec-globaldeclarationinstantiation
es6id: 15.1.8
description: Lexical declarations "shadow" configurable global properties
info: |
[...]
5. For each name in lexNames, do
[...]
c. Let hasRestrictedGlobal be ? envRec.HasRestrictedGlobalProperty(name).
d. If hasRestrictedGlobal is true, throw a SyntaxError exception.
[...]
16. For each element d in lexDeclarations do
a. NOTE Lexically declared names are only instantiated here but not
initialized.
b. For each element dn of the BoundNames of d do
i. If IsConstantDeclaration of d is true, then
1. Perform ? envRec.CreateImmutableBinding(dn, true).
ii. Else,
1. Perform ? envRec.CreateMutableBinding(dn, false).
--- |
1266 |
decl-lex-deletion.js |
---
esid: sec-globaldeclarationinstantiation
es6id: 15.1.8
description: Globally-declared lexical bindings cannot be deleted
info: |
[...]
16. For each element d in lexDeclarations do
a. NOTE Lexically declared names are only instantiated here but not
initialized.
b. For each element dn of the BoundNames of d do
i. If IsConstantDeclaration of d is true, then
1. Perform ? envRec.CreateImmutableBinding(dn, true).
ii. Else,
1. Perform ? envRec.CreateMutableBinding(dn, false).
[...]
flags: [noStrict]
--- |
1059 |
decl-lex-restricted-global.js |
---
esid: sec-globaldeclarationinstantiation
es6id: 15.1.8
description: Lexical declaration collides with existing "restricted global"
info: |
[...]
5. For each name in lexNames, do
[...]
c. Let hasRestrictedGlobal be ? envRec.HasRestrictedGlobalProperty(name).
d. If hasRestrictedGlobal is true, throw a SyntaxError exception.
negative:
phase: runtime
type: SyntaxError
--- |
587 |
decl-lex.js |
---
esid: sec-globaldeclarationinstantiation
es6id: 15.1.8
description: Declaration of lexical bindings
info: |
[...]
16. For each element d in lexDeclarations do
a. NOTE Lexically declared names are only instantiated here but not
initialized.
b. For each element dn of the BoundNames of d do
i. If IsConstantDeclaration of d is true, then
1. Perform ? envRec.CreateImmutableBinding(dn, true).
ii. Else,
1. Perform ? envRec.CreateMutableBinding(dn, false).
[...]
--- |
1476 |
decl-var.js |
---
esid: sec-globaldeclarationinstantiation
es6id: 15.1.8
description: Declaration of variable where permissible
info: |
[...]
11. Let declaredVarNames be a new empty List.
12. For each d in varDeclarations, do
a. If d is a VariableDeclaration or a ForBinding, then
i. For each String vn in the BoundNames of d, do
1. If vn is not an element of declaredFunctionNames, then
a. Let vnDefinable be ? envRec.CanDeclareGlobalVar(vn).
b. If vnDefinable is false, throw a TypeError exception.
c. If vn is not an element of declaredVarNames, then
i. Append vn to declaredVarNames.
[...]
18. For each String vn in declaredVarNames, in list order do
a. Perform ? envRec.CreateGlobalVarBinding(vn, false).
[...]
8.1.1.4.15 CanDeclareGlobalVar
1. Let envRec be the global Environment Record for which the method was
invoked.
2. Let ObjRec be envRec.[[ObjectRecord]].
3. Let globalObject be the binding object for ObjRec.
4. Let hasProperty be ? HasOwnProperty(globalObject, N).
5. If hasProperty is true, return true.
6. Return ? IsExtensible(globalObject).
includes: [propertyHelper.js]
--- |
1510 |
export.js |
---
description: The `export` declaration may not appear within a ScriptBody
esid: sec-scripts
negative:
phase: parse
type: SyntaxError
info: |
A.5 Scripts and Modules
Script:
ScriptBodyopt
ScriptBody:
StatementList
--- |
473 |
import.js |
---
description: The `import` declaration may not appear within a ScriptBody
esid: sec-scripts
negative:
phase: parse
type: SyntaxError
info: |
A.5 Scripts and Modules
Script:
ScriptBodyopt
ScriptBody:
StatementList
--- |
481 |
invalid-private-names-call-expression-bad-reference.js |
---
description: bad reference in call expression (Invalid private names should throw a SyntaxError, top level of script body)
esid: sec-static-semantics-early-errors
features: [class-fields-private]
flags: [generated]
negative:
phase: parse
type: SyntaxError
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
MemberExpression : MemberExpression . PrivateName
1. If StringValue of PrivateName is in names, return true.
2. Return false.
CallExpression : CallExpression . PrivateName
1. If StringValue of PrivateName is in names, return true.
2. Return false.
--- |
1253 |
invalid-private-names-call-expression-this.js |
---
description: this evaluated in call expression (Invalid private names should throw a SyntaxError, top level of script body)
esid: sec-static-semantics-early-errors
features: [class-fields-private]
flags: [generated]
negative:
phase: parse
type: SyntaxError
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
MemberExpression : MemberExpression . PrivateName
1. If StringValue of PrivateName is in names, return true.
2. Return false.
CallExpression : CallExpression . PrivateName
1. If StringValue of PrivateName is in names, return true.
2. Return false.
--- |
1247 |
invalid-private-names-member-expression-bad-reference.js |
---
description: bad reference in member expression (Invalid private names should throw a SyntaxError, top level of script body)
esid: sec-static-semantics-early-errors
features: [class-fields-private]
flags: [generated]
negative:
phase: parse
type: SyntaxError
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
MemberExpression : MemberExpression . PrivateName
1. If StringValue of PrivateName is in names, return true.
2. Return false.
CallExpression : CallExpression . PrivateName
1. If StringValue of PrivateName is in names, return true.
2. Return false.
--- |
1254 |
invalid-private-names-member-expression-this.js |
---
description: this reference in member expression (Invalid private names should throw a SyntaxError, top level of script body)
esid: sec-static-semantics-early-errors
features: [class-fields-private]
flags: [generated]
negative:
phase: parse
type: SyntaxError
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
MemberExpression : MemberExpression . PrivateName
1. If StringValue of PrivateName is in names, return true.
2. Return false.
CallExpression : CallExpression . PrivateName
1. If StringValue of PrivateName is in names, return true.
2. Return false.
--- |
1241 |
new.target-arrow.js |
---
esid: sec-scripts-static-semantics-early-errors
es6id: 15.1.1
description: An ArrowFunction in global code may not contain `new.target`
info: |
- It is a Syntax Error if StatementList Contains NewTarget unless the source
code containing NewTarget is eval code that is being processed by a direct
eval that is contained in function code that is not the function code of an
ArrowFunction.
14.2.3 Static Semantics: Contains
With parameter symbol.
ArrowFunction : ArrowParameters => ConciseBody
1. If symbol is not one of NewTarget, SuperProperty, SuperCall, super or
this, return false.
2. If ArrowParameters Contains symbol is true, return true.
3. Return ConciseBody Contains symbol.
NOTE Normally, Contains does not look inside most function forms. However,
Contains is used to detect new.target, this, and super usage within an
ArrowFunction.
features: [arrow-function, new.target]
negative:
phase: parse
type: SyntaxError
--- |
1206 |
new.target.js |
---
esid: sec-scripts-static-semantics-early-errors
es6id: 15.1.1
description: Global code may not contain `new.target`
info: |
- It is a Syntax Error if StatementList Contains NewTarget unless the source
code containing NewTarget is eval code that is being processed by a direct
eval that is contained in function code that is not the function code of an
ArrowFunction.
negative:
phase: parse
type: SyntaxError
features: [new.target]
--- |
662 |
return.js |
---
esid: sec-scripts
es6id: 15.1
description: ReturnStatement may not be used directly within global code
info: |
Syntax
Script :
ScriptBodyopt
ScriptBody :
StatementList[~Yield, ~Return]
negative:
phase: parse
type: SyntaxError
--- |
455 |
S10.1.7_A1_T1.js |
---
info: The this value associated with an executioncontext is immutable
es5id: 10.1.7_A1_T1
description: Checking if deleting "this" fails
--- |
464 |
S10.4.1_A1_T1.js |
---
info: |
Variable instantiation is performed using the global object as
the variable object and using property attributes { DontDelete }
es5id: 10.4.1_A1_T1
description: >
Checking if deleting variable x, that is defined as var x = 1,
fails
flags: [noStrict]
--- |
661 |
S10.4.1_A1_T2.js |
---
info: |
Variable instantiation is performed using the global object as
the variable object and using property attributes { DontDelete }
es5id: 10.4.1_A1_T2
description: Checking if deleting variable x, that is defined as x = 1, fails
flags: [noStrict]
--- |
642 |
script-decl-func-dups.js |
---
esid: sec-globaldeclarationinstantiation
es6id: 15.1.8
description: >
When multiple like-named function declarations exist, the final is assigned
to the new binding.
info: |
[...]
9. Let declaredFunctionNames be a new empty List.
10. For each d in varDeclarations, in reverse list order do
a. If d is neither a VariableDeclaration or a ForBinding, then
i. Assert: d is either a FunctionDeclaration or a
GeneratorDeclaration.
ii. NOTE If there are multiple FunctionDeclarations for the same name,
the last declaration is used.
iii. Let fn be the sole element of the BoundNames of d.
iv. If fn is not an element of declaredFunctionNames, then
1. Let fnDefinable be ? envRec.CanDeclareGlobalFunction(fn).
2. If fnDefinable is false, throw a TypeError exception.
3. Append fn to declaredFunctionNames.
4. Insert d as the first element of functionsToInitialize.
[...]
--- |
1315 |
script-decl-func-err-non-configurable.js |
---
esid: sec-globaldeclarationinstantiation
es6id: 15.1.8
description: >
Declaration of function when there is a corresponding global property that is
non-configurable but *not* a writable and configurable data property.
info: |
[...]
9. Let declaredFunctionNames be a new empty List.
10. For each d in varDeclarations, in reverse list order do
a. If d is neither a VariableDeclaration or a ForBinding, then
i. Assert: d is either a FunctionDeclaration or a
GeneratorDeclaration.
ii. NOTE If there are multiple FunctionDeclarations for the same name,
the last declaration is used.
iii. Let fn be the sole element of the BoundNames of d.
iv. If fn is not an element of declaredFunctionNames, then
1. Let fnDefinable be ? envRec.CanDeclareGlobalFunction(fn).
2. If fnDefinable is false, throw a TypeError exception.
8.1.1.4.16 CanDeclareGlobalFunction
[...]
6. If existingProp.[[Configurable]] is true, return true.
7. If IsDataDescriptor(existingProp) is true and existingProp has attribute
values {[[Writable]]: true, [[Enumerable]]: true}, return true.
8. Return false.
--- |
3266 |
script-decl-func-err-non-extensible.js |
---
esid: sec-globaldeclarationinstantiation
es6id: 15.1.8
description: >
Declaration of function when there is no corresponding global property and
the global object is non-extensible
info: |
[...]
9. Let declaredFunctionNames be a new empty List.
10. For each d in varDeclarations, in reverse list order do
a. If d is neither a VariableDeclaration or a ForBinding, then
i. Assert: d is either a FunctionDeclaration or a
GeneratorDeclaration.
ii. NOTE If there are multiple FunctionDeclarations for the same name,
the last declaration is used.
iii. Let fn be the sole element of the BoundNames of d.
iv. If fn is not an element of declaredFunctionNames, then
1. Let fnDefinable be ? envRec.CanDeclareGlobalFunction(fn).
2. If fnDefinable is false, throw a TypeError exception.
8.1.1.4.16 CanDeclareGlobalFunction
1. Let envRec be the global Environment Record for which the method was
invoked.
2. Let ObjRec be envRec.[[ObjectRecord]].
3. Let globalObject be the binding object for ObjRec.
4. Let existingProp be ? globalObject.[[GetOwnProperty]](N).
5. If existingProp is undefined, return ? IsExtensible(globalObject).
--- |
1608 |
script-decl-func.js |
---
esid: sec-globaldeclarationinstantiation
es6id: 15.1.8
description: Declaration of function where permissible
info: |
[...]
9. Let declaredFunctionNames be a new empty List.
10. For each d in varDeclarations, in reverse list order do
a. If d is neither a VariableDeclaration or a ForBinding, then
i. Assert: d is either a FunctionDeclaration or a
GeneratorDeclaration.
ii. NOTE If there are multiple FunctionDeclarations for the same name,
the last declaration is used.
iii. Let fn be the sole element of the BoundNames of d.
iv. If fn is not an element of declaredFunctionNames, then
1. Let fnDefinable be ? envRec.CanDeclareGlobalFunction(fn).
2. If fnDefinable is false, throw a TypeError exception.
3. Append fn to declaredFunctionNames.
4. Insert d as the first element of functionsToInitialize.
[...]
17. For each production f in functionsToInitialize, do
a. Let fn be the sole element of the BoundNames of f.
b. Let fo be the result of performing InstantiateFunctionObject for f
with argument env.
c. Perform ? envRec.CreateGlobalFunctionBinding(fn, fo, false).
[...]
8.1.1.4.16 CanDeclareGlobalFunction
1. Let envRec be the global Environment Record for which the method was
invoked.
2. Let ObjRec be envRec.[[ObjectRecord]].
3. Let globalObject be the binding object for ObjRec.
4. Let existingProp be ? globalObject.[[GetOwnProperty]](N).
5. If existingProp is undefined, return ? IsExtensible(globalObject).
includes: [propertyHelper.js]
--- |
2947 |
script-decl-lex-deletion.js |
---
esid: sec-globaldeclarationinstantiation
es6id: 15.1.8
description: Globally-declared lexical bindings cannot be deleted
info: |
[...]
16. For each element d in lexDeclarations do
a. NOTE Lexically declared names are only instantiated here but not
initialized.
b. For each element dn of the BoundNames of d do
i. If IsConstantDeclaration of d is true, then
1. Perform ? envRec.CreateImmutableBinding(dn, true).
ii. Else,
1. Perform ? envRec.CreateMutableBinding(dn, false).
[...]
flags: [noStrict]
--- |
1119 |
script-decl-lex-lex.js |
---
esid: sec-globaldeclarationinstantiation
es6id: 15.1.8
description: Let binding collision with existing lexical declaration
info: |
[...]
5. For each name in lexNames, do
a. If envRec.HasVarDeclaration(name) is true, throw a SyntaxError
exception.
b. If envRec.HasLexicalDeclaration(name) is true, throw a SyntaxError
exception.
--- |
1281 |
script-decl-lex-restricted-global.js |
---
esid: sec-globaldeclarationinstantiation
es6id: 15.1.8
description: >
Let binding collision with non-configurable global property (not defined
through a declaration)
info: |
[...]
5. For each name in lexNames, do
a. If envRec.HasVarDeclaration(name) is true, throw a SyntaxError
exception.
b. If envRec.HasLexicalDeclaration(name) is true, throw a SyntaxError
exception.
c. Let hasRestrictedGlobal be ? envRec.HasRestrictedGlobalProperty(name).
d. If hasRestrictedGlobal is true, throw a SyntaxError exception.
--- |
1085 |
script-decl-lex-var-declared-via-eval.js |
---
esid: sec-globaldeclarationinstantiation
description: No let binding collision with existing var declaration due to eval().
info: |
In strict mode:
PerformEval ( x, strictCaller, direct )
[...]
16. If direct is true, then
a. Let lexEnv be NewDeclarativeEnvironment(runningContext's LexicalEnvironment).
[...]
18. If strictEval is true, set varEnv to lexEnv.
In sloppy mode:
GlobalDeclarationInstantiation ( script, env )
[...]
3. For each element name of lexNames, do
a. If env.HasLexicalDeclaration(name) is true, throw a SyntaxError exception.
b. Let hasRestrictedGlobal be ? env.HasRestrictedGlobalProperty(name).
c. NOTE: Global var and function bindings (except those that are introduced by non-strict direct eval) are non-configurable and are therefore restricted global properties.
d. If hasRestrictedGlobal is true, throw a SyntaxError exception.
--- |
1271 |
script-decl-lex-var.js |
---
esid: sec-globaldeclarationinstantiation
es6id: 15.1.8
description: Let binding collision with existing var declaration
info: |
[...]
5. For each name in lexNames, do
a. If envRec.HasVarDeclaration(name) is true, throw a SyntaxError
exception.
--- |
885 |
script-decl-lex.js |
---
esid: sec-globaldeclarationinstantiation
es6id: 15.1.8
description: Declaration of lexical bindings
info: |
[...]
16. For each element d in lexDeclarations do
a. NOTE Lexically declared names are only instantiated here but not
initialized.
b. For each element dn of the BoundNames of d do
i. If IsConstantDeclaration of d is true, then
1. Perform ? envRec.CreateImmutableBinding(dn, true).
ii. Else,
1. Perform ? envRec.CreateMutableBinding(dn, false).
[...]
--- |
1658 |
script-decl-var-collision.js |
---
esid: sec-globaldeclarationinstantiation
es6id: 15.1.8
description: Var binding collision with existing lexical declaration
info: |
[...]
6. For each name in varNames, do
a. If envRec.HasLexicalDeclaration(name) is true, throw a SyntaxError
exception.
--- |
2095 |
script-decl-var-err.js |
---
esid: sec-globaldeclarationinstantiation
es6id: 15.1.8
description: >
Declaration of variable when there is no corresponding global property and
the global object is non-extensible
info: |
[...]
11. Let declaredVarNames be a new empty List.
12. For each d in varDeclarations, do
a. If d is a VariableDeclaration or a ForBinding, then
i. For each String vn in the BoundNames of d, do
1. If vn is not an element of declaredFunctionNames, then
a. Let vnDefinable be ? envRec.CanDeclareGlobalVar(vn).
b. If vnDefinable is false, throw a TypeError exception.
c. If vn is not an element of declaredVarNames, then
i. Append vn to declaredVarNames.
8.1.1.4.15 CanDeclareGlobalVar
1. Let envRec be the global Environment Record for which the method was
invoked.
2. Let ObjRec be envRec.[[ObjectRecord]].
3. Let globalObject be the binding object for ObjRec.
4. Let hasProperty be ? HasOwnProperty(globalObject, N).
5. If hasProperty is true, return true.
6. Return ? IsExtensible(globalObject).
--- |
1467 |
script-decl-var.js |
---
esid: sec-globaldeclarationinstantiation
es6id: 15.1.8
description: Declaration of variable where permissible
info: |
[...]
11. Let declaredVarNames be a new empty List.
12. For each d in varDeclarations, do
a. If d is a VariableDeclaration or a ForBinding, then
i. For each String vn in the BoundNames of d, do
1. If vn is not an element of declaredFunctionNames, then
a. Let vnDefinable be ? envRec.CanDeclareGlobalVar(vn).
b. If vnDefinable is false, throw a TypeError exception.
c. If vn is not an element of declaredVarNames, then
i. Append vn to declaredVarNames.
[...]
18. For each String vn in declaredVarNames, in list order do
a. Perform ? envRec.CreateGlobalVarBinding(vn, false).
[...]
8.1.1.4.15 CanDeclareGlobalVar
1. Let envRec be the global Environment Record for which the method was
invoked.
2. Let ObjRec be envRec.[[ObjectRecord]].
3. Let globalObject be the binding object for ObjRec.
4. Let hasProperty be ? HasOwnProperty(globalObject, N).
5. If hasProperty is true, return true.
6. Return ? IsExtensible(globalObject).
includes: [propertyHelper.js]
--- |
2263 |
shell.js |
|
0 |
super-call-arrow.js |
---
esid: sec-scripts-static-semantics-early-errors
es6id: 15.1.1
description: An ArrowFunction in global code may not contain SuperCall
info: |
- It is a Syntax Error if StatementList Contains super unless the source code
containing super is eval code that is being processed by a direct eval that
is contained in function code that is not the function code of an
ArrowFunction.
14.2.3 Static Semantics: Contains
With parameter symbol.
ArrowFunction : ArrowParameters => ConciseBody
1. If symbol is not one of NewTarget, SuperProperty, SuperCall, super or
this, return false.
2. If ArrowParameters Contains symbol is true, return true.
3. Return ConciseBody Contains symbol.
NOTE Normally, Contains does not look inside most function forms. However,
Contains is used to detect new.target, this, and super usage within an
ArrowFunction.
features: [super, arrow-function]
negative:
phase: parse
type: SyntaxError
--- |
1187 |
super-call.js |
---
esid: sec-scripts-static-semantics-early-errors
es6id: 15.1.1
description: Global code may not contain SuperCall
info: |
- It is a Syntax Error if StatementList Contains super unless the source code
containing super is eval code that is being processed by a direct eval that
is contained in function code that is not the function code of an
ArrowFunction.
negative:
phase: parse
type: SyntaxError
features: [super]
--- |
643 |
super-prop-arrow.js |
---
esid: sec-scripts-static-semantics-early-errors
es6id: 15.1.1
description: An ArrowFunction in global code may not contain SuperProperty
info: |
- It is a Syntax Error if StatementList Contains super unless the source code
containing super is eval code that is being processed by a direct eval that
is contained in function code that is not the function code of an
ArrowFunction.
14.2.3 Static Semantics: Contains
With parameter symbol.
ArrowFunction : ArrowParameters => ConciseBody
1. If symbol is not one of NewTarget, SuperProperty, SuperCall, super or
this, return false.
2. If ArrowParameters Contains symbol is true, return true.
3. Return ConciseBody Contains symbol.
NOTE Normally, Contains does not look inside most function forms. However,
Contains is used to detect new.target, this, and super usage within an
ArrowFunction.
features: [super, arrow-function]
negative:
phase: parse
type: SyntaxError
--- |
1198 |
super-prop.js |
---
esid: sec-scripts-static-semantics-early-errors
es6id: 15.1.1
description: Global code may not contain SuperProperty
info: |
- It is a Syntax Error if StatementList Contains super unless the source code
containing super is eval code that is being processed by a direct eval that
is contained in function code that is not the function code of an
ArrowFunction.
negative:
phase: parse
type: SyntaxError
features: [super]
--- |
654 |
switch-case-decl-strict-strict.js |
---
description: AnnexB extension not honored in strict mode (Function declaration in the `case` clause of a `switch` statement in the global scope)
es6id: B.3.3.2
flags: [onlyStrict]
info: |
B.3.3.2 Changes to GlobalDeclarationInstantiation
1. 1. Let strict be IsStrict of script
2. If strict is *false*, then
[...]
--- |
673 |
switch-dflt-decl-strict-strict.js |
---
description: AnnexB extension not honored in strict mode (Funtion declaration in the `default` clause of a `switch` statement in the global scope)
es6id: B.3.3.2
flags: [onlyStrict]
info: |
B.3.3.2 Changes to GlobalDeclarationInstantiation
1. 1. Let strict be IsStrict of script
2. If strict is *false*, then
[...]
--- |
676 |
unscopables-ignored.js |
---
esid: sec-global-environment-records-hasbinding-n
es6id: 8.1.1.4.1
description: >
Symbol.unscopables is not referenced for the object environment of the global
environment record
info: |
1. Let envRec be the global Environment Record for which the method was invoked.
2. Let DclRec be envRec.[[DeclarativeRecord]].
3. If DclRec.HasBinding(N) is true, return true.
4. Let ObjRec be envRec.[[ObjectRecord]].
5. Return ? ObjRec.HasBinding(N).
8.1.1.2.1 HasBinding
1. Let envRec be the object Environment Record for which the method was
invoked.
2. Let bindings be the binding object for envRec.
3. Let foundBinding be ? HasProperty(bindings, N).
4. If foundBinding is false, return false.
5. If the withEnvironment flag of envRec is false, return true.
6. Let unscopables be ? Get(bindings, @@unscopables).
7. If Type(unscopables) is Object, then
a. Let blocked be ToBoolean(? Get(unscopables, N)).
b. If blocked is true, return false.
8. Return true.
features: [Symbol.unscopables]
--- |
1449 |
yield-non-strict.js |
---
esid: sec-scripts
es6id: 15.1
description: >
The `yield` token is interpreted as an Identifier when it appears in global
code (non-strict mode)
info: |
Syntax
Script :
ScriptBodyopt
ScriptBody :
StatementList[~Yield, ~Return]
flags: [noStrict]
--- |
574 |
yield-strict-strict.js |
---
esid: sec-scripts
es6id: 15.1
description: >
The `yield` token is interpreted as an Identifier when it appears in global
code (strict mode)
info: |
Syntax
Script :
ScriptBodyopt
ScriptBody :
StatementList[~Yield, ~Return]
flags: [onlyStrict]
negative:
phase: parse
type: SyntaxError
--- |
529 |