Tests for break on exception and stepping. Running test: testStepThrougA function a() { #n(); }; function b() { c(); }; Running test: testStepThrougB paused on exception: { reasons : [ [0] : { reason : step } [1] : { reason : other } ] } function a() { n(); }; function b() { #c(); }; function c() { n(); }; function b() { c(); }; function c() { #n(); }; function d() { x = 1; try { e(); } catch(x) { x = 2; } }; Running test: testStepThrougD paused on exception: { reasons : [ [0] : { reason : step } [1] : { reason : other } ] } function c() { n(); }; function d() { #x = 1; try { e(); } catch(x) { x = 2; } }; function e() { n(); }; function c() { n(); }; function d() { x = 1; try { #e(); } catch(x) { x = 2; } }; function e() { n(); }; function d() { x = 1; try { e(); } catch(x) { x = 2; } }; function e() { #n(); }; function f() { x = 1; try { g(); } catch(x) { x = 2; } }; function c() { n(); }; function d() { x = 1; try { e(); } catch(x) { #x = 2; } }; function e() { n(); }; function c() { n(); }; function d() { x = 1; try { e(); } catch(x) { x = 2; } #}; function e() { n(); }; Running test: testStepThrougDWithBreakOnAllExceptions paused on exception: { reasons : [ [0] : { reason : step } [1] : { reason : other } ] } function c() { n(); }; function d() { #x = 1; try { e(); } catch(x) { x = 2; } }; function e() { n(); }; function c() { n(); }; function d() { x = 1; try { #e(); } catch(x) { x = 2; } }; function e() { n(); }; function d() { x = 1; try { e(); } catch(x) { x = 2; } }; function e() { #n(); }; function f() { x = 1; try { g(); } catch(x) { x = 2; } }; paused on exception: { className : ReferenceError description : ReferenceError: n is not defined at e (:6:16) at d (:5:29) at expr.js:1:1 objectId : subtype : error type : object uncaught : false } function d() { x = 1; try { e(); } catch(x) { x = 2; } }; function e() { #n(); }; function f() { x = 1; try { g(); } catch(x) { x = 2; } }; function c() { n(); }; function d() { x = 1; try { e(); } catch(x) { #x = 2; } }; function e() { n(); }; function c() { n(); }; function d() { x = 1; try { e(); } catch(x) { x = 2; } #}; function e() { n(); }; Running test: testStepThrougF paused on exception: { reasons : [ [0] : { reason : step } [1] : { reason : other } ] } function e() { n(); }; function f() { #x = 1; try { g(); } catch(x) { x = 2; } }; function g() { h(); }; function e() { n(); }; function f() { x = 1; try { #g(); } catch(x) { x = 2; } }; function g() { h(); }; function f() { x = 1; try { g(); } catch(x) { x = 2; } }; function g() { #h(); }; function h() { x = 1; throw 1; }; function g() { h(); }; function h() { #x = 1; throw 1; }; function g() { h(); }; function h() { x = 1; #throw 1; }; function e() { n(); }; function f() { x = 1; try { g(); } catch(x) { #x = 2; } }; function g() { h(); }; function e() { n(); }; function f() { x = 1; try { g(); } catch(x) { x = 2; } #}; function g() { h(); }; Running test: testStepThrougFWithBreakOnAllExceptions paused on exception: { reasons : [ [0] : { reason : step } [1] : { reason : other } ] } function e() { n(); }; function f() { #x = 1; try { g(); } catch(x) { x = 2; } }; function g() { h(); }; function e() { n(); }; function f() { x = 1; try { #g(); } catch(x) { x = 2; } }; function g() { h(); }; function f() { x = 1; try { g(); } catch(x) { x = 2; } }; function g() { #h(); }; function h() { x = 1; throw 1; }; function g() { h(); }; function h() { #x = 1; throw 1; }; function g() { h(); }; function h() { x = 1; #throw 1; }; paused on exception: { description : 1 type : number uncaught : false value : 1 } function g() { h(); }; function h() { x = 1; #throw 1; }; function e() { n(); }; function f() { x = 1; try { g(); } catch(x) { #x = 2; } }; function g() { h(); }; function e() { n(); }; function f() { x = 1; try { g(); } catch(x) { x = 2; } #}; function g() { h(); };