Tests that Runtime.callFunctionOn works with awaitPromise flag. Running test: testArguments { id : result : { result : { type : string value : undefined|NaN|[object Object]|[object Object] } } } Running test: testSyntaxErrorInFunction { id : result : { exceptionDetails : { columnNumber : 2 exception : { className : SyntaxError description : SyntaxError: Unexpected token } objectId : subtype : error type : object } exceptionId : lineNumber : 1 scriptId : text : Uncaught } result : { className : SyntaxError description : SyntaxError: Unexpected token } objectId : subtype : error type : object } } } Running test: testExceptionInFunctionExpression { id : result : { exceptionDetails : { columnNumber : 15 exception : { className : Error description : Error at :1:22 at :1:36 objectId : subtype : error type : object } exceptionId : lineNumber : 0 scriptId : text : Uncaught } result : { className : Error description : Error at :1:22 at :1:36 objectId : subtype : error type : object } } } Running test: testFunctionReturnNotPromise { code : -32000 message : Result of the function call is not a promise } Running test: testFunctionReturnResolvedPromiseReturnByValue { id : result : { result : { type : object value : { a : 3 } } } } Running test: testFunctionReturnResolvedPromiseWithPreview { id : result : { result : { className : Object description : Object objectId : preview : { description : Object overflow : false properties : [ [0] : { name : a type : number value : 3 } ] type : object } type : object } } } Running test: testFunctionReturnRejectedPromise { id : result : { exceptionDetails : { columnNumber : 0 exception : { type : object value : { a : 3 } } exceptionId : lineNumber : 0 text : Uncaught (in promise) } result : { type : object value : { a : 3 } } } }