var otherGlobalSameCompartment = newGlobal("same-compartment"); eval = otherGlobalSameCompartment.eval; doesNotNeedParens(1, "if (xx) { }"); needParens(2, "if (1, xx) { }"); function doesNotNeedParens(section, pat) { try { f = new Function } catch (e) {} roundTripTest(section, f) } function needParens(section, pat, exp) { var f, ft; roundTripTest(section, f, exp) } function roundTripTest(section, f, exp) { uf = "" + f var euf; try { euf = eval("(" + uf + ")"); } catch (e) { } + euf }