| // With arrows representing child-to-parent links, create a SavedFrame stack |
| // like this: |
| // |
| // high.a -> low.b |
| // |
| // in `low`'s compartment and give `low` a reference to this stack. Assert the |
| // stack's youngest frame's properties doesn't leak information about `high.a` |
| // that `low` shouldn't have access to, and instead returns information about |
| // `low.b`. |
| |
| var low = newGlobal({ principal: 0 }); |
| var high = newGlobal({ principal: 0xfffff }); |
| |
| low.high = high; |
| high.low = low; |
| |
| high.eval("function a() { return saveStack(0, low); }"); |
| low.eval("function b() { return high.a(); }") |
| |
| var stack = low.b(); |
| |
| assertEq(stack.functionDisplayName, "b"); |
| assertEq(stack.parent, null); |