Tests evaluateOnCallFrame in module. Running test: testTotal foo1 (module1:7:2) foo2 (module2:6:9) (anonymous) (module3:4:0) local:foo1 [ [0] : c1 = 12 [1] : g1 = 2 ] module [ [0] : a1 = 10 [1] : b1 = 11 [2] : foo1 = function foo1() { let c1 = 12; let g1 = 2; debugger; return a1 + b1 + c1 + g1; } ] global [ ... ] Check variables in frame#0 let g1 = 2; #debugger; return a1 + b1 + c1 + g1; Array = { className : Function description : function Array() { [native code] } objectId : type : function } c1 = { description : 12 type : number value : 12 } Evaluating: ++c1 updated c1 = { description : 13 type : number value : 13 } Evaluating: --c1 g1 = { description : 2 type : number value : 2 } Evaluating: ++g1 updated g1 = { description : 3 type : number value : 3 } Evaluating: --g1 a1 = { description : 10 type : number value : 10 } Evaluating: ++a1 updated a1 = { description : 11 type : number value : 11 } Evaluating: --a1 b1 = { description : 11 type : number value : 11 } Evaluating: ++b1 updated b1 = { description : 12 type : number value : 12 } Evaluating: --b1 foo1 = { className : Function description : function foo1() { let c1 = 12; let g1 = 2; debugger; return a1 + b1 + c1 + g1; } objectId : type : function } local:foo2 [ [0] : c2 = 22 ] module [ [0] : a2 = 20 [1] : foo1 = function foo1() { let c1 = 12; let g1 = 2; debugger; return a1 + b1 + c1 + g1; } [2] : b2 = 21 [3] : foo2 = function foo2() { let c2 = 22; return foo1() + a2 + b2 + c2; } ] global [ ... ] Check variables in frame#1 let c2 = 22; return #foo1() + a2 + b2 + c2; } Array = { className : Function description : function Array() { [native code] } objectId : type : function } c2 = { description : 22 type : number value : 22 } Evaluating: ++c2 updated c2 = { description : 23 type : number value : 23 } Evaluating: --c2 a2 = { description : 20 type : number value : 20 } Evaluating: ++a2 updated a2 = { description : 21 type : number value : 21 } Evaluating: --a2 foo1 = { className : Function description : function foo1() { let c1 = 12; let g1 = 2; debugger; return a1 + b1 + c1 + g1; } objectId : type : function } b2 = { description : 21 type : number value : 21 } Evaluating: ++b2 updated b2 = { description : 22 type : number value : 22 } Evaluating: --b2 foo2 = { className : Function description : function foo2() { let c2 = 22; return foo1() + a2 + b2 + c2; } objectId : type : function } module [ [0] : foo2 = function foo2() { let c2 = 22; return foo1() + a2 + b2 + c2; } [1] : a3 = 30 [2] : b3 = 31 ] global [ ... ] Check variables in frame#2 export let b3 = 31; #foo2(); Array = { className : Function description : function Array() { [native code] } objectId : type : function } foo2 = { className : Function description : function foo2() { let c2 = 22; return foo1() + a2 + b2 + c2; } objectId : type : function } a3 = { description : 30 type : number value : 30 } Evaluating: ++a3 updated a3 = { description : 31 type : number value : 31 } Evaluating: --a3 b3 = { description : 31 type : number value : 31 } Evaluating: ++b3 updated b3 = { description : 32 type : number value : 32 } Evaluating: --b3 Running test: testAnother (anonymous) (module4:5:13) bar (module4:5:24) (anonymous) (module4:7:0) local [ ] closure:bar [ [0] : a = 0 ] global [ ... ] Check variables in frame#0 let a = 0; (() => {a; #debugger;})(); }; Array = { className : Function description : function Array() { [native code] } objectId : type : function } a = { description : 0 type : number value : 0 } Evaluating: ++a updated a = { description : 1 type : number value : 1 } Evaluating: --a local:bar [ [0] : a = 0 ] global [ ... ] Check variables in frame#1 let a = 0; (() => {a; debugger;})#(); }; Array = { className : Function description : function Array() { [native code] } objectId : type : function } a = { description : 0 type : number value : 0 } Evaluating: ++a updated a = { description : 1 type : number value : 1 } Evaluating: --a module [ [0] : a = 1 [1] : b = 2 [2] : bar = function bar() { let a = 0; (() => {a; debugger;})(); } ] global [ ... ] Check variables in frame#2 }; #bar(); Array = { className : Function description : function Array() { [native code] } objectId : type : function } a = { description : 1 type : number value : 1 } Evaluating: ++a updated a = { description : 2 type : number value : 2 } Evaluating: --a b = { description : 2 type : number value : 2 } Evaluating: ++b updated b = { description : 3 type : number value : 3 } Evaluating: --b bar = { className : Function description : function bar() { let a = 0; (() => {a; debugger;})(); } objectId : type : function } Running test: testDifferentModuleVariables (anonymous) (module5:5:0) module [ [0] : b2 = 21 [1] : a = 0 [2] : b = 0 [3] : c = 0 ] global [ ... ] Check variables in frame#0 export var c = 0; #debugger; Array = { className : Function description : function Array() { [native code] } objectId : type : function } b2 = { description : 21 type : number value : 21 } Evaluating: ++b2 updated b2 = { description : 21 type : number value : 21 } Evaluating: --b2 a = { description : 0 type : number value : 0 } Evaluating: ++a updated a = { description : 0 type : number value : 0 } Evaluating: --a b = { description : 0 type : number value : 0 } Evaluating: ++b updated b = { description : 1 type : number value : 1 } Evaluating: --b c = { description : 0 type : number value : 0 } Evaluating: ++c updated c = { description : 1 type : number value : 1 } Evaluating: --c Running test: testCapturedLocalVariable (anonymous) (module6:2:25) (anonymous) (module6:2:37) local [ [0] : y = 5 ] module [ [0] : x = 5 ] global [ ... ] Check variables in frame#0 let x = 5; (function() { let y = x; #debugger; })() Array = { className : Function description : function Array() { [native code] } objectId : type : function } y = { description : 5 type : number value : 5 } Evaluating: ++y updated y = { description : 6 type : number value : 6 } Evaluating: --y x = { description : 5 type : number value : 5 } Evaluating: ++x updated x = { description : 6 type : number value : 6 } Evaluating: --x module [ [0] : x = 5 ] global [ ... ] Check variables in frame#1 let x = 5; (function() { let y = x; debugger; })#() Array = { className : Function description : function Array() { [native code] } objectId : type : function } x = { description : 5 type : number value : 5 } Evaluating: ++x updated x = { description : 6 type : number value : 6 } Evaluating: --x Running test: testLocalVariableToplevel (anonymous) (module7:2:0) module [ [0] : x = 5 ] global [ ... ] Check variables in frame#0 let x = 5; #debugger; Array = { className : Function description : function Array() { [native code] } objectId : type : function } x = { description : 5 type : number value : 5 } Evaluating: ++x updated x = { description : 6 type : number value : 6 } Evaluating: --x