v8/test/inspector/runtime/remote-object-expected.txt
Benedikt Meurer 088de5d391 [inspector] Speed up inspection of large BigInts.
For large BigInts, computing the decimal representation can take a
very long time, so send them as hexadecimal strings instead. Also
make sure to abbreviate the RemoteObject description for bigints
appropriately always.

Also-By: jarin@chromium.org
Fixed: chromium:1068663
Change-Id: I2f7e4e1cbd2f66ce45be307fb787e101d9a8e2a7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3578653
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79872}
2022-04-08 09:30:55 +00:00

3186 lines
80 KiB
Plaintext

Tests Runtime.RemoteObject.
Running test: testNull
'null', returnByValue: false, generatePreview: false
{
result : {
subtype : null
type : object
value : null
}
}
'null', returnByValue: true, generatePreview: false
{
result : {
subtype : null
type : object
value : null
}
}
'null', returnByValue: false, generatePreview: true
{
result : {
subtype : null
type : object
value : null
}
}
Running test: testBoolean
'true', returnByValue: false, generatePreview: false
{
result : {
type : boolean
value : true
}
}
'false', returnByValue: false, generatePreview: false
{
result : {
type : boolean
value : false
}
}
'true', returnByValue: true, generatePreview: false
{
result : {
type : boolean
value : true
}
}
'true', returnByValue: false, generatePreview: true
{
result : {
type : boolean
value : true
}
}
Running test: testNumber
'0 / {}', returnByValue: false, generatePreview: false
{
result : {
description : NaN
type : number
unserializableValue : NaN
}
}
'-0', returnByValue: false, generatePreview: false
{
result : {
description : -0
type : number
unserializableValue : -0
}
}
'0', returnByValue: false, generatePreview: false
{
result : {
description : 0
type : number
value : 0
}
}
'1/0', returnByValue: false, generatePreview: false
{
result : {
description : Infinity
type : number
unserializableValue : Infinity
}
}
'-1/0', returnByValue: false, generatePreview: false
{
result : {
description : -Infinity
type : number
unserializableValue : -Infinity
}
}
'2.3456', returnByValue: false, generatePreview: false
{
result : {
description : 2.3456
type : number
value : 2.3456
}
}
'2.3456', returnByValue: true, generatePreview: false
{
result : {
description : 2.3456
type : number
value : 2.3456
}
}
'1/0', returnByValue: true, generatePreview: false
{
result : {
description : Infinity
type : number
unserializableValue : Infinity
}
}
'({a: 1/0})', returnByValue: true, generatePreview: false
{
result : {
type : object
value : {
a : null
}
}
}
Running test: testUndefined
'undefined', returnByValue: false, generatePreview: false
{
result : {
type : undefined
}
}
'undefined', returnByValue: true, generatePreview: false
{
result : {
type : undefined
}
}
'({a : undefined})', returnByValue: true, generatePreview: false
{
result : {
type : object
value : {
}
}
}
'([1, undefined])', returnByValue: true, generatePreview: false
{
result : {
type : object
value : [
[0] : 1
[1] : null
]
}
}
Running test: testString
''Hello!'', returnByValue: false, generatePreview: false
{
result : {
type : string
value : Hello!
}
}
''Hello!'', returnByValue: true, generatePreview: false
{
result : {
type : string
value : Hello!
}
}
''Hello!'', returnByValue: false, generatePreview: true
{
result : {
type : string
value : Hello!
}
}
Running test: testSymbol
'Symbol()', returnByValue: false, generatePreview: true
{
result : {
description : Symbol()
objectId : <objectId>
type : symbol
}
}
'Symbol(42)', returnByValue: false, generatePreview: true
{
result : {
description : Symbol(42)
objectId : <objectId>
type : symbol
}
}
'Symbol('abc')', returnByValue: false, generatePreview: true
{
result : {
description : Symbol(abc)
objectId : <objectId>
type : symbol
}
}
'Symbol('abc')', returnByValue: true, generatePreview: false
{
error : {
code : -32000
message : Object couldn't be returned by value
}
id : <messageId>
}
Running test: testReturnByValue
Empty object
'({})', returnByValue: true, generatePreview: false
{
result : {
type : object
value : {
}
}
}
Object with properties
'({a:1, b:2})', returnByValue: true, generatePreview: false
{
result : {
type : object
value : {
a : 1
b : 2
}
}
}
Object with cycle
'a = {};a.a = a; a', returnByValue: true, generatePreview: false
{
code : -32000
message : Object reference chain is too long
}
Function () => 42
'() => 42', returnByValue: true, generatePreview: false
{
result : {
type : function
value : {
}
}
}
Symbol(42)
'Symbol(42)', returnByValue: true, generatePreview: false
{
code : -32000
message : Object couldn't be returned by value
}
Error object
'new Error()', returnByValue: true, generatePreview: false
{
result : {
type : object
value : {
}
}
}
Running test: testFunction
'(() => 42)', returnByValue: false, generatePreview: false
{
result : {
className : Function
description : () => 42
objectId : <objectId>
type : function
}
}
'(function() { return 42 })', returnByValue: false, generatePreview: false
{
result : {
className : Function
description : function() { return 42 }
objectId : <objectId>
type : function
}
}
'(function name() { return 42 })', returnByValue: false, generatePreview: false
{
result : {
className : Function
description : function name() { return 42 }
objectId : <objectId>
type : function
}
}
'(async function asyncName() { return 42 })', returnByValue: false, generatePreview: false
{
result : {
className : AsyncFunction
description : async function asyncName() { return 42 }
objectId : <objectId>
type : function
}
}
'(async () => 42)', returnByValue: false, generatePreview: false
{
result : {
className : AsyncFunction
description : async () => 42
objectId : <objectId>
type : function
}
}
'(function (a) { return a; }).bind(null, 42)', returnByValue: false, generatePreview: false
{
result : {
className : Function
description : function () { [native code] }
objectId : <objectId>
type : function
}
}
'a = (function() { return 42 }); a.b = 2; a', returnByValue: false, generatePreview: true
{
result : {
className : Function
description : function() { return 42 }
objectId : <objectId>
type : function
}
}
'(function() { return 42 })', returnByValue: true, generatePreview: false
{
result : {
type : function
value : {
}
}
}
'a = (function() { return 42 }); a.b = 2; a', returnByValue: true, generatePreview: false
{
result : {
type : function
value : {
b : 2
}
}
}
Running test: testBigInt
'1n', returnByValue: false, generatePreview: false
{
result : {
description : 1n
type : bigint
unserializableValue : 1n
}
}
'-5n', returnByValue: false, generatePreview: false
{
result : {
description : -5n
type : bigint
unserializableValue : -5n
}
}
'1234567890123456789012345678901234567890n', returnByValue: false, generatePreview: false
{
result : {
description : 1234567890123456789012345678901234567890n
type : bigint
unserializableValue : 1234567890123456789012345678901234567890n
}
}
'-5n', returnByValue: true, generatePreview: false
{
result : {
description : -5n
type : bigint
unserializableValue : -5n
}
}
'-5n', returnByValue: false, generatePreview: true
{
result : {
description : -5n
type : bigint
unserializableValue : -5n
}
}
'1n << 9_999_999n', returnByValue: false, generatePreview: false
{
result : {
description : 0x800000000000000000000000000000000000000000000000…000000000000000000000000000000000000000000000000n
type : bigint
unserializableValue : <expected unserializableValue>
}
}
'-1n << 9_999_999n', returnByValue: false, generatePreview: false
100
{
result : {
description : -0x80000000000000000000000000000000000000000000000…000000000000000000000000000000000000000000000000n
type : bigint
unserializableValue : <expected unserializableValue>
}
}
Running test: testRegExp
'/w+/d', returnByValue: false, generatePreview: false
{
result : {
className : RegExp
description : /w+/d
objectId : <objectId>
subtype : regexp
type : object
}
}
'/w+/g', returnByValue: false, generatePreview: false
{
result : {
className : RegExp
description : /w+/g
objectId : <objectId>
subtype : regexp
type : object
}
}
'/w+/i', returnByValue: false, generatePreview: false
{
result : {
className : RegExp
description : /w+/i
objectId : <objectId>
subtype : regexp
type : object
}
}
'/w+/m', returnByValue: false, generatePreview: false
{
result : {
className : RegExp
description : /w+/m
objectId : <objectId>
subtype : regexp
type : object
}
}
'/w+/s', returnByValue: false, generatePreview: false
{
result : {
className : RegExp
description : /w+/s
objectId : <objectId>
subtype : regexp
type : object
}
}
'/w+/u', returnByValue: false, generatePreview: false
{
result : {
className : RegExp
description : /w+/u
objectId : <objectId>
subtype : regexp
type : object
}
}
'/w+/y', returnByValue: false, generatePreview: false
{
result : {
className : RegExp
description : /w+/y
objectId : <objectId>
subtype : regexp
type : object
}
}
'/w+/dgimsuy', returnByValue: false, generatePreview: false
{
result : {
className : RegExp
description : /w+/dgimsuy
objectId : <objectId>
subtype : regexp
type : object
}
}
'new RegExp('\w+', 'g')', returnByValue: false, generatePreview: false
{
result : {
className : RegExp
description : /w+/g
objectId : <objectId>
subtype : regexp
type : object
}
}
'new RegExp('foo/bar')', returnByValue: false, generatePreview: false
{
result : {
className : RegExp
description : /foo\/bar/
objectId : <objectId>
subtype : regexp
type : object
}
}
'var re = /./dgimsuy;
re.toString = () => 'foo';
re', returnByValue: false, generatePreview: false
{
result : {
className : RegExp
description : /./dgimsuy
objectId : <objectId>
subtype : regexp
type : object
}
}
'var re = new RegExp('\w+', 'g');
re.prop = 32;
re', returnByValue: false, generatePreview: true
{
result : {
className : RegExp
description : /w+/g
objectId : <objectId>
preview : {
description : /w+/g
overflow : true
properties : [
[0] : {
name : prop
type : number
value : 32
}
[1] : {
name : lastIndex
type : number
value : 0
}
[2] : {
name : dotAll
type : boolean
value : false
}
[3] : {
name : flags
type : string
value : g
}
[4] : {
name : global
type : boolean
value : true
}
]
subtype : regexp
type : object
}
subtype : regexp
type : object
}
}
'var re = new RegExp('\w+', 'g');
re.prop = 32;
re', returnByValue: true, generatePreview: false
{
result : {
type : object
value : {
prop : 32
}
}
}
Running test: testDate
'new Date('May 18, 1991 03:24:00')', returnByValue: false, generatePreview: true
{
result : {
className : Date
description : <expected description>
objectId : <objectId>
preview : {
description : <expected description>
overflow : false
properties : [
]
subtype : date
type : object
}
subtype : date
type : object
}
}
'new Date(2018, 9, 31)', returnByValue: false, generatePreview: true
{
result : {
className : Date
description : <expected description>
objectId : <objectId>
preview : {
description : <expected description>
overflow : false
properties : [
]
subtype : date
type : object
}
subtype : date
type : object
}
}
'a = new Date(2018, 9, 31); a.b = 2; a', returnByValue: false, generatePreview: true
{
result : {
className : Date
description : <expected description>
objectId : <objectId>
preview : {
description : <expected description>
overflow : false
properties : [
[0] : {
name : b
type : number
value : 2
}
]
subtype : date
type : object
}
subtype : date
type : object
}
}
'a = new Date(2018, 9, 31); a.toString = date => 'bar'; a', returnByValue: false, generatePreview: true
{
result : {
className : Date
description : <expected description>
objectId : <objectId>
preview : {
description : <expected description>
overflow : false
properties : [
[0] : {
name : toString
type : function
value :
}
]
subtype : date
type : object
}
subtype : date
type : object
}
}
'a = new Date(2018, 9, 31); a[Symbol.toPrimitive] = date => 'bar'; a', returnByValue: false, generatePreview: true
{
result : {
className : Date
description : <expected description>
objectId : <objectId>
preview : {
description : <expected description>
overflow : false
properties : [
]
subtype : date
type : object
}
subtype : date
type : object
}
}
Running test: testMap
'new Map()', returnByValue: false, generatePreview: true
{
result : {
className : Map
description : Map(0)
objectId : <objectId>
preview : {
description : Map(0)
overflow : false
properties : [
[0] : {
name : size
type : number
value : 0
}
]
subtype : map
type : object
}
subtype : map
type : object
}
}
'new Map([[1,2]])', returnByValue: false, generatePreview: true
{
result : {
className : Map
description : Map(1)
objectId : <objectId>
preview : {
description : Map(1)
entries : [
[0] : {
key : {
description : 1
overflow : false
properties : [
]
type : number
}
value : {
description : 2
overflow : false
properties : [
]
type : number
}
}
]
overflow : false
properties : [
[0] : {
name : size
type : number
value : 1
}
]
subtype : map
type : object
}
subtype : map
type : object
}
}
'a = new Map(); a.set(a, a); a', returnByValue: false, generatePreview: true
{
result : {
className : Map
description : Map(1)
objectId : <objectId>
preview : {
description : Map(1)
entries : [
[0] : {
key : {
description : Map(1)
overflow : true
properties : [
[0] : {
name : size
type : number
value : 1
}
]
subtype : map
type : object
}
value : {
description : Map(1)
overflow : true
properties : [
[0] : {
name : size
type : number
value : 1
}
]
subtype : map
type : object
}
}
]
overflow : false
properties : [
[0] : {
name : size
type : number
value : 1
}
]
subtype : map
type : object
}
subtype : map
type : object
}
}
'new Map([['a','b']])', returnByValue: false, generatePreview: false
{
result : {
className : Map
description : Map(1)
objectId : <objectId>
subtype : map
type : object
}
}
'({ a: new Map([['a','b']]) })', returnByValue: false, generatePreview: true
{
result : {
className : Object
description : Object
objectId : <objectId>
preview : {
description : Object
overflow : false
properties : [
[0] : {
name : a
subtype : map
type : object
value : Map(1)
}
]
type : object
}
type : object
}
}
'm = new Map([['a', {b: 2}]])
m.d = 42;
m', returnByValue: false, generatePreview: true
{
result : {
className : Map
description : Map(1)
objectId : <objectId>
preview : {
description : Map(1)
entries : [
[0] : {
key : {
description : a
overflow : false
properties : [
]
type : string
}
value : {
description : Object
overflow : false
properties : [
[0] : {
name : b
type : number
value : 2
}
]
type : object
}
}
]
overflow : false
properties : [
[0] : {
name : d
type : number
value : 42
}
[1] : {
name : size
type : number
value : 1
}
]
subtype : map
type : object
}
subtype : map
type : object
}
}
'm = new Map([['a', {b: 2}]])
m.d = 42;
m', returnByValue: true, generatePreview: false
{
result : {
type : object
value : {
d : 42
}
}
}
'new Map([['a', {b: 2}]]).values()', returnByValue: false, generatePreview: false
{
result : {
className : MapIterator
description : MapIterator
objectId : <objectId>
subtype : iterator
type : object
}
}
'new Map([['a', {b: 2}]]).values()', returnByValue: false, generatePreview: true
{
result : {
className : MapIterator
description : MapIterator
objectId : <objectId>
preview : {
description : MapIterator
entries : [
[0] : {
value : {
description : Object
overflow : false
properties : [
[0] : {
name : b
type : number
value : 2
}
]
type : object
}
}
]
overflow : false
properties : [
]
subtype : iterator
type : object
}
subtype : iterator
type : object
}
}
'it = new Map([['a', {b: 2}]]).values(); it.next(); it', returnByValue: false, generatePreview: true
{
result : {
className : MapIterator
description : MapIterator
objectId : <objectId>
preview : {
description : MapIterator
overflow : false
properties : [
]
subtype : iterator
type : object
}
subtype : iterator
type : object
}
}
'new Map([['a', {b: 2}]]).values()', returnByValue: true, generatePreview: false
{
result : {
type : object
value : {
}
}
}
'new Map([['a', {b: 2}]]).entries()', returnByValue: false, generatePreview: false
{
result : {
className : MapIterator
description : MapIterator
objectId : <objectId>
subtype : iterator
type : object
}
}
'new Map([['a', {b: 2}]]).entries()', returnByValue: false, generatePreview: true
{
result : {
className : MapIterator
description : MapIterator
objectId : <objectId>
preview : {
description : MapIterator
entries : [
[0] : {
key : {
description : a
overflow : false
properties : [
]
type : string
}
value : {
description : Object
overflow : false
properties : [
[0] : {
name : b
type : number
value : 2
}
]
type : object
}
}
]
overflow : false
properties : [
]
subtype : iterator
type : object
}
subtype : iterator
type : object
}
}
'it = new Map([['a', {b: 2}]]).entries(); it.next(); it', returnByValue: false, generatePreview: true
{
result : {
className : MapIterator
description : MapIterator
objectId : <objectId>
preview : {
description : MapIterator
overflow : false
properties : [
]
subtype : iterator
type : object
}
subtype : iterator
type : object
}
}
'new Map([['a', {b: 2}]]).entries()', returnByValue: true, generatePreview: false
{
result : {
type : object
value : {
}
}
}
Running test: testSet
'new Set([1])', returnByValue: false, generatePreview: true
{
result : {
className : Set
description : Set(1)
objectId : <objectId>
preview : {
description : Set(1)
entries : [
[0] : {
value : {
description : 1
overflow : false
properties : [
]
type : number
}
}
]
overflow : false
properties : [
[0] : {
name : size
type : number
value : 1
}
]
subtype : set
type : object
}
subtype : set
type : object
}
}
'new Set([1])', returnByValue: true, generatePreview: false
{
result : {
type : object
value : {
}
}
}
'new Set([1,2,3,4,5,6,7])', returnByValue: false, generatePreview: true
{
result : {
className : Set
description : Set(7)
objectId : <objectId>
preview : {
description : Set(7)
entries : [
[0] : {
value : {
description : 1
overflow : false
properties : [
]
type : number
}
}
[1] : {
value : {
description : 2
overflow : false
properties : [
]
type : number
}
}
[2] : {
value : {
description : 3
overflow : false
properties : [
]
type : number
}
}
[3] : {
value : {
description : 4
overflow : false
properties : [
]
type : number
}
}
[4] : {
value : {
description : 5
overflow : false
properties : [
]
type : number
}
}
]
overflow : true
properties : [
[0] : {
name : size
type : number
value : 7
}
]
subtype : set
type : object
}
subtype : set
type : object
}
}
'new Set([1,2,3]).values()', returnByValue: false, generatePreview: true
{
result : {
className : SetIterator
description : SetIterator
objectId : <objectId>
preview : {
description : SetIterator
entries : [
[0] : {
value : {
description : 1
overflow : false
properties : [
]
type : number
}
}
[1] : {
value : {
description : 2
overflow : false
properties : [
]
type : number
}
}
[2] : {
value : {
description : 3
overflow : false
properties : [
]
type : number
}
}
]
overflow : false
properties : [
]
subtype : iterator
type : object
}
subtype : iterator
type : object
}
}
'it = new Set([1,2,3]).values(); it.next(); it', returnByValue: false, generatePreview: true
{
result : {
className : SetIterator
description : SetIterator
objectId : <objectId>
preview : {
description : SetIterator
entries : [
[0] : {
value : {
description : 2
overflow : false
properties : [
]
type : number
}
}
[1] : {
value : {
description : 3
overflow : false
properties : [
]
type : number
}
}
]
overflow : false
properties : [
]
subtype : iterator
type : object
}
subtype : iterator
type : object
}
}
Running test: testWeakMap
'new WeakMap()', returnByValue: false, generatePreview: true
{
result : {
className : WeakMap
description : WeakMap
objectId : <objectId>
preview : {
description : WeakMap
overflow : false
properties : [
]
subtype : weakmap
type : object
}
subtype : weakmap
type : object
}
}
'new WeakMap([[this, 1]])', returnByValue: false, generatePreview: true
{
result : {
className : WeakMap
description : WeakMap
objectId : <objectId>
preview : {
description : WeakMap
entries : [
[0] : {
key : {
description : global
overflow : true
properties : [
[0] : {
name : setTimeout
type : function
value :
}
[1] : {
name : inspector
type : object
value : Object
}
[2] : {
name : a
subtype : map
type : object
value : Map(1)
}
[3] : {
name : re
subtype : regexp
type : object
value : /w+/g
}
[4] : {
name : m
subtype : map
type : object
value : Map(1)
}
]
type : object
}
value : {
description : 1
overflow : false
properties : [
]
type : number
}
}
]
overflow : false
properties : [
]
subtype : weakmap
type : object
}
subtype : weakmap
type : object
}
}
Running test: testWeakSet
'new WeakSet()', returnByValue: false, generatePreview: true
{
result : {
className : WeakSet
description : WeakSet
objectId : <objectId>
preview : {
description : WeakSet
overflow : false
properties : [
]
subtype : weakset
type : object
}
subtype : weakset
type : object
}
}
'new WeakSet([this])', returnByValue: false, generatePreview: true
{
result : {
className : WeakSet
description : WeakSet
objectId : <objectId>
preview : {
description : WeakSet
entries : [
[0] : {
value : {
description : global
overflow : true
properties : [
[0] : {
name : setTimeout
type : function
value :
}
[1] : {
name : inspector
type : object
value : Object
}
[2] : {
name : a
subtype : map
type : object
value : Map(1)
}
[3] : {
name : re
subtype : regexp
type : object
value : /w+/g
}
[4] : {
name : m
subtype : map
type : object
value : Map(1)
}
]
type : object
}
}
]
overflow : false
properties : [
]
subtype : weakset
type : object
}
subtype : weakset
type : object
}
}
Running test: testGenerator
'g = (function*(){ yield 42; })(); g.a = 2; g', returnByValue: false, generatePreview: true
{
result : {
className : Generator
description : Generator
objectId : <objectId>
preview : {
description : Generator
overflow : false
properties : [
[0] : {
name : [[GeneratorState]]
type : string
value : suspended
}
[1] : {
name : a
type : number
value : 2
}
]
subtype : generator
type : object
}
subtype : generator
type : object
}
}
Running test: testError
'new Error()', returnByValue: false, generatePreview: false
{
result : {
className : Error
description : Error at <anonymous>:1:1
objectId : <objectId>
subtype : error
type : object
}
}
'new Error('abc')', returnByValue: false, generatePreview: false
{
result : {
className : Error
description : Error: abc at <anonymous>:1:1
objectId : <objectId>
subtype : error
type : object
}
}
'new Error('at\nat')', returnByValue: false, generatePreview: false
{
result : {
className : Error
description : Error: at at at <anonymous>:1:1
objectId : <objectId>
subtype : error
type : object
}
}
'new Error('preview')', returnByValue: true, generatePreview: false
{
result : {
type : object
value : {
}
}
}
'new Error('preview')', returnByValue: false, generatePreview: true
{
result : {
className : Error
description : Error: preview at <anonymous>:1:1
objectId : <objectId>
preview : {
description : Error: preview at <anonymous>:1:1
overflow : false
properties : [
[0] : {
name : stack
type : string
value : Error: preview at <anonymous>:1:1
}
[1] : {
name : message
type : string
value : preview
}
]
subtype : error
type : object
}
subtype : error
type : object
}
}
'({a: new Error('preview')})', returnByValue: false, generatePreview: true
{
result : {
className : Object
description : Object
objectId : <objectId>
preview : {
description : Object
overflow : false
properties : [
[0] : {
name : a
subtype : error
type : object
value : Error: preview at <anonymous>:1:6
}
]
type : object
}
type : object
}
}
'a = new Error('preview and a'); a.a = 123; a', returnByValue: false, generatePreview: true
{
result : {
className : Error
description : Error: preview and a at <anonymous>:1:5
objectId : <objectId>
preview : {
description : Error: preview and a at <anonymous>:1:5
overflow : false
properties : [
[0] : {
name : a
type : number
value : 123
}
[1] : {
name : stack
type : string
value : Error: preview and a at <anonymous>:1:5
}
[2] : {
name : message
type : string
value : preview and a
}
]
subtype : error
type : object
}
subtype : error
type : object
}
}
'a = new Error('preview and a'); a.a = 123; a', returnByValue: true, generatePreview: false
{
result : {
type : object
value : {
a : 123
}
}
}
Running test: testCustomError
'class CustomError extends Error {}; a = new CustomError(); delete a.stack; a', returnByValue: false, generatePreview: false
{
result : {
className : CustomError
description : CustomError
objectId : <objectId>
subtype : error
type : object
}
}
Running test: testCustomErrorWithMessage
'class CustomMsgError extends Error {}; a = new CustomMsgError(); delete a.stack; a.message = 'foobar'; a', returnByValue: false, generatePreview: false
{
result : {
className : CustomMsgError
description : CustomMsgError: foobar
objectId : <objectId>
subtype : error
type : object
}
}
Running test: testProxy
'new Proxy({}, {})', returnByValue: false, generatePreview: false
{
result : {
className : Object
description : Proxy
objectId : <objectId>
subtype : proxy
type : object
}
}
'new Proxy(new Error(), {})', returnByValue: false, generatePreview: false
{
result : {
className : Object
description : Proxy
objectId : <objectId>
subtype : proxy
type : object
}
}
'new Proxy({c: 3}, {d: 4})', returnByValue: true, generatePreview: false
{
result : {
type : object
value : {
}
}
}
'new Proxy({a: 1}, {b: 2})', returnByValue: false, generatePreview: true
{
result : {
className : Object
description : Proxy
objectId : <objectId>
preview : {
description : Proxy
overflow : false
properties : [
[0] : {
name : a
type : number
value : 1
}
]
subtype : proxy
type : object
}
subtype : proxy
type : object
}
}
'({e: new Proxy({a: 1}, {b: 2})})', returnByValue: false, generatePreview: true
{
result : {
className : Object
description : Object
objectId : <objectId>
preview : {
description : Object
overflow : false
properties : [
[0] : {
name : e
subtype : proxy
type : object
value : Proxy
}
]
type : object
}
type : object
}
}
Running test: testPromise
'Promise.resolve(42)', returnByValue: false, generatePreview: false
{
result : {
className : Promise
description : Promise
objectId : <objectId>
subtype : promise
type : object
}
}
'Promise.reject(42)', returnByValue: false, generatePreview: false
{
result : {
className : Promise
description : Promise
objectId : <objectId>
subtype : promise
type : object
}
}
'(async function(){})()', returnByValue: false, generatePreview: false
{
result : {
className : Promise
description : Promise
objectId : <objectId>
subtype : promise
type : object
}
}
'Promise.resolve('a'.repeat(101))', returnByValue: false, generatePreview: true
{
result : {
className : Promise
description : Promise
objectId : <objectId>
preview : {
description : Promise
overflow : false
properties : [
[0] : {
name : [[PromiseState]]
type : string
value : fulfilled
}
[1] : {
name : [[PromiseResult]]
type : string
value : aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa…aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
}
]
subtype : promise
type : object
}
subtype : promise
type : object
}
}
'Promise.reject(42)', returnByValue: false, generatePreview: true
{
result : {
className : Promise
description : Promise
objectId : <objectId>
preview : {
description : Promise
overflow : false
properties : [
[0] : {
name : [[PromiseState]]
type : string
value : rejected
}
[1] : {
name : [[PromiseResult]]
type : number
value : 42
}
]
subtype : promise
type : object
}
subtype : promise
type : object
}
}
'new Promise(resolve => this.resolve = resolve)', returnByValue: false, generatePreview: true
{
result : {
className : Promise
description : Promise
objectId : <objectId>
preview : {
description : Promise
overflow : false
properties : [
[0] : {
name : [[PromiseState]]
type : string
value : pending
}
[1] : {
name : [[PromiseResult]]
type : undefined
value : undefined
}
]
subtype : promise
type : object
}
subtype : promise
type : object
}
}
'a = Promise.resolve(42); a.b = 2; a', returnByValue: true, generatePreview: false
{
result : {
type : object
value : {
b : 2
}
}
}
'({a: Promise.resolve(42)})', returnByValue: false, generatePreview: true
{
result : {
className : Object
description : Object
objectId : <objectId>
preview : {
description : Object
overflow : false
properties : [
[0] : {
name : a
subtype : promise
type : object
value : Promise
}
]
type : object
}
type : object
}
}
Running test: testTypedArray
'a = new Uint8Array(2); a.b = 2; a', returnByValue: false, generatePreview: true
{
result : {
className : Uint8Array
description : Uint8Array(2)
objectId : <objectId>
preview : {
description : Uint8Array(2)
overflow : true
properties : [
[0] : {
name : 0
type : number
value : 0
}
[1] : {
name : 1
type : number
value : 0
}
[2] : {
name : b
type : number
value : 2
}
[3] : {
name : buffer
subtype : arraybuffer
type : object
value : ArrayBuffer(2)
}
[4] : {
name : byteLength
type : number
value : 2
}
[5] : {
name : byteOffset
type : number
value : 0
}
[6] : {
name : length
type : number
value : 2
}
]
subtype : typedarray
type : object
}
subtype : typedarray
type : object
}
}
'new Int32Array(101)', returnByValue: false, generatePreview: true
{
result : {
className : Int32Array
description : Int32Array(101)
objectId : <objectId>
preview : {
description : Int32Array(101)
overflow : true
properties : [
[0] : {
name : 0
type : number
value : 0
}
[1] : {
name : 1
type : number
value : 0
}
[2] : {
name : 2
type : number
value : 0
}
[3] : {
name : 3
type : number
value : 0
}
[4] : {
name : 4
type : number
value : 0
}
[5] : {
name : 5
type : number
value : 0
}
[6] : {
name : 6
type : number
value : 0
}
[7] : {
name : 7
type : number
value : 0
}
[8] : {
name : 8
type : number
value : 0
}
[9] : {
name : 9
type : number
value : 0
}
[10] : {
name : 10
type : number
value : 0
}
[11] : {
name : 11
type : number
value : 0
}
[12] : {
name : 12
type : number
value : 0
}
[13] : {
name : 13
type : number
value : 0
}
[14] : {
name : 14
type : number
value : 0
}
[15] : {
name : 15
type : number
value : 0
}
[16] : {
name : 16
type : number
value : 0
}
[17] : {
name : 17
type : number
value : 0
}
[18] : {
name : 18
type : number
value : 0
}
[19] : {
name : 19
type : number
value : 0
}
[20] : {
name : 20
type : number
value : 0
}
[21] : {
name : 21
type : number
value : 0
}
[22] : {
name : 22
type : number
value : 0
}
[23] : {
name : 23
type : number
value : 0
}
[24] : {
name : 24
type : number
value : 0
}
[25] : {
name : 25
type : number
value : 0
}
[26] : {
name : 26
type : number
value : 0
}
[27] : {
name : 27
type : number
value : 0
}
[28] : {
name : 28
type : number
value : 0
}
[29] : {
name : 29
type : number
value : 0
}
[30] : {
name : 30
type : number
value : 0
}
[31] : {
name : 31
type : number
value : 0
}
[32] : {
name : 32
type : number
value : 0
}
[33] : {
name : 33
type : number
value : 0
}
[34] : {
name : 34
type : number
value : 0
}
[35] : {
name : 35
type : number
value : 0
}
[36] : {
name : 36
type : number
value : 0
}
[37] : {
name : 37
type : number
value : 0
}
[38] : {
name : 38
type : number
value : 0
}
[39] : {
name : 39
type : number
value : 0
}
[40] : {
name : 40
type : number
value : 0
}
[41] : {
name : 41
type : number
value : 0
}
[42] : {
name : 42
type : number
value : 0
}
[43] : {
name : 43
type : number
value : 0
}
[44] : {
name : 44
type : number
value : 0
}
[45] : {
name : 45
type : number
value : 0
}
[46] : {
name : 46
type : number
value : 0
}
[47] : {
name : 47
type : number
value : 0
}
[48] : {
name : 48
type : number
value : 0
}
[49] : {
name : 49
type : number
value : 0
}
[50] : {
name : 50
type : number
value : 0
}
[51] : {
name : 51
type : number
value : 0
}
[52] : {
name : 52
type : number
value : 0
}
[53] : {
name : 53
type : number
value : 0
}
[54] : {
name : 54
type : number
value : 0
}
[55] : {
name : 55
type : number
value : 0
}
[56] : {
name : 56
type : number
value : 0
}
[57] : {
name : 57
type : number
value : 0
}
[58] : {
name : 58
type : number
value : 0
}
[59] : {
name : 59
type : number
value : 0
}
[60] : {
name : 60
type : number
value : 0
}
[61] : {
name : 61
type : number
value : 0
}
[62] : {
name : 62
type : number
value : 0
}
[63] : {
name : 63
type : number
value : 0
}
[64] : {
name : 64
type : number
value : 0
}
[65] : {
name : 65
type : number
value : 0
}
[66] : {
name : 66
type : number
value : 0
}
[67] : {
name : 67
type : number
value : 0
}
[68] : {
name : 68
type : number
value : 0
}
[69] : {
name : 69
type : number
value : 0
}
[70] : {
name : 70
type : number
value : 0
}
[71] : {
name : 71
type : number
value : 0
}
[72] : {
name : 72
type : number
value : 0
}
[73] : {
name : 73
type : number
value : 0
}
[74] : {
name : 74
type : number
value : 0
}
[75] : {
name : 75
type : number
value : 0
}
[76] : {
name : 76
type : number
value : 0
}
[77] : {
name : 77
type : number
value : 0
}
[78] : {
name : 78
type : number
value : 0
}
[79] : {
name : 79
type : number
value : 0
}
[80] : {
name : 80
type : number
value : 0
}
[81] : {
name : 81
type : number
value : 0
}
[82] : {
name : 82
type : number
value : 0
}
[83] : {
name : 83
type : number
value : 0
}
[84] : {
name : 84
type : number
value : 0
}
[85] : {
name : 85
type : number
value : 0
}
[86] : {
name : 86
type : number
value : 0
}
[87] : {
name : 87
type : number
value : 0
}
[88] : {
name : 88
type : number
value : 0
}
[89] : {
name : 89
type : number
value : 0
}
[90] : {
name : 90
type : number
value : 0
}
[91] : {
name : 91
type : number
value : 0
}
[92] : {
name : 92
type : number
value : 0
}
[93] : {
name : 93
type : number
value : 0
}
[94] : {
name : 94
type : number
value : 0
}
[95] : {
name : 95
type : number
value : 0
}
[96] : {
name : 96
type : number
value : 0
}
[97] : {
name : 97
type : number
value : 0
}
[98] : {
name : 98
type : number
value : 0
}
[99] : {
name : 99
type : number
value : 0
}
]
subtype : typedarray
type : object
}
subtype : typedarray
type : object
}
}
Running test: testArrayBuffer
'new Uint8Array().buffer', returnByValue: false, generatePreview: true
{
result : {
className : ArrayBuffer
description : ArrayBuffer(0)
objectId : <objectId>
preview : {
description : ArrayBuffer(0)
overflow : false
properties : [
[0] : {
name : byteLength
type : number
value : 0
}
]
subtype : arraybuffer
type : object
}
subtype : arraybuffer
type : object
}
}
'new Int32Array(100).buffer', returnByValue: false, generatePreview: true
{
result : {
className : ArrayBuffer
description : ArrayBuffer(400)
objectId : <objectId>
preview : {
description : ArrayBuffer(400)
overflow : false
properties : [
[0] : {
name : byteLength
type : number
value : 400
}
]
subtype : arraybuffer
type : object
}
subtype : arraybuffer
type : object
}
}
Running test: testDataView
'new DataView(new ArrayBuffer(16))', returnByValue: false, generatePreview: true
{
result : {
className : DataView
description : DataView(16)
objectId : <objectId>
preview : {
description : DataView(16)
overflow : false
properties : [
[0] : {
name : buffer
subtype : arraybuffer
type : object
value : ArrayBuffer(16)
}
[1] : {
name : byteLength
type : number
value : 16
}
[2] : {
name : byteOffset
type : number
value : 0
}
]
subtype : dataview
type : object
}
subtype : dataview
type : object
}
}
'new DataView(new ArrayBuffer(16), 12, 4)', returnByValue: false, generatePreview: true
{
result : {
className : DataView
description : DataView(4)
objectId : <objectId>
preview : {
description : DataView(4)
overflow : false
properties : [
[0] : {
name : buffer
subtype : arraybuffer
type : object
value : ArrayBuffer(16)
}
[1] : {
name : byteLength
type : number
value : 4
}
[2] : {
name : byteOffset
type : number
value : 12
}
]
subtype : dataview
type : object
}
subtype : dataview
type : object
}
}
Running test: testArray
'[]', returnByValue: false, generatePreview: false
{
result : {
className : Array
description : Array(0)
objectId : <objectId>
subtype : array
type : object
}
}
'[1,2,3]', returnByValue: false, generatePreview: false
{
result : {
className : Array
description : Array(3)
objectId : <objectId>
subtype : array
type : object
}
}
Running test: testArrayLike
'({length: 5, splice: () => []})', returnByValue: false, generatePreview: false
{
result : {
className : Object
description : Object(5)
objectId : <objectId>
subtype : array
type : object
}
}
'new (class Foo{constructor() {
this.length = 5;
this.splice = () => [];
}})', returnByValue: false, generatePreview: false
{
result : {
className : Foo
description : Foo(5)
objectId : <objectId>
subtype : array
type : object
}
}
'({length: -5, splice: () => []})', returnByValue: false, generatePreview: false
{
result : {
className : Object
description : Object
objectId : <objectId>
type : object
}
}
Running test: testOtherObjects
'({a: 1, b:2})', returnByValue: false, generatePreview: false
{
result : {
className : Object
description : Object
objectId : <objectId>
type : object
}
}
'({a: 1, b:2})', returnByValue: true, generatePreview: false
{
result : {
type : object
value : {
a : 1
b : 2
}
}
}
'({a: 1, b:2})', returnByValue: false, generatePreview: true
{
result : {
className : Object
description : Object
objectId : <objectId>
preview : {
description : Object
overflow : false
properties : [
[0] : {
name : a
type : number
value : 1
}
[1] : {
name : b
type : number
value : 2
}
]
type : object
}
type : object
}
}
'new (function Foo() { this.a = 5; })', returnByValue: false, generatePreview: false
{
result : {
className : Foo
description : Foo
objectId : <objectId>
type : object
}
}
'new (function Foo() { this.a = [1,2,3]; })', returnByValue: true, generatePreview: false
{
result : {
type : object
value : {
a : [
[0] : 1
[1] : 2
[2] : 3
]
}
}
}
'new (class Bar {})', returnByValue: false, generatePreview: false
{
result : {
className : Bar
description : Bar
objectId : <objectId>
type : object
}
}
'inspector.createObjectWithAccessor('title', true)', returnByValue: false, generatePreview: true
{
id : <messageId>
result : {
result : {
className : Object
description : Object
objectId : <objectId>
preview : {
description : Object
overflow : false
properties : [
[0] : {
name : title
type : accessor
}
]
type : object
}
type : object
}
}
}
'inspector.createObjectWithAccessor('title', false)', returnByValue: false, generatePreview: true
{
id : <messageId>
result : {
result : {
className : Object
description : Object
objectId : <objectId>
preview : {
description : Object
overflow : false
properties : [
[0] : {
name : title
type : accessor
}
]
type : object
}
type : object
}
}
}
'inspector.createObjectWithAccessor('title', true)', returnByValue: true, generatePreview: false
{
error : {
code : -32603
message : Internal error
}
id : <messageId>
}
'({get a() { return 42; }})', returnByValue: false, generatePreview: true
{
id : <messageId>
result : {
result : {
className : Object
description : Object
objectId : <objectId>
preview : {
description : Object
overflow : false
properties : [
[0] : {
name : a
type : accessor
}
]
type : object
}
type : object
}
}
}
'({set a(v) {}})', returnByValue: false, generatePreview: true
{
id : <messageId>
result : {
result : {
className : Object
description : Object
objectId : <objectId>
preview : {
description : Object
overflow : false
properties : [
]
type : object
}
type : object
}
}
}
'({a: () => 42})', returnByValue: false, generatePreview: true
{
id : <messageId>
result : {
result : {
className : Object
description : Object
objectId : <objectId>
preview : {
description : Object
overflow : false
properties : [
[0] : {
name : a
type : function
value :
}
]
type : object
}
type : object
}
}
}
'({a: null})', returnByValue: false, generatePreview: true
{
id : <messageId>
result : {
result : {
className : Object
description : Object
objectId : <objectId>
preview : {
description : Object
overflow : false
properties : [
[0] : {
name : a
subtype : null
type : object
value : null
}
]
type : object
}
type : object
}
}
}
'({a: true})', returnByValue: false, generatePreview: true
{
id : <messageId>
result : {
result : {
className : Object
description : Object
objectId : <objectId>
preview : {
description : Object
overflow : false
properties : [
[0] : {
name : a
type : boolean
value : true
}
]
type : object
}
type : object
}
}
}
'({a1: -Infinity, a2: +Infinity, a3: -0, a4: NaN, a5: 1.23})', returnByValue: false, generatePreview: true
{
id : <messageId>
result : {
result : {
className : Object
description : Object
objectId : <objectId>
preview : {
description : Object
overflow : false
properties : [
[0] : {
name : a1
type : number
value : -Infinity
}
[1] : {
name : a2
type : number
value : Infinity
}
[2] : {
name : a3
type : number
value : -0
}
[3] : {
name : a4
type : number
value : NaN
}
[4] : {
name : a5
type : number
value : 1.23
}
]
type : object
}
type : object
}
}
}
'({a1: 1234567890123456789012345678901234567890n})', returnByValue: false, generatePreview: true
{
id : <messageId>
result : {
result : {
className : Object
description : Object
objectId : <objectId>
preview : {
description : Object
overflow : false
properties : [
[0] : {
name : a1
type : bigint
value : 1234567890123456789012345678901234567890n
}
]
type : object
}
type : object
}
}
}
'({a1: Symbol(42)})', returnByValue: false, generatePreview: true
{
id : <messageId>
result : {
result : {
className : Object
description : Object
objectId : <objectId>
preview : {
description : Object
overflow : false
properties : [
[0] : {
name : a1
type : symbol
value : Symbol(42)
}
]
type : object
}
type : object
}
}
}
'({a1: /abc/i})', returnByValue: false, generatePreview: true
{
id : <messageId>
result : {
result : {
className : Object
description : Object
objectId : <objectId>
preview : {
description : Object
overflow : false
properties : [
[0] : {
name : a1
subtype : regexp
type : object
value : /abc/i
}
]
type : object
}
type : object
}
}
}
'({a1: () => 42, a2: async () => 42})', returnByValue: false, generatePreview: true
{
id : <messageId>
result : {
result : {
className : Object
description : Object
objectId : <objectId>
preview : {
description : Object
overflow : false
properties : [
[0] : {
name : a1
type : function
value :
}
[1] : {
name : a2
type : function
value :
}
]
type : object
}
type : object
}
}
}
'({a1: ({}), a2: new (class Bar{})})', returnByValue: false, generatePreview: true
{
id : <messageId>
result : {
result : {
className : Object
description : Object
objectId : <objectId>
preview : {
description : Object
overflow : false
properties : [
[0] : {
name : a1
type : object
value : Object
}
[1] : {
name : a2
type : object
value : Bar
}
]
type : object
}
type : object
}
}
}
'({a1: 'a'.repeat(100), a2: 'a'.repeat(101)})', returnByValue: false, generatePreview: true
{
id : <messageId>
result : {
result : {
className : Object
description : Object
objectId : <objectId>
preview : {
description : Object
overflow : false
properties : [
[0] : {
name : a1
type : string
value : aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
}
[1] : {
name : a2
type : string
value : aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa…aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
}
]
type : object
}
type : object
}
}
}
'({a1: 1, a2: 2, a3: 3, a4:4, a5:5, a6: 6})', returnByValue: false, generatePreview: true
{
id : <messageId>
result : {
result : {
className : Object
description : Object
objectId : <objectId>
preview : {
description : Object
overflow : true
properties : [
[0] : {
name : a1
type : number
value : 1
}
[1] : {
name : a2
type : number
value : 2
}
[2] : {
name : a3
type : number
value : 3
}
[3] : {
name : a4
type : number
value : 4
}
[4] : {
name : a5
type : number
value : 5
}
]
type : object
}
type : object
}
}
}
'([1,2,3])', returnByValue: false, generatePreview: true
{
id : <messageId>
result : {
result : {
className : Array
description : Array(3)
objectId : <objectId>
preview : {
description : Array(3)
overflow : false
properties : [
[0] : {
name : 0
type : number
value : 1
}
[1] : {
name : 1
type : number
value : 2
}
[2] : {
name : 2
type : number
value : 3
}
]
subtype : array
type : object
}
subtype : array
type : object
}
}
}
Running test: testArray2
'([1,2,3])', returnByValue: false, generatePreview: false
{
id : <messageId>
result : {
result : {
className : Array
description : Array(3)
objectId : <objectId>
subtype : array
type : object
}
}
}
'([1,2,3])', returnByValue: true, generatePreview: false
{
id : <messageId>
result : {
result : {
type : object
value : [
[0] : 1
[1] : 2
[2] : 3
]
}
}
}
'([1,2,3])', returnByValue: false, generatePreview: true
{
id : <messageId>
result : {
result : {
className : Array
description : Array(3)
objectId : <objectId>
preview : {
description : Array(3)
overflow : false
properties : [
[0] : {
name : 0
type : number
value : 1
}
[1] : {
name : 1
type : number
value : 2
}
[2] : {
name : 2
type : number
value : 3
}
]
subtype : array
type : object
}
subtype : array
type : object
}
}
}
'({a: [1,2,3]})', returnByValue: false, generatePreview: true
{
id : <messageId>
result : {
result : {
className : Object
description : Object
objectId : <objectId>
preview : {
description : Object
overflow : false
properties : [
[0] : {
name : a
subtype : array
type : object
value : Array(3)
}
]
type : object
}
type : object
}
}
}