mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Add a test for (eval)(code) being direct eval; also add tests for (1,eval)(code), (a?b:eval)(code), and so on (constant-folding expressions, at least before bug 537673) being indirect. r=lumpy
--HG-- extra : rebase_source : cfed63291a05d936ab76909fe68a0c92ee90d9cd
This commit is contained in:
parent
516e962572
commit
ec6a82be0d
@ -3,3 +3,4 @@ script parseInt-01.js
|
||||
script eval-01.js
|
||||
script eval-02.js
|
||||
script eval-inside-with-is-direct.js
|
||||
script parenthesized-eval-is-direct.js
|
||||
|
68
js/src/tests/ecma_5/Global/parenthesized-eval-is-direct.js
Normal file
68
js/src/tests/ecma_5/Global/parenthesized-eval-is-direct.js
Normal file
@ -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!");
|
Loading…
Reference in New Issue
Block a user