Tests for break on exception and stepping.

Running test: testStepThrougA

function a() { #n(); };
function b() { c(); };


Running test: testStepThrougB
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
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
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 (<anonymous>:6:16)     at d (<anonymous>:5:29)     at expr.js:1:1
    objectId : <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
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
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(); };