summaryrefslogtreecommitdiffstats
path: root/js/src/tests/ecma_5/Global/parenthesized-eval-is-direct.js
diff options
context:
space:
mode:
authorMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
committerMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
commit5f8de423f190bbb79a62f804151bc24824fa32d8 (patch)
tree10027f336435511475e392454359edea8e25895d /js/src/tests/ecma_5/Global/parenthesized-eval-is-direct.js
parent49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff)
downloadUXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip
Add m-esr52 at 52.6.0
Diffstat (limited to 'js/src/tests/ecma_5/Global/parenthesized-eval-is-direct.js')
-rw-r--r--js/src/tests/ecma_5/Global/parenthesized-eval-is-direct.js68
1 files changed, 68 insertions, 0 deletions
diff --git a/js/src/tests/ecma_5/Global/parenthesized-eval-is-direct.js b/js/src/tests/ecma_5/Global/parenthesized-eval-is-direct.js
new file mode 100644
index 000000000..415412865
--- /dev/null
+++ b/js/src/tests/ecma_5/Global/parenthesized-eval-is-direct.js
@@ -0,0 +1,68 @@
+// Any copyright is dedicated to the Public Domain.
+// http://creativecommons.org/licenses/publicdomain/
+
+//-----------------------------------------------------------------------------
+print("(eval)(...) is a direct eval, (1, eval)() isn't, etc.");
+
+/**************
+ * BEGIN TEST *
+ **************/
+
+/*
+ * Justification:
+ *
+ * https://mail.mozilla.org/pipermail/es5-discuss/2010-October/003724.html
+ *
+ * Note also bug 537673.
+ */
+
+var t = "global";
+
+function group()
+{
+ var t = "local";
+ return (eval)("t");
+}
+assertEq(group(), "local");
+
+function groupAndComma()
+{
+ var t = "local";
+ return (1, eval)("t");
+}
+assertEq(groupAndComma(), "global");
+
+function groupAndTrueTernary()
+{
+ var t = "local";
+ return (true ? eval : null)("t");
+}
+assertEq(groupAndTrueTernary(), "global");
+
+function groupAndEmptyStringTernary()
+{
+ var t = "local";
+ return ("" ? null : eval)("t");
+}
+assertEq(groupAndEmptyStringTernary(), "global");
+
+function groupAndZeroTernary()
+{
+ var t = "local";
+ return (0 ? null : eval)("t");
+}
+assertEq(groupAndZeroTernary(), "global");
+
+function groupAndNaNTernary()
+{
+ var t = "local";
+ return (0 / 0 ? null : eval)("t");
+}
+assertEq(groupAndNaNTernary(), "global");
+
+/******************************************************************************/
+
+if (typeof reportCompare === "function")
+ reportCompare(true, true);
+
+print("All tests passed!");