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