load(libdir + "evalInFrame.js"); var a = new Array(); function i(save) { var x = 9; evalInFrame(0, "a.push(x)", save); evalInFrame(1, "a.push(z)", save); evalInFrame(2, "a.push(z)", save); evalInFrame(3, "a.push(y)", save); evalInFrame(4, "a.push(x)", save); } function h() { var z = 5; evalInFrame(0, "a.push(z)"); evalInFrame(1, "a.push(y)"); evalInFrame(2, "a.push(x)"); evalInFrame(0, "i(false)"); evalInFrame(0, "a.push(z)", true); evalInFrame(1, "a.push(y)", true); evalInFrame(2, "a.push(x)", true); evalInFrame(0, "i(true)", true); } function g() { var y = 4; h(); } function f() { var x = 3; g(); } f(); assertEq(a+'', [5, 4, 3, 9, 5, 5, 4, 3, 5, 4, 3, 9, 5, 5, 4, 3]+'');