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]
    "caller"     =>  "TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context." (object error)  [wasThrown]
    "arguments"  =>  "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:
    "name"       =>  "bound Test" (string)  [configurable | isOwn]
    "length"     =>  0 (number)  [configurable | isOwn]
    "caller"     =>  "TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context." (object error)  [wasThrown]
    "arguments"  =>  "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:
    "name"       =>  "bound Test" (string)  [configurable | isOwn]
    "length"     =>  0 (number)  [configurable | isOwn]
    "caller"     =>  "TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context." (object error)  [wasThrown]
    "arguments"  =>  "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:
    "arguments"  =>  null (object null)  [isOwn]
    "caller"     =>  null (object null)  [isOwn]
    "length"     =>  3 (number)  [configurable | isOwn]
    "name"       =>  "" (string)  [configurable | isOwn]
    "prototype"  =>  "Object" (object)  [writable | isOwn]
    "__proto__"  =>  "function () {\n    [native code]\n}" (function)  [writable | configurable | isOwn]

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

-- Running test case: Runtime.getDisplayableProperties.BoundFunction
Evaluating expression...
Getting displayable properties...
Properties:
    "name"       =>  "bound " (string)  [configurable | isOwn]
    "length"     =>  3 (number)  [configurable | isOwn]
    "caller"     =>  "TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context." (object error)  [wasThrown]
    "arguments"  =>  "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:
    "name"       =>  "bound " (string)  [configurable | isOwn]
    "length"     =>  0 (number)  [configurable | isOwn]
    "caller"     =>  "TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context." (object error)  [wasThrown]
    "arguments"  =>  "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:
    "name"       =>  "bound " (string)  [configurable | isOwn]
    "length"     =>  0 (number)  [configurable | isOwn]
    "caller"     =>  "TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context." (object error)  [wasThrown]
    "arguments"  =>  "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:
    "name"       =>  "bound " (string)  [configurable | isOwn]
    "length"     =>  0 (number)  [configurable | isOwn]
    "caller"     =>  "TypeError: 'arguments', 'callee', and 'caller' cannot be accessed in this context." (object error)  [wasThrown]
    "arguments"  =>  "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]

