Tests for the Runtime.getDisplayableProperties command.


== Running test suite: Runtime.getDisplayableProperties
-- Running test case: Runtime.getDisplayableProperties.Object
Evaluating expression...
Getting displayable properties...
Properties:
    "foo"        =>  "cat" (string)  [writable | enumerable | configurable | isOwn]
    "__proto__"  =>  "Number" (object)  [writable | configurable | isOwn]

-- Running test case: Runtime.getDisplayableProperties.Array
Evaluating expression...
Getting displayable properties...
Properties:
    "0"          =>  "red" (string)  [writable | enumerable | configurable | isOwn]
    "1"          =>  "green" (string)  [writable | enumerable | configurable | isOwn]
    "2"          =>  "blue" (string)  [writable | enumerable | configurable | isOwn]
    "__proto__"  =>  "Array" (object array)  [writable | configurable | isOwn]

-- Running test case: Runtime.getDisplayableProperties.Constructor
Evaluating expression...
Getting displayable properties...
Properties:
    "length"     =>  0 (number)  [configurable | isOwn]
    "prototype"  =>  "Test" (object)  [isOwn]
    "name"       =>  "Test" (string)  [configurable | isOwn]
    "arguments"  =>  "TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context." (object error)  [wasThrown]
    "caller"     =>  "TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context." (object error)  [wasThrown]
    "__proto__"  =>  "function () {\n    [native code]\n}" (function)  [writable | configurable | isOwn]

-- Running test case: Runtime.getDisplayableProperties.BoundConstructor
Evaluating expression...
Getting displayable properties...
Properties:
    "length"     =>  0 (number)  [configurable | isOwn]
    "name"       =>  "bound Test" (string)  [configurable | isOwn]
    "arguments"  =>  "TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context." (object error)  [wasThrown]
    "caller"     =>  "TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context." (object error)  [wasThrown]
    "__proto__"  =>  "function () {\n    [native code]\n}" (function)  [writable | configurable | isOwn]
Internal Properties:
    "targetFunction"  =>  "class Test { }" (function class)  []
    "boundThis"       =>  null (object null)  []

-- Running test case: Runtime.getDisplayableProperties.BoundConstructorArguments
Evaluating expression...
Getting displayable properties...
Properties:
    "length"     =>  0 (number)  [configurable | isOwn]
    "name"       =>  "bound Test" (string)  [configurable | isOwn]
    "arguments"  =>  "TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context." (object error)  [wasThrown]
    "caller"     =>  "TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context." (object error)  [wasThrown]
    "__proto__"  =>  "function () {\n    [native code]\n}" (function)  [writable | configurable | isOwn]
Internal Properties:
    "targetFunction"  =>  "class Test { }" (function class)  []
    "boundThis"       =>  null (object null)  []
    "boundArgs"       =>  "Array" (object array)  []

-- Running test case: Runtime.getDisplayableProperties.Function
Evaluating expression...
Getting displayable properties...
Properties:
    "length"     =>  3 (number)  [configurable | isOwn]
    "name"       =>  "" (string)  [configurable | isOwn]
    "prototype"  =>  "Object" (object)  [writable | isOwn]
    "arguments"  =>  null (object null)  [configurable | nativeGetter]
    "caller"     =>  null (object null)  [configurable | nativeGetter]
    "__proto__"  =>  "function () {\n    [native code]\n}" (function)  [writable | configurable | isOwn]

-- Running test case: Runtime.getDisplayableProperties.FunctionNoParameters
Evaluating expression...
Getting displayable properties...
Properties:
    "length"     =>  0 (number)  [configurable | isOwn]
    "name"       =>  "" (string)  [configurable | isOwn]
    "prototype"  =>  "Object" (object)  [writable | isOwn]
    "arguments"  =>  null (object null)  [configurable | nativeGetter]
    "caller"     =>  null (object null)  [configurable | nativeGetter]
    "__proto__"  =>  "function () {\n    [native code]\n}" (function)  [writable | configurable | isOwn]

-- Running test case: Runtime.getDisplayableProperties.BoundFunction
Evaluating expression...
Getting displayable properties...
Properties:
    "length"     =>  3 (number)  [configurable | isOwn]
    "name"       =>  "bound " (string)  [configurable | isOwn]
    "arguments"  =>  "TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context." (object error)  [wasThrown]
    "caller"     =>  "TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context." (object error)  [wasThrown]
    "__proto__"  =>  "function () {\n    [native code]\n}" (function)  [writable | configurable | isOwn]
Internal Properties:
    "targetFunction"  =>  "function (a, b, c){}" (function)  []
    "boundThis"       =>  null (object null)  []

-- Running test case: Runtime.getDisplayableProperties.BoundFunctionWithArguments
Evaluating expression...
Getting displayable properties...
Properties:
    "length"     =>  0 (number)  [configurable | isOwn]
    "name"       =>  "bound " (string)  [configurable | isOwn]
    "arguments"  =>  "TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context." (object error)  [wasThrown]
    "caller"     =>  "TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context." (object error)  [wasThrown]
    "__proto__"  =>  "function () {\n    [native code]\n}" (function)  [writable | configurable | isOwn]
Internal Properties:
    "targetFunction"  =>  "function (a, b, c){}" (function)  []
    "boundThis"       =>  null (object null)  []
    "boundArgs"       =>  "Array" (object array)  []

-- Running test case: Runtime.getDisplayableProperties.BoundFunctionNoParameters
Evaluating expression...
Getting displayable properties...
Properties:
    "length"     =>  0 (number)  [configurable | isOwn]
    "name"       =>  "bound " (string)  [configurable | isOwn]
    "arguments"  =>  "TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context." (object error)  [wasThrown]
    "caller"     =>  "TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context." (object error)  [wasThrown]
    "__proto__"  =>  "function () {\n    [native code]\n}" (function)  [writable | configurable | isOwn]
Internal Properties:
    "targetFunction"  =>  "function (){}" (function)  []
    "boundThis"       =>  null (object null)  []

-- Running test case: Runtime.getDisplayableProperties.BoundFunctionNoParametersWithArguments
Evaluating expression...
Getting displayable properties...
Properties:
    "length"     =>  0 (number)  [configurable | isOwn]
    "name"       =>  "bound " (string)  [configurable | isOwn]
    "arguments"  =>  "TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context." (object error)  [wasThrown]
    "caller"     =>  "TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context." (object error)  [wasThrown]
    "__proto__"  =>  "function () {\n    [native code]\n}" (function)  [writable | configurable | isOwn]
Internal Properties:
    "targetFunction"  =>  "function (){}" (function)  []
    "boundThis"       =>  null (object null)  []
    "boundArgs"       =>  "Array" (object array)  []

-- Running test case: Runtime.getDisplayableProperties.Promise.Resolved
Evaluating expression...
Getting displayable properties...
Properties:
    "__proto__"  =>  "Promise" (object)  [writable | configurable | isOwn]
Internal Properties:
    "status"  =>  "resolved" (string)  []
    "result"  =>  123 (number)  []

-- Running test case: Runtime.getDisplayableProperties.Promise.Rejected
Evaluating expression...
Getting displayable properties...
Properties:
    "__proto__"  =>  "Promise" (object)  [writable | configurable | isOwn]
Internal Properties:
    "status"  =>  "rejected" (string)  []
    "result"  =>  123 (number)  []

-- Running test case: Runtime.getDisplayableProperties.fetchStart.Object
Evaluating expression...
Getting displayable properties with fetchStart 5...
Properties:
    "U"  =>  5 (number)  [writable | enumerable | configurable | isOwn]
    "G"  =>  6 (number)  [writable | enumerable | configurable | isOwn]
    "S"  =>  7 (number)  [writable | enumerable | configurable | isOwn]
    "I"  =>  8 (number)  [writable | enumerable | configurable | isOwn]
    "Q"  =>  9 (number)  [writable | enumerable | configurable | isOwn]

-- Running test case: Runtime.getDisplayableProperties.fetchCount.Object
Evaluating expression...
Getting displayable properties with fetchCount 5...
Properties:
    "A"          =>  0 (number)  [writable | enumerable | configurable | isOwn]
    "Y"          =>  1 (number)  [writable | enumerable | configurable | isOwn]
    "C"          =>  2 (number)  [writable | enumerable | configurable | isOwn]
    "W"          =>  3 (number)  [writable | enumerable | configurable | isOwn]
    "E"          =>  4 (number)  [writable | enumerable | configurable | isOwn]
    "__proto__"  =>  "Object" (object)  [writable | configurable | isOwn]

-- Running test case: Runtime.getDisplayableProperties.fetchStartCount.Object
Evaluating expression...
Getting displayable properties with fetchStart 3 with fetchCount 4...
Properties:
    "W"  =>  3 (number)  [writable | enumerable | configurable | isOwn]
    "E"  =>  4 (number)  [writable | enumerable | configurable | isOwn]
    "U"  =>  5 (number)  [writable | enumerable | configurable | isOwn]
    "G"  =>  6 (number)  [writable | enumerable | configurable | isOwn]

-- Running test case: Runtime.getDisplayableProperties.fetchStart.Array
Evaluating expression...
Getting displayable properties with fetchStart 5...
Properties:
    "5"  =>  "U" (string)  [writable | enumerable | configurable | isOwn]
    "6"  =>  "G" (string)  [writable | enumerable | configurable | isOwn]
    "7"  =>  "S" (string)  [writable | enumerable | configurable | isOwn]
    "8"  =>  "I" (string)  [writable | enumerable | configurable | isOwn]
    "9"  =>  "Q" (string)  [writable | enumerable | configurable | isOwn]

-- Running test case: Runtime.getDisplayableProperties.fetchCount.Array
Evaluating expression...
Getting displayable properties with fetchCount 5...
Properties:
    "0"          =>  "A" (string)  [writable | enumerable | configurable | isOwn]
    "1"          =>  "Y" (string)  [writable | enumerable | configurable | isOwn]
    "2"          =>  "C" (string)  [writable | enumerable | configurable | isOwn]
    "3"          =>  "W" (string)  [writable | enumerable | configurable | isOwn]
    "4"          =>  "E" (string)  [writable | enumerable | configurable | isOwn]
    "__proto__"  =>  "Array" (object array)  [writable | configurable | isOwn]

-- Running test case: Runtime.getDisplayableProperties.fetchStartCount.Array
Evaluating expression...
Getting displayable properties with fetchStart 3 with fetchCount 4...
Properties:
    "3"  =>  "W" (string)  [writable | enumerable | configurable | isOwn]
    "4"  =>  "E" (string)  [writable | enumerable | configurable | isOwn]
    "5"  =>  "U" (string)  [writable | enumerable | configurable | isOwn]
    "6"  =>  "G" (string)  [writable | enumerable | configurable | isOwn]

