diff options
author | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
---|---|---|
committer | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
commit | 5f8de423f190bbb79a62f804151bc24824fa32d8 (patch) | |
tree | 10027f336435511475e392454359edea8e25895d /js/src/tests/ecma_5/Global/parenthesized-eval-is-direct.js | |
parent | 49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff) | |
download | UXP-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.js | 68 |
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!"); |