mirror of
https://github.com/tc39/test262.git
synced 2025-07-28 16:34:27 +02:00
Generate tests
This commit is contained in:
parent
89a75a90f6
commit
8d7dd538f1
@ -2,7 +2,7 @@
|
||||
// - src/annex-b-fns/eval-global-existing-global-init.case
|
||||
// - src/annex-b-fns/eval-global/direct-block.template
|
||||
/*---
|
||||
description: Variable binding is set to `undefined` (Block statement in eval code containing a function declaration)
|
||||
description: Variable binding is left in place by legacy function hoisting (Block statement in eval code containing a function declaration)
|
||||
esid: sec-web-compat-evaldeclarationinstantiation
|
||||
es6id: B.3.3.3
|
||||
flags: [generated, noStrict]
|
||||
@ -12,17 +12,7 @@ info: |
|
||||
|
||||
[...]
|
||||
i. If varEnvRec is a global Environment Record, then
|
||||
i. Perform ? varEnvRec.CreateGlobalFunctionBinding(F, undefined, true).
|
||||
[...]
|
||||
|
||||
8.1.1.4.18 CreateGlobalFunctionBinding
|
||||
|
||||
[...]
|
||||
5. If existingProp is undefined or existingProp.[[Configurable]] is true,
|
||||
then
|
||||
[...]
|
||||
6. Else,
|
||||
a. Let desc be the PropertyDescriptor{[[Value]]: V }.
|
||||
i. Perform ? varEnvRec.CreateGlobalVarBinding(F, true).
|
||||
[...]
|
||||
|
||||
---*/
|
||||
@ -35,11 +25,18 @@ Object.defineProperty(fnGlobalObject(), 'f', {
|
||||
|
||||
eval(
|
||||
'var global = fnGlobalObject();\
|
||||
assert.sameValue(f, undefined, "binding is initialized to `undefined`");\
|
||||
assert.sameValue(f, "x", "binding is not reinitialized");\
|
||||
\
|
||||
verifyProperty(global, "f", {\
|
||||
enumerable: true,\
|
||||
writable: true,\
|
||||
configurable: false\
|
||||
});{ function f() { } }'
|
||||
}, { restore: true });{ function f() { } }'
|
||||
);
|
||||
|
||||
assert.sameValue(typeof f, "function");
|
||||
verifyProperty(global, "f", {
|
||||
enumerable: true,
|
||||
writable: true,
|
||||
configurable: false
|
||||
});
|
||||
|
@ -0,0 +1,42 @@
|
||||
// This file was procedurally generated from the following sources:
|
||||
// - src/annex-b-fns/eval-global-existing-non-enumerable-global-init.case
|
||||
// - src/annex-b-fns/eval-global/direct-block.template
|
||||
/*---
|
||||
description: Variable binding is left in place by legacy function hoisting. CreateGlobalVariableBinding leaves the binding as non-enumerable even if it has the chance to change it to be enumerable. (Block statement in eval code containing a function declaration)
|
||||
esid: sec-web-compat-evaldeclarationinstantiation
|
||||
es6id: B.3.3.3
|
||||
flags: [generated, noStrict]
|
||||
includes: [fnGlobalObject.js, propertyHelper.js]
|
||||
info: |
|
||||
B.3.3.3 Changes to EvalDeclarationInstantiation
|
||||
|
||||
[...]
|
||||
i. If varEnvRec is a global Environment Record, then
|
||||
i. Perform ? varEnvRec.CreateGlobalVarBinding(F, true).
|
||||
[...]
|
||||
|
||||
---*/
|
||||
Object.defineProperty(fnGlobalObject(), 'f', {
|
||||
value: 'x',
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
});
|
||||
|
||||
eval(
|
||||
'var global = fnGlobalObject();\
|
||||
assert.sameValue(f, "x", "binding is not reinitialized");\
|
||||
\
|
||||
verifyProperty(global, "f", {\
|
||||
enumerable: false,\
|
||||
writable: true,\
|
||||
configurable: true\
|
||||
}, { restore: true });{ function f() { } }'
|
||||
);
|
||||
|
||||
assert.sameValue(typeof f, "function");
|
||||
verifyProperty(global, 'f', {
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
});
|
@ -2,7 +2,7 @@
|
||||
// - src/annex-b-fns/eval-global-existing-global-init.case
|
||||
// - src/annex-b-fns/eval-global/direct-if-decl-else-decl-a.template
|
||||
/*---
|
||||
description: Variable binding is set to `undefined` (IfStatement with a declaration in both statement positions in eval code)
|
||||
description: Variable binding is left in place by legacy function hoisting (IfStatement with a declaration in both statement positions in eval code)
|
||||
esid: sec-functiondeclarations-in-ifstatement-statement-clauses
|
||||
es6id: B.3.3
|
||||
flags: [generated, noStrict]
|
||||
@ -21,17 +21,7 @@ info: |
|
||||
|
||||
[...]
|
||||
i. If varEnvRec is a global Environment Record, then
|
||||
i. Perform ? varEnvRec.CreateGlobalFunctionBinding(F, undefined, true).
|
||||
[...]
|
||||
|
||||
8.1.1.4.18 CreateGlobalFunctionBinding
|
||||
|
||||
[...]
|
||||
5. If existingProp is undefined or existingProp.[[Configurable]] is true,
|
||||
then
|
||||
[...]
|
||||
6. Else,
|
||||
a. Let desc be the PropertyDescriptor{[[Value]]: V }.
|
||||
i. Perform ? varEnvRec.CreateGlobalVarBinding(F, true).
|
||||
[...]
|
||||
|
||||
---*/
|
||||
@ -44,11 +34,18 @@ Object.defineProperty(fnGlobalObject(), 'f', {
|
||||
|
||||
eval(
|
||||
'var global = fnGlobalObject();\
|
||||
assert.sameValue(f, undefined, "binding is initialized to `undefined`");\
|
||||
assert.sameValue(f, "x", "binding is not reinitialized");\
|
||||
\
|
||||
verifyProperty(global, "f", {\
|
||||
enumerable: true,\
|
||||
writable: true,\
|
||||
configurable: false\
|
||||
});if (true) function f() { } else function _f() {}'
|
||||
}, { restore: true });if (true) function f() { } else function _f() {}'
|
||||
);
|
||||
|
||||
assert.sameValue(typeof f, "function");
|
||||
verifyProperty(global, "f", {
|
||||
enumerable: true,
|
||||
writable: true,
|
||||
configurable: false
|
||||
});
|
||||
|
@ -0,0 +1,51 @@
|
||||
// This file was procedurally generated from the following sources:
|
||||
// - src/annex-b-fns/eval-global-existing-non-enumerable-global-init.case
|
||||
// - src/annex-b-fns/eval-global/direct-if-decl-else-decl-a.template
|
||||
/*---
|
||||
description: Variable binding is left in place by legacy function hoisting. CreateGlobalVariableBinding leaves the binding as non-enumerable even if it has the chance to change it to be enumerable. (IfStatement with a declaration in both statement positions in eval code)
|
||||
esid: sec-functiondeclarations-in-ifstatement-statement-clauses
|
||||
es6id: B.3.3
|
||||
flags: [generated, noStrict]
|
||||
includes: [fnGlobalObject.js, propertyHelper.js]
|
||||
info: |
|
||||
The following rules for IfStatement augment those in 13.6:
|
||||
|
||||
IfStatement[Yield, Return]:
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return]
|
||||
if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield]
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield]
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield]
|
||||
|
||||
|
||||
B.3.3.3 Changes to EvalDeclarationInstantiation
|
||||
|
||||
[...]
|
||||
i. If varEnvRec is a global Environment Record, then
|
||||
i. Perform ? varEnvRec.CreateGlobalVarBinding(F, true).
|
||||
[...]
|
||||
|
||||
---*/
|
||||
Object.defineProperty(fnGlobalObject(), 'f', {
|
||||
value: 'x',
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
});
|
||||
|
||||
eval(
|
||||
'var global = fnGlobalObject();\
|
||||
assert.sameValue(f, "x", "binding is not reinitialized");\
|
||||
\
|
||||
verifyProperty(global, "f", {\
|
||||
enumerable: false,\
|
||||
writable: true,\
|
||||
configurable: true\
|
||||
}, { restore: true });if (true) function f() { } else function _f() {}'
|
||||
);
|
||||
|
||||
assert.sameValue(typeof f, "function");
|
||||
verifyProperty(global, 'f', {
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
});
|
@ -2,7 +2,7 @@
|
||||
// - src/annex-b-fns/eval-global-existing-global-init.case
|
||||
// - src/annex-b-fns/eval-global/direct-if-decl-else-decl-b.template
|
||||
/*---
|
||||
description: Variable binding is set to `undefined` (IfStatement with a declaration in both statement positions in eval code)
|
||||
description: Variable binding is left in place by legacy function hoisting (IfStatement with a declaration in both statement positions in eval code)
|
||||
esid: sec-functiondeclarations-in-ifstatement-statement-clauses
|
||||
es6id: B.3.4
|
||||
flags: [generated, noStrict]
|
||||
@ -21,17 +21,7 @@ info: |
|
||||
|
||||
[...]
|
||||
i. If varEnvRec is a global Environment Record, then
|
||||
i. Perform ? varEnvRec.CreateGlobalFunctionBinding(F, undefined, true).
|
||||
[...]
|
||||
|
||||
8.1.1.4.18 CreateGlobalFunctionBinding
|
||||
|
||||
[...]
|
||||
5. If existingProp is undefined or existingProp.[[Configurable]] is true,
|
||||
then
|
||||
[...]
|
||||
6. Else,
|
||||
a. Let desc be the PropertyDescriptor{[[Value]]: V }.
|
||||
i. Perform ? varEnvRec.CreateGlobalVarBinding(F, true).
|
||||
[...]
|
||||
|
||||
---*/
|
||||
@ -44,11 +34,18 @@ Object.defineProperty(fnGlobalObject(), 'f', {
|
||||
|
||||
eval(
|
||||
'var global = fnGlobalObject();\
|
||||
assert.sameValue(f, undefined, "binding is initialized to `undefined`");\
|
||||
assert.sameValue(f, "x", "binding is not reinitialized");\
|
||||
\
|
||||
verifyProperty(global, "f", {\
|
||||
enumerable: true,\
|
||||
writable: true,\
|
||||
configurable: false\
|
||||
});if (false) function _f() {} else function f() { }'
|
||||
}, { restore: true });if (false) function _f() {} else function f() { }'
|
||||
);
|
||||
|
||||
assert.sameValue(typeof f, "function");
|
||||
verifyProperty(global, "f", {
|
||||
enumerable: true,
|
||||
writable: true,
|
||||
configurable: false
|
||||
});
|
||||
|
@ -0,0 +1,51 @@
|
||||
// This file was procedurally generated from the following sources:
|
||||
// - src/annex-b-fns/eval-global-existing-non-enumerable-global-init.case
|
||||
// - src/annex-b-fns/eval-global/direct-if-decl-else-decl-b.template
|
||||
/*---
|
||||
description: Variable binding is left in place by legacy function hoisting. CreateGlobalVariableBinding leaves the binding as non-enumerable even if it has the chance to change it to be enumerable. (IfStatement with a declaration in both statement positions in eval code)
|
||||
esid: sec-functiondeclarations-in-ifstatement-statement-clauses
|
||||
es6id: B.3.4
|
||||
flags: [generated, noStrict]
|
||||
includes: [fnGlobalObject.js, propertyHelper.js]
|
||||
info: |
|
||||
The following rules for IfStatement augment those in 13.6:
|
||||
|
||||
IfStatement[Yield, Return]:
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return]
|
||||
if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield]
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield]
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield]
|
||||
|
||||
|
||||
B.3.3.3 Changes to EvalDeclarationInstantiation
|
||||
|
||||
[...]
|
||||
i. If varEnvRec is a global Environment Record, then
|
||||
i. Perform ? varEnvRec.CreateGlobalVarBinding(F, true).
|
||||
[...]
|
||||
|
||||
---*/
|
||||
Object.defineProperty(fnGlobalObject(), 'f', {
|
||||
value: 'x',
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
});
|
||||
|
||||
eval(
|
||||
'var global = fnGlobalObject();\
|
||||
assert.sameValue(f, "x", "binding is not reinitialized");\
|
||||
\
|
||||
verifyProperty(global, "f", {\
|
||||
enumerable: false,\
|
||||
writable: true,\
|
||||
configurable: true\
|
||||
}, { restore: true });if (false) function _f() {} else function f() { }'
|
||||
);
|
||||
|
||||
assert.sameValue(typeof f, "function");
|
||||
verifyProperty(global, 'f', {
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
});
|
@ -2,7 +2,7 @@
|
||||
// - src/annex-b-fns/eval-global-existing-global-init.case
|
||||
// - src/annex-b-fns/eval-global/direct-if-decl-else-stmt.template
|
||||
/*---
|
||||
description: Variable binding is set to `undefined` (IfStatement with a declaration in the first statement position in eval code)
|
||||
description: Variable binding is left in place by legacy function hoisting (IfStatement with a declaration in the first statement position in eval code)
|
||||
esid: sec-functiondeclarations-in-ifstatement-statement-clauses
|
||||
es6id: B.3.4
|
||||
flags: [generated, noStrict]
|
||||
@ -21,17 +21,7 @@ info: |
|
||||
|
||||
[...]
|
||||
i. If varEnvRec is a global Environment Record, then
|
||||
i. Perform ? varEnvRec.CreateGlobalFunctionBinding(F, undefined, true).
|
||||
[...]
|
||||
|
||||
8.1.1.4.18 CreateGlobalFunctionBinding
|
||||
|
||||
[...]
|
||||
5. If existingProp is undefined or existingProp.[[Configurable]] is true,
|
||||
then
|
||||
[...]
|
||||
6. Else,
|
||||
a. Let desc be the PropertyDescriptor{[[Value]]: V }.
|
||||
i. Perform ? varEnvRec.CreateGlobalVarBinding(F, true).
|
||||
[...]
|
||||
|
||||
---*/
|
||||
@ -44,11 +34,18 @@ Object.defineProperty(fnGlobalObject(), 'f', {
|
||||
|
||||
eval(
|
||||
'var global = fnGlobalObject();\
|
||||
assert.sameValue(f, undefined, "binding is initialized to `undefined`");\
|
||||
assert.sameValue(f, "x", "binding is not reinitialized");\
|
||||
\
|
||||
verifyProperty(global, "f", {\
|
||||
enumerable: true,\
|
||||
writable: true,\
|
||||
configurable: false\
|
||||
});if (true) function f() { } else ;'
|
||||
}, { restore: true });if (true) function f() { } else ;'
|
||||
);
|
||||
|
||||
assert.sameValue(typeof f, "function");
|
||||
verifyProperty(global, "f", {
|
||||
enumerable: true,
|
||||
writable: true,
|
||||
configurable: false
|
||||
});
|
||||
|
@ -0,0 +1,51 @@
|
||||
// This file was procedurally generated from the following sources:
|
||||
// - src/annex-b-fns/eval-global-existing-non-enumerable-global-init.case
|
||||
// - src/annex-b-fns/eval-global/direct-if-decl-else-stmt.template
|
||||
/*---
|
||||
description: Variable binding is left in place by legacy function hoisting. CreateGlobalVariableBinding leaves the binding as non-enumerable even if it has the chance to change it to be enumerable. (IfStatement with a declaration in the first statement position in eval code)
|
||||
esid: sec-functiondeclarations-in-ifstatement-statement-clauses
|
||||
es6id: B.3.4
|
||||
flags: [generated, noStrict]
|
||||
includes: [fnGlobalObject.js, propertyHelper.js]
|
||||
info: |
|
||||
The following rules for IfStatement augment those in 13.6:
|
||||
|
||||
IfStatement[Yield, Return]:
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return]
|
||||
if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield]
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield]
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield]
|
||||
|
||||
|
||||
B.3.3.3 Changes to EvalDeclarationInstantiation
|
||||
|
||||
[...]
|
||||
i. If varEnvRec is a global Environment Record, then
|
||||
i. Perform ? varEnvRec.CreateGlobalVarBinding(F, true).
|
||||
[...]
|
||||
|
||||
---*/
|
||||
Object.defineProperty(fnGlobalObject(), 'f', {
|
||||
value: 'x',
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
});
|
||||
|
||||
eval(
|
||||
'var global = fnGlobalObject();\
|
||||
assert.sameValue(f, "x", "binding is not reinitialized");\
|
||||
\
|
||||
verifyProperty(global, "f", {\
|
||||
enumerable: false,\
|
||||
writable: true,\
|
||||
configurable: true\
|
||||
}, { restore: true });if (true) function f() { } else ;'
|
||||
);
|
||||
|
||||
assert.sameValue(typeof f, "function");
|
||||
verifyProperty(global, 'f', {
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
});
|
@ -2,7 +2,7 @@
|
||||
// - src/annex-b-fns/eval-global-existing-global-init.case
|
||||
// - src/annex-b-fns/eval-global/direct-if-decl-no-else.template
|
||||
/*---
|
||||
description: Variable binding is set to `undefined` (IfStatement without an else clause in eval code)
|
||||
description: Variable binding is left in place by legacy function hoisting (IfStatement without an else clause in eval code)
|
||||
esid: sec-functiondeclarations-in-ifstatement-statement-clauses
|
||||
es6id: B.3.4
|
||||
flags: [generated, noStrict]
|
||||
@ -21,17 +21,7 @@ info: |
|
||||
|
||||
[...]
|
||||
i. If varEnvRec is a global Environment Record, then
|
||||
i. Perform ? varEnvRec.CreateGlobalFunctionBinding(F, undefined, true).
|
||||
[...]
|
||||
|
||||
8.1.1.4.18 CreateGlobalFunctionBinding
|
||||
|
||||
[...]
|
||||
5. If existingProp is undefined or existingProp.[[Configurable]] is true,
|
||||
then
|
||||
[...]
|
||||
6. Else,
|
||||
a. Let desc be the PropertyDescriptor{[[Value]]: V }.
|
||||
i. Perform ? varEnvRec.CreateGlobalVarBinding(F, true).
|
||||
[...]
|
||||
|
||||
---*/
|
||||
@ -44,11 +34,18 @@ Object.defineProperty(fnGlobalObject(), 'f', {
|
||||
|
||||
eval(
|
||||
'var global = fnGlobalObject();\
|
||||
assert.sameValue(f, undefined, "binding is initialized to `undefined`");\
|
||||
assert.sameValue(f, "x", "binding is not reinitialized");\
|
||||
\
|
||||
verifyProperty(global, "f", {\
|
||||
enumerable: true,\
|
||||
writable: true,\
|
||||
configurable: false\
|
||||
});if (true) function f() { }'
|
||||
}, { restore: true });if (true) function f() { }'
|
||||
);
|
||||
|
||||
assert.sameValue(typeof f, "function");
|
||||
verifyProperty(global, "f", {
|
||||
enumerable: true,
|
||||
writable: true,
|
||||
configurable: false
|
||||
});
|
||||
|
@ -0,0 +1,51 @@
|
||||
// This file was procedurally generated from the following sources:
|
||||
// - src/annex-b-fns/eval-global-existing-non-enumerable-global-init.case
|
||||
// - src/annex-b-fns/eval-global/direct-if-decl-no-else.template
|
||||
/*---
|
||||
description: Variable binding is left in place by legacy function hoisting. CreateGlobalVariableBinding leaves the binding as non-enumerable even if it has the chance to change it to be enumerable. (IfStatement without an else clause in eval code)
|
||||
esid: sec-functiondeclarations-in-ifstatement-statement-clauses
|
||||
es6id: B.3.4
|
||||
flags: [generated, noStrict]
|
||||
includes: [fnGlobalObject.js, propertyHelper.js]
|
||||
info: |
|
||||
The following rules for IfStatement augment those in 13.6:
|
||||
|
||||
IfStatement[Yield, Return]:
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return]
|
||||
if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield]
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield]
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield]
|
||||
|
||||
|
||||
B.3.3.3 Changes to EvalDeclarationInstantiation
|
||||
|
||||
[...]
|
||||
i. If varEnvRec is a global Environment Record, then
|
||||
i. Perform ? varEnvRec.CreateGlobalVarBinding(F, true).
|
||||
[...]
|
||||
|
||||
---*/
|
||||
Object.defineProperty(fnGlobalObject(), 'f', {
|
||||
value: 'x',
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
});
|
||||
|
||||
eval(
|
||||
'var global = fnGlobalObject();\
|
||||
assert.sameValue(f, "x", "binding is not reinitialized");\
|
||||
\
|
||||
verifyProperty(global, "f", {\
|
||||
enumerable: false,\
|
||||
writable: true,\
|
||||
configurable: true\
|
||||
}, { restore: true });if (true) function f() { }'
|
||||
);
|
||||
|
||||
assert.sameValue(typeof f, "function");
|
||||
verifyProperty(global, 'f', {
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
});
|
@ -2,7 +2,7 @@
|
||||
// - src/annex-b-fns/eval-global-existing-global-init.case
|
||||
// - src/annex-b-fns/eval-global/direct-if-stmt-else-decl.template
|
||||
/*---
|
||||
description: Variable binding is set to `undefined` (IfStatement with a declaration in the second statement position in eval code)
|
||||
description: Variable binding is left in place by legacy function hoisting (IfStatement with a declaration in the second statement position in eval code)
|
||||
esid: sec-functiondeclarations-in-ifstatement-statement-clauses
|
||||
es6id: B.3.4
|
||||
flags: [generated, noStrict]
|
||||
@ -21,17 +21,7 @@ info: |
|
||||
|
||||
[...]
|
||||
i. If varEnvRec is a global Environment Record, then
|
||||
i. Perform ? varEnvRec.CreateGlobalFunctionBinding(F, undefined, true).
|
||||
[...]
|
||||
|
||||
8.1.1.4.18 CreateGlobalFunctionBinding
|
||||
|
||||
[...]
|
||||
5. If existingProp is undefined or existingProp.[[Configurable]] is true,
|
||||
then
|
||||
[...]
|
||||
6. Else,
|
||||
a. Let desc be the PropertyDescriptor{[[Value]]: V }.
|
||||
i. Perform ? varEnvRec.CreateGlobalVarBinding(F, true).
|
||||
[...]
|
||||
|
||||
---*/
|
||||
@ -44,11 +34,18 @@ Object.defineProperty(fnGlobalObject(), 'f', {
|
||||
|
||||
eval(
|
||||
'var global = fnGlobalObject();\
|
||||
assert.sameValue(f, undefined, "binding is initialized to `undefined`");\
|
||||
assert.sameValue(f, "x", "binding is not reinitialized");\
|
||||
\
|
||||
verifyProperty(global, "f", {\
|
||||
enumerable: true,\
|
||||
writable: true,\
|
||||
configurable: false\
|
||||
});if (false) ; else function f() { }'
|
||||
}, { restore: true });if (false) ; else function f() { }'
|
||||
);
|
||||
|
||||
assert.sameValue(typeof f, "function");
|
||||
verifyProperty(global, "f", {
|
||||
enumerable: true,
|
||||
writable: true,
|
||||
configurable: false
|
||||
});
|
||||
|
@ -0,0 +1,51 @@
|
||||
// This file was procedurally generated from the following sources:
|
||||
// - src/annex-b-fns/eval-global-existing-non-enumerable-global-init.case
|
||||
// - src/annex-b-fns/eval-global/direct-if-stmt-else-decl.template
|
||||
/*---
|
||||
description: Variable binding is left in place by legacy function hoisting. CreateGlobalVariableBinding leaves the binding as non-enumerable even if it has the chance to change it to be enumerable. (IfStatement with a declaration in the second statement position in eval code)
|
||||
esid: sec-functiondeclarations-in-ifstatement-statement-clauses
|
||||
es6id: B.3.4
|
||||
flags: [generated, noStrict]
|
||||
includes: [fnGlobalObject.js, propertyHelper.js]
|
||||
info: |
|
||||
The following rules for IfStatement augment those in 13.6:
|
||||
|
||||
IfStatement[Yield, Return]:
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return]
|
||||
if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield]
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield]
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield]
|
||||
|
||||
|
||||
B.3.3.3 Changes to EvalDeclarationInstantiation
|
||||
|
||||
[...]
|
||||
i. If varEnvRec is a global Environment Record, then
|
||||
i. Perform ? varEnvRec.CreateGlobalVarBinding(F, true).
|
||||
[...]
|
||||
|
||||
---*/
|
||||
Object.defineProperty(fnGlobalObject(), 'f', {
|
||||
value: 'x',
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
});
|
||||
|
||||
eval(
|
||||
'var global = fnGlobalObject();\
|
||||
assert.sameValue(f, "x", "binding is not reinitialized");\
|
||||
\
|
||||
verifyProperty(global, "f", {\
|
||||
enumerable: false,\
|
||||
writable: true,\
|
||||
configurable: true\
|
||||
}, { restore: true });if (false) ; else function f() { }'
|
||||
);
|
||||
|
||||
assert.sameValue(typeof f, "function");
|
||||
verifyProperty(global, 'f', {
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
});
|
@ -2,7 +2,7 @@
|
||||
// - src/annex-b-fns/eval-global-existing-global-init.case
|
||||
// - src/annex-b-fns/eval-global/direct-switch-case.template
|
||||
/*---
|
||||
description: Variable binding is set to `undefined` (Function declaration in the `case` clause of a `switch` statement in eval code)
|
||||
description: Variable binding is left in place by legacy function hoisting (Function declaration in the `case` clause of a `switch` statement in eval code)
|
||||
esid: sec-web-compat-evaldeclarationinstantiation
|
||||
es6id: B.3.3.3
|
||||
flags: [generated, noStrict]
|
||||
@ -12,17 +12,7 @@ info: |
|
||||
|
||||
[...]
|
||||
i. If varEnvRec is a global Environment Record, then
|
||||
i. Perform ? varEnvRec.CreateGlobalFunctionBinding(F, undefined, true).
|
||||
[...]
|
||||
|
||||
8.1.1.4.18 CreateGlobalFunctionBinding
|
||||
|
||||
[...]
|
||||
5. If existingProp is undefined or existingProp.[[Configurable]] is true,
|
||||
then
|
||||
[...]
|
||||
6. Else,
|
||||
a. Let desc be the PropertyDescriptor{[[Value]]: V }.
|
||||
i. Perform ? varEnvRec.CreateGlobalVarBinding(F, true).
|
||||
[...]
|
||||
|
||||
---*/
|
||||
@ -35,15 +25,22 @@ Object.defineProperty(fnGlobalObject(), 'f', {
|
||||
|
||||
eval(
|
||||
'var global = fnGlobalObject();\
|
||||
assert.sameValue(f, undefined, "binding is initialized to `undefined`");\
|
||||
assert.sameValue(f, "x", "binding is not reinitialized");\
|
||||
\
|
||||
verifyProperty(global, "f", {\
|
||||
enumerable: true,\
|
||||
writable: true,\
|
||||
configurable: false\
|
||||
});switch (1) {' +
|
||||
}, { restore: true });switch (1) {' +
|
||||
' case 1:' +
|
||||
' function f() { }' +
|
||||
'}\
|
||||
'
|
||||
);
|
||||
|
||||
assert.sameValue(typeof f, "function");
|
||||
verifyProperty(global, "f", {
|
||||
enumerable: true,
|
||||
writable: true,
|
||||
configurable: false
|
||||
});
|
||||
|
@ -0,0 +1,46 @@
|
||||
// This file was procedurally generated from the following sources:
|
||||
// - src/annex-b-fns/eval-global-existing-non-enumerable-global-init.case
|
||||
// - src/annex-b-fns/eval-global/direct-switch-case.template
|
||||
/*---
|
||||
description: Variable binding is left in place by legacy function hoisting. CreateGlobalVariableBinding leaves the binding as non-enumerable even if it has the chance to change it to be enumerable. (Function declaration in the `case` clause of a `switch` statement in eval code)
|
||||
esid: sec-web-compat-evaldeclarationinstantiation
|
||||
es6id: B.3.3.3
|
||||
flags: [generated, noStrict]
|
||||
includes: [fnGlobalObject.js, propertyHelper.js]
|
||||
info: |
|
||||
B.3.3.3 Changes to EvalDeclarationInstantiation
|
||||
|
||||
[...]
|
||||
i. If varEnvRec is a global Environment Record, then
|
||||
i. Perform ? varEnvRec.CreateGlobalVarBinding(F, true).
|
||||
[...]
|
||||
|
||||
---*/
|
||||
Object.defineProperty(fnGlobalObject(), 'f', {
|
||||
value: 'x',
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
});
|
||||
|
||||
eval(
|
||||
'var global = fnGlobalObject();\
|
||||
assert.sameValue(f, "x", "binding is not reinitialized");\
|
||||
\
|
||||
verifyProperty(global, "f", {\
|
||||
enumerable: false,\
|
||||
writable: true,\
|
||||
configurable: true\
|
||||
}, { restore: true });switch (1) {' +
|
||||
' case 1:' +
|
||||
' function f() { }' +
|
||||
'}\
|
||||
'
|
||||
);
|
||||
|
||||
assert.sameValue(typeof f, "function");
|
||||
verifyProperty(global, 'f', {
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
});
|
@ -2,7 +2,7 @@
|
||||
// - src/annex-b-fns/eval-global-existing-global-init.case
|
||||
// - src/annex-b-fns/eval-global/direct-switch-dflt.template
|
||||
/*---
|
||||
description: Variable binding is set to `undefined` (Funtion declaration in the `default` clause of a `switch` statement in eval code in the global scope)
|
||||
description: Variable binding is left in place by legacy function hoisting (Funtion declaration in the `default` clause of a `switch` statement in eval code in the global scope)
|
||||
esid: sec-web-compat-evaldeclarationinstantiation
|
||||
es6id: B.3.3.3
|
||||
flags: [generated, noStrict]
|
||||
@ -12,17 +12,7 @@ info: |
|
||||
|
||||
[...]
|
||||
i. If varEnvRec is a global Environment Record, then
|
||||
i. Perform ? varEnvRec.CreateGlobalFunctionBinding(F, undefined, true).
|
||||
[...]
|
||||
|
||||
8.1.1.4.18 CreateGlobalFunctionBinding
|
||||
|
||||
[...]
|
||||
5. If existingProp is undefined or existingProp.[[Configurable]] is true,
|
||||
then
|
||||
[...]
|
||||
6. Else,
|
||||
a. Let desc be the PropertyDescriptor{[[Value]]: V }.
|
||||
i. Perform ? varEnvRec.CreateGlobalVarBinding(F, true).
|
||||
[...]
|
||||
|
||||
---*/
|
||||
@ -35,15 +25,22 @@ Object.defineProperty(fnGlobalObject(), 'f', {
|
||||
|
||||
eval(
|
||||
'var global = fnGlobalObject();\
|
||||
assert.sameValue(f, undefined, "binding is initialized to `undefined`");\
|
||||
assert.sameValue(f, "x", "binding is not reinitialized");\
|
||||
\
|
||||
verifyProperty(global, "f", {\
|
||||
enumerable: true,\
|
||||
writable: true,\
|
||||
configurable: false\
|
||||
});switch (1) {' +
|
||||
}, { restore: true });switch (1) {' +
|
||||
' default:' +
|
||||
' function f() { }' +
|
||||
'}\
|
||||
'
|
||||
);
|
||||
|
||||
assert.sameValue(typeof f, "function");
|
||||
verifyProperty(global, "f", {
|
||||
enumerable: true,
|
||||
writable: true,
|
||||
configurable: false
|
||||
});
|
||||
|
@ -0,0 +1,46 @@
|
||||
// This file was procedurally generated from the following sources:
|
||||
// - src/annex-b-fns/eval-global-existing-non-enumerable-global-init.case
|
||||
// - src/annex-b-fns/eval-global/direct-switch-dflt.template
|
||||
/*---
|
||||
description: Variable binding is left in place by legacy function hoisting. CreateGlobalVariableBinding leaves the binding as non-enumerable even if it has the chance to change it to be enumerable. (Funtion declaration in the `default` clause of a `switch` statement in eval code in the global scope)
|
||||
esid: sec-web-compat-evaldeclarationinstantiation
|
||||
es6id: B.3.3.3
|
||||
flags: [generated, noStrict]
|
||||
includes: [fnGlobalObject.js, propertyHelper.js]
|
||||
info: |
|
||||
B.3.3.3 Changes to EvalDeclarationInstantiation
|
||||
|
||||
[...]
|
||||
i. If varEnvRec is a global Environment Record, then
|
||||
i. Perform ? varEnvRec.CreateGlobalVarBinding(F, true).
|
||||
[...]
|
||||
|
||||
---*/
|
||||
Object.defineProperty(fnGlobalObject(), 'f', {
|
||||
value: 'x',
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
});
|
||||
|
||||
eval(
|
||||
'var global = fnGlobalObject();\
|
||||
assert.sameValue(f, "x", "binding is not reinitialized");\
|
||||
\
|
||||
verifyProperty(global, "f", {\
|
||||
enumerable: false,\
|
||||
writable: true,\
|
||||
configurable: true\
|
||||
}, { restore: true });switch (1) {' +
|
||||
' default:' +
|
||||
' function f() { }' +
|
||||
'}\
|
||||
'
|
||||
);
|
||||
|
||||
assert.sameValue(typeof f, "function");
|
||||
verifyProperty(global, 'f', {
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
});
|
@ -2,7 +2,7 @@
|
||||
// - src/annex-b-fns/eval-global-existing-global-init.case
|
||||
// - src/annex-b-fns/eval-global/indirect-block.template
|
||||
/*---
|
||||
description: Variable binding is set to `undefined` (Block statement in eval code containing a function declaration)
|
||||
description: Variable binding is left in place by legacy function hoisting (Block statement in eval code containing a function declaration)
|
||||
esid: sec-web-compat-evaldeclarationinstantiation
|
||||
es6id: B.3.3.3
|
||||
flags: [generated, noStrict]
|
||||
@ -12,17 +12,7 @@ info: |
|
||||
|
||||
[...]
|
||||
i. If varEnvRec is a global Environment Record, then
|
||||
i. Perform ? varEnvRec.CreateGlobalFunctionBinding(F, undefined, true).
|
||||
[...]
|
||||
|
||||
8.1.1.4.18 CreateGlobalFunctionBinding
|
||||
|
||||
[...]
|
||||
5. If existingProp is undefined or existingProp.[[Configurable]] is true,
|
||||
then
|
||||
[...]
|
||||
6. Else,
|
||||
a. Let desc be the PropertyDescriptor{[[Value]]: V }.
|
||||
i. Perform ? varEnvRec.CreateGlobalVarBinding(F, true).
|
||||
[...]
|
||||
|
||||
---*/
|
||||
@ -35,11 +25,18 @@ Object.defineProperty(fnGlobalObject(), 'f', {
|
||||
|
||||
(0,eval)(
|
||||
'var global = fnGlobalObject();\
|
||||
assert.sameValue(f, undefined, "binding is initialized to `undefined`");\
|
||||
assert.sameValue(f, "x", "binding is not reinitialized");\
|
||||
\
|
||||
verifyProperty(global, "f", {\
|
||||
enumerable: true,\
|
||||
writable: true,\
|
||||
configurable: false\
|
||||
});{ function f() { } }'
|
||||
}, { restore: true });{ function f() { } }'
|
||||
);
|
||||
|
||||
assert.sameValue(typeof f, "function");
|
||||
verifyProperty(global, "f", {
|
||||
enumerable: true,
|
||||
writable: true,
|
||||
configurable: false
|
||||
});
|
||||
|
@ -0,0 +1,42 @@
|
||||
// This file was procedurally generated from the following sources:
|
||||
// - src/annex-b-fns/eval-global-existing-non-enumerable-global-init.case
|
||||
// - src/annex-b-fns/eval-global/indirect-block.template
|
||||
/*---
|
||||
description: Variable binding is left in place by legacy function hoisting. CreateGlobalVariableBinding leaves the binding as non-enumerable even if it has the chance to change it to be enumerable. (Block statement in eval code containing a function declaration)
|
||||
esid: sec-web-compat-evaldeclarationinstantiation
|
||||
es6id: B.3.3.3
|
||||
flags: [generated, noStrict]
|
||||
includes: [fnGlobalObject.js, propertyHelper.js]
|
||||
info: |
|
||||
B.3.3.3 Changes to EvalDeclarationInstantiation
|
||||
|
||||
[...]
|
||||
i. If varEnvRec is a global Environment Record, then
|
||||
i. Perform ? varEnvRec.CreateGlobalVarBinding(F, true).
|
||||
[...]
|
||||
|
||||
---*/
|
||||
Object.defineProperty(fnGlobalObject(), 'f', {
|
||||
value: 'x',
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
});
|
||||
|
||||
(0,eval)(
|
||||
'var global = fnGlobalObject();\
|
||||
assert.sameValue(f, "x", "binding is not reinitialized");\
|
||||
\
|
||||
verifyProperty(global, "f", {\
|
||||
enumerable: false,\
|
||||
writable: true,\
|
||||
configurable: true\
|
||||
}, { restore: true });{ function f() { } }'
|
||||
);
|
||||
|
||||
assert.sameValue(typeof f, "function");
|
||||
verifyProperty(global, 'f', {
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
});
|
@ -2,7 +2,7 @@
|
||||
// - src/annex-b-fns/eval-global-existing-global-init.case
|
||||
// - src/annex-b-fns/eval-global/indirect-if-decl-else-decl-a.template
|
||||
/*---
|
||||
description: Variable binding is set to `undefined` (IfStatement with a declaration in both statement positions in eval code)
|
||||
description: Variable binding is left in place by legacy function hoisting (IfStatement with a declaration in both statement positions in eval code)
|
||||
esid: sec-functiondeclarations-in-ifstatement-statement-clauses
|
||||
es6id: B.3.3
|
||||
flags: [generated, noStrict]
|
||||
@ -21,17 +21,7 @@ info: |
|
||||
|
||||
[...]
|
||||
i. If varEnvRec is a global Environment Record, then
|
||||
i. Perform ? varEnvRec.CreateGlobalFunctionBinding(F, undefined, true).
|
||||
[...]
|
||||
|
||||
8.1.1.4.18 CreateGlobalFunctionBinding
|
||||
|
||||
[...]
|
||||
5. If existingProp is undefined or existingProp.[[Configurable]] is true,
|
||||
then
|
||||
[...]
|
||||
6. Else,
|
||||
a. Let desc be the PropertyDescriptor{[[Value]]: V }.
|
||||
i. Perform ? varEnvRec.CreateGlobalVarBinding(F, true).
|
||||
[...]
|
||||
|
||||
---*/
|
||||
@ -44,11 +34,18 @@ Object.defineProperty(fnGlobalObject(), 'f', {
|
||||
|
||||
(0,eval)(
|
||||
'var global = fnGlobalObject();\
|
||||
assert.sameValue(f, undefined, "binding is initialized to `undefined`");\
|
||||
assert.sameValue(f, "x", "binding is not reinitialized");\
|
||||
\
|
||||
verifyProperty(global, "f", {\
|
||||
enumerable: true,\
|
||||
writable: true,\
|
||||
configurable: false\
|
||||
});if (true) function f() { } else function _f() {}'
|
||||
}, { restore: true });if (true) function f() { } else function _f() {}'
|
||||
);
|
||||
|
||||
assert.sameValue(typeof f, "function");
|
||||
verifyProperty(global, "f", {
|
||||
enumerable: true,
|
||||
writable: true,
|
||||
configurable: false
|
||||
});
|
||||
|
@ -0,0 +1,51 @@
|
||||
// This file was procedurally generated from the following sources:
|
||||
// - src/annex-b-fns/eval-global-existing-non-enumerable-global-init.case
|
||||
// - src/annex-b-fns/eval-global/indirect-if-decl-else-decl-a.template
|
||||
/*---
|
||||
description: Variable binding is left in place by legacy function hoisting. CreateGlobalVariableBinding leaves the binding as non-enumerable even if it has the chance to change it to be enumerable. (IfStatement with a declaration in both statement positions in eval code)
|
||||
esid: sec-functiondeclarations-in-ifstatement-statement-clauses
|
||||
es6id: B.3.3
|
||||
flags: [generated, noStrict]
|
||||
includes: [fnGlobalObject.js, propertyHelper.js]
|
||||
info: |
|
||||
The following rules for IfStatement augment those in 13.6:
|
||||
|
||||
IfStatement[Yield, Return]:
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return]
|
||||
if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield]
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield]
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield]
|
||||
|
||||
|
||||
B.3.3.3 Changes to EvalDeclarationInstantiation
|
||||
|
||||
[...]
|
||||
i. If varEnvRec is a global Environment Record, then
|
||||
i. Perform ? varEnvRec.CreateGlobalVarBinding(F, true).
|
||||
[...]
|
||||
|
||||
---*/
|
||||
Object.defineProperty(fnGlobalObject(), 'f', {
|
||||
value: 'x',
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
});
|
||||
|
||||
(0,eval)(
|
||||
'var global = fnGlobalObject();\
|
||||
assert.sameValue(f, "x", "binding is not reinitialized");\
|
||||
\
|
||||
verifyProperty(global, "f", {\
|
||||
enumerable: false,\
|
||||
writable: true,\
|
||||
configurable: true\
|
||||
}, { restore: true });if (true) function f() { } else function _f() {}'
|
||||
);
|
||||
|
||||
assert.sameValue(typeof f, "function");
|
||||
verifyProperty(global, 'f', {
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
});
|
@ -2,7 +2,7 @@
|
||||
// - src/annex-b-fns/eval-global-existing-global-init.case
|
||||
// - src/annex-b-fns/eval-global/indirect-if-decl-else-decl-b.template
|
||||
/*---
|
||||
description: Variable binding is set to `undefined` (IfStatement with a declaration in both statement positions in eval code)
|
||||
description: Variable binding is left in place by legacy function hoisting (IfStatement with a declaration in both statement positions in eval code)
|
||||
esid: sec-functiondeclarations-in-ifstatement-statement-clauses
|
||||
es6id: B.3.4
|
||||
flags: [generated, noStrict]
|
||||
@ -21,17 +21,7 @@ info: |
|
||||
|
||||
[...]
|
||||
i. If varEnvRec is a global Environment Record, then
|
||||
i. Perform ? varEnvRec.CreateGlobalFunctionBinding(F, undefined, true).
|
||||
[...]
|
||||
|
||||
8.1.1.4.18 CreateGlobalFunctionBinding
|
||||
|
||||
[...]
|
||||
5. If existingProp is undefined or existingProp.[[Configurable]] is true,
|
||||
then
|
||||
[...]
|
||||
6. Else,
|
||||
a. Let desc be the PropertyDescriptor{[[Value]]: V }.
|
||||
i. Perform ? varEnvRec.CreateGlobalVarBinding(F, true).
|
||||
[...]
|
||||
|
||||
---*/
|
||||
@ -44,11 +34,18 @@ Object.defineProperty(fnGlobalObject(), 'f', {
|
||||
|
||||
(0,eval)(
|
||||
'var global = fnGlobalObject();\
|
||||
assert.sameValue(f, undefined, "binding is initialized to `undefined`");\
|
||||
assert.sameValue(f, "x", "binding is not reinitialized");\
|
||||
\
|
||||
verifyProperty(global, "f", {\
|
||||
enumerable: true,\
|
||||
writable: true,\
|
||||
configurable: false\
|
||||
});if (false) function _f() {} else function f() { }'
|
||||
}, { restore: true });if (false) function _f() {} else function f() { }'
|
||||
);
|
||||
|
||||
assert.sameValue(typeof f, "function");
|
||||
verifyProperty(global, "f", {
|
||||
enumerable: true,
|
||||
writable: true,
|
||||
configurable: false
|
||||
});
|
||||
|
@ -0,0 +1,51 @@
|
||||
// This file was procedurally generated from the following sources:
|
||||
// - src/annex-b-fns/eval-global-existing-non-enumerable-global-init.case
|
||||
// - src/annex-b-fns/eval-global/indirect-if-decl-else-decl-b.template
|
||||
/*---
|
||||
description: Variable binding is left in place by legacy function hoisting. CreateGlobalVariableBinding leaves the binding as non-enumerable even if it has the chance to change it to be enumerable. (IfStatement with a declaration in both statement positions in eval code)
|
||||
esid: sec-functiondeclarations-in-ifstatement-statement-clauses
|
||||
es6id: B.3.4
|
||||
flags: [generated, noStrict]
|
||||
includes: [fnGlobalObject.js, propertyHelper.js]
|
||||
info: |
|
||||
The following rules for IfStatement augment those in 13.6:
|
||||
|
||||
IfStatement[Yield, Return]:
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return]
|
||||
if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield]
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield]
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield]
|
||||
|
||||
|
||||
B.3.3.3 Changes to EvalDeclarationInstantiation
|
||||
|
||||
[...]
|
||||
i. If varEnvRec is a global Environment Record, then
|
||||
i. Perform ? varEnvRec.CreateGlobalVarBinding(F, true).
|
||||
[...]
|
||||
|
||||
---*/
|
||||
Object.defineProperty(fnGlobalObject(), 'f', {
|
||||
value: 'x',
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
});
|
||||
|
||||
(0,eval)(
|
||||
'var global = fnGlobalObject();\
|
||||
assert.sameValue(f, "x", "binding is not reinitialized");\
|
||||
\
|
||||
verifyProperty(global, "f", {\
|
||||
enumerable: false,\
|
||||
writable: true,\
|
||||
configurable: true\
|
||||
}, { restore: true });if (false) function _f() {} else function f() { }'
|
||||
);
|
||||
|
||||
assert.sameValue(typeof f, "function");
|
||||
verifyProperty(global, 'f', {
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
});
|
@ -2,7 +2,7 @@
|
||||
// - src/annex-b-fns/eval-global-existing-global-init.case
|
||||
// - src/annex-b-fns/eval-global/indirect-if-decl-else-stmt.template
|
||||
/*---
|
||||
description: Variable binding is set to `undefined` (IfStatement with a declaration in the first statement position in eval code)
|
||||
description: Variable binding is left in place by legacy function hoisting (IfStatement with a declaration in the first statement position in eval code)
|
||||
esid: sec-functiondeclarations-in-ifstatement-statement-clauses
|
||||
es6id: B.3.4
|
||||
flags: [generated, noStrict]
|
||||
@ -21,17 +21,7 @@ info: |
|
||||
|
||||
[...]
|
||||
i. If varEnvRec is a global Environment Record, then
|
||||
i. Perform ? varEnvRec.CreateGlobalFunctionBinding(F, undefined, true).
|
||||
[...]
|
||||
|
||||
8.1.1.4.18 CreateGlobalFunctionBinding
|
||||
|
||||
[...]
|
||||
5. If existingProp is undefined or existingProp.[[Configurable]] is true,
|
||||
then
|
||||
[...]
|
||||
6. Else,
|
||||
a. Let desc be the PropertyDescriptor{[[Value]]: V }.
|
||||
i. Perform ? varEnvRec.CreateGlobalVarBinding(F, true).
|
||||
[...]
|
||||
|
||||
---*/
|
||||
@ -44,11 +34,18 @@ Object.defineProperty(fnGlobalObject(), 'f', {
|
||||
|
||||
(0,eval)(
|
||||
'var global = fnGlobalObject();\
|
||||
assert.sameValue(f, undefined, "binding is initialized to `undefined`");\
|
||||
assert.sameValue(f, "x", "binding is not reinitialized");\
|
||||
\
|
||||
verifyProperty(global, "f", {\
|
||||
enumerable: true,\
|
||||
writable: true,\
|
||||
configurable: false\
|
||||
});if (true) function f() { } else ;'
|
||||
}, { restore: true });if (true) function f() { } else ;'
|
||||
);
|
||||
|
||||
assert.sameValue(typeof f, "function");
|
||||
verifyProperty(global, "f", {
|
||||
enumerable: true,
|
||||
writable: true,
|
||||
configurable: false
|
||||
});
|
||||
|
@ -0,0 +1,51 @@
|
||||
// This file was procedurally generated from the following sources:
|
||||
// - src/annex-b-fns/eval-global-existing-non-enumerable-global-init.case
|
||||
// - src/annex-b-fns/eval-global/indirect-if-decl-else-stmt.template
|
||||
/*---
|
||||
description: Variable binding is left in place by legacy function hoisting. CreateGlobalVariableBinding leaves the binding as non-enumerable even if it has the chance to change it to be enumerable. (IfStatement with a declaration in the first statement position in eval code)
|
||||
esid: sec-functiondeclarations-in-ifstatement-statement-clauses
|
||||
es6id: B.3.4
|
||||
flags: [generated, noStrict]
|
||||
includes: [fnGlobalObject.js, propertyHelper.js]
|
||||
info: |
|
||||
The following rules for IfStatement augment those in 13.6:
|
||||
|
||||
IfStatement[Yield, Return]:
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return]
|
||||
if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield]
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield]
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield]
|
||||
|
||||
|
||||
B.3.3.3 Changes to EvalDeclarationInstantiation
|
||||
|
||||
[...]
|
||||
i. If varEnvRec is a global Environment Record, then
|
||||
i. Perform ? varEnvRec.CreateGlobalVarBinding(F, true).
|
||||
[...]
|
||||
|
||||
---*/
|
||||
Object.defineProperty(fnGlobalObject(), 'f', {
|
||||
value: 'x',
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
});
|
||||
|
||||
(0,eval)(
|
||||
'var global = fnGlobalObject();\
|
||||
assert.sameValue(f, "x", "binding is not reinitialized");\
|
||||
\
|
||||
verifyProperty(global, "f", {\
|
||||
enumerable: false,\
|
||||
writable: true,\
|
||||
configurable: true\
|
||||
}, { restore: true });if (true) function f() { } else ;'
|
||||
);
|
||||
|
||||
assert.sameValue(typeof f, "function");
|
||||
verifyProperty(global, 'f', {
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
});
|
@ -2,7 +2,7 @@
|
||||
// - src/annex-b-fns/eval-global-existing-global-init.case
|
||||
// - src/annex-b-fns/eval-global/indirect-if-decl-no-else.template
|
||||
/*---
|
||||
description: Variable binding is set to `undefined` (IfStatement without an else clause in eval code)
|
||||
description: Variable binding is left in place by legacy function hoisting (IfStatement without an else clause in eval code)
|
||||
esid: sec-functiondeclarations-in-ifstatement-statement-clauses
|
||||
es6id: B.3.4
|
||||
flags: [generated, noStrict]
|
||||
@ -21,17 +21,7 @@ info: |
|
||||
|
||||
[...]
|
||||
i. If varEnvRec is a global Environment Record, then
|
||||
i. Perform ? varEnvRec.CreateGlobalFunctionBinding(F, undefined, true).
|
||||
[...]
|
||||
|
||||
8.1.1.4.18 CreateGlobalFunctionBinding
|
||||
|
||||
[...]
|
||||
5. If existingProp is undefined or existingProp.[[Configurable]] is true,
|
||||
then
|
||||
[...]
|
||||
6. Else,
|
||||
a. Let desc be the PropertyDescriptor{[[Value]]: V }.
|
||||
i. Perform ? varEnvRec.CreateGlobalVarBinding(F, true).
|
||||
[...]
|
||||
|
||||
---*/
|
||||
@ -44,11 +34,18 @@ Object.defineProperty(fnGlobalObject(), 'f', {
|
||||
|
||||
(0,eval)(
|
||||
'var global = fnGlobalObject();\
|
||||
assert.sameValue(f, undefined, "binding is initialized to `undefined`");\
|
||||
assert.sameValue(f, "x", "binding is not reinitialized");\
|
||||
\
|
||||
verifyProperty(global, "f", {\
|
||||
enumerable: true,\
|
||||
writable: true,\
|
||||
configurable: false\
|
||||
});if (true) function f() { }'
|
||||
}, { restore: true });if (true) function f() { }'
|
||||
);
|
||||
|
||||
assert.sameValue(typeof f, "function");
|
||||
verifyProperty(global, "f", {
|
||||
enumerable: true,
|
||||
writable: true,
|
||||
configurable: false
|
||||
});
|
||||
|
@ -0,0 +1,51 @@
|
||||
// This file was procedurally generated from the following sources:
|
||||
// - src/annex-b-fns/eval-global-existing-non-enumerable-global-init.case
|
||||
// - src/annex-b-fns/eval-global/indirect-if-decl-no-else.template
|
||||
/*---
|
||||
description: Variable binding is left in place by legacy function hoisting. CreateGlobalVariableBinding leaves the binding as non-enumerable even if it has the chance to change it to be enumerable. (IfStatement without an else clause in eval code)
|
||||
esid: sec-functiondeclarations-in-ifstatement-statement-clauses
|
||||
es6id: B.3.4
|
||||
flags: [generated, noStrict]
|
||||
includes: [fnGlobalObject.js, propertyHelper.js]
|
||||
info: |
|
||||
The following rules for IfStatement augment those in 13.6:
|
||||
|
||||
IfStatement[Yield, Return]:
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return]
|
||||
if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield]
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield]
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield]
|
||||
|
||||
|
||||
B.3.3.3 Changes to EvalDeclarationInstantiation
|
||||
|
||||
[...]
|
||||
i. If varEnvRec is a global Environment Record, then
|
||||
i. Perform ? varEnvRec.CreateGlobalVarBinding(F, true).
|
||||
[...]
|
||||
|
||||
---*/
|
||||
Object.defineProperty(fnGlobalObject(), 'f', {
|
||||
value: 'x',
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
});
|
||||
|
||||
(0,eval)(
|
||||
'var global = fnGlobalObject();\
|
||||
assert.sameValue(f, "x", "binding is not reinitialized");\
|
||||
\
|
||||
verifyProperty(global, "f", {\
|
||||
enumerable: false,\
|
||||
writable: true,\
|
||||
configurable: true\
|
||||
}, { restore: true });if (true) function f() { }'
|
||||
);
|
||||
|
||||
assert.sameValue(typeof f, "function");
|
||||
verifyProperty(global, 'f', {
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
});
|
@ -2,7 +2,7 @@
|
||||
// - src/annex-b-fns/eval-global-existing-global-init.case
|
||||
// - src/annex-b-fns/eval-global/indirect-if-stmt-else-decl.template
|
||||
/*---
|
||||
description: Variable binding is set to `undefined` (IfStatement with a declaration in the second statement position in eval code)
|
||||
description: Variable binding is left in place by legacy function hoisting (IfStatement with a declaration in the second statement position in eval code)
|
||||
esid: sec-functiondeclarations-in-ifstatement-statement-clauses
|
||||
es6id: B.3.4
|
||||
flags: [generated, noStrict]
|
||||
@ -21,17 +21,7 @@ info: |
|
||||
|
||||
[...]
|
||||
i. If varEnvRec is a global Environment Record, then
|
||||
i. Perform ? varEnvRec.CreateGlobalFunctionBinding(F, undefined, true).
|
||||
[...]
|
||||
|
||||
8.1.1.4.18 CreateGlobalFunctionBinding
|
||||
|
||||
[...]
|
||||
5. If existingProp is undefined or existingProp.[[Configurable]] is true,
|
||||
then
|
||||
[...]
|
||||
6. Else,
|
||||
a. Let desc be the PropertyDescriptor{[[Value]]: V }.
|
||||
i. Perform ? varEnvRec.CreateGlobalVarBinding(F, true).
|
||||
[...]
|
||||
|
||||
---*/
|
||||
@ -44,11 +34,18 @@ Object.defineProperty(fnGlobalObject(), 'f', {
|
||||
|
||||
(0,eval)(
|
||||
'var global = fnGlobalObject();\
|
||||
assert.sameValue(f, undefined, "binding is initialized to `undefined`");\
|
||||
assert.sameValue(f, "x", "binding is not reinitialized");\
|
||||
\
|
||||
verifyProperty(global, "f", {\
|
||||
enumerable: true,\
|
||||
writable: true,\
|
||||
configurable: false\
|
||||
});if (false) ; else function f() { }'
|
||||
}, { restore: true });if (false) ; else function f() { }'
|
||||
);
|
||||
|
||||
assert.sameValue(typeof f, "function");
|
||||
verifyProperty(global, "f", {
|
||||
enumerable: true,
|
||||
writable: true,
|
||||
configurable: false
|
||||
});
|
||||
|
@ -0,0 +1,51 @@
|
||||
// This file was procedurally generated from the following sources:
|
||||
// - src/annex-b-fns/eval-global-existing-non-enumerable-global-init.case
|
||||
// - src/annex-b-fns/eval-global/indirect-if-stmt-else-decl.template
|
||||
/*---
|
||||
description: Variable binding is left in place by legacy function hoisting. CreateGlobalVariableBinding leaves the binding as non-enumerable even if it has the chance to change it to be enumerable. (IfStatement with a declaration in the second statement position in eval code)
|
||||
esid: sec-functiondeclarations-in-ifstatement-statement-clauses
|
||||
es6id: B.3.4
|
||||
flags: [generated, noStrict]
|
||||
includes: [fnGlobalObject.js, propertyHelper.js]
|
||||
info: |
|
||||
The following rules for IfStatement augment those in 13.6:
|
||||
|
||||
IfStatement[Yield, Return]:
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return]
|
||||
if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield]
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield]
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield]
|
||||
|
||||
|
||||
B.3.3.3 Changes to EvalDeclarationInstantiation
|
||||
|
||||
[...]
|
||||
i. If varEnvRec is a global Environment Record, then
|
||||
i. Perform ? varEnvRec.CreateGlobalVarBinding(F, true).
|
||||
[...]
|
||||
|
||||
---*/
|
||||
Object.defineProperty(fnGlobalObject(), 'f', {
|
||||
value: 'x',
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
});
|
||||
|
||||
(0,eval)(
|
||||
'var global = fnGlobalObject();\
|
||||
assert.sameValue(f, "x", "binding is not reinitialized");\
|
||||
\
|
||||
verifyProperty(global, "f", {\
|
||||
enumerable: false,\
|
||||
writable: true,\
|
||||
configurable: true\
|
||||
}, { restore: true });if (false) ; else function f() { }'
|
||||
);
|
||||
|
||||
assert.sameValue(typeof f, "function");
|
||||
verifyProperty(global, 'f', {
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
});
|
@ -2,7 +2,7 @@
|
||||
// - src/annex-b-fns/eval-global-existing-global-init.case
|
||||
// - src/annex-b-fns/eval-global/indirect-switch-case.template
|
||||
/*---
|
||||
description: Variable binding is set to `undefined` (Function declaration in the `case` clause of a `switch` statement in eval code)
|
||||
description: Variable binding is left in place by legacy function hoisting (Function declaration in the `case` clause of a `switch` statement in eval code)
|
||||
esid: sec-web-compat-evaldeclarationinstantiation
|
||||
es6id: B.3.3.3
|
||||
flags: [generated, noStrict]
|
||||
@ -12,17 +12,7 @@ info: |
|
||||
|
||||
[...]
|
||||
i. If varEnvRec is a global Environment Record, then
|
||||
i. Perform ? varEnvRec.CreateGlobalFunctionBinding(F, undefined, true).
|
||||
[...]
|
||||
|
||||
8.1.1.4.18 CreateGlobalFunctionBinding
|
||||
|
||||
[...]
|
||||
5. If existingProp is undefined or existingProp.[[Configurable]] is true,
|
||||
then
|
||||
[...]
|
||||
6. Else,
|
||||
a. Let desc be the PropertyDescriptor{[[Value]]: V }.
|
||||
i. Perform ? varEnvRec.CreateGlobalVarBinding(F, true).
|
||||
[...]
|
||||
|
||||
---*/
|
||||
@ -35,15 +25,22 @@ Object.defineProperty(fnGlobalObject(), 'f', {
|
||||
|
||||
(0,eval)(
|
||||
'var global = fnGlobalObject();\
|
||||
assert.sameValue(f, undefined, "binding is initialized to `undefined`");\
|
||||
assert.sameValue(f, "x", "binding is not reinitialized");\
|
||||
\
|
||||
verifyProperty(global, "f", {\
|
||||
enumerable: true,\
|
||||
writable: true,\
|
||||
configurable: false\
|
||||
});switch (1) {' +
|
||||
}, { restore: true });switch (1) {' +
|
||||
' case 1:' +
|
||||
' function f() { }' +
|
||||
'}\
|
||||
'
|
||||
);
|
||||
|
||||
assert.sameValue(typeof f, "function");
|
||||
verifyProperty(global, "f", {
|
||||
enumerable: true,
|
||||
writable: true,
|
||||
configurable: false
|
||||
});
|
||||
|
@ -0,0 +1,46 @@
|
||||
// This file was procedurally generated from the following sources:
|
||||
// - src/annex-b-fns/eval-global-existing-non-enumerable-global-init.case
|
||||
// - src/annex-b-fns/eval-global/indirect-switch-case.template
|
||||
/*---
|
||||
description: Variable binding is left in place by legacy function hoisting. CreateGlobalVariableBinding leaves the binding as non-enumerable even if it has the chance to change it to be enumerable. (Function declaration in the `case` clause of a `switch` statement in eval code)
|
||||
esid: sec-web-compat-evaldeclarationinstantiation
|
||||
es6id: B.3.3.3
|
||||
flags: [generated, noStrict]
|
||||
includes: [fnGlobalObject.js, propertyHelper.js]
|
||||
info: |
|
||||
B.3.3.3 Changes to EvalDeclarationInstantiation
|
||||
|
||||
[...]
|
||||
i. If varEnvRec is a global Environment Record, then
|
||||
i. Perform ? varEnvRec.CreateGlobalVarBinding(F, true).
|
||||
[...]
|
||||
|
||||
---*/
|
||||
Object.defineProperty(fnGlobalObject(), 'f', {
|
||||
value: 'x',
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
});
|
||||
|
||||
(0,eval)(
|
||||
'var global = fnGlobalObject();\
|
||||
assert.sameValue(f, "x", "binding is not reinitialized");\
|
||||
\
|
||||
verifyProperty(global, "f", {\
|
||||
enumerable: false,\
|
||||
writable: true,\
|
||||
configurable: true\
|
||||
}, { restore: true });switch (1) {' +
|
||||
' case 1:' +
|
||||
' function f() { }' +
|
||||
'}\
|
||||
'
|
||||
);
|
||||
|
||||
assert.sameValue(typeof f, "function");
|
||||
verifyProperty(global, 'f', {
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
});
|
@ -2,7 +2,7 @@
|
||||
// - src/annex-b-fns/eval-global-existing-global-init.case
|
||||
// - src/annex-b-fns/eval-global/indirect-switch-dflt.template
|
||||
/*---
|
||||
description: Variable binding is set to `undefined` (Funtion declaration in the `default` clause of a `switch` statement in eval code in the global scope)
|
||||
description: Variable binding is left in place by legacy function hoisting (Funtion declaration in the `default` clause of a `switch` statement in eval code in the global scope)
|
||||
esid: sec-web-compat-evaldeclarationinstantiation
|
||||
es6id: B.3.3.3
|
||||
flags: [generated, noStrict]
|
||||
@ -12,17 +12,7 @@ info: |
|
||||
|
||||
[...]
|
||||
i. If varEnvRec is a global Environment Record, then
|
||||
i. Perform ? varEnvRec.CreateGlobalFunctionBinding(F, undefined, true).
|
||||
[...]
|
||||
|
||||
8.1.1.4.18 CreateGlobalFunctionBinding
|
||||
|
||||
[...]
|
||||
5. If existingProp is undefined or existingProp.[[Configurable]] is true,
|
||||
then
|
||||
[...]
|
||||
6. Else,
|
||||
a. Let desc be the PropertyDescriptor{[[Value]]: V }.
|
||||
i. Perform ? varEnvRec.CreateGlobalVarBinding(F, true).
|
||||
[...]
|
||||
|
||||
---*/
|
||||
@ -35,15 +25,22 @@ Object.defineProperty(fnGlobalObject(), 'f', {
|
||||
|
||||
(0,eval)(
|
||||
'var global = fnGlobalObject();\
|
||||
assert.sameValue(f, undefined, "binding is initialized to `undefined`");\
|
||||
assert.sameValue(f, "x", "binding is not reinitialized");\
|
||||
\
|
||||
verifyProperty(global, "f", {\
|
||||
enumerable: true,\
|
||||
writable: true,\
|
||||
configurable: false\
|
||||
});switch (1) {' +
|
||||
}, { restore: true });switch (1) {' +
|
||||
' default:' +
|
||||
' function f() { }' +
|
||||
'}\
|
||||
'
|
||||
);
|
||||
|
||||
assert.sameValue(typeof f, "function");
|
||||
verifyProperty(global, "f", {
|
||||
enumerable: true,
|
||||
writable: true,
|
||||
configurable: false
|
||||
});
|
||||
|
@ -0,0 +1,46 @@
|
||||
// This file was procedurally generated from the following sources:
|
||||
// - src/annex-b-fns/eval-global-existing-non-enumerable-global-init.case
|
||||
// - src/annex-b-fns/eval-global/indirect-switch-dflt.template
|
||||
/*---
|
||||
description: Variable binding is left in place by legacy function hoisting. CreateGlobalVariableBinding leaves the binding as non-enumerable even if it has the chance to change it to be enumerable. (Funtion declaration in the `default` clause of a `switch` statement in eval code in the global scope)
|
||||
esid: sec-web-compat-evaldeclarationinstantiation
|
||||
es6id: B.3.3.3
|
||||
flags: [generated, noStrict]
|
||||
includes: [fnGlobalObject.js, propertyHelper.js]
|
||||
info: |
|
||||
B.3.3.3 Changes to EvalDeclarationInstantiation
|
||||
|
||||
[...]
|
||||
i. If varEnvRec is a global Environment Record, then
|
||||
i. Perform ? varEnvRec.CreateGlobalVarBinding(F, true).
|
||||
[...]
|
||||
|
||||
---*/
|
||||
Object.defineProperty(fnGlobalObject(), 'f', {
|
||||
value: 'x',
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
});
|
||||
|
||||
(0,eval)(
|
||||
'var global = fnGlobalObject();\
|
||||
assert.sameValue(f, "x", "binding is not reinitialized");\
|
||||
\
|
||||
verifyProperty(global, "f", {\
|
||||
enumerable: false,\
|
||||
writable: true,\
|
||||
configurable: true\
|
||||
}, { restore: true });switch (1) {' +
|
||||
' default:' +
|
||||
' function f() { }' +
|
||||
'}\
|
||||
'
|
||||
);
|
||||
|
||||
assert.sameValue(typeof f, "function");
|
||||
verifyProperty(global, 'f', {
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
});
|
@ -0,0 +1,49 @@
|
||||
// This file was procedurally generated from the following sources:
|
||||
// - src/annex-b-fns/global-existing-global-init.case
|
||||
// - src/annex-b-fns/global/block.template
|
||||
/*---
|
||||
description: Variable binding is left in place by legacy function hoisting. CreateGlobalVariableBinding leaves the binding as non-enumerable even if it has the chance to change it to be enumerable. (Block statement in the global scope containing a function declaration)
|
||||
esid: sec-web-compat-globaldeclarationinstantiation
|
||||
es6id: B.3.3.2
|
||||
flags: [generated, noStrict]
|
||||
includes: [fnGlobalObject.js, propertyHelper.js]
|
||||
info: |
|
||||
B.3.3.3 Changes to GlobalDeclarationInstantiation
|
||||
|
||||
[...]
|
||||
Perform ? varEnvRec.CreateGlobalVarBinding(F, true).
|
||||
[...]
|
||||
|
||||
---*/
|
||||
var global = fnGlobalObject();
|
||||
Object.defineProperty(global, 'f', {
|
||||
value: 'x',
|
||||
enumerable: true,
|
||||
writable: true,
|
||||
configurable: false
|
||||
});
|
||||
|
||||
$262.evalScript(`
|
||||
assert.sameValue(f, 'x');
|
||||
verifyProperty(global, 'f', {
|
||||
enumerable: true,
|
||||
writable: true,
|
||||
configurable: false
|
||||
}, { restore: true });
|
||||
`);
|
||||
|
||||
$262.evalScript(`
|
||||
|
||||
{
|
||||
function f() { return 'inner declaration'; }
|
||||
}
|
||||
|
||||
`);
|
||||
|
||||
$262.evalScript(`
|
||||
verifyProperty(global, 'f', {
|
||||
enumerable: true,
|
||||
writable: true,
|
||||
configurable: false
|
||||
});
|
||||
`);
|
@ -0,0 +1,50 @@
|
||||
// This file was procedurally generated from the following sources:
|
||||
// - src/annex-b-fns/global-existing-non-enumerable-global-init.case
|
||||
// - src/annex-b-fns/global/block.template
|
||||
/*---
|
||||
description: Variable binding is left in place by legacy function hoisting. CreateGlobalVariableBinding leaves the binding as non-enumerable even if it has the chance to change it to be enumerable. (Block statement in the global scope containing a function declaration)
|
||||
esid: sec-web-compat-globaldeclarationinstantiation
|
||||
es6id: B.3.3.2
|
||||
flags: [generated, noStrict]
|
||||
includes: [fnGlobalObject.js, propertyHelper.js]
|
||||
info: |
|
||||
B.3.3.3 Changes to GlobalDeclarationInstantiation
|
||||
|
||||
[...]
|
||||
Perform ? varEnvRec.CreateGlobalVarBinding(F, true).
|
||||
[...]
|
||||
|
||||
---*/
|
||||
var global = fnGlobalObject();
|
||||
Object.defineProperty(global, 'f', {
|
||||
value: 'x',
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
});
|
||||
|
||||
$262.evalScript(`
|
||||
assert.sameValue(f, 'x');
|
||||
verifyProperty(global, 'f', {
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
}, { restore: true });
|
||||
`);
|
||||
|
||||
$262.evalScript(`
|
||||
|
||||
{
|
||||
function f() { return 'inner declaration'; }
|
||||
}
|
||||
|
||||
`);
|
||||
|
||||
$262.evalScript(`
|
||||
assert.sameValue(f(), 'inner declaration');
|
||||
verifyProperty(global, 'f', {
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
});
|
||||
`);
|
@ -0,0 +1,56 @@
|
||||
// This file was procedurally generated from the following sources:
|
||||
// - src/annex-b-fns/global-existing-global-init.case
|
||||
// - src/annex-b-fns/global/if-decl-else-decl-a.template
|
||||
/*---
|
||||
description: Variable binding is left in place by legacy function hoisting. CreateGlobalVariableBinding leaves the binding as non-enumerable even if it has the chance to change it to be enumerable. (IfStatement with a declaration in both statement positions in the global scope)
|
||||
esid: sec-functiondeclarations-in-ifstatement-statement-clauses
|
||||
es6id: B.3.4
|
||||
flags: [generated, noStrict]
|
||||
includes: [fnGlobalObject.js, propertyHelper.js]
|
||||
info: |
|
||||
The following rules for IfStatement augment those in 13.6:
|
||||
|
||||
IfStatement[Yield, Return]:
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return]
|
||||
if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield]
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield]
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield]
|
||||
|
||||
|
||||
B.3.3.3 Changes to GlobalDeclarationInstantiation
|
||||
|
||||
[...]
|
||||
Perform ? varEnvRec.CreateGlobalVarBinding(F, true).
|
||||
[...]
|
||||
|
||||
---*/
|
||||
var global = fnGlobalObject();
|
||||
Object.defineProperty(global, 'f', {
|
||||
value: 'x',
|
||||
enumerable: true,
|
||||
writable: true,
|
||||
configurable: false
|
||||
});
|
||||
|
||||
$262.evalScript(`
|
||||
assert.sameValue(f, 'x');
|
||||
verifyProperty(global, 'f', {
|
||||
enumerable: true,
|
||||
writable: true,
|
||||
configurable: false
|
||||
}, { restore: true });
|
||||
`);
|
||||
|
||||
$262.evalScript(`
|
||||
|
||||
if (true) function f() { return 'inner declaration'; } else function _f() {}
|
||||
|
||||
`);
|
||||
|
||||
$262.evalScript(`
|
||||
verifyProperty(global, 'f', {
|
||||
enumerable: true,
|
||||
writable: true,
|
||||
configurable: false
|
||||
});
|
||||
`);
|
@ -0,0 +1,57 @@
|
||||
// This file was procedurally generated from the following sources:
|
||||
// - src/annex-b-fns/global-existing-non-enumerable-global-init.case
|
||||
// - src/annex-b-fns/global/if-decl-else-decl-a.template
|
||||
/*---
|
||||
description: Variable binding is left in place by legacy function hoisting. CreateGlobalVariableBinding leaves the binding as non-enumerable even if it has the chance to change it to be enumerable. (IfStatement with a declaration in both statement positions in the global scope)
|
||||
esid: sec-functiondeclarations-in-ifstatement-statement-clauses
|
||||
es6id: B.3.4
|
||||
flags: [generated, noStrict]
|
||||
includes: [fnGlobalObject.js, propertyHelper.js]
|
||||
info: |
|
||||
The following rules for IfStatement augment those in 13.6:
|
||||
|
||||
IfStatement[Yield, Return]:
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return]
|
||||
if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield]
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield]
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield]
|
||||
|
||||
|
||||
B.3.3.3 Changes to GlobalDeclarationInstantiation
|
||||
|
||||
[...]
|
||||
Perform ? varEnvRec.CreateGlobalVarBinding(F, true).
|
||||
[...]
|
||||
|
||||
---*/
|
||||
var global = fnGlobalObject();
|
||||
Object.defineProperty(global, 'f', {
|
||||
value: 'x',
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
});
|
||||
|
||||
$262.evalScript(`
|
||||
assert.sameValue(f, 'x');
|
||||
verifyProperty(global, 'f', {
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
}, { restore: true });
|
||||
`);
|
||||
|
||||
$262.evalScript(`
|
||||
|
||||
if (true) function f() { return 'inner declaration'; } else function _f() {}
|
||||
|
||||
`);
|
||||
|
||||
$262.evalScript(`
|
||||
assert.sameValue(f(), 'inner declaration');
|
||||
verifyProperty(global, 'f', {
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
});
|
||||
`);
|
@ -0,0 +1,56 @@
|
||||
// This file was procedurally generated from the following sources:
|
||||
// - src/annex-b-fns/global-existing-global-init.case
|
||||
// - src/annex-b-fns/global/if-decl-else-decl-b.template
|
||||
/*---
|
||||
description: Variable binding is left in place by legacy function hoisting. CreateGlobalVariableBinding leaves the binding as non-enumerable even if it has the chance to change it to be enumerable. (IfStatement with a declaration in both statement positions in the global scope)
|
||||
esid: sec-functiondeclarations-in-ifstatement-statement-clauses
|
||||
es6id: B.3.4
|
||||
flags: [generated, noStrict]
|
||||
includes: [fnGlobalObject.js, propertyHelper.js]
|
||||
info: |
|
||||
The following rules for IfStatement augment those in 13.6:
|
||||
|
||||
IfStatement[Yield, Return]:
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return]
|
||||
if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield]
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield]
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield]
|
||||
|
||||
|
||||
B.3.3.3 Changes to GlobalDeclarationInstantiation
|
||||
|
||||
[...]
|
||||
Perform ? varEnvRec.CreateGlobalVarBinding(F, true).
|
||||
[...]
|
||||
|
||||
---*/
|
||||
var global = fnGlobalObject();
|
||||
Object.defineProperty(global, 'f', {
|
||||
value: 'x',
|
||||
enumerable: true,
|
||||
writable: true,
|
||||
configurable: false
|
||||
});
|
||||
|
||||
$262.evalScript(`
|
||||
assert.sameValue(f, 'x');
|
||||
verifyProperty(global, 'f', {
|
||||
enumerable: true,
|
||||
writable: true,
|
||||
configurable: false
|
||||
}, { restore: true });
|
||||
`);
|
||||
|
||||
$262.evalScript(`
|
||||
|
||||
if (false) function _f() {} else function f() { return 'inner declaration'; }
|
||||
|
||||
`);
|
||||
|
||||
$262.evalScript(`
|
||||
verifyProperty(global, 'f', {
|
||||
enumerable: true,
|
||||
writable: true,
|
||||
configurable: false
|
||||
});
|
||||
`);
|
@ -0,0 +1,57 @@
|
||||
// This file was procedurally generated from the following sources:
|
||||
// - src/annex-b-fns/global-existing-non-enumerable-global-init.case
|
||||
// - src/annex-b-fns/global/if-decl-else-decl-b.template
|
||||
/*---
|
||||
description: Variable binding is left in place by legacy function hoisting. CreateGlobalVariableBinding leaves the binding as non-enumerable even if it has the chance to change it to be enumerable. (IfStatement with a declaration in both statement positions in the global scope)
|
||||
esid: sec-functiondeclarations-in-ifstatement-statement-clauses
|
||||
es6id: B.3.4
|
||||
flags: [generated, noStrict]
|
||||
includes: [fnGlobalObject.js, propertyHelper.js]
|
||||
info: |
|
||||
The following rules for IfStatement augment those in 13.6:
|
||||
|
||||
IfStatement[Yield, Return]:
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return]
|
||||
if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield]
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield]
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield]
|
||||
|
||||
|
||||
B.3.3.3 Changes to GlobalDeclarationInstantiation
|
||||
|
||||
[...]
|
||||
Perform ? varEnvRec.CreateGlobalVarBinding(F, true).
|
||||
[...]
|
||||
|
||||
---*/
|
||||
var global = fnGlobalObject();
|
||||
Object.defineProperty(global, 'f', {
|
||||
value: 'x',
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
});
|
||||
|
||||
$262.evalScript(`
|
||||
assert.sameValue(f, 'x');
|
||||
verifyProperty(global, 'f', {
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
}, { restore: true });
|
||||
`);
|
||||
|
||||
$262.evalScript(`
|
||||
|
||||
if (false) function _f() {} else function f() { return 'inner declaration'; }
|
||||
|
||||
`);
|
||||
|
||||
$262.evalScript(`
|
||||
assert.sameValue(f(), 'inner declaration');
|
||||
verifyProperty(global, 'f', {
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
});
|
||||
`);
|
@ -0,0 +1,56 @@
|
||||
// This file was procedurally generated from the following sources:
|
||||
// - src/annex-b-fns/global-existing-global-init.case
|
||||
// - src/annex-b-fns/global/if-decl-else-stmt.template
|
||||
/*---
|
||||
description: Variable binding is left in place by legacy function hoisting. CreateGlobalVariableBinding leaves the binding as non-enumerable even if it has the chance to change it to be enumerable. (IfStatement with a declaration in the first statement position in the global scope)
|
||||
esid: sec-functiondeclarations-in-ifstatement-statement-clauses
|
||||
es6id: B.3.4
|
||||
flags: [generated, noStrict]
|
||||
includes: [fnGlobalObject.js, propertyHelper.js]
|
||||
info: |
|
||||
The following rules for IfStatement augment those in 13.6:
|
||||
|
||||
IfStatement[Yield, Return]:
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return]
|
||||
if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield]
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield]
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield]
|
||||
|
||||
|
||||
B.3.3.3 Changes to GlobalDeclarationInstantiation
|
||||
|
||||
[...]
|
||||
Perform ? varEnvRec.CreateGlobalVarBinding(F, true).
|
||||
[...]
|
||||
|
||||
---*/
|
||||
var global = fnGlobalObject();
|
||||
Object.defineProperty(global, 'f', {
|
||||
value: 'x',
|
||||
enumerable: true,
|
||||
writable: true,
|
||||
configurable: false
|
||||
});
|
||||
|
||||
$262.evalScript(`
|
||||
assert.sameValue(f, 'x');
|
||||
verifyProperty(global, 'f', {
|
||||
enumerable: true,
|
||||
writable: true,
|
||||
configurable: false
|
||||
}, { restore: true });
|
||||
`);
|
||||
|
||||
$262.evalScript(`
|
||||
|
||||
if (true) function f() { return 'inner declaration'; } else ;
|
||||
|
||||
`);
|
||||
|
||||
$262.evalScript(`
|
||||
verifyProperty(global, 'f', {
|
||||
enumerable: true,
|
||||
writable: true,
|
||||
configurable: false
|
||||
});
|
||||
`);
|
@ -0,0 +1,57 @@
|
||||
// This file was procedurally generated from the following sources:
|
||||
// - src/annex-b-fns/global-existing-non-enumerable-global-init.case
|
||||
// - src/annex-b-fns/global/if-decl-else-stmt.template
|
||||
/*---
|
||||
description: Variable binding is left in place by legacy function hoisting. CreateGlobalVariableBinding leaves the binding as non-enumerable even if it has the chance to change it to be enumerable. (IfStatement with a declaration in the first statement position in the global scope)
|
||||
esid: sec-functiondeclarations-in-ifstatement-statement-clauses
|
||||
es6id: B.3.4
|
||||
flags: [generated, noStrict]
|
||||
includes: [fnGlobalObject.js, propertyHelper.js]
|
||||
info: |
|
||||
The following rules for IfStatement augment those in 13.6:
|
||||
|
||||
IfStatement[Yield, Return]:
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return]
|
||||
if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield]
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield]
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield]
|
||||
|
||||
|
||||
B.3.3.3 Changes to GlobalDeclarationInstantiation
|
||||
|
||||
[...]
|
||||
Perform ? varEnvRec.CreateGlobalVarBinding(F, true).
|
||||
[...]
|
||||
|
||||
---*/
|
||||
var global = fnGlobalObject();
|
||||
Object.defineProperty(global, 'f', {
|
||||
value: 'x',
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
});
|
||||
|
||||
$262.evalScript(`
|
||||
assert.sameValue(f, 'x');
|
||||
verifyProperty(global, 'f', {
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
}, { restore: true });
|
||||
`);
|
||||
|
||||
$262.evalScript(`
|
||||
|
||||
if (true) function f() { return 'inner declaration'; } else ;
|
||||
|
||||
`);
|
||||
|
||||
$262.evalScript(`
|
||||
assert.sameValue(f(), 'inner declaration');
|
||||
verifyProperty(global, 'f', {
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
});
|
||||
`);
|
@ -0,0 +1,56 @@
|
||||
// This file was procedurally generated from the following sources:
|
||||
// - src/annex-b-fns/global-existing-global-init.case
|
||||
// - src/annex-b-fns/global/if-decl-no-else.template
|
||||
/*---
|
||||
description: Variable binding is left in place by legacy function hoisting. CreateGlobalVariableBinding leaves the binding as non-enumerable even if it has the chance to change it to be enumerable. (IfStatement without an else clause in the global scope)
|
||||
esid: sec-functiondeclarations-in-ifstatement-statement-clauses
|
||||
es6id: B.3.4
|
||||
flags: [generated, noStrict]
|
||||
includes: [fnGlobalObject.js, propertyHelper.js]
|
||||
info: |
|
||||
The following rules for IfStatement augment those in 13.6:
|
||||
|
||||
IfStatement[Yield, Return]:
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return]
|
||||
if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield]
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield]
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield]
|
||||
|
||||
|
||||
B.3.3.3 Changes to GlobalDeclarationInstantiation
|
||||
|
||||
[...]
|
||||
Perform ? varEnvRec.CreateGlobalVarBinding(F, true).
|
||||
[...]
|
||||
|
||||
---*/
|
||||
var global = fnGlobalObject();
|
||||
Object.defineProperty(global, 'f', {
|
||||
value: 'x',
|
||||
enumerable: true,
|
||||
writable: true,
|
||||
configurable: false
|
||||
});
|
||||
|
||||
$262.evalScript(`
|
||||
assert.sameValue(f, 'x');
|
||||
verifyProperty(global, 'f', {
|
||||
enumerable: true,
|
||||
writable: true,
|
||||
configurable: false
|
||||
}, { restore: true });
|
||||
`);
|
||||
|
||||
$262.evalScript(`
|
||||
|
||||
if (true) function f() { return 'inner declaration'; }
|
||||
|
||||
`);
|
||||
|
||||
$262.evalScript(`
|
||||
verifyProperty(global, 'f', {
|
||||
enumerable: true,
|
||||
writable: true,
|
||||
configurable: false
|
||||
});
|
||||
`);
|
@ -0,0 +1,57 @@
|
||||
// This file was procedurally generated from the following sources:
|
||||
// - src/annex-b-fns/global-existing-non-enumerable-global-init.case
|
||||
// - src/annex-b-fns/global/if-decl-no-else.template
|
||||
/*---
|
||||
description: Variable binding is left in place by legacy function hoisting. CreateGlobalVariableBinding leaves the binding as non-enumerable even if it has the chance to change it to be enumerable. (IfStatement without an else clause in the global scope)
|
||||
esid: sec-functiondeclarations-in-ifstatement-statement-clauses
|
||||
es6id: B.3.4
|
||||
flags: [generated, noStrict]
|
||||
includes: [fnGlobalObject.js, propertyHelper.js]
|
||||
info: |
|
||||
The following rules for IfStatement augment those in 13.6:
|
||||
|
||||
IfStatement[Yield, Return]:
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return]
|
||||
if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield]
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield]
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield]
|
||||
|
||||
|
||||
B.3.3.3 Changes to GlobalDeclarationInstantiation
|
||||
|
||||
[...]
|
||||
Perform ? varEnvRec.CreateGlobalVarBinding(F, true).
|
||||
[...]
|
||||
|
||||
---*/
|
||||
var global = fnGlobalObject();
|
||||
Object.defineProperty(global, 'f', {
|
||||
value: 'x',
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
});
|
||||
|
||||
$262.evalScript(`
|
||||
assert.sameValue(f, 'x');
|
||||
verifyProperty(global, 'f', {
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
}, { restore: true });
|
||||
`);
|
||||
|
||||
$262.evalScript(`
|
||||
|
||||
if (true) function f() { return 'inner declaration'; }
|
||||
|
||||
`);
|
||||
|
||||
$262.evalScript(`
|
||||
assert.sameValue(f(), 'inner declaration');
|
||||
verifyProperty(global, 'f', {
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
});
|
||||
`);
|
@ -0,0 +1,56 @@
|
||||
// This file was procedurally generated from the following sources:
|
||||
// - src/annex-b-fns/global-existing-global-init.case
|
||||
// - src/annex-b-fns/global/if-stmt-else-decl.template
|
||||
/*---
|
||||
description: Variable binding is left in place by legacy function hoisting. CreateGlobalVariableBinding leaves the binding as non-enumerable even if it has the chance to change it to be enumerable. (IfStatement with a declaration in the second statement position in the global scope)
|
||||
esid: sec-functiondeclarations-in-ifstatement-statement-clauses
|
||||
es6id: B.3.4
|
||||
flags: [generated, noStrict]
|
||||
includes: [fnGlobalObject.js, propertyHelper.js]
|
||||
info: |
|
||||
The following rules for IfStatement augment those in 13.6:
|
||||
|
||||
IfStatement[Yield, Return]:
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return]
|
||||
if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield]
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield]
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield]
|
||||
|
||||
|
||||
B.3.3.3 Changes to GlobalDeclarationInstantiation
|
||||
|
||||
[...]
|
||||
Perform ? varEnvRec.CreateGlobalVarBinding(F, true).
|
||||
[...]
|
||||
|
||||
---*/
|
||||
var global = fnGlobalObject();
|
||||
Object.defineProperty(global, 'f', {
|
||||
value: 'x',
|
||||
enumerable: true,
|
||||
writable: true,
|
||||
configurable: false
|
||||
});
|
||||
|
||||
$262.evalScript(`
|
||||
assert.sameValue(f, 'x');
|
||||
verifyProperty(global, 'f', {
|
||||
enumerable: true,
|
||||
writable: true,
|
||||
configurable: false
|
||||
}, { restore: true });
|
||||
`);
|
||||
|
||||
$262.evalScript(`
|
||||
|
||||
if (false) ; else function f() { return 'inner declaration'; }
|
||||
|
||||
`);
|
||||
|
||||
$262.evalScript(`
|
||||
verifyProperty(global, 'f', {
|
||||
enumerable: true,
|
||||
writable: true,
|
||||
configurable: false
|
||||
});
|
||||
`);
|
@ -0,0 +1,57 @@
|
||||
// This file was procedurally generated from the following sources:
|
||||
// - src/annex-b-fns/global-existing-non-enumerable-global-init.case
|
||||
// - src/annex-b-fns/global/if-stmt-else-decl.template
|
||||
/*---
|
||||
description: Variable binding is left in place by legacy function hoisting. CreateGlobalVariableBinding leaves the binding as non-enumerable even if it has the chance to change it to be enumerable. (IfStatement with a declaration in the second statement position in the global scope)
|
||||
esid: sec-functiondeclarations-in-ifstatement-statement-clauses
|
||||
es6id: B.3.4
|
||||
flags: [generated, noStrict]
|
||||
includes: [fnGlobalObject.js, propertyHelper.js]
|
||||
info: |
|
||||
The following rules for IfStatement augment those in 13.6:
|
||||
|
||||
IfStatement[Yield, Return]:
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else Statement[?Yield, ?Return]
|
||||
if ( Expression[In, ?Yield] ) Statement[?Yield, ?Return] else FunctionDeclaration[?Yield]
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield] else FunctionDeclaration[?Yield]
|
||||
if ( Expression[In, ?Yield] ) FunctionDeclaration[?Yield]
|
||||
|
||||
|
||||
B.3.3.3 Changes to GlobalDeclarationInstantiation
|
||||
|
||||
[...]
|
||||
Perform ? varEnvRec.CreateGlobalVarBinding(F, true).
|
||||
[...]
|
||||
|
||||
---*/
|
||||
var global = fnGlobalObject();
|
||||
Object.defineProperty(global, 'f', {
|
||||
value: 'x',
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
});
|
||||
|
||||
$262.evalScript(`
|
||||
assert.sameValue(f, 'x');
|
||||
verifyProperty(global, 'f', {
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
}, { restore: true });
|
||||
`);
|
||||
|
||||
$262.evalScript(`
|
||||
|
||||
if (false) ; else function f() { return 'inner declaration'; }
|
||||
|
||||
`);
|
||||
|
||||
$262.evalScript(`
|
||||
assert.sameValue(f(), 'inner declaration');
|
||||
verifyProperty(global, 'f', {
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
});
|
||||
`);
|
@ -0,0 +1,50 @@
|
||||
// This file was procedurally generated from the following sources:
|
||||
// - src/annex-b-fns/global-existing-global-init.case
|
||||
// - src/annex-b-fns/global/switch-case.template
|
||||
/*---
|
||||
description: Variable binding is left in place by legacy function hoisting. CreateGlobalVariableBinding leaves the binding as non-enumerable even if it has the chance to change it to be enumerable. (Function declaration in the `case` clause of a `switch` statement in the global scope)
|
||||
esid: sec-web-compat-globaldeclarationinstantiation
|
||||
es6id: B.3.3.2
|
||||
flags: [generated, noStrict]
|
||||
includes: [fnGlobalObject.js, propertyHelper.js]
|
||||
info: |
|
||||
B.3.3.3 Changes to GlobalDeclarationInstantiation
|
||||
|
||||
[...]
|
||||
Perform ? varEnvRec.CreateGlobalVarBinding(F, true).
|
||||
[...]
|
||||
|
||||
---*/
|
||||
var global = fnGlobalObject();
|
||||
Object.defineProperty(global, 'f', {
|
||||
value: 'x',
|
||||
enumerable: true,
|
||||
writable: true,
|
||||
configurable: false
|
||||
});
|
||||
|
||||
$262.evalScript(`
|
||||
assert.sameValue(f, 'x');
|
||||
verifyProperty(global, 'f', {
|
||||
enumerable: true,
|
||||
writable: true,
|
||||
configurable: false
|
||||
}, { restore: true });
|
||||
`);
|
||||
|
||||
$262.evalScript(`
|
||||
|
||||
switch (1) {
|
||||
case 1:
|
||||
function f() { return 'inner declaration'; }
|
||||
}
|
||||
|
||||
`);
|
||||
|
||||
$262.evalScript(`
|
||||
verifyProperty(global, 'f', {
|
||||
enumerable: true,
|
||||
writable: true,
|
||||
configurable: false
|
||||
});
|
||||
`);
|
@ -0,0 +1,51 @@
|
||||
// This file was procedurally generated from the following sources:
|
||||
// - src/annex-b-fns/global-existing-non-enumerable-global-init.case
|
||||
// - src/annex-b-fns/global/switch-case.template
|
||||
/*---
|
||||
description: Variable binding is left in place by legacy function hoisting. CreateGlobalVariableBinding leaves the binding as non-enumerable even if it has the chance to change it to be enumerable. (Function declaration in the `case` clause of a `switch` statement in the global scope)
|
||||
esid: sec-web-compat-globaldeclarationinstantiation
|
||||
es6id: B.3.3.2
|
||||
flags: [generated, noStrict]
|
||||
includes: [fnGlobalObject.js, propertyHelper.js]
|
||||
info: |
|
||||
B.3.3.3 Changes to GlobalDeclarationInstantiation
|
||||
|
||||
[...]
|
||||
Perform ? varEnvRec.CreateGlobalVarBinding(F, true).
|
||||
[...]
|
||||
|
||||
---*/
|
||||
var global = fnGlobalObject();
|
||||
Object.defineProperty(global, 'f', {
|
||||
value: 'x',
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
});
|
||||
|
||||
$262.evalScript(`
|
||||
assert.sameValue(f, 'x');
|
||||
verifyProperty(global, 'f', {
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
}, { restore: true });
|
||||
`);
|
||||
|
||||
$262.evalScript(`
|
||||
|
||||
switch (1) {
|
||||
case 1:
|
||||
function f() { return 'inner declaration'; }
|
||||
}
|
||||
|
||||
`);
|
||||
|
||||
$262.evalScript(`
|
||||
assert.sameValue(f(), 'inner declaration');
|
||||
verifyProperty(global, 'f', {
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
});
|
||||
`);
|
@ -0,0 +1,50 @@
|
||||
// This file was procedurally generated from the following sources:
|
||||
// - src/annex-b-fns/global-existing-global-init.case
|
||||
// - src/annex-b-fns/global/switch-dflt.template
|
||||
/*---
|
||||
description: Variable binding is left in place by legacy function hoisting. CreateGlobalVariableBinding leaves the binding as non-enumerable even if it has the chance to change it to be enumerable. (Funtion declaration in the `default` clause of a `switch` statement in the global scope)
|
||||
esid: sec-web-compat-globaldeclarationinstantiation
|
||||
es6id: B.3.3.2
|
||||
flags: [generated, noStrict]
|
||||
includes: [fnGlobalObject.js, propertyHelper.js]
|
||||
info: |
|
||||
B.3.3.3 Changes to GlobalDeclarationInstantiation
|
||||
|
||||
[...]
|
||||
Perform ? varEnvRec.CreateGlobalVarBinding(F, true).
|
||||
[...]
|
||||
|
||||
---*/
|
||||
var global = fnGlobalObject();
|
||||
Object.defineProperty(global, 'f', {
|
||||
value: 'x',
|
||||
enumerable: true,
|
||||
writable: true,
|
||||
configurable: false
|
||||
});
|
||||
|
||||
$262.evalScript(`
|
||||
assert.sameValue(f, 'x');
|
||||
verifyProperty(global, 'f', {
|
||||
enumerable: true,
|
||||
writable: true,
|
||||
configurable: false
|
||||
}, { restore: true });
|
||||
`);
|
||||
|
||||
$262.evalScript(`
|
||||
|
||||
switch (1) {
|
||||
default:
|
||||
function f() { return 'inner declaration'; }
|
||||
}
|
||||
|
||||
`);
|
||||
|
||||
$262.evalScript(`
|
||||
verifyProperty(global, 'f', {
|
||||
enumerable: true,
|
||||
writable: true,
|
||||
configurable: false
|
||||
});
|
||||
`);
|
@ -0,0 +1,51 @@
|
||||
// This file was procedurally generated from the following sources:
|
||||
// - src/annex-b-fns/global-existing-non-enumerable-global-init.case
|
||||
// - src/annex-b-fns/global/switch-dflt.template
|
||||
/*---
|
||||
description: Variable binding is left in place by legacy function hoisting. CreateGlobalVariableBinding leaves the binding as non-enumerable even if it has the chance to change it to be enumerable. (Funtion declaration in the `default` clause of a `switch` statement in the global scope)
|
||||
esid: sec-web-compat-globaldeclarationinstantiation
|
||||
es6id: B.3.3.2
|
||||
flags: [generated, noStrict]
|
||||
includes: [fnGlobalObject.js, propertyHelper.js]
|
||||
info: |
|
||||
B.3.3.3 Changes to GlobalDeclarationInstantiation
|
||||
|
||||
[...]
|
||||
Perform ? varEnvRec.CreateGlobalVarBinding(F, true).
|
||||
[...]
|
||||
|
||||
---*/
|
||||
var global = fnGlobalObject();
|
||||
Object.defineProperty(global, 'f', {
|
||||
value: 'x',
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
});
|
||||
|
||||
$262.evalScript(`
|
||||
assert.sameValue(f, 'x');
|
||||
verifyProperty(global, 'f', {
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
}, { restore: true });
|
||||
`);
|
||||
|
||||
$262.evalScript(`
|
||||
|
||||
switch (1) {
|
||||
default:
|
||||
function f() { return 'inner declaration'; }
|
||||
}
|
||||
|
||||
`);
|
||||
|
||||
$262.evalScript(`
|
||||
assert.sameValue(f(), 'inner declaration');
|
||||
verifyProperty(global, 'f', {
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
});
|
||||
`);
|
Loading…
x
Reference in New Issue
Block a user