Skip to content

Commit

Permalink
Generate tests
Browse files Browse the repository at this point in the history
  • Loading branch information
littledan committed Mar 7, 2018
1 parent 37762b0 commit 88a673b
Show file tree
Hide file tree
Showing 48 changed files with 1,820 additions and 224 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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]
Expand All @@ -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).
[...]
---*/
Expand All @@ -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
});
Original file line number Diff line number Diff line change
@@ -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
});
Original file line number Diff line number Diff line change
Expand Up @@ -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]
Expand All @@ -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).
[...]
---*/
Expand All @@ -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
});
Original file line number Diff line number Diff line change
@@ -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
});
Original file line number Diff line number Diff line change
Expand Up @@ -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]
Expand All @@ -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).
[...]
---*/
Expand All @@ -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
});
Original file line number Diff line number Diff line change
@@ -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
});
Original file line number Diff line number Diff line change
Expand Up @@ -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]
Expand All @@ -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).
[...]
---*/
Expand All @@ -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
});
Original file line number Diff line number Diff line change
@@ -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
});
Loading

0 comments on commit 88a673b

Please sign in to comment.