Tests that Runtime.evaluate will generate correct previews.

Running test: testObjectPropertiesPreview
{
    description : Object
    overflow : false
    properties : [
        [0] : {
            name : p1
            type : object
            value : Object
        }
        [1] : {
            name : p2
            type : object
            value : Object
        }
        [2] : {
            name : p3
            type : function
            value : 
        }
        [3] : {
            name : p4
            type : accessor
        }
        [4] : {
            name : p6
            type : accessor
        }
    ]
    type : object
}

Running test: testArrayPropertiesPreview
{
    description : Array(8)
    overflow : false
    properties : [
        [0] : {
            name : 2
            type : number
            value : 1
        }
        [1] : {
            name : 3
            subtype : array
            type : object
            value : Array(1)
        }
        [2] : {
            name : 4
            type : function
            value : 
        }
        [3] : {
            name : nonEntryFunction
            type : function
            value : 
        }
        [4] : {
            name : 5
            type : accessor
        }
        [5] : {
            name : 7
            type : accessor
        }
    ]
    subtype : array
    type : object
}

Running test: testInheritingObjectPropertiesPreview
{
    description : Object
    overflow : false
    properties : [
        [0] : {
            name : prototype
            type : object
            value : Object
        }
    ]
    type : object
}

Running test: testInheritingArrayPropertiesPreview
{
    description : Array(0)
    overflow : false
    properties : [
        [0] : {
            name : prototype
            subtype : array
            type : object
            value : Array(8)
        }
    ]
    subtype : array
    type : object
}

Running test: testShortTypedArrayPropertiesPreview
{
    description : Uint8Array(3)
    overflow : false
    properties : [
        [0] : {
            name : 0
            type : number
            value : 0
        }
        [1] : {
            name : 1
            type : number
            value : 0
        }
        [2] : {
            name : 2
            type : number
            value : 0
        }
    ]
    subtype : typedarray
    type : object
}

Running test: testLongTypedArrayPropertiesPreview
{
    description : Uint8Array(500001)
    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
}

Running test: testSetPropertiesPreview
{
    description : Set(3)
    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 : set
    type : object
}

Running test: testBigSetPropertiesPreview
{
    description : Set(10)
    entries : [
        [0] : {
            value : {
                description : 0
                overflow : false
                properties : [
                ]
                type : number
            }
        }
        [1] : {
            value : {
                description : 1
                overflow : false
                properties : [
                ]
                type : number
            }
        }
        [2] : {
            value : {
                description : 2
                overflow : false
                properties : [
                ]
                type : number
            }
        }
        [3] : {
            value : {
                description : 3
                overflow : false
                properties : [
                ]
                type : number
            }
        }
        [4] : {
            value : {
                description : 4
                overflow : false
                properties : [
                ]
                type : number
            }
        }
    ]
    overflow : true
    properties : [
    ]
    subtype : set
    type : object
}

Running test: testMixedSetPropertiesPreview
{
    description : Set(10)
    entries : [
        [0] : {
            value : {
                description : 0
                overflow : false
                properties : [
                ]
                type : number
            }
        }
        [1] : {
            value : {
                description : 1
                overflow : false
                properties : [
                ]
                type : number
            }
        }
        [2] : {
            value : {
                description : 2
                overflow : false
                properties : [
                ]
                type : number
            }
        }
        [3] : {
            value : {
                description : 3
                overflow : false
                properties : [
                ]
                type : number
            }
        }
        [4] : {
            value : {
                description : 4
                overflow : false
                properties : [
                ]
                type : number
            }
        }
    ]
    overflow : true
    properties : [
        [0] : {
            name : _prop_0
            type : number
            value : 1
        }
        [1] : {
            name : _prop_1
            type : number
            value : 1
        }
        [2] : {
            name : _prop_2
            type : number
            value : 1
        }
        [3] : {
            name : _prop_3
            type : number
            value : 1
        }
        [4] : {
            name : _prop_4
            type : number
            value : 1
        }
    ]
    subtype : set
    type : object
}

Running test: testObjInheritsGetterProperty
{
    description : Object
    overflow : false
    properties : [
        [0] : {
            name : propNotNamedProto
            type : number
            value : NaN
        }
    ]
    type : object
}

Running test: testObjWithArrayAsProto
{
    description : Array
    overflow : false
    properties : [
    ]
    type : object
}
