From a9cd42018f7efecfaf22e3be4f0a5dc81dc413e0 Mon Sep 17 00:00:00 2001 From: Mike Pennisi <mike@mikepennisi.com> Date: Sun, 10 Jun 2018 19:21:12 -0400 Subject: [PATCH] Simplify tests for runtime semantics Verify runtime semantics through assignment to an unresolvable reference, reducing the complexity of tests that previously relied on the semantics of the `eval` function. --- test/language/directive-prologue/func-decl-final-runtime.js | 4 ++-- .../directive-prologue/func-decl-inside-func-decl-runtime.js | 4 ++-- test/language/directive-prologue/func-decl-no-semi-runtime.js | 4 ++-- .../directive-prologue/func-decl-not-first-runtime.js | 4 ++-- test/language/directive-prologue/func-decl-runtime.js | 4 ++-- test/language/directive-prologue/func-expr-final-runtime.js | 4 ++-- .../directive-prologue/func-expr-inside-func-decl-runtime.js | 4 ++-- test/language/directive-prologue/func-expr-no-semi-runtime.js | 4 ++-- .../directive-prologue/func-expr-not-first-runtime.js | 4 ++-- test/language/directive-prologue/func-expr-runtime.js | 4 ++-- .../directive-prologue/get-accsr-inside-func-expr-runtime.js | 4 ++-- .../directive-prologue/get-accsr-not-first-runtime.js | 4 ++-- test/language/directive-prologue/get-accsr-runtime.js | 4 ++-- .../directive-prologue/set-accsr-inside-func-expr-runtime.js | 4 ++-- .../directive-prologue/set-accsr-not-first-runtime.js | 4 ++-- test/language/directive-prologue/set-accsr-runtime.js | 4 ++-- 16 files changed, 32 insertions(+), 32 deletions(-) diff --git a/test/language/directive-prologue/func-decl-final-runtime.js b/test/language/directive-prologue/func-decl-final-runtime.js index 0aee78cf84..60b0b8b665 100644 --- a/test/language/directive-prologue/func-decl-final-runtime.js +++ b/test/language/directive-prologue/func-decl-final-runtime.js @@ -9,8 +9,8 @@ description: > flags: [noStrict] ---*/ function fun() { - eval("var public = 1;"); - assert.sameValue(public, 1); + test262unresolvable = null; + assert.sameValue(test262unresolvable, null); "use strict"; } fun(); diff --git a/test/language/directive-prologue/func-decl-inside-func-decl-runtime.js b/test/language/directive-prologue/func-decl-inside-func-decl-runtime.js index 00a10fab71..470eae0bee 100644 --- a/test/language/directive-prologue/func-decl-inside-func-decl-runtime.js +++ b/test/language/directive-prologue/func-decl-inside-func-decl-runtime.js @@ -13,10 +13,10 @@ flags: [noStrict] function testcase() { "use strict"; function fun() { - eval("var public = 1;"); + test262unresolvable = null; } - assert.throws(SyntaxError, function() { + assert.throws(ReferenceError, function() { fun(); }); } diff --git a/test/language/directive-prologue/func-decl-no-semi-runtime.js b/test/language/directive-prologue/func-decl-no-semi-runtime.js index 7134fa6217..2406267160 100644 --- a/test/language/directive-prologue/func-decl-no-semi-runtime.js +++ b/test/language/directive-prologue/func-decl-no-semi-runtime.js @@ -12,9 +12,9 @@ flags: [noStrict] function fun() { "use strict" - eval("var public = 1;"); + test262unresolvable = null; } -assert.throws(SyntaxError, function() { +assert.throws(ReferenceError, function() { fun(); }); diff --git a/test/language/directive-prologue/func-decl-not-first-runtime.js b/test/language/directive-prologue/func-decl-not-first-runtime.js index be917dff80..27826a85af 100644 --- a/test/language/directive-prologue/func-decl-not-first-runtime.js +++ b/test/language/directive-prologue/func-decl-not-first-runtime.js @@ -10,8 +10,8 @@ flags: [noStrict] ---*/ function fun() { - eval("var public = 1;"); + test262unresolvable = null; "use strict"; - assert.sameValue(public, 1); + assert.sameValue(test262unresolvable, null); } fun(); diff --git a/test/language/directive-prologue/func-decl-runtime.js b/test/language/directive-prologue/func-decl-runtime.js index 44aefe2fa0..b9dbd353eb 100644 --- a/test/language/directive-prologue/func-decl-runtime.js +++ b/test/language/directive-prologue/func-decl-runtime.js @@ -12,9 +12,9 @@ flags: [noStrict] function fun() { "use strict"; - eval("var public = 1;"); + test262unresolvable = null; } -assert.throws(SyntaxError, function() { +assert.throws(ReferenceError, function() { fun(); }); diff --git a/test/language/directive-prologue/func-expr-final-runtime.js b/test/language/directive-prologue/func-expr-final-runtime.js index d74d1944cc..1a437bce31 100644 --- a/test/language/directive-prologue/func-expr-final-runtime.js +++ b/test/language/directive-prologue/func-expr-final-runtime.js @@ -10,8 +10,8 @@ flags: [noStrict] ---*/ (function () { - eval("var public = 1;"); + test262unresolvable = null; "use strict"; - assert.sameValue(public, 1); + assert.sameValue(test262unresolvable, null); }) (); diff --git a/test/language/directive-prologue/func-expr-inside-func-decl-runtime.js b/test/language/directive-prologue/func-expr-inside-func-decl-runtime.js index a55007a16a..e6f66c589f 100644 --- a/test/language/directive-prologue/func-expr-inside-func-decl-runtime.js +++ b/test/language/directive-prologue/func-expr-inside-func-decl-runtime.js @@ -13,8 +13,8 @@ flags: [noStrict] function testcase() { "use strict"; - assert.throws(SyntaxError, function() { - eval("var public = 1;"); + assert.throws(ReferenceError, function() { + test262unresolvable = null; }); } testcase(); diff --git a/test/language/directive-prologue/func-expr-no-semi-runtime.js b/test/language/directive-prologue/func-expr-no-semi-runtime.js index da0ba589e4..0c16990b8c 100644 --- a/test/language/directive-prologue/func-expr-no-semi-runtime.js +++ b/test/language/directive-prologue/func-expr-no-semi-runtime.js @@ -9,8 +9,8 @@ description: > flags: [noStrict] ---*/ -assert.throws(SyntaxError, function() { +assert.throws(ReferenceError, function() { "use strict" - eval("var public = 1;"); + test262unresolvable = null; }); diff --git a/test/language/directive-prologue/func-expr-not-first-runtime.js b/test/language/directive-prologue/func-expr-not-first-runtime.js index 98a4f1914c..aaf2bb1787 100644 --- a/test/language/directive-prologue/func-expr-not-first-runtime.js +++ b/test/language/directive-prologue/func-expr-not-first-runtime.js @@ -10,7 +10,7 @@ flags: [noStrict] ---*/ (function () { - eval("var public = 1;"); - assert.sameValue(public, 1); + test262unresolvable = null; + assert.sameValue(test262unresolvable, null); "use strict"; }) (); diff --git a/test/language/directive-prologue/func-expr-runtime.js b/test/language/directive-prologue/func-expr-runtime.js index fbfd7790b1..2b982cc6c7 100644 --- a/test/language/directive-prologue/func-expr-runtime.js +++ b/test/language/directive-prologue/func-expr-runtime.js @@ -9,8 +9,8 @@ description: > flags: [noStrict] ---*/ -assert.throws(SyntaxError, function () { +assert.throws(ReferenceError, function () { "use strict"; - eval("var public = 1;"); + test262unresolvable = null; }); diff --git a/test/language/directive-prologue/get-accsr-inside-func-expr-runtime.js b/test/language/directive-prologue/get-accsr-inside-func-expr-runtime.js index f3a448869b..e9a02beb08 100644 --- a/test/language/directive-prologue/get-accsr-inside-func-expr-runtime.js +++ b/test/language/directive-prologue/get-accsr-inside-func-expr-runtime.js @@ -10,12 +10,12 @@ description: > flags: [noStrict] ---*/ -assert.throws(SyntaxError, function() { +assert.throws(ReferenceError, function() { "use strict"; var obj = {}; Object.defineProperty(obj, "accProperty", { get: function () { - eval("public = 1;"); + test262unresolvable = null; return 11; } }); diff --git a/test/language/directive-prologue/get-accsr-not-first-runtime.js b/test/language/directive-prologue/get-accsr-not-first-runtime.js index 23ad02baec..96e94074fb 100644 --- a/test/language/directive-prologue/get-accsr-not-first-runtime.js +++ b/test/language/directive-prologue/get-accsr-not-first-runtime.js @@ -13,11 +13,11 @@ flags: [noStrict] var obj = {}; Object.defineProperty(obj, "accProperty", { get: function () { - eval("public = 1;"); + test262unresolvable = null; "use strict"; return 11; } }); assert.sameValue(obj.accProperty, 11, 'obj.accProperty'); -assert.sameValue(public, 1, 'public'); +assert.sameValue(test262unresolvable, null); diff --git a/test/language/directive-prologue/get-accsr-runtime.js b/test/language/directive-prologue/get-accsr-runtime.js index e726cd7f81..cf2d42f553 100644 --- a/test/language/directive-prologue/get-accsr-runtime.js +++ b/test/language/directive-prologue/get-accsr-runtime.js @@ -11,12 +11,12 @@ flags: [noStrict] ---*/ -assert.throws(SyntaxError, function() { +assert.throws(ReferenceError, function() { var obj = {}; Object.defineProperty(obj, "accProperty", { get: function () { "use strict"; - eval("var public = 1;"); + test262unresolvable = null; return 11; } }); diff --git a/test/language/directive-prologue/set-accsr-inside-func-expr-runtime.js b/test/language/directive-prologue/set-accsr-inside-func-expr-runtime.js index e10da762e7..aac40333a8 100644 --- a/test/language/directive-prologue/set-accsr-inside-func-expr-runtime.js +++ b/test/language/directive-prologue/set-accsr-inside-func-expr-runtime.js @@ -12,13 +12,13 @@ flags: [noStrict] var data = "data"; -assert.throws(SyntaxError, function() { +assert.throws(ReferenceError, function() { "use strict"; var obj = {}; Object.defineProperty(obj, "accProperty", { set: function (value) { - eval("var public = 1;"); + test262unresolvable = null; data = value; } }); diff --git a/test/language/directive-prologue/set-accsr-not-first-runtime.js b/test/language/directive-prologue/set-accsr-not-first-runtime.js index 103fed211c..2d5dc25c1a 100644 --- a/test/language/directive-prologue/set-accsr-not-first-runtime.js +++ b/test/language/directive-prologue/set-accsr-not-first-runtime.js @@ -12,12 +12,12 @@ flags: [noStrict] var data = "data"; -assert.throws(SyntaxError, function() { +assert.throws(ReferenceError, function() { var obj = {}; Object.defineProperty(obj, "accProperty", { set: function (value) { "use strict"; - eval("var public = 1;"); + test262unresolvable = null; data = value; } }); diff --git a/test/language/directive-prologue/set-accsr-runtime.js b/test/language/directive-prologue/set-accsr-runtime.js index ea2a325867..e282c89ec9 100644 --- a/test/language/directive-prologue/set-accsr-runtime.js +++ b/test/language/directive-prologue/set-accsr-runtime.js @@ -12,12 +12,12 @@ flags: [noStrict] ---*/ -assert.throws(SyntaxError, function() { +assert.throws(ReferenceError, function() { var obj = {}; Object.defineProperty(obj, "accProperty", { set: function () { "use strict"; - eval("var public = 1;"); + test262unresolvable = null; return 11; } }); -- GitLab