
-----------------------------------------------------
EXPRESSION: window.simpleObject
type: object
description: Object

OWN PROPERTIES:
    a
    b
    __proto__

DISPLAYABLE PROPERTIES:
    a
    b
    __proto__

ALL PROPERTIES:
    a
    b
    toString
    toLocaleString
    valueOf
    hasOwnProperty
    propertyIsEnumerable
    isPrototypeOf
    __defineGetter__
    __defineSetter__
    __lookupGetter__
    __lookupSetter__
    constructor
    __proto__
-----------------------------------------------------

-----------------------------------------------------
EXPRESSION: window.simpleArray
type: object
subtype: array
description: Array

OWN PROPERTIES:
    0
    1
    2
    __proto__

DISPLAYABLE PROPERTIES:
    0
    1
    2
    __proto__

ALL PROPERTIES:
    0
    1
    2
    length
    toString
    values
    toLocaleString
    concat
    fill
    join
    pop
    push
    reverse
    shift
    slice
    sort
    splice
    unshift
    every
    forEach
    some
    indexOf
    lastIndexOf
    filter
    groupBy
    groupByToMap
    flat
    flatMap
    reduce
    reduceRight
    map
    keys
    entries
    find
    findLast
    findIndex
    findLastIndex
    includes
    copyWithin
    at
    constructor
    Symbol(Symbol.iterator)
    Symbol(Symbol.unscopables)
    valueOf
    hasOwnProperty
    propertyIsEnumerable
    isPrototypeOf
    __defineGetter__
    __defineSetter__
    __lookupGetter__
    __lookupSetter__
    __proto__
-----------------------------------------------------

-----------------------------------------------------
EXPRESSION: window.arrayProto
type: object
subtype: array
description: Array

OWN PROPERTIES:
    length
    toString
    values
    toLocaleString
    concat
    fill
    join
    pop
    push
    reverse
    shift
    slice
    sort
    splice
    unshift
    every
    forEach
    some
    indexOf
    lastIndexOf
    filter
    groupBy
    groupByToMap
    flat
    flatMap
    reduce
    reduceRight
    map
    keys
    entries
    find
    findLast
    findIndex
    findLastIndex
    includes
    copyWithin
    at
    constructor
    Symbol(Symbol.iterator)
    Symbol(Symbol.unscopables)
    __proto__

DISPLAYABLE PROPERTIES:
    length
    toString
    values
    toLocaleString
    concat
    fill
    join
    pop
    push
    reverse
    shift
    slice
    sort
    splice
    unshift
    every
    forEach
    some
    indexOf
    lastIndexOf
    filter
    groupBy
    groupByToMap
    flat
    flatMap
    reduce
    reduceRight
    map
    keys
    entries
    find
    findLast
    findIndex
    findLastIndex
    includes
    copyWithin
    at
    constructor
    Symbol(Symbol.iterator)
    Symbol(Symbol.unscopables)
    __proto__

ALL PROPERTIES:
    length
    toString
    values
    toLocaleString
    concat
    fill
    join
    pop
    push
    reverse
    shift
    slice
    sort
    splice
    unshift
    every
    forEach
    some
    indexOf
    lastIndexOf
    filter
    groupBy
    groupByToMap
    flat
    flatMap
    reduce
    reduceRight
    map
    keys
    entries
    find
    findLast
    findIndex
    findLastIndex
    includes
    copyWithin
    at
    constructor
    Symbol(Symbol.iterator)
    Symbol(Symbol.unscopables)
    valueOf
    hasOwnProperty
    propertyIsEnumerable
    isPrototypeOf
    __defineGetter__
    __defineSetter__
    __lookupGetter__
    __lookupSetter__
    __proto__
-----------------------------------------------------

-----------------------------------------------------
EXPRESSION: window.loadEvent
type: object
description: Event

OWN PROPERTIES:
    isTrusted
    __proto__

DISPLAYABLE PROPERTIES:
    isTrusted
    type
    target
    currentTarget
    eventPhase
    cancelBubble
    bubbles
    cancelable
    defaultPrevented
    composed
    timeStamp
    srcElement
    returnValue
    __proto__

ALL PROPERTIES:
    isTrusted
    constructor
    type
    target
    currentTarget
    eventPhase
    cancelBubble
    bubbles
    cancelable
    defaultPrevented
    composed
    timeStamp
    srcElement
    returnValue
    composedPath
    stopPropagation
    stopImmediatePropagation
    preventDefault
    initEvent
    NONE
    CAPTURING_PHASE
    AT_TARGET
    BUBBLING_PHASE
    Symbol(Symbol.toStringTag)
    toString
    toLocaleString
    valueOf
    hasOwnProperty
    propertyIsEnumerable
    isPrototypeOf
    __defineGetter__
    __defineSetter__
    __lookupGetter__
    __lookupSetter__
    __proto__
-----------------------------------------------------

-----------------------------------------------------
EXPRESSION: window.complexObject
type: object
description: SuperFoo

OWN PROPERTIES:
    _bar
    _foo
    __proto__

DISPLAYABLE PROPERTIES:
    _bar
    _foo
    __proto__

ALL PROPERTIES:
    _bar
    _foo
    constructor
    getterProperty
    foo
    BAR_CONSTANT
    bar
    setterOnly
    toString
    toLocaleString
    valueOf
    hasOwnProperty
    propertyIsEnumerable
    isPrototypeOf
    __defineGetter__
    __defineSetter__
    __lookupGetter__
    __lookupSetter__
    __proto__
-----------------------------------------------------

-----------------------------------------------------
EXPRESSION: window.badGetterObject
type: object
description: ClassWithBadGetter

OWN PROPERTIES:
    __proto__

DISPLAYABLE PROPERTIES:
    __proto__

ALL PROPERTIES:
    constructor
    badGetter
    toString
    toLocaleString
    valueOf
    hasOwnProperty
    propertyIsEnumerable
    isPrototypeOf
    __defineGetter__
    __defineSetter__
    __lookupGetter__
    __lookupSetter__
    __proto__
-----------------------------------------------------

-----------------------------------------------------
EXPRESSION: window.unboundFunction
type: function
description: function () { console.log(arguments); }

OWN PROPERTIES:
    prototype
    length
    name
    __proto__

DISPLAYABLE PROPERTIES:
    prototype
    length
    name
    arguments
    caller
    __proto__

ALL PROPERTIES:
    prototype
    length
    name
    toString
    apply
    call
    bind
    arguments
    caller
    constructor
    Symbol(Symbol.hasInstance)
    toLocaleString
    valueOf
    hasOwnProperty
    propertyIsEnumerable
    isPrototypeOf
    __defineGetter__
    __defineSetter__
    __lookupGetter__
    __lookupSetter__
    __proto__
-----------------------------------------------------

-----------------------------------------------------
EXPRESSION: window.boundFunction
type: function
description: function unboundFunction() {
    [native code]
}

OWN PROPERTIES:
    length
    name
    __proto__
    targetFunction
    boundThis
    boundArgs

DISPLAYABLE PROPERTIES:
    length
    name
    arguments
    caller
    __proto__
    targetFunction
    boundThis
    boundArgs

ALL PROPERTIES:
    length
    name
    toString
    apply
    call
    bind
    arguments
    caller
    constructor
    Symbol(Symbol.hasInstance)
    toLocaleString
    valueOf
    hasOwnProperty
    propertyIsEnumerable
    isPrototypeOf
    __defineGetter__
    __defineSetter__
    __lookupGetter__
    __lookupSetter__
    __proto__
    targetFunction
    boundThis
    boundArgs
-----------------------------------------------------

-----------------------------------------------------
EXPRESSION: window.objectWithSymbolProperties
type: object
description: Object

OWN PROPERTIES:
    prop
    prop2
    Symbol()
    Symbol(sym)
    Symbol(sym)
    Symbol()
    Symbol(Symbol.toStringTag)
    __proto__

DISPLAYABLE PROPERTIES:
    prop
    prop2
    Symbol()
    Symbol(sym)
    Symbol(sym)
    Symbol()
    Symbol(Symbol.toStringTag)
    __proto__

ALL PROPERTIES:
    prop
    prop2
    Symbol()
    Symbol(sym)
    Symbol(sym)
    Symbol()
    Symbol(Symbol.toStringTag)
    toString
    toLocaleString
    valueOf
    hasOwnProperty
    propertyIsEnumerable
    isPrototypeOf
    __defineGetter__
    __defineSetter__
    __lookupGetter__
    __lookupSetter__
    constructor
    __proto__
-----------------------------------------------------

-----------------------------------------------------
EXPRESSION: window.objectWithSymbolToStringTag
type: object
description: Foo

OWN PROPERTIES:
    Symbol(Symbol.toStringTag)
    __proto__

DISPLAYABLE PROPERTIES:
    Symbol(Symbol.toStringTag)
    __proto__

ALL PROPERTIES:
    Symbol(Symbol.toStringTag)
    toString
    toLocaleString
    valueOf
    hasOwnProperty
    propertyIsEnumerable
    isPrototypeOf
    __defineGetter__
    __defineSetter__
    __lookupGetter__
    __lookupSetter__
    constructor
    __proto__
-----------------------------------------------------

-----------------------------------------------------
EXPRESSION: window.objectWithShadowedSymbolToStringTag
type: object
description: Foo

OWN PROPERTIES:
    __proto__

DISPLAYABLE PROPERTIES:
    __proto__

ALL PROPERTIES:
    constructor
    addEventListener
    removeEventListener
    dispatchEvent
    Symbol(Symbol.toStringTag)
    toString
    toLocaleString
    valueOf
    hasOwnProperty
    propertyIsEnumerable
    isPrototypeOf
    __defineGetter__
    __defineSetter__
    __lookupGetter__
    __lookupSetter__
    __proto__
-----------------------------------------------------

-----------------------------------------------------
EXPRESSION: document.getElementById('my-select').options
type: object
subtype: array
description: HTMLOptionsCollection

OWN PROPERTIES:
    0
    __proto__

DISPLAYABLE PROPERTIES:
    0
    length
    selectedIndex
    __proto__

ALL PROPERTIES:
    0
    constructor
    length
    selectedIndex
    add
    remove
    item
    namedItem
    Symbol(Symbol.iterator)
    Symbol(Symbol.toStringTag)
    toString
    toLocaleString
    valueOf
    hasOwnProperty
    propertyIsEnumerable
    isPrototypeOf
    __defineGetter__
    __defineSetter__
    __lookupGetter__
    __lookupSetter__
    __proto__
-----------------------------------------------------
DONE

