Thu, 15 Jan 2015 21:03:48 +0100
Integrate friendly tips from Tor colleagues to make (or not) 4.5 alpha 3;
This includes removal of overloaded (but unused) methods, and addition of
a overlooked call to DataStruct::SetData(nsISupports, uint32_t, bool.)
1 // Test that we can save stacks with direct and indirect eval calls.
3 const directEval = (function iife() {
4 return eval("(" + function evalFrame() {
5 return saveStack();
6 } + "())");
7 }());
9 assertEq(directEval.source.contains("> eval"), true);
10 assertEq(directEval.functionDisplayName, "evalFrame");
12 assertEq(directEval.parent.source.contains("> eval"), true);
14 assertEq(directEval.parent.parent.source.contains("> eval"), false);
15 assertEq(directEval.parent.parent.functionDisplayName, "iife");
17 assertEq(directEval.parent.parent.parent.source.contains("> eval"), false);
19 assertEq(directEval.parent.parent.parent.parent, null);
21 const lave = eval;
22 const indirectEval = (function iife() {
23 return lave("(" + function evalFrame() {
24 return saveStack();
25 } + "())");
26 }());
28 assertEq(indirectEval.source.contains("> eval"), true);
29 assertEq(indirectEval.functionDisplayName, "evalFrame");
31 assertEq(indirectEval.parent.source.contains("> eval"), true);
33 assertEq(indirectEval.parent.parent.source.contains("> eval"), false);
34 assertEq(indirectEval.parent.parent.functionDisplayName, "iife");
36 assertEq(indirectEval.parent.parent.parent.source.contains("> eval"), false);
38 assertEq(indirectEval.parent.parent.parent.parent, null);