RemoteObject.deepSerializedValue

Running test: PrimitiveValue
testing expression: undefined
Runtime.evaluate
{
    type : undefined
}
Runtime.callFunctionOn
{
    type : undefined
}
testing expression: null
Runtime.evaluate
{
    type : null
}
Runtime.callFunctionOn
{
    type : null
}
testing expression: 'foo'
Runtime.evaluate
{
    type : string
    value : foo
}
Runtime.callFunctionOn
{
    type : string
    value : foo
}
testing expression: true
Runtime.evaluate
{
    type : boolean
    value : true
}
Runtime.callFunctionOn
{
    type : boolean
    value : true
}
testing expression: false
Runtime.evaluate
{
    type : boolean
    value : false
}
Runtime.callFunctionOn
{
    type : boolean
    value : false
}

Running test: Number
testing expression: 123
Runtime.evaluate
{
    type : number
    value : 123
}
Runtime.callFunctionOn
{
    type : number
    value : 123
}
testing expression: 0.56
Runtime.evaluate
{
    type : number
    value : 0.56
}
Runtime.callFunctionOn
{
    type : number
    value : 0.56
}
testing expression: -0
Runtime.evaluate
{
    type : number
    value : -0
}
Runtime.callFunctionOn
{
    type : number
    value : -0
}
testing expression: +Infinity
Runtime.evaluate
{
    type : number
    value : Infinity
}
Runtime.callFunctionOn
{
    type : number
    value : Infinity
}
testing expression: -Infinity
Runtime.evaluate
{
    type : number
    value : -Infinity
}
Runtime.callFunctionOn
{
    type : number
    value : -Infinity
}
testing expression: NaN
Runtime.evaluate
{
    type : number
    value : NaN
}
Runtime.callFunctionOn
{
    type : number
    value : NaN
}

Running test: BigInt
testing expression: 123n
Runtime.evaluate
{
    type : bigint
    value : 123
}
Runtime.callFunctionOn
{
    type : bigint
    value : 123
}
testing expression: 1234567890n
Runtime.evaluate
{
    type : bigint
    value : 1234567890
}
Runtime.callFunctionOn
{
    type : bigint
    value : 1234567890
}

Running test: Symbol
testing expression: Symbol('foo')
Runtime.evaluate
{
    type : symbol
}
Runtime.callFunctionOn
{
    type : symbol
}

Running test: Function
testing expression: function qwe(){}
Runtime.evaluate
{
    type : function
}
Runtime.callFunctionOn
{
    type : function
}
testing expression: ()=>{}
Runtime.evaluate
{
    type : function
}
Runtime.callFunctionOn
{
    type : function
}

Running test: Array
testing expression: [1,2,undefined]
Runtime.evaluate
{
    type : array
    value : [
        [0] : {
            type : number
            value : 1
        }
        [1] : {
            type : number
            value : 2
        }
        [2] : {
            type : undefined
        }
    ]
}
Runtime.callFunctionOn
{
    type : array
    value : [
        [0] : {
            type : number
            value : 1
        }
        [1] : {
            type : number
            value : 2
        }
        [2] : {
            type : undefined
        }
    ]
}
testing expression: new Array(1,2,undefined)
Runtime.evaluate
{
    type : array
    value : [
        [0] : {
            type : number
            value : 1
        }
        [1] : {
            type : number
            value : 2
        }
        [2] : {
            type : undefined
        }
    ]
}
Runtime.callFunctionOn
{
    type : array
    value : [
        [0] : {
            type : number
            value : 1
        }
        [1] : {
            type : number
            value : 2
        }
        [2] : {
            type : undefined
        }
    ]
}

Running test: RegExp
testing expression: new RegExp('ab+c')
Runtime.evaluate
{
    type : regexp
    value : {
        pattern : ab+c
    }
}
Runtime.callFunctionOn
{
    type : regexp
    value : {
        pattern : ab+c
    }
}
testing expression: new RegExp('ab+c', 'ig')
Runtime.evaluate
{
    type : regexp
    value : {
        flags : gi
        pattern : ab+c
    }
}
Runtime.callFunctionOn
{
    type : regexp
    value : {
        flags : gi
        pattern : ab+c
    }
}

Running test: Date
testing expression: new Date('Thu Apr 07 2022 16:17:18 GMT')
Runtime.evaluate
{
    type : date
    value : 2022-04-07T16:17:18.000Z
}
Runtime.callFunctionOn
{
    type : date
    value : 2022-04-07T16:17:18.000Z
}
testing expression: new Date('Thu Apr 07 2022 16:17:18 GMT+1100')
Runtime.evaluate
{
    type : date
    value : 2022-04-07T05:17:18.000Z
}
Runtime.callFunctionOn
{
    type : date
    value : 2022-04-07T05:17:18.000Z
}
testing expression: new Date('Thu Apr 07 2022 16:17:18 GMT-1100')
Runtime.evaluate
{
    type : date
    value : 2022-04-08T03:17:18.000Z
}
Runtime.callFunctionOn
{
    type : date
    value : 2022-04-08T03:17:18.000Z
}

Running test: Error
testing expression: new Error()
Runtime.evaluate
{
    type : error
}
Runtime.callFunctionOn
{
    type : error
}
testing expression: new Error('qwe')
Runtime.evaluate
{
    type : error
}
Runtime.callFunctionOn
{
    type : error
}

Running test: Map
testing expression: new Map([['keyString1', {valueObject1: 1}], [{keyObject2: 2}, 'valueString2'], ['keyString3', new Array()]])
Runtime.evaluate
{
    type : map
    value : [
        [0] : [
            [0] : keyString1
            [1] : {
                type : object
                value : [
                    [0] : [
                        [0] : valueObject1
                        [1] : {
                            type : number
                            value : 1
                        }
                    ]
                ]
            }
        ]
        [1] : [
            [0] : {
                type : object
                value : [
                    [0] : [
                        [0] : keyObject2
                        [1] : {
                            type : number
                            value : 2
                        }
                    ]
                ]
            }
            [1] : {
                type : string
                value : valueString2
            }
        ]
        [2] : [
            [0] : keyString3
            [1] : {
                type : array
                value : [
                ]
            }
        ]
    ]
}
Runtime.callFunctionOn
{
    type : map
    value : [
        [0] : [
            [0] : keyString1
            [1] : {
                type : object
                value : [
                    [0] : [
                        [0] : valueObject1
                        [1] : {
                            type : number
                            value : 1
                        }
                    ]
                ]
            }
        ]
        [1] : [
            [0] : {
                type : object
                value : [
                    [0] : [
                        [0] : keyObject2
                        [1] : {
                            type : number
                            value : 2
                        }
                    ]
                ]
            }
            [1] : {
                type : string
                value : valueString2
            }
        ]
        [2] : [
            [0] : keyString3
            [1] : {
                type : array
                value : [
                ]
            }
        ]
    ]
}

Running test: WeakMap
testing expression: new WeakMap([[{valueObject1: 1}, 'keyString1'],[{valueObject2: 2}, 'keyString2']])
Runtime.evaluate
{
    type : weakmap
}
Runtime.callFunctionOn
{
    type : weakmap
}

Running test: Set
testing expression: new Set([{valueObject1: 1}, 'valueString2', new Array(), undefined])
Runtime.evaluate
{
    type : set
    value : [
        [0] : {
            type : object
            value : [
                [0] : [
                    [0] : valueObject1
                    [1] : {
                        type : number
                        value : 1
                    }
                ]
            ]
        }
        [1] : {
            type : string
            value : valueString2
        }
        [2] : {
            type : array
            value : [
            ]
        }
        [3] : {
            type : undefined
        }
    ]
}
Runtime.callFunctionOn
{
    type : set
    value : [
        [0] : {
            type : object
            value : [
                [0] : [
                    [0] : valueObject1
                    [1] : {
                        type : number
                        value : 1
                    }
                ]
            ]
        }
        [1] : {
            type : string
            value : valueString2
        }
        [2] : {
            type : array
            value : [
            ]
        }
        [3] : {
            type : undefined
        }
    ]
}

Running test: Weakset
testing expression: new WeakSet([{valueObject1: 1}, {valueObject2: 2}])
Runtime.evaluate
{
    type : weakset
}
Runtime.callFunctionOn
{
    type : weakset
}

Running test: Proxy
testing expression: new Proxy({}, ()=>{})
Runtime.evaluate
{
    type : proxy
}
Runtime.callFunctionOn
{
    type : proxy
}

Running test: Promise
testing expression: new Promise(()=>{})
Runtime.evaluate
{
    type : promise
}
Runtime.callFunctionOn
{
    type : promise
}

Running test: Typedarray
testing expression: new Uint16Array()
Runtime.evaluate
{
    type : typedarray
}
Runtime.callFunctionOn
{
    type : typedarray
}

Running test: ArrayBuffer
testing expression: new ArrayBuffer()
Runtime.evaluate
{
    type : arraybuffer
}
Runtime.callFunctionOn
{
    type : arraybuffer
}

Running test: Duplicate
testing expression: (()=>{const foo={a: []}; const bar=[1,2]; const result={1: foo, 2: foo, 3: bar, 4: bar}; result.self=result; return result; })()
Runtime.evaluate
{
    type : object
    value : [
        [0] : [
            [0] : 1
            [1] : {
                type : object
                value : [
                    [0] : [
                        [0] : a
                        [1] : {
                            type : array
                            value : [
                            ]
                        }
                    ]
                ]
                weakLocalObjectReference : 1
            }
        ]
        [1] : [
            [0] : 2
            [1] : {
                type : object
                weakLocalObjectReference : 1
            }
        ]
        [2] : [
            [0] : 3
            [1] : {
                type : array
                value : [
                    [0] : {
                        type : number
                        value : 1
                    }
                    [1] : {
                        type : number
                        value : 2
                    }
                ]
                weakLocalObjectReference : 2
            }
        ]
        [3] : [
            [0] : 4
            [1] : {
                type : array
                weakLocalObjectReference : 2
            }
        ]
        [4] : [
            [0] : self
            [1] : {
                type : object
                weakLocalObjectReference : 3
            }
        ]
    ]
    weakLocalObjectReference : 3
}
Runtime.callFunctionOn
{
    type : object
    value : [
        [0] : [
            [0] : 1
            [1] : {
                type : object
                value : [
                    [0] : [
                        [0] : a
                        [1] : {
                            type : array
                            value : [
                            ]
                        }
                    ]
                ]
                weakLocalObjectReference : 1
            }
        ]
        [1] : [
            [0] : 2
            [1] : {
                type : object
                weakLocalObjectReference : 1
            }
        ]
        [2] : [
            [0] : 3
            [1] : {
                type : array
                value : [
                    [0] : {
                        type : number
                        value : 1
                    }
                    [1] : {
                        type : number
                        value : 2
                    }
                ]
                weakLocalObjectReference : 2
            }
        ]
        [3] : [
            [0] : 4
            [1] : {
                type : array
                weakLocalObjectReference : 2
            }
        ]
        [4] : [
            [0] : self
            [1] : {
                type : object
                weakLocalObjectReference : 3
            }
        ]
    ]
    weakLocalObjectReference : 3
}

Running test: Object
testing expression: {nullKey: null, stringKey: 'foo',boolKey: true,numberKey: 123,bigintKey: 123n,symbolKey: Symbol('foo'),functionKey: () => {},arrayKey:[1],undefinedKey:undefined}
Runtime.evaluate
{
    type : object
    value : [
        [0] : [
            [0] : nullKey
            [1] : {
                type : null
            }
        ]
        [1] : [
            [0] : stringKey
            [1] : {
                type : string
                value : foo
            }
        ]
        [2] : [
            [0] : boolKey
            [1] : {
                type : boolean
                value : true
            }
        ]
        [3] : [
            [0] : numberKey
            [1] : {
                type : number
                value : 123
            }
        ]
        [4] : [
            [0] : bigintKey
            [1] : {
                type : bigint
                value : 123
            }
        ]
        [5] : [
            [0] : symbolKey
            [1] : {
                type : symbol
            }
        ]
        [6] : [
            [0] : functionKey
            [1] : {
                type : function
            }
        ]
        [7] : [
            [0] : arrayKey
            [1] : {
                type : array
                value : [
                    [0] : {
                        type : number
                        value : 1
                    }
                ]
            }
        ]
        [8] : [
            [0] : undefinedKey
            [1] : {
                type : undefined
            }
        ]
    ]
}
Runtime.callFunctionOn
{
    type : object
    value : [
        [0] : [
            [0] : nullKey
            [1] : {
                type : null
            }
        ]
        [1] : [
            [0] : stringKey
            [1] : {
                type : string
                value : foo
            }
        ]
        [2] : [
            [0] : boolKey
            [1] : {
                type : boolean
                value : true
            }
        ]
        [3] : [
            [0] : numberKey
            [1] : {
                type : number
                value : 123
            }
        ]
        [4] : [
            [0] : bigintKey
            [1] : {
                type : bigint
                value : 123
            }
        ]
        [5] : [
            [0] : symbolKey
            [1] : {
                type : symbol
            }
        ]
        [6] : [
            [0] : functionKey
            [1] : {
                type : function
            }
        ]
        [7] : [
            [0] : arrayKey
            [1] : {
                type : array
                value : [
                    [0] : {
                        type : number
                        value : 1
                    }
                ]
            }
        ]
        [8] : [
            [0] : undefinedKey
            [1] : {
                type : undefined
            }
        ]
    ]
}
testing expression: {key_level_1: {key_level_2: {key_level_3: 'value_level_3'}}}
Runtime.evaluate
{
    type : object
    value : [
        [0] : [
            [0] : key_level_1
            [1] : {
                type : object
                value : [
                    [0] : [
                        [0] : key_level_2
                        [1] : {
                            type : object
                            value : [
                                [0] : [
                                    [0] : key_level_3
                                    [1] : {
                                        type : string
                                        value : value_level_3
                                    }
                                ]
                            ]
                        }
                    ]
                ]
            }
        ]
    ]
}
Runtime.callFunctionOn
{
    type : object
    value : [
        [0] : [
            [0] : key_level_1
            [1] : {
                type : object
                value : [
                    [0] : [
                        [0] : key_level_2
                        [1] : {
                            type : object
                            value : [
                                [0] : [
                                    [0] : key_level_3
                                    [1] : {
                                        type : string
                                        value : value_level_3
                                    }
                                ]
                            ]
                        }
                    ]
                ]
            }
        ]
    ]
}
testing expression: {1: 'value'}
Runtime.evaluate
{
    type : object
    value : [
        [0] : [
            [0] : 1
            [1] : {
                type : string
                value : value
            }
        ]
    ]
}
Runtime.callFunctionOn
{
    type : object
    value : [
        [0] : [
            [0] : 1
            [1] : {
                type : string
                value : value
            }
        ]
    ]
}
testing expression: {'1': 'value'}
Runtime.evaluate
{
    type : object
    value : [
        [0] : [
            [0] : 1
            [1] : {
                type : string
                value : value
            }
        ]
    ]
}
Runtime.callFunctionOn
{
    type : object
    value : [
        [0] : [
            [0] : 1
            [1] : {
                type : string
                value : value
            }
        ]
    ]
}
testing expression: (()=>{const s = Symbol('foo'); const a={}; a[s]='symbol_value'; return a;})()
Runtime.evaluate
{
    type : object
    value : [
    ]
}
Runtime.callFunctionOn
{
    type : object
    value : [
    ]
}
