Checks internal properties in Runtime.getProperties output Running test: generatorFunction expression: (function* foo() { yield 1 }) { id : result : { internalProperties : [ [0] : { name : [[FunctionLocation]] value : { description : Object subtype : internal#location type : object value : { columnNumber : 14 lineNumber : 0 scriptId : } } } [1] : { name : [[IsGenerator]] value : { type : boolean value : true } } [2] : { name : [[Prototype]] value : { className : GeneratorFunction description : GeneratorFunction objectId : type : object } } [3] : { name : [[Scopes]] value : { className : Array description : Scopes[1] objectId : subtype : internal#scopeList type : object } } ] } } Running test: regularFunction expression: (function foo() {}) { id : result : { internalProperties : [ [0] : { name : [[FunctionLocation]] value : { description : Object subtype : internal#location type : object value : { columnNumber : 13 lineNumber : 0 scriptId : } } } [1] : { name : [[Prototype]] value : { className : Function description : function () { [native code] } objectId : type : function } } [2] : { name : [[Scopes]] value : { className : Array description : Scopes[1] objectId : subtype : internal#scopeList type : object } } ] } } Running test: boxedObjects expression: new Number(239) { id : result : { internalProperties : [ [0] : { name : [[Prototype]] value : { className : Number description : Number objectId : type : object } } [1] : { name : [[PrimitiveValue]] value : { description : 239 type : number value : 239 } } ] } } expression: new Boolean(false) { id : result : { internalProperties : [ [0] : { name : [[Prototype]] value : { className : Boolean description : Boolean objectId : type : object } } [1] : { name : [[PrimitiveValue]] value : { type : boolean value : false } } ] } } expression: new String('abc') { id : result : { internalProperties : [ [0] : { name : [[Prototype]] value : { className : String description : String objectId : type : object } } [1] : { name : [[PrimitiveValue]] value : { type : string value : abc } } ] } } expression: Object(Symbol(42)) { id : result : { internalProperties : [ [0] : { name : [[Prototype]] value : { className : Symbol description : Symbol objectId : type : object } } [1] : { name : [[PrimitiveValue]] value : { description : Symbol(42) objectId : type : symbol } } ] } } expression: Object(BigInt(2)) { id : result : { internalProperties : [ [0] : { name : [[Prototype]] value : { className : BigInt description : BigInt objectId : type : object } } [1] : { name : [[PrimitiveValue]] value : { description : 2n type : bigint unserializableValue : 2n } } ] } } Running test: promise expression: Promise.resolve(42) { id : result : { internalProperties : [ [0] : { name : [[Prototype]] value : { className : Promise description : Promise objectId : type : object } } [1] : { name : [[PromiseState]] value : { type : string value : fulfilled } } [2] : { name : [[PromiseResult]] value : { description : 42 type : number value : 42 } } ] } } expression: new Promise(() => undefined) { id : result : { internalProperties : [ [0] : { name : [[Prototype]] value : { className : Promise description : Promise objectId : type : object } } [1] : { name : [[PromiseState]] value : { type : string value : pending } } [2] : { name : [[PromiseResult]] value : { type : undefined } } ] } } Running test: generatorObject expression: gen1 { id : result : { internalProperties : [ [0] : { name : [[GeneratorLocation]] value : { description : Object subtype : internal#location type : object value : { columnNumber : 13 lineNumber : 8 scriptId : } } } [1] : { name : [[Prototype]] value : { className : Generator description : Generator objectId : type : object } } [2] : { name : [[GeneratorState]] value : { type : string value : suspended } } [3] : { name : [[GeneratorFunction]] value : { className : GeneratorFunction description : function* foo() { yield 1; } objectId : type : function } } [4] : { name : [[GeneratorReceiver]] value : { className : global description : global objectId : type : object } } [5] : { name : [[Scopes]] value : { className : Array description : Scopes[2] objectId : subtype : internal#scopeList type : object } } ] } } expression: gen1.next();gen1 { id : result : { internalProperties : [ [0] : { name : [[GeneratorLocation]] value : { description : Object subtype : internal#location type : object value : { columnNumber : 2 lineNumber : 9 scriptId : } } } [1] : { name : [[Prototype]] value : { className : Generator description : Generator objectId : type : object } } [2] : { name : [[GeneratorState]] value : { type : string value : suspended } } [3] : { name : [[GeneratorFunction]] value : { className : GeneratorFunction description : function* foo() { yield 1; } objectId : type : function } } [4] : { name : [[GeneratorReceiver]] value : { className : global description : global objectId : type : object } } [5] : { name : [[Scopes]] value : { className : Array description : Scopes[2] objectId : subtype : internal#scopeList type : object } } ] } } expression: gen1.next();gen1 { id : result : { internalProperties : [ [0] : { name : [[GeneratorLocation]] value : { description : Object subtype : internal#location type : object value : { columnNumber : 13 lineNumber : 8 scriptId : } } } [1] : { name : [[Prototype]] value : { className : Generator description : Generator objectId : type : object } } [2] : { name : [[GeneratorState]] value : { type : string value : closed } } [3] : { name : [[GeneratorFunction]] value : { className : GeneratorFunction description : function* foo() { yield 1; } objectId : type : function } } [4] : { name : [[GeneratorReceiver]] value : { className : global description : global objectId : type : object } } ] } } Running test: generatorObjectDebuggerDisabled expression: gen2 { id : result : { internalProperties : [ [0] : { name : [[GeneratorLocation]] value : { description : Object subtype : internal#location type : object value : { columnNumber : 13 lineNumber : 8 scriptId : } } } [1] : { name : [[Prototype]] value : { className : Generator description : Generator objectId : type : object } } [2] : { name : [[GeneratorState]] value : { type : string value : suspended } } [3] : { name : [[GeneratorFunction]] value : { className : GeneratorFunction description : function* foo() { yield 1; } objectId : type : function } } [4] : { name : [[GeneratorReceiver]] value : { className : global description : global objectId : type : object } } [5] : { name : [[Scopes]] value : { className : Array description : Scopes[2] objectId : subtype : internal#scopeList type : object } } ] } } expression: gen2.next();gen2 { id : result : { internalProperties : [ [0] : { name : [[GeneratorLocation]] value : { description : Object subtype : internal#location type : object value : { columnNumber : 2 lineNumber : 9 scriptId : } } } [1] : { name : [[Prototype]] value : { className : Generator description : Generator objectId : type : object } } [2] : { name : [[GeneratorState]] value : { type : string value : suspended } } [3] : { name : [[GeneratorFunction]] value : { className : GeneratorFunction description : function* foo() { yield 1; } objectId : type : function } } [4] : { name : [[GeneratorReceiver]] value : { className : global description : global objectId : type : object } } [5] : { name : [[Scopes]] value : { className : Array description : Scopes[2] objectId : subtype : internal#scopeList type : object } } ] } } expression: gen2.next();gen2 { id : result : { internalProperties : [ [0] : { name : [[GeneratorLocation]] value : { description : Object subtype : internal#location type : object value : { columnNumber : 13 lineNumber : 8 scriptId : } } } [1] : { name : [[Prototype]] value : { className : Generator description : Generator objectId : type : object } } [2] : { name : [[GeneratorState]] value : { type : string value : closed } } [3] : { name : [[GeneratorFunction]] value : { className : GeneratorFunction description : function* foo() { yield 1; } objectId : type : function } } [4] : { name : [[GeneratorReceiver]] value : { className : global description : global objectId : type : object } } ] } } Running test: iteratorObject expression: (new Map([[1,2]])).entries() { id : result : { internalProperties : [ [0] : { name : [[Prototype]] value : { className : Map Iterator description : Map Iterator objectId : type : object } } [1] : { name : [[IteratorHasMore]] value : { type : boolean value : true } } [2] : { name : [[IteratorIndex]] value : { description : 0 type : number value : 0 } } [3] : { name : [[IteratorKind]] value : { type : string value : entries } } [4] : { name : [[Entries]] value : { className : Array description : Array(1) objectId : subtype : array type : object } } ] } } expression: (new Set([[1,2]])).entries() { id : result : { internalProperties : [ [0] : { name : [[Prototype]] value : { className : Set Iterator description : Set Iterator objectId : type : object } } [1] : { name : [[IteratorHasMore]] value : { type : boolean value : true } } [2] : { name : [[IteratorIndex]] value : { description : 0 type : number value : 0 } } [3] : { name : [[IteratorKind]] value : { type : string value : entries } } [4] : { name : [[Entries]] value : { className : Array description : Array(1) objectId : subtype : array type : object } } ] } }