Tests that Runtime.getExceptionDetails works Running test: itShouldReturnExceptionDetailsForJSErrorObjects { id : result : { exceptionDetails : { columnNumber : 9 exception : { className : Error description : Error: error 1 at foo (:3:10) at :5:1 objectId : subtype : error type : object } exceptionId : lineNumber : 2 scriptId : stackTrace : { callFrames : [ [0] : { columnNumber : 9 functionName : foo lineNumber : 2 scriptId : url : } [1] : { columnNumber : 0 functionName : lineNumber : 4 scriptId : url : } ] } text : Error: error 1 } } } Running test: itShouldReturnIncompleteDetailsForJSErrorWithNoStack { id : result : { exceptionDetails : { columnNumber : -1 exception : { className : Error description : Error: error 1 at foo (:3:10) at :5:1 objectId : subtype : error type : object } exceptionId : lineNumber : -1 scriptId : text : Error: error 1 } } } Running test: itShouldReportAnErrorForNonJSErrorObjects { error : { code : -32000 message : errorObjectId is not a JS error object } id : } Running test: itShouldIncludeMetaData { id : result : { exceptionDetails : { columnNumber : 9 exception : { className : Error description : Error: myerror at foo (:3:10) at :5:1 objectId : subtype : error type : object } exceptionId : exceptionMetaData : { foo : bar } lineNumber : 2 scriptId : stackTrace : { callFrames : [ [0] : { columnNumber : 9 functionName : foo lineNumber : 2 scriptId : url : } [1] : { columnNumber : 0 functionName : lineNumber : 4 scriptId : url : } ] } text : Error: myerror } } }