michael@0: // Error().stack (ScriptFrameIter) is no longer context-bound. michael@0: function beta() { michael@0: evaluate("function gamma() {\nstack = Error().stack;\n };\n gamma();", {newContext: true}); michael@0: } michael@0: function alpha() { michael@0: beta(); michael@0: } michael@0: alpha(); michael@0: assertEq(/alpha@/.test(stack), true); michael@0: assertEq(/beta@/.test(stack), true); michael@0: assertEq(/gamma@/.test(stack), true); michael@0: assertEq(/delta@/.test(stack), false); michael@0: michael@0: function delta() { michael@0: evaluate("stack = Error().stack", {newContext: true}); michael@0: } michael@0: delta(); michael@0: assertEq(/alpha@/.test(stack), false); michael@0: assertEq(/beta@/.test(stack), false); michael@0: assertEq(/gamma@/.test(stack), false); michael@0: assertEq(/delta@/.test(stack), true);