Tests that Runtime.callFunctionOn works with awaitPromise flag.

Running test: prepareTestSuite

Running test: testArguments
{
    id : <messageId>
    result : {
        result : {
            type : string
            value : undefined|NaN|[object Object]|[object Object]
        }
    }
}

Running test: testUnserializableArguments
{
    id : <messageId>
    result : {
        result : {
            type : string
            value : true|true|true|true|bigint
        }
    }
}

Running test: testComplexArguments
{
    id : <messageId>
    result : {
        result : {
            type : string
            value : bar
        }
    }
}

Running test: testSyntaxErrorInFunction
{
    id : <messageId>
    result : {
        exceptionDetails : {
            columnNumber : 2
            exception : {
                className : SyntaxError
                description : SyntaxError: Unexpected token }
                objectId : <objectId>
                subtype : error
                type : object
            }
            exceptionId : <exceptionId>
            lineNumber : 1
            scriptId : <scriptId>
            text : Uncaught
        }
        result : {
            className : SyntaxError
            description : SyntaxError: Unexpected token }
            objectId : <objectId>
            subtype : error
            type : object
        }
    }
}

Running test: testExceptionInFunctionExpression
{
    id : <messageId>
    result : {
        exceptionDetails : {
            columnNumber : 15
            exception : {
                className : Error
                description : Error     at <anonymous>:1:22     at <anonymous>:1:36
                objectId : <objectId>
                subtype : error
                type : object
            }
            exceptionId : <exceptionId>
            lineNumber : 0
            scriptId : <scriptId>
            stackTrace : {
                callFrames : [
                    [0] : {
                        columnNumber : 21
                        functionName : 
                        lineNumber : 0
                        scriptId : <scriptId>
                        url : 
                    }
                    [1] : {
                        columnNumber : 35
                        functionName : 
                        lineNumber : 0
                        scriptId : <scriptId>
                        url : 
                    }
                ]
            }
            text : Uncaught
        }
        result : {
            className : Error
            description : Error     at <anonymous>:1:22     at <anonymous>:1:36
            objectId : <objectId>
            subtype : error
            type : object
        }
    }
}

Running test: testFunctionReturnNotPromise
{
    id : <messageId>
    result : {
        result : {
            description : 239
            type : number
            value : 239
        }
    }
}

Running test: testFunctionReturnResolvedPromiseReturnByValue
{
    id : <messageId>
    result : {
        result : {
            type : object
            value : {
                a : 3
            }
        }
    }
}

Running test: testFunctionReturnResolvedPromiseWithPreview
{
    id : <messageId>
    result : {
        result : {
            className : Object
            description : Object
            objectId : <objectId>
            preview : {
                description : Object
                overflow : false
                properties : [
                    [0] : {
                        name : a
                        type : number
                        value : 3
                    }
                ]
                type : object
            }
            type : object
        }
    }
}

Running test: testFunctionReturnRejectedPromise
{
    id : <messageId>
    result : {
        exceptionDetails : {
            columnNumber : 0
            exception : {
                type : object
                value : {
                    a : 3
                }
            }
            exceptionId : <exceptionId>
            lineNumber : 0
            text : Uncaught (in promise)
        }
        result : {
            type : object
            value : {
                a : 3
            }
        }
    }
}

Running test: testEvaluateOnExecutionContext
{
    id : <messageId>
    result : {
        result : {
            description : 70
            type : number
            value : 70
        }
    }
}

Running test: testPassingBothObjectIdAndExecutionContextId
{
    error : {
        code : -32000
        message : ObjectId must not be specified together with executionContextId
    }
    id : <messageId>
}
