Checks that breaks in framework code correctly processed.

Running test: testConsoleAssert
> all frames in framework:
> mixed, top frame in framework:
frameworkAssert (framework.js:10:10)
(anonymous) (user.js:0:0)


Running test: testCaughtException
> all frames in framework:
> mixed, top frame in framework:

Running test: testUncaughtException
> all frames in framework:
> mixed, top frame in framework:
throwUncaughtError (framework.js:21:2)
(anonymous) (user.js:0:0)


Running test: testUncaughtExceptionWithInlinedFrame
> mixed top frame in framework:
throwUserException (user.js:66:2)
inlinedWrapper (framework.js:56:4)
throwInlinedUncaughtError (framework.js:60:2)
(anonymous) (framework.js:0:0)


Running test: testBreakpoint
> all frames in framework:
breakpoint (framework.js:25:2)
(anonymous) (framework.js:0:0)

> mixed, top frame in framework:
breakpoint (framework.js:25:2)
(anonymous) (user.js:0:0)


Running test: testDebuggerStatement
> all frames in framework:
> mixed, top frame in framework:

Running test: testSyncDOMBreakpoint
> all frames in framework:
> mixed, top frame in framework:
syncDOMBreakpoint (framework.js:33:12)
(anonymous) (user.js:0:0)


Running test: testSyncDOMBreakpointWithInlinedUserFrame
> mixed, top frame in framework:
syncDOMBreakpoint (framework.js:33:12)
userFunction (user.js:70:2)
inlinedWrapper (framework.js:65:4)
syncDOMBreakpointWithInlinedUserFrame (framework.js:69:2)
(anonymous) (framework.js:0:0)


Running test: testAsyncDOMBreakpoint
> all frames in framework:
(anonymous) (user.js:0:0)


Running test: testCaughtSyntaxError
> all frames in framework:
> mixed, top frame in framework:

Running test: testCaughtJSONParseError
> all frames in framework:
> mixed, top frame in framework:
