blob: 9f725acec4eb449fd992ecf98cd69b11896d507e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
var evalInFrame = (function (global) {
var dbgGlobal = newGlobal();
var dbg = new dbgGlobal.Debugger();
return function evalInFrame(upCount, code) {
dbg.addDebuggee(global);
// Skip ourself.
var frame = dbg.getNewestFrame().older;
for (var i = 0; i < upCount; i++) {
if (!frame.older)
break;
frame = frame.older;
}
var completion = frame.eval(code);
if (completion.return) {
var v = completion.return;
if (typeof v === "object")
v = v.unsafeDereference();
return v;
}
if (completion.throw) {
var v = completion.throw;
if (typeof v === "object")
v = v.unsafeDereference();
throw v;
}
if (completion === null)
terminate();
};
})(this);
|