Web Inspector: Cleanup RemoteObject tests
authorjoepeck@webkit.org <joepeck@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 28 Jun 2017 04:23:48 +0000 (04:23 +0000)
committerjoepeck@webkit.org <joepeck@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 28 Jun 2017 04:23:48 +0000 (04:23 +0000)
https://bugs.webkit.org/show_bug.cgi?id=173885

Reviewed by Matt Baker.

* inspector/model/remote-object-dom.html: Added.
* inspector/model/remote-object-expected.txt:
* inspector/model/remote-object.html:
Split out DOM results (which differ across ports and features).

* inspector/model/resources/remote-object-utilities.js:
(TestPage.registerInitializer.window.runSteps):
This should have been a continue not a return.

* platform/mac/inspector/model/remote-object-dom-expected.txt: Added.
* platform/mac/inspector/model/remote-object-expected.txt: Removed.
Platform expectations are now limited to just the DOM test.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@218862 268f45cc-cd09-0410-ab3c-d52691b4dbfc

LayoutTests/ChangeLog
LayoutTests/inspector/model/remote-object-dom.html [new file with mode: 0644]
LayoutTests/inspector/model/remote-object-expected.txt
LayoutTests/inspector/model/remote-object.html
LayoutTests/inspector/model/resources/remote-object-utilities.js
LayoutTests/platform/mac/inspector/model/remote-object-dom-expected.txt [new file with mode: 0644]
LayoutTests/platform/mac/inspector/model/remote-object-expected.txt [deleted file]

index 17321c7..7834d42 100644 (file)
@@ -1,3 +1,23 @@
+2017-06-27  Joseph Pecoraro  <pecoraro@apple.com>
+
+        Web Inspector: Cleanup RemoteObject tests
+        https://bugs.webkit.org/show_bug.cgi?id=173885
+
+        Reviewed by Matt Baker.
+
+        * inspector/model/remote-object-dom.html: Added.
+        * inspector/model/remote-object-expected.txt:
+        * inspector/model/remote-object.html:
+        Split out DOM results (which differ across ports and features).
+
+        * inspector/model/resources/remote-object-utilities.js:
+        (TestPage.registerInitializer.window.runSteps):
+        This should have been a continue not a return.
+
+        * platform/mac/inspector/model/remote-object-dom-expected.txt: Added.
+        * platform/mac/inspector/model/remote-object-expected.txt: Removed.
+        Platform expectations are now limited to just the DOM test.
+
 2017-06-27  Caio Lima  <ticaiolima@gmail.com>
 
         [ESnext] Implement Object Rest - Implementing Object Rest Destructuring
diff --git a/LayoutTests/inspector/model/remote-object-dom.html b/LayoutTests/inspector/model/remote-object-dom.html
new file mode 100644 (file)
index 0000000..2dab462
--- /dev/null
@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<script src="../../http/tests/inspector/resources/inspector-test.js"></script>
+<script src="resources/remote-object-utilities.js"></script>
+<script>
+function test()
+{
+    let steps = [
+        // Event
+        {expression: "window.loadEvent"}, // window.loadEvent is set inside of <body onload="..."> below.
+
+        // Node
+        {expression: `document.body`},
+        {expression: `div = document.createElement("div"); div.className = "foo bar"; div`},
+        {expression: `span = document.createElement("span"); span.id = "foo"; span`},
+        {expression: `input = document.createElement("input"); input.type = "password"; input`},
+        {expression: `text = document.createTextNode("text content"); text`},
+        {expression: `comment = document.createComment("comment content"); comment`},
+        {expression: `svgElement = document.createElementNS("http://www.w3.org/2000/svg", "rect"); svgElement.classList.add("test"); svgElement`},
+        {expression: `[document.body, div, span, input, text, comment, svgElement]`},
+
+        // Node Collections (NodeLists / Collections)
+        {expression: `document.all`, browserOnly: true}, // HTMLAllCollection
+        {expression: `document.head.children`}, // HTMLCollection
+        {expression: `document.getElementsByClassName("my-test")`}, // NodeList
+        {expression: `document.querySelectorAll(".my-test")`}, // Non-Live NodeList
+    ];
+
+    if (!window.WebInspector) {
+        window.steps = steps;
+        return;
+    }
+
+    runSteps(steps);
+}
+</script>
+</head>
+<body onload="window.loadEvent = event; runTest(); runInBrowserTest();">
+    <p class="my-test"></p><p class="my-test"></p><p class="my-test"></p>
+</body>
+</html>
index fcaf515..0ce2c5e 100644 (file)
@@ -1,3 +1,5 @@
+CONSOLE MESSAGE: line 1: Unhandled Promise Rejection: undefined
+CONSOLE MESSAGE: line 1: Unhandled Promise Rejection: result
 
 -----------------------------------------------------
 EXPRESSION: null
@@ -24,7 +26,7 @@ EXPRESSION: Symbol()
 }
 
 -----------------------------------------------------
-EXPRESSION: Symbol('test')
+EXPRESSION: Symbol("test")
 {
   "_type": "symbol",
   "_objectId": "<filtered>",
@@ -168,7 +170,15 @@ EXPRESSION: "'"
 }
 
 -----------------------------------------------------
-EXPRESSION: 'string'
+EXPRESSION: `template`
+{
+  "_type": "string",
+  "_description": "template",
+  "_value": "template"
+}
+
+-----------------------------------------------------
+EXPRESSION: "string"
 {
   "_type": "string",
   "_description": "string",
@@ -176,7 +186,7 @@ EXPRESSION: 'string'
 }
 
 -----------------------------------------------------
-EXPRESSION: 'Unicode…'
+EXPRESSION: "Unicode…"
 {
   "_type": "string",
   "_description": "Unicode…",
@@ -184,7 +194,7 @@ EXPRESSION: 'Unicode…'
 }
 
 -----------------------------------------------------
-EXPRESSION: 'I wish I had something to put here.'
+EXPRESSION: "I wish I had something to put here."
 {
   "_type": "string",
   "_description": "I wish I had something to put here.",
@@ -240,7 +250,7 @@ EXPRESSION: window.setTimeout
 }
 
 -----------------------------------------------------
-EXPRESSION: Object.getOwnPropertyDescriptor({ get getter() { return 1 } }, 'getter').get
+EXPRESSION: Object.getOwnPropertyDescriptor({ get getter() { return 1 } }, "getter").get
 {
   "_type": "function",
   "_objectId": "<filtered>",
@@ -248,7 +258,7 @@ EXPRESSION: Object.getOwnPropertyDescriptor({ get getter() { return 1 } }, 'gett
 }
 
 -----------------------------------------------------
-EXPRESSION: Object.getOwnPropertyDescriptor({ set setter(v) { console.log(v); } }, 'setter').set
+EXPRESSION: Object.getOwnPropertyDescriptor({ set setter(v) { console.log(v); } }, "setter").set
 {
   "_type": "function",
   "_objectId": "<filtered>",
@@ -352,7 +362,7 @@ EXPRESSION: /^r(e)g[e]{1,}x+/ig
 }
 
 -----------------------------------------------------
-EXPRESSION: new RegExp('')
+EXPRESSION: new RegExp("")
 {
   "_type": "object",
   "_subtype": "regexp",
@@ -376,7 +386,7 @@ EXPRESSION: new RegExp('')
 }
 
 -----------------------------------------------------
-EXPRESSION: new RegExp('test', 'i')
+EXPRESSION: new RegExp("test", "i")
 {
   "_type": "object",
   "_subtype": "regexp",
@@ -545,7 +555,7 @@ EXPRESSION: [[1],[2],[3]]
 }
 
 -----------------------------------------------------
-EXPRESSION: [true, 1, 1.234, 'string', /regex/]
+EXPRESSION: [true, 1, 1.234, "string", /regex/]
 {
   "_type": "object",
   "_subtype": "array",
@@ -987,7 +997,7 @@ EXPRESSION: arr = []; arr.length = 100; arr[10] = 1; arr
 }
 
 -----------------------------------------------------
-EXPRESSION: a = null; (function() { a = arguments; })(1, '2', /3/); a
+EXPRESSION: a = null; (function() { a = arguments; })(1, "2", /3/); a
 {
   "_type": "object",
   "_subtype": "array",
@@ -1035,7 +1045,7 @@ EXPRESSION: new Int32Array(new ArrayBuffer(16))
     "_type": "object",
     "_subtype": "array",
     "_description": "Int32Array",
-    "_lossless": true,
+    "_lossless": false,
     "_overflow": false,
     "_size": 4,
     "_properties": [
@@ -1147,7 +1157,7 @@ EXPRESSION: var intArray = new Int32Array(new ArrayBuffer(16)); for (var i = 0;
     "_type": "object",
     "_subtype": "array",
     "_description": "Int32Array",
-    "_lossless": true,
+    "_lossless": false,
     "_overflow": false,
     "_size": 4,
     "_properties": [
@@ -1318,7 +1328,7 @@ EXPRESSION: ({a: 1, b: 0, c: -0})
 }
 
 -----------------------------------------------------
-EXPRESSION: ({a: 1, b: "string", c: /regex/, d: Symbol('sym')})
+EXPRESSION: ({a: 1, b: "string", c: /regex/, d: Symbol("sym")})
 {
   "_type": "object",
   "_objectId": "<filtered>",
@@ -1426,7 +1436,7 @@ EXPRESSION: function Foo() {}; new Foo
   "_preview": {
     "_type": "object",
     "_description": "Foo",
-    "_lossless": true,
+    "_lossless": false,
     "_overflow": false,
     "_properties": [],
     "_entries": null
@@ -1442,7 +1452,7 @@ EXPRESSION: var Foo2 = function() {}; new Foo2
   "_preview": {
     "_type": "object",
     "_description": "Foo2",
-    "_lossless": true,
+    "_lossless": false,
     "_overflow": false,
     "_properties": [],
     "_entries": null
@@ -1458,7 +1468,7 @@ EXPRESSION: var namespace = {}; namespace.Foo3 = function() {}; new namespace.Fo
   "_preview": {
     "_type": "object",
     "_description": "Foo3",
-    "_lossless": true,
+    "_lossless": false,
     "_overflow": false,
     "_properties": [],
     "_entries": null
@@ -1505,7 +1515,7 @@ EXPRESSION: function Bar2() { this._x = 5 }; Bar.prototype = {get x() {return th
   "_preview": {
     "_type": "object",
     "_description": "Bar2",
-    "_lossless": true,
+    "_lossless": false,
     "_overflow": false,
     "_properties": [
       {
@@ -1519,49 +1529,6 @@ EXPRESSION: function Bar2() { this._x = 5 }; Bar.prototype = {get x() {return th
 }
 
 -----------------------------------------------------
-EXPRESSION: window.loadEvent
-{
-  "_type": "object",
-  "_objectId": "<filtered>",
-  "_description": "Event",
-  "_preview": {
-    "_type": "object",
-    "_description": "Event",
-    "_lossless": false,
-    "_overflow": true,
-    "_properties": [
-      {
-        "_name": "clipboardData",
-        "_type": "undefined",
-        "_value": "undefined"
-      },
-      {
-        "_name": "type",
-        "_type": "string",
-        "_value": "load"
-      },
-      {
-        "_name": "target",
-        "_type": "object",
-        "_subtype": "node",
-        "_value": "#document"
-      },
-      {
-        "_name": "currentTarget",
-        "_type": "object",
-        "_value": "Window"
-      },
-      {
-        "_name": "eventPhase",
-        "_type": "number",
-        "_value": "2"
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
 EXPRESSION: new ArrayBuffer(16)
 {
   "_type": "object",
@@ -1570,7 +1537,7 @@ EXPRESSION: new ArrayBuffer(16)
   "_preview": {
     "_type": "object",
     "_description": "ArrayBuffer",
-    "_lossless": true,
+    "_lossless": false,
     "_overflow": false,
     "_properties": [
       {
@@ -1616,7 +1583,7 @@ EXPRESSION: new DataView(new ArrayBuffer(16))
 }
 
 -----------------------------------------------------
-EXPRESSION: obj = {}; obj['prop'] = 1; obj[Symbol()] = 2; obj[Symbol('sym')] = 3; obj[Symbol('sym')] = 4; obj[Symbol.iterator] = Symbol(); obj
+EXPRESSION: obj = {}; obj["prop"] = 1; obj[Symbol()] = 2; obj[Symbol("sym")] = 3; obj[Symbol("sym")] = 4; obj[Symbol.iterator] = Symbol(); obj
 {
   "_type": "object",
   "_objectId": "<filtered>",
@@ -1658,496 +1625,6 @@ EXPRESSION: obj = {}; obj['prop'] = 1; obj[Symbol()] = 2; obj[Symbol('sym')] = 3
 }
 
 -----------------------------------------------------
-EXPRESSION: document.body
-{
-  "_type": "object",
-  "_subtype": "node",
-  "_objectId": "<filtered>",
-  "_description": "body",
-  "_preview": {
-    "_type": "object",
-    "_subtype": "node",
-    "_description": "body",
-    "_lossless": false,
-    "_overflow": true,
-    "_properties": [
-      {
-        "_name": "aLink",
-        "_type": "string",
-        "_value": ""
-      },
-      {
-        "_name": "background",
-        "_type": "string",
-        "_value": ""
-      },
-      {
-        "_name": "bgColor",
-        "_type": "string",
-        "_value": ""
-      },
-      {
-        "_name": "link",
-        "_type": "string",
-        "_value": ""
-      },
-      {
-        "_name": "text",
-        "_type": "string",
-        "_value": ""
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: div = document.createElement('div'); div.className = 'foo bar'; div
-{
-  "_type": "object",
-  "_subtype": "node",
-  "_objectId": "<filtered>",
-  "_description": "div.foo.bar",
-  "_preview": {
-    "_type": "object",
-    "_subtype": "node",
-    "_description": "div.foo.bar",
-    "_lossless": false,
-    "_overflow": true,
-    "_properties": [
-      {
-        "_name": "align",
-        "_type": "string",
-        "_value": ""
-      },
-      {
-        "_name": "title",
-        "_type": "string",
-        "_value": ""
-      },
-      {
-        "_name": "lang",
-        "_type": "string",
-        "_value": ""
-      },
-      {
-        "_name": "translate",
-        "_type": "boolean",
-        "_value": "true"
-      },
-      {
-        "_name": "dir",
-        "_type": "string",
-        "_value": ""
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: span = document.createElement('span'); span.id = 'foo'; span
-{
-  "_type": "object",
-  "_subtype": "node",
-  "_objectId": "<filtered>",
-  "_description": "span#foo",
-  "_preview": {
-    "_type": "object",
-    "_subtype": "node",
-    "_description": "span#foo",
-    "_lossless": false,
-    "_overflow": true,
-    "_properties": [
-      {
-        "_name": "title",
-        "_type": "string",
-        "_value": ""
-      },
-      {
-        "_name": "lang",
-        "_type": "string",
-        "_value": ""
-      },
-      {
-        "_name": "translate",
-        "_type": "boolean",
-        "_value": "true"
-      },
-      {
-        "_name": "dir",
-        "_type": "string",
-        "_value": ""
-      },
-      {
-        "_name": "tabIndex",
-        "_type": "number",
-        "_value": "-1"
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: input = document.createElement('input'); input.type = 'password'; input
-{
-  "_type": "object",
-  "_subtype": "node",
-  "_objectId": "<filtered>",
-  "_description": "input",
-  "_preview": {
-    "_type": "object",
-    "_subtype": "node",
-    "_description": "input",
-    "_lossless": false,
-    "_overflow": true,
-    "_properties": [
-      {
-        "_name": "selectionStart",
-        "_type": "number",
-        "_value": "0"
-      },
-      {
-        "_name": "selectionEnd",
-        "_type": "number",
-        "_value": "0"
-      },
-      {
-        "_name": "selectionDirection",
-        "_type": "string",
-        "_value": "none"
-      },
-      {
-        "_name": "accept",
-        "_type": "string",
-        "_value": ""
-      },
-      {
-        "_name": "alt",
-        "_type": "string",
-        "_value": ""
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: text = document.createTextNode('text content'); text
-{
-  "_type": "object",
-  "_subtype": "node",
-  "_objectId": "<filtered>",
-  "_description": "#text",
-  "_preview": {
-    "_type": "object",
-    "_subtype": "node",
-    "_description": "#text",
-    "_lossless": false,
-    "_overflow": true,
-    "_properties": [
-      {
-        "_name": "wholeText",
-        "_type": "string",
-        "_value": "text content"
-      },
-      {
-        "_name": "splitText",
-        "_type": "function",
-        "_value": ""
-      },
-      {
-        "_name": "replaceWholeText",
-        "_type": "function",
-        "_value": ""
-      },
-      {
-        "_name": "data",
-        "_type": "string",
-        "_value": "text content"
-      },
-      {
-        "_name": "length",
-        "_type": "number",
-        "_value": "12"
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: comment = document.createComment('comment content'); comment
-{
-  "_type": "object",
-  "_subtype": "node",
-  "_objectId": "<filtered>",
-  "_description": "#comment",
-  "_preview": {
-    "_type": "object",
-    "_subtype": "node",
-    "_description": "#comment",
-    "_lossless": false,
-    "_overflow": true,
-    "_properties": [
-      {
-        "_name": "data",
-        "_type": "string",
-        "_value": "comment content"
-      },
-      {
-        "_name": "length",
-        "_type": "number",
-        "_value": "15"
-      },
-      {
-        "_name": "previousElementSibling",
-        "_type": "object",
-        "_subtype": "null",
-        "_value": "null"
-      },
-      {
-        "_name": "nextElementSibling",
-        "_type": "object",
-        "_subtype": "null",
-        "_value": "null"
-      },
-      {
-        "_name": "substringData",
-        "_type": "function",
-        "_value": ""
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: svgElement = document.createElementNS('http://www.w3.org/2000/svg', 'rect'); svgElement.classList.add('test'); svgElement
-{
-  "_type": "object",
-  "_subtype": "node",
-  "_objectId": "<filtered>",
-  "_description": "rect.test",
-  "_preview": {
-    "_type": "object",
-    "_subtype": "node",
-    "_description": "rect.test",
-    "_lossless": false,
-    "_overflow": true,
-    "_properties": [
-      {
-        "_name": "x",
-        "_type": "object",
-        "_value": "SVGAnimatedLength"
-      },
-      {
-        "_name": "y",
-        "_type": "object",
-        "_value": "SVGAnimatedLength"
-      },
-      {
-        "_name": "width",
-        "_type": "object",
-        "_value": "SVGAnimatedLength"
-      },
-      {
-        "_name": "height",
-        "_type": "object",
-        "_value": "SVGAnimatedLength"
-      },
-      {
-        "_name": "rx",
-        "_type": "object",
-        "_value": "SVGAnimatedLength"
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: [document.body, div, span, input, text, comment, svgElement]
-{
-  "_type": "object",
-  "_subtype": "array",
-  "_objectId": "<filtered>",
-  "_description": "Array",
-  "_size": 7,
-  "_preview": {
-    "_type": "object",
-    "_subtype": "array",
-    "_description": "Array",
-    "_lossless": false,
-    "_overflow": false,
-    "_size": 7,
-    "_properties": [
-      {
-        "_name": "0",
-        "_type": "object",
-        "_subtype": "node",
-        "_value": "<body>"
-      },
-      {
-        "_name": "1",
-        "_type": "object",
-        "_subtype": "node",
-        "_value": "<div class=\"foo bar\">"
-      },
-      {
-        "_name": "2",
-        "_type": "object",
-        "_subtype": "node",
-        "_value": "<span id=\"foo\">"
-      },
-      {
-        "_name": "3",
-        "_type": "object",
-        "_subtype": "node",
-        "_value": "<input type=\"password\">"
-      },
-      {
-        "_name": "4",
-        "_type": "object",
-        "_subtype": "node",
-        "_value": "#text \"text content\""
-      },
-      {
-        "_name": "5",
-        "_type": "object",
-        "_subtype": "node",
-        "_value": "<!--comment content-->"
-      },
-      {
-        "_name": "6",
-        "_type": "object",
-        "_subtype": "node",
-        "_value": "<rect class=\"test\">"
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: document.head.children
-{
-  "_type": "object",
-  "_subtype": "array",
-  "_objectId": "<filtered>",
-  "_description": "HTMLCollection",
-  "_size": 3,
-  "_preview": {
-    "_type": "object",
-    "_subtype": "array",
-    "_description": "HTMLCollection",
-    "_lossless": false,
-    "_overflow": false,
-    "_size": 3,
-    "_properties": [
-      {
-        "_name": "0",
-        "_type": "object",
-        "_subtype": "node",
-        "_value": "<meta>"
-      },
-      {
-        "_name": "1",
-        "_type": "object",
-        "_subtype": "node",
-        "_value": "<script>"
-      },
-      {
-        "_name": "2",
-        "_type": "object",
-        "_subtype": "node",
-        "_value": "<script>"
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: document.getElementsByClassName('my-test')
-{
-  "_type": "object",
-  "_subtype": "array",
-  "_objectId": "<filtered>",
-  "_description": "HTMLCollection",
-  "_size": 3,
-  "_preview": {
-    "_type": "object",
-    "_subtype": "array",
-    "_description": "HTMLCollection",
-    "_lossless": false,
-    "_overflow": false,
-    "_size": 3,
-    "_properties": [
-      {
-        "_name": "0",
-        "_type": "object",
-        "_subtype": "node",
-        "_value": "<p class=\"my-test\">"
-      },
-      {
-        "_name": "1",
-        "_type": "object",
-        "_subtype": "node",
-        "_value": "<p class=\"my-test\">"
-      },
-      {
-        "_name": "2",
-        "_type": "object",
-        "_subtype": "node",
-        "_value": "<p class=\"my-test\">"
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: document.querySelectorAll('.my-test')
-{
-  "_type": "object",
-  "_subtype": "array",
-  "_objectId": "<filtered>",
-  "_description": "NodeList",
-  "_size": 3,
-  "_preview": {
-    "_type": "object",
-    "_subtype": "array",
-    "_description": "NodeList",
-    "_lossless": false,
-    "_overflow": false,
-    "_size": 3,
-    "_properties": [
-      {
-        "_name": "0",
-        "_type": "object",
-        "_subtype": "node",
-        "_value": "<p class=\"my-test\">"
-      },
-      {
-        "_name": "1",
-        "_type": "object",
-        "_subtype": "node",
-        "_value": "<p class=\"my-test\">"
-      },
-      {
-        "_name": "2",
-        "_type": "object",
-        "_subtype": "node",
-        "_value": "<p class=\"my-test\">"
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
 EXPRESSION: error = null; try { [].x.x; } catch (e) { error = e; }; error
 {
   "_type": "object",
@@ -2158,7 +1635,7 @@ EXPRESSION: error = null; try { [].x.x; } catch (e) { error = e; }; error
     "_type": "object",
     "_subtype": "error",
     "_description": "TypeError: undefined is not an object (evaluating '[].x.x')",
-    "_lossless": true,
+    "_lossless": false,
     "_overflow": false,
     "_properties": [
       {
@@ -2169,7 +1646,7 @@ EXPRESSION: error = null; try { [].x.x; } catch (e) { error = e; }; error
       {
         "_name": "line",
         "_type": "number",
-        "_value": "1"
+        "_value": "3"
       },
       {
         "_name": "column",
@@ -2179,7 +1656,7 @@ EXPRESSION: error = null; try { [].x.x; } catch (e) { error = e; }; error
       {
         "_name": "stack",
         "_type": "string",
-        "_value": "eval code\neval@[native code]\n_evaluateOn\n_evaluateAndWrap\nevaluate"
+        "_value": "global code\nevaluateWithScopeExtension@[native code]\n_evaluateOn\n_evaluateAndWrap\nevaluate"
       }
     ],
     "_entries": null
@@ -2187,7 +1664,7 @@ EXPRESSION: error = null; try { [].x.x; } catch (e) { error = e; }; error
 }
 
 -----------------------------------------------------
-EXPRESSION: error = null; try { eval('if()'); } catch (e) { error = e; }; error
+EXPRESSION: error = null; try { eval("if()"); } catch (e) { error = e; }; error
 {
   "_type": "object",
   "_subtype": "error",
@@ -2197,7 +1674,7 @@ EXPRESSION: error = null; try { eval('if()'); } catch (e) { error = e; }; error
     "_type": "object",
     "_subtype": "error",
     "_description": "SyntaxError: Unexpected token ')'",
-    "_lossless": true,
+    "_lossless": false,
     "_overflow": false,
     "_properties": [
       {
@@ -2208,7 +1685,7 @@ EXPRESSION: error = null; try { eval('if()'); } catch (e) { error = e; }; error
       {
         "_name": "line",
         "_type": "number",
-        "_value": "1"
+        "_value": "3"
       },
       {
         "_name": "column",
@@ -2218,7 +1695,7 @@ EXPRESSION: error = null; try { eval('if()'); } catch (e) { error = e; }; error
       {
         "_name": "stack",
         "_type": "string",
-        "_value": "eval@[native code]\neval code\neval@[native code]\n_evaluateOn\n_evaluateAndWrap\nevaluate"
+        "_value": "eval@[native code]\nglobal code\nevaluateWithScopeEx…ative code]\n_evaluateOn\n_evaluateAndWrap\nevaluate"
       }
     ],
     "_entries": null
@@ -2226,7 +1703,7 @@ EXPRESSION: error = null; try { eval('if()'); } catch (e) { error = e; }; error
 }
 
 -----------------------------------------------------
-EXPRESSION: error = null; try { document.createTextNode('').splitText(100); } catch (e) { error = e; }; error
+EXPRESSION: error = null; try { document.createTextNode("").splitText(100); } catch (e) { error = e; }; error
 {
   "_type": "object",
   "_subtype": "error",
@@ -2252,12 +1729,12 @@ EXPRESSION: error = null; try { document.createTextNode('').splitText(100); } ca
       {
         "_name": "message",
         "_type": "string",
-        "_value": "IndexSizeError: DOM Exception 1"
+        "_value": "The index is not in the allowed range."
       },
       {
         "_name": "line",
         "_type": "number",
-        "_value": "1"
+        "_value": "3"
       },
       {
         "_name": "column",
@@ -2290,7 +1767,7 @@ EXPRESSION: new Map
 }
 
 -----------------------------------------------------
-EXPRESSION: map = new Map; map.set(1, 2); map.set('key', 'value'); map
+EXPRESSION: map = new Map; map.set(1, 2); map.set("key", "value"); map
 {
   "_type": "object",
   "_subtype": "map",
@@ -2397,7 +1874,7 @@ EXPRESSION: map = new Map; map.set({a:1}, {b:2}); map.set(document.body, [1,2]);
         "_key": {
           "_type": "object",
           "_subtype": "node",
-          "_description": "body",
+          "_description": "<body>",
           "_lossless": false,
           "_overflow": true,
           "_properties": [
@@ -2688,7 +2165,7 @@ EXPRESSION: new Set
 }
 
 -----------------------------------------------------
-EXPRESSION: set = new Set; set.add(1); set.add(2); set.add('key'); set
+EXPRESSION: set = new Set; set.add(1); set.add(2); set.add("key"); set
 {
   "_type": "object",
   "_subtype": "set",
@@ -2775,7 +2252,7 @@ EXPRESSION: set = new Set; set.add({a:1}); set.add(document.body); set.add([1,2]
         "_value": {
           "_type": "object",
           "_subtype": "node",
-          "_description": "body",
+          "_description": "<body>",
           "_lossless": false,
           "_overflow": true,
           "_properties": [
@@ -2977,7 +2454,7 @@ EXPRESSION: set = new WeakSet; strongKey = {id:1}; set.add(strongKey); set
 }
 
 -----------------------------------------------------
-EXPRESSION: 'a'[Symbol.iterator]()
+EXPRESSION: "a"[Symbol.iterator]()
 {
   "_type": "object",
   "_subtype": "iterator",
@@ -3013,7 +2490,7 @@ EXPRESSION: 'a'[Symbol.iterator]()
 }
 
 -----------------------------------------------------
-EXPRESSION: 'long string'[Symbol.iterator]()
+EXPRESSION: "long string"[Symbol.iterator]()
 {
   "_type": "object",
   "_subtype": "iterator",
@@ -3188,7 +2665,7 @@ EXPRESSION: [1][Symbol.iterator]()
 }
 
 -----------------------------------------------------
-EXPRESSION: [1, 'two', 3, 'four', 5, 'size'][Symbol.iterator]()
+EXPRESSION: [1, "two", 3, "four", 5, "size"][Symbol.iterator]()
 {
   "_type": "object",
   "_subtype": "iterator",
@@ -3271,7 +2748,7 @@ EXPRESSION: [1, 'two', 3, 'four', 5, 'size'][Symbol.iterator]()
 }
 
 -----------------------------------------------------
-EXPRESSION: [1, 'two', 3, 'four', 5, 'size'].keys()
+EXPRESSION: [1, "two", 3, "four", 5, "size"].keys()
 {
   "_type": "object",
   "_subtype": "iterator",
@@ -3354,7 +2831,7 @@ EXPRESSION: [1, 'two', 3, 'four', 5, 'size'].keys()
 }
 
 -----------------------------------------------------
-EXPRESSION: [1, 'two', 3, 'four', 5, 'size'].entries()
+EXPRESSION: [1, "two", 3, "four", 5, "size"].entries()
 {
   "_type": "object",
   "_subtype": "iterator",
@@ -3502,7 +2979,7 @@ EXPRESSION: [1, 'two', 3, 'four', 5, 'size'].entries()
 }
 
 -----------------------------------------------------
-EXPRESSION: map = new Map; map.set(1, 2); map.set('key', 'value'); map.values()
+EXPRESSION: map = new Map; map.set(1, 2); map.set("key", "value"); map.values()
 {
   "_type": "object",
   "_subtype": "iterator",
@@ -3849,7 +3326,7 @@ EXPRESSION: map.entries()
 }
 
 -----------------------------------------------------
-EXPRESSION: x = undefined; (function() { x = arguments; })(1, 'two'); x[Symbol.iterator]()
+EXPRESSION: x = undefined; (function() { x = arguments; })(1, "two"); x[Symbol.iterator]()
 {
   "_type": "object",
   "_subtype": "iterator",
@@ -3922,7 +3399,7 @@ EXPRESSION: x = undefined; (function() { x = arguments; })(1, 'two'); x[Symbol.i
 }
 
 -----------------------------------------------------
-EXPRESSION: iter = [1, 2][Symbol.iterator](); iter['return'] = function(){}; iter
+EXPRESSION: iter = [1, 2][Symbol.iterator](); iter["return"] = function(){}; iter
 {
   "_type": "object",
   "_subtype": "iterator",
@@ -4003,7 +3480,7 @@ EXPRESSION: new Promise(function(){})
   "_preview": {
     "_type": "object",
     "_description": "Promise",
-    "_lossless": true,
+    "_lossless": false,
     "_overflow": false,
     "_properties": [
       {
@@ -4026,7 +3503,7 @@ EXPRESSION: Promise.reject()
   "_preview": {
     "_type": "object",
     "_description": "Promise",
-    "_lossless": true,
+    "_lossless": false,
     "_overflow": false,
     "_properties": [
       {
@@ -4047,7 +3524,7 @@ EXPRESSION: Promise.reject()
 }
 
 -----------------------------------------------------
-EXPRESSION: Promise.reject('result')
+EXPRESSION: Promise.reject("result")
 {
   "_type": "object",
   "_objectId": "<filtered>",
@@ -4055,7 +3532,7 @@ EXPRESSION: Promise.reject('result')
   "_preview": {
     "_type": "object",
     "_description": "Promise",
-    "_lossless": true,
+    "_lossless": false,
     "_overflow": false,
     "_properties": [
       {
@@ -4084,7 +3561,7 @@ EXPRESSION: Promise.resolve()
   "_preview": {
     "_type": "object",
     "_description": "Promise",
-    "_lossless": true,
+    "_lossless": false,
     "_overflow": false,
     "_properties": [
       {
@@ -4113,7 +3590,7 @@ EXPRESSION: Promise.resolve({result:1})
   "_preview": {
     "_type": "object",
     "_description": "Promise",
-    "_lossless": true,
+    "_lossless": false,
     "_overflow": false,
     "_properties": [
       {
@@ -4216,7 +3693,7 @@ EXPRESSION: Person = class Person { constructor(name){} get fullName(){} methodN
     "_objectId": "<filtered>",
     "_description": "Person"
   },
-  "_functionDescription": "function Person(name){}"
+  "_functionDescription": "class Person { constructor(name){} get fullName(){} methodName(p1, p2){} }"
 }
 
 -----------------------------------------------------
@@ -4228,6 +3705,22 @@ EXPRESSION: Person.prototype.methodName
 }
 
 -----------------------------------------------------
+EXPRESSION: new Person
+{
+  "_type": "object",
+  "_objectId": "<filtered>",
+  "_description": "Person",
+  "_preview": {
+    "_type": "object",
+    "_description": "Person",
+    "_lossless": false,
+    "_overflow": false,
+    "_properties": [],
+    "_entries": null
+  }
+}
+
+-----------------------------------------------------
 EXPRESSION: Alpha = class A { methodA(){} }; Beta = class B extends Alpha { methodB(){} }; Beta
 {
   "_type": "function",
@@ -4239,7 +3732,7 @@ EXPRESSION: Alpha = class A { methodA(){} }; Beta = class B extends Alpha { meth
     "_objectId": "<filtered>",
     "_description": "B"
   },
-  "_functionDescription": "function B() { super(...arguments); }"
+  "_functionDescription": "class B extends Alpha { methodB(){} }"
 }
 
 -----------------------------------------------------
index 712900a..573fb05 100644 (file)
@@ -11,180 +11,164 @@ function test()
     // Special:
 
         // Null / undefined
-        {expression: "null"},
-        {expression: "undefined"},
+        {expression: `null`},
+        {expression: `undefined`},
 
         // Symbol
-        {expression: "Symbol()"},
-        {expression: "Symbol('test')"},
+        {expression: `Symbol()`},
+        {expression: `Symbol("test")`},
 
     // Primatives:
 
         // Boolean
-        {expression: "true"},
-        {expression: "false"},
+        {expression: `true`},
+        {expression: `false`},
 
         // Number
-        {expression: "0"},
-        {expression: "-0"},
-        {expression: "1"},
-        {expression: "-1"},
-        {expression: "1.234"},
-        {expression: "-1.234"},
-        {expression: "1e3"},
-        {expression: "Number.MAX_VALUE"},
-        {expression: "Number.MIN_VALUE"},
-        {expression: "NaN"},
-        {expression: "Infinity"},
-        {expression: "-Infinity"},
+        {expression: `0`},
+        {expression: `-0`},
+        {expression: `1`},
+        {expression: `-1`},
+        {expression: `1.234`},
+        {expression: `-1.234`},
+        {expression: `1e3`},
+        {expression: `Number.MAX_VALUE`},
+        {expression: `Number.MIN_VALUE`},
+        {expression: `NaN`},
+        {expression: `Infinity`},
+        {expression: `-Infinity`},
 
         // Strings
-        {expression: "''"},
-        {expression: "'\"'"}, // a single quote
-        {expression: "\"'\""}, // a double quote
-        {expression: "'string'"},
-        {expression: "'Unicode…'"},
-        {expression: "'I wish I had something to put here.'"},
+        {expression: `''`},
+        {expression: `'"'`}, // a single quoted string
+        {expression: `"'"`}, // a double quoted string
+        {expression: "`template`"}, // a template string
+        {expression: `"string"`},
+        {expression: `"Unicode…"`},
+        {expression: `"I wish I had something to put here."`},
 
         // Function
-        {expression: "(function(){})"},
-        {expression: "function foo(){}; foo"},
-        {expression: "function myFunction(a, b) { console.log(a, b); }; myFunction"},
-        {expression: "function myTarget(a, b) { console.log(a, b); }; myTarget.bind(null)"}, // bound function
-        {expression: "Array.prototype.push"}, // native (ECMAScript)
-        {expression: "window.setTimeout"}, // native (DOM)
-        {expression: "Object.getOwnPropertyDescriptor({ get getter() { return 1 } }, 'getter').get"}, // getter
-        {expression: "Object.getOwnPropertyDescriptor({ set setter(v) { console.log(v); } }, 'setter').set"}, // setter
+        {expression: `(function(){})`},
+        {expression: `function foo(){}; foo`},
+        {expression: `function myFunction(a, b) { console.log(a, b); }; myFunction`},
+        {expression: `function myTarget(a, b) { console.log(a, b); }; myTarget.bind(null)`}, // bound function
+        {expression: `Array.prototype.push`}, // native (ECMAScript)
+        {expression: `window.setTimeout`}, // native (DOM)
+        {expression: `Object.getOwnPropertyDescriptor({ get getter() { return 1 } }, "getter").get`}, // getter
+        {expression: `Object.getOwnPropertyDescriptor({ set setter(v) { console.log(v); } }, "setter").set`}, // setter
 
     // Objects:
 
         // Date
-        {expression: "new Date(99)", browserOnly: true},
-        {expression: "new Date(1421903245871)", browserOnly: true},
+        {expression: `new Date(99)`, browserOnly: true},
+        {expression: `new Date(1421903245871)`, browserOnly: true},
 
         // Regexp
-        {expression: "/ /"},
-        {expression: "/(?:)/"},
-        {expression: "/^r(e)g[e]{1,}x+/"},
-        {expression: "/^r(e)g[e]{1,}x+/ig"},
-        {expression: "new RegExp('')"},
-        {expression: "new RegExp('test', 'i')"},
+        {expression: `/ /`},
+        {expression: `/(?:)/`},
+        {expression: `/^r(e)g[e]{1,}x+/`},
+        {expression: `/^r(e)g[e]{1,}x+/ig`},
+        {expression: `new RegExp("")`},
+        {expression: `new RegExp("test", "i")`},
 
         // Array
-        {expression: "[]"},
-        {expression: "[0, -0, 1, 2]"},
-        {expression: "[[1],[2],[3]]"},
-        {expression: "[true, 1, 1.234, 'string', /regex/]"},
-        {expression: "[[null]]"},
-        {expression: "[[undefined]]"},
-        {expression: "[{a:1}, {b:2}, {c:2}]"},
-        {expression: "[[{a:1}, {b:2}, {c:2}]]"},
-        {expression: "arr = []; arr[0] = arr; arr"}, // cyclic
-        {expression: "arr = []; arr.length = 100; arr"}, // 100 empty elements
-        {expression: "arr = []; arr.length = 100; arr.fill(1)"}, // 100 full elements
-        {expression: "arr = []; arr.length = 100; arr[10] = 1; arr"}, // sparse
+        {expression: `[]`},
+        {expression: `[0, -0, 1, 2]`},
+        {expression: `[[1],[2],[3]]`},
+        {expression: `[true, 1, 1.234, "string", /regex/]`},
+        {expression: `[[null]]`},
+        {expression: `[[undefined]]`},
+        {expression: `[{a:1}, {b:2}, {c:2}]`},
+        {expression: `[[{a:1}, {b:2}, {c:2}]]`},
+        {expression: `arr = []; arr[0] = arr; arr`}, // cyclic
+        {expression: `arr = []; arr.length = 100; arr`}, // 100 empty elements
+        {expression: `arr = []; arr.length = 100; arr.fill(1)`}, // 100 full elements
+        {expression: `arr = []; arr.length = 100; arr[10] = 1; arr`}, // sparse
 
         // Array-like (Arguments, TypedArrays)
-        {expression: "a = null; (function() { a = arguments; })(1, '2', /3/); a"},
-        {expression: "new Int32Array(new ArrayBuffer(16))"},
-        {expression: "new Uint8ClampedArray(12)"},
-        {expression: "var intArray = new Int32Array(new ArrayBuffer(16)); for (var i = 0; i < intArray.length; ++i) intArray[i] = i; intArray"},
-        {expression: "var buffer = new ArrayBuffer(10000000); var int8View = new Int8Array(buffer); int8View"}, // 10000000 elements.
+        {expression: `a = null; (function() { a = arguments; })(1, "2", /3/); a`},
+        {expression: `new Int32Array(new ArrayBuffer(16))`},
+        {expression: `new Uint8ClampedArray(12)`},
+        {expression: `var intArray = new Int32Array(new ArrayBuffer(16)); for (var i = 0; i < intArray.length; ++i) intArray[i] = i; intArray`},
+        {expression: `var buffer = new ArrayBuffer(10000000); var int8View = new Int8Array(buffer); int8View`}, // 10000000 elements.
 
         // Object
-        {expression: "({})"},
-        {expression: "({a: 1})"},
-        {expression: "({a: 1, b: 0, c: -0})"},
-        {expression: "({a: 1, b: \"string\", c: /regex/, d: Symbol('sym')})"},
-        {expression: "o = {a:1}; o.b = o; o"}, // cyclic
-        {expression: "({a:function a(){}, b:function b(){}, get getter(){}, set setter(v){}})"},
-        {expression: "function Foo() {}; new Foo"},
-        {expression: "var Foo2 = function() {}; new Foo2"},
-        {expression: "var namespace = {}; namespace.Foo3 = function() {}; new namespace.Foo3"},
-        {expression: "function Bar() { this._x = 5 }; Bar.prototype = {constructor: Bar, get x() {return this._x;}}; new Bar"},
-        {expression: "function Bar2() { this._x = 5 }; Bar.prototype = {get x() {return this._x;}}; new Bar2"},
-        {expression: "window.loadEvent"}, // window.loadEvent is set inside of <body onload="..."> below.
-        {expression: "new ArrayBuffer(16)"},
-        {expression: "new DataView(new ArrayBuffer(16))"},
-        {expression: "obj = {}; obj['prop'] = 1; obj[Symbol()] = 2; obj[Symbol('sym')] = 3; obj[Symbol('sym')] = 4; obj[Symbol.iterator] = Symbol(); obj"}, // Symbol properties
-
-        // Node
-        {expression: "document.body"},
-        {expression: "div = document.createElement('div'); div.className = 'foo bar'; div"},
-        {expression: "span = document.createElement('span'); span.id = 'foo'; span"},
-        {expression: "input = document.createElement('input'); input.type = 'password'; input"},
-        {expression: "text = document.createTextNode('text content'); text"},
-        {expression: "comment = document.createComment('comment content'); comment"},
-        {expression: "svgElement = document.createElementNS('http://www.w3.org/2000/svg', 'rect'); svgElement.classList.add('test'); svgElement"},
-        {expression: "[document.body, div, span, input, text, comment, svgElement]"},
-
-        // Node Collections (NodeLists / Collections)
-        {expression: "document.all", browserOnly: true}, // HTMLAllCollection
-        {expression: "document.head.children"}, // HTMLCollection
-        {expression: "document.getElementsByClassName('my-test')"}, // NodeList
-        {expression: "document.querySelectorAll('.my-test')"}, // Non-Live NodeList
+        {expression: `({})`},
+        {expression: `({a: 1})`},
+        {expression: `({a: 1, b: 0, c: -0})`},
+        {expression: `({a: 1, b: \"string\", c: /regex/, d: Symbol("sym")})`},
+        {expression: `o = {a:1}; o.b = o; o`}, // cyclic
+        {expression: `({a:function a(){}, b:function b(){}, get getter(){}, set setter(v){}})`},
+        {expression: `function Foo() {}; new Foo`},
+        {expression: `var Foo2 = function() {}; new Foo2`},
+        {expression: `var namespace = {}; namespace.Foo3 = function() {}; new namespace.Foo3`},
+        {expression: `function Bar() { this._x = 5 }; Bar.prototype = {constructor: Bar, get x() {return this._x;}}; new Bar`},
+        {expression: `function Bar2() { this._x = 5 }; Bar.prototype = {get x() {return this._x;}}; new Bar2`},
+        {expression: `new ArrayBuffer(16)`},
+        {expression: `new DataView(new ArrayBuffer(16))`},
+        {expression: `obj = {}; obj["prop"] = 1; obj[Symbol()] = 2; obj[Symbol("sym")] = 3; obj[Symbol("sym")] = 4; obj[Symbol.iterator] = Symbol(); obj`}, // Symbol properties
 
         // Error
-        {expression: "error = null; try { [].x.x; } catch (e) { error = e; }; error"},
-        {expression: "error = null; try { eval('if()'); } catch (e) { error = e; }; error"},
-        {expression: "error = null; try { document.createTextNode('').splitText(100); } catch (e) { error = e; }; error"},
+        {expression: `error = null; try { [].x.x; } catch (e) { error = e; }; error`},
+        {expression: `error = null; try { eval("if()"); } catch (e) { error = e; }; error`},
+        {expression: `error = null; try { document.createTextNode("").splitText(100); } catch (e) { error = e; }; error`},
 
         // Map / WeakMap
-        {expression: "new Map"},
-        {expression: "map = new Map; map.set(1, 2); map.set('key', 'value'); map"},
-        {expression: "map = new Map; map.set({a:1}, {b:2}); map.set(document.body, [1,2]); map"},
-        {expression: "map = new Map; for (var i = 0; i <= 100; i++) map.set(i, i); map"},
-        {expression: "map = new Map; map.set(map, map); map"},
-        {expression: "map = new WeakMap; strongKey = {id:1}; map.set(strongKey, [1,2]); map"},
+        {expression: `new Map`},
+        {expression: `map = new Map; map.set(1, 2); map.set("key", "value"); map`},
+        {expression: `map = new Map; map.set({a:1}, {b:2}); map.set(document.body, [1,2]); map`},
+        {expression: `map = new Map; for (var i = 0; i <= 100; i++) map.set(i, i); map`},
+        {expression: `map = new Map; map.set(map, map); map`},
+        {expression: `map = new WeakMap; strongKey = {id:1}; map.set(strongKey, [1,2]); map`},
 
         // Set / WeakSet
-        {expression: "new Set"},
-        {expression: "set = new Set; set.add(1); set.add(2); set.add('key'); set"},
-        {expression: "set = new Set; set.add({a:1}); set.add(document.body); set.add([1,2]); set"},
-        {expression: "set = new Set; for (var i = 0; i <= 100; i++) set.add(i); set"},
-        {expression: "set = new Set; set.add(set); set"},
-        {expression: "set = new WeakSet; strongKey = {id:1}; set.add(strongKey); set"},
+        {expression: `new Set`},
+        {expression: `set = new Set; set.add(1); set.add(2); set.add("key"); set`},
+        {expression: `set = new Set; set.add({a:1}); set.add(document.body); set.add([1,2]); set`},
+        {expression: `set = new Set; for (var i = 0; i <= 100; i++) set.add(i); set`},
+        {expression: `set = new Set; set.add(set); set`},
+        {expression: `set = new WeakSet; strongKey = {id:1}; set.add(strongKey); set`},
 
         // Iterators
-        {expression: "'a'[Symbol.iterator]()"},
-        {expression: "'long string'[Symbol.iterator]()"},
-        {expression: "[][Symbol.iterator]()"},
-        {expression: "[1][Symbol.iterator]()"},
-        {expression: "[1, 'two', 3, 'four', 5, 'size'][Symbol.iterator]()"},
-        {expression: "[1, 'two', 3, 'four', 5, 'size'].keys()"},
-        {expression: "[1, 'two', 3, 'four', 5, 'size'].entries()"},
-        {expression: "map = new Map; map.set(1, 2); map.set('key', 'value'); map.values()"},
-        {expression: "map.keys()"},
-        {expression: "map.entries()"},
-        {expression: "set = new Set; for (var i = 0; i <= 100; i++) set.add(i); set.values()"},
-        {expression: "map.entries()"},
-        {expression: "x = undefined; (function() { x = arguments; })(1, 'two'); x[Symbol.iterator]()"},
-        {expression: "iter = [1, 2][Symbol.iterator](); iter['return'] = function(){}; iter"},
+        {expression: `"a"[Symbol.iterator]()`},
+        {expression: `"long string"[Symbol.iterator]()`},
+        {expression: `[][Symbol.iterator]()`},
+        {expression: `[1][Symbol.iterator]()`},
+        {expression: `[1, "two", 3, "four", 5, "size"][Symbol.iterator]()`},
+        {expression: `[1, "two", 3, "four", 5, "size"].keys()`},
+        {expression: `[1, "two", 3, "four", 5, "size"].entries()`},
+        {expression: `map = new Map; map.set(1, 2); map.set("key", "value"); map.values()`},
+        {expression: `map.keys()`},
+        {expression: `map.entries()`},
+        {expression: `set = new Set; for (var i = 0; i <= 100; i++) set.add(i); set.values()`},
+        {expression: `map.entries()`},
+        {expression: `x = undefined; (function() { x = arguments; })(1, "two"); x[Symbol.iterator]()`},
+        {expression: `iter = [1, 2][Symbol.iterator](); iter["return"] = function(){}; iter`},
 
         // Promise
-        {expression: "new Promise(function(){})"},
-        {expression: "Promise.reject()"},
-        {expression: "Promise.reject('result')"},
-        {expression: "Promise.resolve()"},
-        {expression: "Promise.resolve({result:1})"},
+        {expression: `new Promise(function(){})`},
+        {expression: `Promise.reject()`},
+        {expression: `Promise.reject("result")`},
+        {expression: `Promise.resolve()`},
+        {expression: `Promise.resolve({result:1})`},
 
         // Proxy
-        {expression: "new Proxy({x:1, y:1}, {handler: true})"},
-        {expression: "new Proxy(new Proxy({foo:1, bar:1}, {}), {})"},
+        {expression: `new Proxy({x:1, y:1}, {handler: true})`},
+        {expression: `new Proxy(new Proxy({foo:1, bar:1}, {}), {})`},
 
     // Classes
 
-        {expression: "Person = class Person { constructor(name){} get fullName(){} methodName(p1, p2){} }; Person"}, // Constructor => class type
-        {expression: "Person.prototype.methodName"}, // Method => just a function type
-        {expression: "new Person"}, // Instance, not lossless, it's prototype may have interesting methods to show
-        {expression: "Alpha = class A { methodA(){} }; Beta = class B extends Alpha { methodB(){} }; Beta"},
-        {expression: "[Beta]"},
+        {expression: `Person = class Person { constructor(name){} get fullName(){} methodName(p1, p2){} }; Person`}, // Constructor => class type
+        {expression: `Person.prototype.methodName`}, // Method => just a function type
+        {expression: `new Person`}, // Instance, not lossless, it's prototype may have interesting methods to show
+        {expression: `Alpha = class A { methodA(){} }; Beta = class B extends Alpha { methodB(){} }; Beta`},
+        {expression: `[Beta]`},
 
     // Improveable:
 
         // Sealed / Frozen objects.
-        {expression: "Object.seal({})"},
-        {expression: "Object.freeze({})"},
+        {expression: `Object.seal({})`},
+        {expression: `Object.freeze({})`},
     ];
 
     if (!window.WebInspector) {
@@ -196,7 +180,5 @@ function test()
 }
 </script>
 </head>
-<body onload="window.loadEvent = event; runTest(); runInBrowserTest();">
-    <p class="my-test"></p><p class="my-test"></p><p class="my-test"></p>
-</body>
+<body onload="runTest(); runInBrowserTest();"></body>
 </html>
index d1e9d11..72581cf 100644 (file)
@@ -34,7 +34,7 @@ TestPage.registerInitializer(() => {
         for (let {expression, browserOnly} of steps) {
             if (browserOnly) {
                 checkComplete();
-                return;
+                continue;
             }
 
             WebInspector.runtimeManager.evaluateInInspectedWindow(expression, {objectGroup: "test", doNotPauseOnExceptionsAndMuteConsole: true, generatePreview: true}, (remoteObject, wasThrown) => {
diff --git a/LayoutTests/platform/mac/inspector/model/remote-object-dom-expected.txt b/LayoutTests/platform/mac/inspector/model/remote-object-dom-expected.txt
new file mode 100644 (file)
index 0000000..4f8a354
--- /dev/null
@@ -0,0 +1,541 @@
+
+-----------------------------------------------------
+EXPRESSION: window.loadEvent
+{
+  "_type": "object",
+  "_objectId": "<filtered>",
+  "_description": "Event",
+  "_preview": {
+    "_type": "object",
+    "_description": "Event",
+    "_lossless": false,
+    "_overflow": true,
+    "_properties": [
+      {
+        "_name": "isTrusted",
+        "_type": "boolean",
+        "_value": "true"
+      },
+      {
+        "_name": "type",
+        "_type": "string",
+        "_value": "load"
+      },
+      {
+        "_name": "target",
+        "_type": "object",
+        "_subtype": "node",
+        "_value": "#document"
+      },
+      {
+        "_name": "currentTarget",
+        "_type": "object",
+        "_value": "Window"
+      },
+      {
+        "_name": "eventPhase",
+        "_type": "number",
+        "_value": "2"
+      }
+    ],
+    "_entries": null
+  }
+}
+
+-----------------------------------------------------
+EXPRESSION: document.body
+{
+  "_type": "object",
+  "_subtype": "node",
+  "_objectId": "<filtered>",
+  "_description": "<body>",
+  "_preview": {
+    "_type": "object",
+    "_subtype": "node",
+    "_description": "<body>",
+    "_lossless": false,
+    "_overflow": true,
+    "_properties": [
+      {
+        "_name": "aLink",
+        "_type": "string",
+        "_value": ""
+      },
+      {
+        "_name": "background",
+        "_type": "string",
+        "_value": ""
+      },
+      {
+        "_name": "bgColor",
+        "_type": "string",
+        "_value": ""
+      },
+      {
+        "_name": "link",
+        "_type": "string",
+        "_value": ""
+      },
+      {
+        "_name": "text",
+        "_type": "string",
+        "_value": ""
+      }
+    ],
+    "_entries": null
+  }
+}
+
+-----------------------------------------------------
+EXPRESSION: div = document.createElement("div"); div.className = "foo bar"; div
+{
+  "_type": "object",
+  "_subtype": "node",
+  "_objectId": "<filtered>",
+  "_description": "<div class=\"foo bar\">",
+  "_preview": {
+    "_type": "object",
+    "_subtype": "node",
+    "_description": "<div class=\"foo bar\">",
+    "_lossless": false,
+    "_overflow": true,
+    "_properties": [
+      {
+        "_name": "align",
+        "_type": "string",
+        "_value": ""
+      },
+      {
+        "_name": "title",
+        "_type": "string",
+        "_value": ""
+      },
+      {
+        "_name": "lang",
+        "_type": "string",
+        "_value": ""
+      },
+      {
+        "_name": "translate",
+        "_type": "boolean",
+        "_value": "true"
+      },
+      {
+        "_name": "dir",
+        "_type": "string",
+        "_value": ""
+      }
+    ],
+    "_entries": null
+  }
+}
+
+-----------------------------------------------------
+EXPRESSION: span = document.createElement("span"); span.id = "foo"; span
+{
+  "_type": "object",
+  "_subtype": "node",
+  "_objectId": "<filtered>",
+  "_description": "<span id=\"foo\">",
+  "_preview": {
+    "_type": "object",
+    "_subtype": "node",
+    "_description": "<span id=\"foo\">",
+    "_lossless": false,
+    "_overflow": true,
+    "_properties": [
+      {
+        "_name": "title",
+        "_type": "string",
+        "_value": ""
+      },
+      {
+        "_name": "lang",
+        "_type": "string",
+        "_value": ""
+      },
+      {
+        "_name": "translate",
+        "_type": "boolean",
+        "_value": "true"
+      },
+      {
+        "_name": "dir",
+        "_type": "string",
+        "_value": ""
+      },
+      {
+        "_name": "dataset",
+        "_type": "object",
+        "_value": "DOMStringMap"
+      }
+    ],
+    "_entries": null
+  }
+}
+
+-----------------------------------------------------
+EXPRESSION: input = document.createElement("input"); input.type = "password"; input
+{
+  "_type": "object",
+  "_subtype": "node",
+  "_objectId": "<filtered>",
+  "_description": "<input type=\"password\">",
+  "_preview": {
+    "_type": "object",
+    "_subtype": "node",
+    "_description": "<input type=\"password\">",
+    "_lossless": false,
+    "_overflow": true,
+    "_properties": [
+      {
+        "_name": "accept",
+        "_type": "string",
+        "_value": ""
+      },
+      {
+        "_name": "alt",
+        "_type": "string",
+        "_value": ""
+      },
+      {
+        "_name": "autocomplete",
+        "_type": "string",
+        "_value": ""
+      },
+      {
+        "_name": "autofocus",
+        "_type": "boolean",
+        "_value": "false"
+      },
+      {
+        "_name": "defaultChecked",
+        "_type": "boolean",
+        "_value": "false"
+      }
+    ],
+    "_entries": null
+  }
+}
+
+-----------------------------------------------------
+EXPRESSION: text = document.createTextNode("text content"); text
+{
+  "_type": "object",
+  "_subtype": "node",
+  "_objectId": "<filtered>",
+  "_description": "#text \"text content\"",
+  "_preview": {
+    "_type": "object",
+    "_subtype": "node",
+    "_description": "#text \"text content\"",
+    "_lossless": false,
+    "_overflow": true,
+    "_properties": [
+      {
+        "_name": "wholeText",
+        "_type": "string",
+        "_value": "text content"
+      },
+      {
+        "_name": "assignedSlot",
+        "_type": "object",
+        "_subtype": "null",
+        "_value": "null"
+      },
+      {
+        "_name": "splitText",
+        "_type": "function",
+        "_value": ""
+      },
+      {
+        "_name": "data",
+        "_type": "string",
+        "_value": "text content"
+      },
+      {
+        "_name": "length",
+        "_type": "number",
+        "_value": "12"
+      }
+    ],
+    "_entries": null
+  }
+}
+
+-----------------------------------------------------
+EXPRESSION: comment = document.createComment("comment content"); comment
+{
+  "_type": "object",
+  "_subtype": "node",
+  "_objectId": "<filtered>",
+  "_description": "<!--comment content-->",
+  "_preview": {
+    "_type": "object",
+    "_subtype": "node",
+    "_description": "<!--comment content-->",
+    "_lossless": false,
+    "_overflow": true,
+    "_properties": [
+      {
+        "_name": "data",
+        "_type": "string",
+        "_value": "comment content"
+      },
+      {
+        "_name": "length",
+        "_type": "number",
+        "_value": "15"
+      },
+      {
+        "_name": "previousElementSibling",
+        "_type": "object",
+        "_subtype": "null",
+        "_value": "null"
+      },
+      {
+        "_name": "nextElementSibling",
+        "_type": "object",
+        "_subtype": "null",
+        "_value": "null"
+      },
+      {
+        "_name": "substringData",
+        "_type": "function",
+        "_value": ""
+      }
+    ],
+    "_entries": null
+  }
+}
+
+-----------------------------------------------------
+EXPRESSION: svgElement = document.createElementNS("http://www.w3.org/2000/svg", "rect"); svgElement.classList.add("test"); svgElement
+{
+  "_type": "object",
+  "_subtype": "node",
+  "_objectId": "<filtered>",
+  "_description": "<rect class=\"test\">",
+  "_preview": {
+    "_type": "object",
+    "_subtype": "node",
+    "_description": "<rect class=\"test\">",
+    "_lossless": false,
+    "_overflow": true,
+    "_properties": [
+      {
+        "_name": "x",
+        "_type": "object",
+        "_value": "SVGAnimatedLength"
+      },
+      {
+        "_name": "y",
+        "_type": "object",
+        "_value": "SVGAnimatedLength"
+      },
+      {
+        "_name": "width",
+        "_type": "object",
+        "_value": "SVGAnimatedLength"
+      },
+      {
+        "_name": "height",
+        "_type": "object",
+        "_value": "SVGAnimatedLength"
+      },
+      {
+        "_name": "rx",
+        "_type": "object",
+        "_value": "SVGAnimatedLength"
+      }
+    ],
+    "_entries": null
+  }
+}
+
+-----------------------------------------------------
+EXPRESSION: [document.body, div, span, input, text, comment, svgElement]
+{
+  "_type": "object",
+  "_subtype": "array",
+  "_objectId": "<filtered>",
+  "_description": "Array",
+  "_size": 7,
+  "_preview": {
+    "_type": "object",
+    "_subtype": "array",
+    "_description": "Array",
+    "_lossless": false,
+    "_overflow": false,
+    "_size": 7,
+    "_properties": [
+      {
+        "_name": "0",
+        "_type": "object",
+        "_subtype": "node",
+        "_value": "<body>"
+      },
+      {
+        "_name": "1",
+        "_type": "object",
+        "_subtype": "node",
+        "_value": "<div class=\"foo bar\">"
+      },
+      {
+        "_name": "2",
+        "_type": "object",
+        "_subtype": "node",
+        "_value": "<span id=\"foo\">"
+      },
+      {
+        "_name": "3",
+        "_type": "object",
+        "_subtype": "node",
+        "_value": "<input type=\"password\">"
+      },
+      {
+        "_name": "4",
+        "_type": "object",
+        "_subtype": "node",
+        "_value": "#text \"text content\""
+      },
+      {
+        "_name": "5",
+        "_type": "object",
+        "_subtype": "node",
+        "_value": "<!--comment content-->"
+      },
+      {
+        "_name": "6",
+        "_type": "object",
+        "_subtype": "node",
+        "_value": "<rect class=\"test\">"
+      }
+    ],
+    "_entries": null
+  }
+}
+
+-----------------------------------------------------
+EXPRESSION: document.head.children
+{
+  "_type": "object",
+  "_subtype": "array",
+  "_objectId": "<filtered>",
+  "_description": "HTMLCollection",
+  "_size": 4,
+  "_preview": {
+    "_type": "object",
+    "_subtype": "array",
+    "_description": "HTMLCollection",
+    "_lossless": false,
+    "_overflow": false,
+    "_size": 4,
+    "_properties": [
+      {
+        "_name": "0",
+        "_type": "object",
+        "_subtype": "node",
+        "_value": "<meta>"
+      },
+      {
+        "_name": "1",
+        "_type": "object",
+        "_subtype": "node",
+        "_value": "<script>"
+      },
+      {
+        "_name": "2",
+        "_type": "object",
+        "_subtype": "node",
+        "_value": "<script>"
+      },
+      {
+        "_name": "3",
+        "_type": "object",
+        "_subtype": "node",
+        "_value": "<script>"
+      }
+    ],
+    "_entries": null
+  }
+}
+
+-----------------------------------------------------
+EXPRESSION: document.getElementsByClassName("my-test")
+{
+  "_type": "object",
+  "_subtype": "array",
+  "_objectId": "<filtered>",
+  "_description": "HTMLCollection",
+  "_size": 3,
+  "_preview": {
+    "_type": "object",
+    "_subtype": "array",
+    "_description": "HTMLCollection",
+    "_lossless": false,
+    "_overflow": false,
+    "_size": 3,
+    "_properties": [
+      {
+        "_name": "0",
+        "_type": "object",
+        "_subtype": "node",
+        "_value": "<p class=\"my-test\">"
+      },
+      {
+        "_name": "1",
+        "_type": "object",
+        "_subtype": "node",
+        "_value": "<p class=\"my-test\">"
+      },
+      {
+        "_name": "2",
+        "_type": "object",
+        "_subtype": "node",
+        "_value": "<p class=\"my-test\">"
+      }
+    ],
+    "_entries": null
+  }
+}
+
+-----------------------------------------------------
+EXPRESSION: document.querySelectorAll(".my-test")
+{
+  "_type": "object",
+  "_subtype": "array",
+  "_objectId": "<filtered>",
+  "_description": "NodeList",
+  "_size": 3,
+  "_preview": {
+    "_type": "object",
+    "_subtype": "array",
+    "_description": "NodeList",
+    "_lossless": false,
+    "_overflow": false,
+    "_size": 3,
+    "_properties": [
+      {
+        "_name": "0",
+        "_type": "object",
+        "_subtype": "node",
+        "_value": "<p class=\"my-test\">"
+      },
+      {
+        "_name": "1",
+        "_type": "object",
+        "_subtype": "node",
+        "_value": "<p class=\"my-test\">"
+      },
+      {
+        "_name": "2",
+        "_type": "object",
+        "_subtype": "node",
+        "_value": "<p class=\"my-test\">"
+      }
+    ],
+    "_entries": null
+  }
+}
+
diff --git a/LayoutTests/platform/mac/inspector/model/remote-object-expected.txt b/LayoutTests/platform/mac/inspector/model/remote-object-expected.txt
deleted file mode 100644 (file)
index e0df1cd..0000000
+++ /dev/null
@@ -1,4322 +0,0 @@
-CONSOLE MESSAGE: line 1: Unhandled Promise Rejection: undefined
-CONSOLE MESSAGE: line 1: Unhandled Promise Rejection: result
-
------------------------------------------------------
-EXPRESSION: null
-{
-  "_type": "object",
-  "_subtype": "null",
-  "_description": "null",
-  "_value": null
-}
-
------------------------------------------------------
-EXPRESSION: undefined
-{
-  "_type": "undefined",
-  "_description": "undefined"
-}
-
------------------------------------------------------
-EXPRESSION: Symbol()
-{
-  "_type": "symbol",
-  "_objectId": "<filtered>",
-  "_description": "Symbol()"
-}
-
------------------------------------------------------
-EXPRESSION: Symbol('test')
-{
-  "_type": "symbol",
-  "_objectId": "<filtered>",
-  "_description": "Symbol(test)"
-}
-
------------------------------------------------------
-EXPRESSION: true
-{
-  "_type": "boolean",
-  "_description": "true",
-  "_value": true
-}
-
------------------------------------------------------
-EXPRESSION: false
-{
-  "_type": "boolean",
-  "_description": "false",
-  "_value": false
-}
-
------------------------------------------------------
-EXPRESSION: 0
-{
-  "_type": "number",
-  "_description": "0",
-  "_value": 0
-}
-
------------------------------------------------------
-EXPRESSION: -0
-{
-  "_type": "number",
-  "_description": "-0",
-  "_value": 0
-}
-
------------------------------------------------------
-EXPRESSION: 1
-{
-  "_type": "number",
-  "_description": "1",
-  "_value": 1
-}
-
------------------------------------------------------
-EXPRESSION: -1
-{
-  "_type": "number",
-  "_description": "-1",
-  "_value": -1
-}
-
------------------------------------------------------
-EXPRESSION: 1.234
-{
-  "_type": "number",
-  "_description": "1.234",
-  "_value": 1.234
-}
-
------------------------------------------------------
-EXPRESSION: -1.234
-{
-  "_type": "number",
-  "_description": "-1.234",
-  "_value": -1.234
-}
-
------------------------------------------------------
-EXPRESSION: 1e3
-{
-  "_type": "number",
-  "_description": "1000",
-  "_value": 1000
-}
-
------------------------------------------------------
-EXPRESSION: Number.MAX_VALUE
-{
-  "_type": "number",
-  "_description": "1.7976931348623157e+308",
-  "_value": 1.7976931348623157e+308
-}
-
------------------------------------------------------
-EXPRESSION: Number.MIN_VALUE
-{
-  "_type": "number",
-  "_description": "5e-324",
-  "_value": 5e-324
-}
-
------------------------------------------------------
-EXPRESSION: NaN
-{
-  "_type": "number",
-  "_description": "NaN",
-  "_value": null
-}
-
------------------------------------------------------
-EXPRESSION: Infinity
-{
-  "_type": "number",
-  "_description": "Infinity",
-  "_value": null
-}
-
------------------------------------------------------
-EXPRESSION: -Infinity
-{
-  "_type": "number",
-  "_description": "-Infinity",
-  "_value": null
-}
-
------------------------------------------------------
-EXPRESSION: ''
-{
-  "_type": "string",
-  "_description": "",
-  "_value": ""
-}
-
------------------------------------------------------
-EXPRESSION: '"'
-{
-  "_type": "string",
-  "_description": "\"",
-  "_value": "\""
-}
-
------------------------------------------------------
-EXPRESSION: "'"
-{
-  "_type": "string",
-  "_description": "'",
-  "_value": "'"
-}
-
------------------------------------------------------
-EXPRESSION: 'string'
-{
-  "_type": "string",
-  "_description": "string",
-  "_value": "string"
-}
-
------------------------------------------------------
-EXPRESSION: 'Unicode…'
-{
-  "_type": "string",
-  "_description": "Unicode…",
-  "_value": "Unicode…"
-}
-
------------------------------------------------------
-EXPRESSION: 'I wish I had something to put here.'
-{
-  "_type": "string",
-  "_description": "I wish I had something to put here.",
-  "_value": "I wish I had something to put here."
-}
-
------------------------------------------------------
-EXPRESSION: (function(){})
-{
-  "_type": "function",
-  "_objectId": "<filtered>",
-  "_description": "function (){}"
-}
-
------------------------------------------------------
-EXPRESSION: function foo(){}; foo
-{
-  "_type": "function",
-  "_objectId": "<filtered>",
-  "_description": "function foo(){}"
-}
-
------------------------------------------------------
-EXPRESSION: function myFunction(a, b) { console.log(a, b); }; myFunction
-{
-  "_type": "function",
-  "_objectId": "<filtered>",
-  "_description": "function myFunction(a, b) { console.log(a, b); }"
-}
-
------------------------------------------------------
-EXPRESSION: function myTarget(a, b) { console.log(a, b); }; myTarget.bind(null)
-{
-  "_type": "function",
-  "_objectId": "<filtered>",
-  "_description": "function myTarget() {\n    [native code]\n}"
-}
-
------------------------------------------------------
-EXPRESSION: Array.prototype.push
-{
-  "_type": "function",
-  "_objectId": "<filtered>",
-  "_description": "function push() {\n    [native code]\n}"
-}
-
------------------------------------------------------
-EXPRESSION: window.setTimeout
-{
-  "_type": "function",
-  "_objectId": "<filtered>",
-  "_description": "function setTimeout() {\n    [native code]\n}"
-}
-
------------------------------------------------------
-EXPRESSION: Object.getOwnPropertyDescriptor({ get getter() { return 1 } }, 'getter').get
-{
-  "_type": "function",
-  "_objectId": "<filtered>",
-  "_description": "function () { return 1 }"
-}
-
------------------------------------------------------
-EXPRESSION: Object.getOwnPropertyDescriptor({ set setter(v) { console.log(v); } }, 'setter').set
-{
-  "_type": "function",
-  "_objectId": "<filtered>",
-  "_description": "function (v) { console.log(v); }"
-}
-
------------------------------------------------------
-EXPRESSION: / /
-{
-  "_type": "object",
-  "_subtype": "regexp",
-  "_objectId": "<filtered>",
-  "_description": "/ /",
-  "_preview": {
-    "_type": "object",
-    "_subtype": "regexp",
-    "_description": "/ /",
-    "_lossless": true,
-    "_overflow": false,
-    "_properties": [
-      {
-        "_name": "lastIndex",
-        "_type": "number",
-        "_value": "0"
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: /(?:)/
-{
-  "_type": "object",
-  "_subtype": "regexp",
-  "_objectId": "<filtered>",
-  "_description": "/(?:)/",
-  "_preview": {
-    "_type": "object",
-    "_subtype": "regexp",
-    "_description": "/(?:)/",
-    "_lossless": true,
-    "_overflow": false,
-    "_properties": [
-      {
-        "_name": "lastIndex",
-        "_type": "number",
-        "_value": "0"
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: /^r(e)g[e]{1,}x+/
-{
-  "_type": "object",
-  "_subtype": "regexp",
-  "_objectId": "<filtered>",
-  "_description": "/^r(e)g[e]{1,}x+/",
-  "_preview": {
-    "_type": "object",
-    "_subtype": "regexp",
-    "_description": "/^r(e)g[e]{1,}x+/",
-    "_lossless": true,
-    "_overflow": false,
-    "_properties": [
-      {
-        "_name": "lastIndex",
-        "_type": "number",
-        "_value": "0"
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: /^r(e)g[e]{1,}x+/ig
-{
-  "_type": "object",
-  "_subtype": "regexp",
-  "_objectId": "<filtered>",
-  "_description": "/^r(e)g[e]{1,}x+/gi",
-  "_preview": {
-    "_type": "object",
-    "_subtype": "regexp",
-    "_description": "/^r(e)g[e]{1,}x+/gi",
-    "_lossless": true,
-    "_overflow": false,
-    "_properties": [
-      {
-        "_name": "lastIndex",
-        "_type": "number",
-        "_value": "0"
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: new RegExp('')
-{
-  "_type": "object",
-  "_subtype": "regexp",
-  "_objectId": "<filtered>",
-  "_description": "/(?:)/",
-  "_preview": {
-    "_type": "object",
-    "_subtype": "regexp",
-    "_description": "/(?:)/",
-    "_lossless": true,
-    "_overflow": false,
-    "_properties": [
-      {
-        "_name": "lastIndex",
-        "_type": "number",
-        "_value": "0"
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: new RegExp('test', 'i')
-{
-  "_type": "object",
-  "_subtype": "regexp",
-  "_objectId": "<filtered>",
-  "_description": "/test/i",
-  "_preview": {
-    "_type": "object",
-    "_subtype": "regexp",
-    "_description": "/test/i",
-    "_lossless": true,
-    "_overflow": false,
-    "_properties": [
-      {
-        "_name": "lastIndex",
-        "_type": "number",
-        "_value": "0"
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: []
-{
-  "_type": "object",
-  "_subtype": "array",
-  "_objectId": "<filtered>",
-  "_description": "Array",
-  "_size": 0,
-  "_preview": {
-    "_type": "object",
-    "_subtype": "array",
-    "_description": "Array",
-    "_lossless": true,
-    "_overflow": false,
-    "_size": 0,
-    "_properties": [],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: [0, -0, 1, 2]
-{
-  "_type": "object",
-  "_subtype": "array",
-  "_objectId": "<filtered>",
-  "_description": "Array",
-  "_size": 4,
-  "_preview": {
-    "_type": "object",
-    "_subtype": "array",
-    "_description": "Array",
-    "_lossless": true,
-    "_overflow": false,
-    "_size": 4,
-    "_properties": [
-      {
-        "_name": "0",
-        "_type": "number",
-        "_value": "0"
-      },
-      {
-        "_name": "1",
-        "_type": "number",
-        "_value": "-0"
-      },
-      {
-        "_name": "2",
-        "_type": "number",
-        "_value": "1"
-      },
-      {
-        "_name": "3",
-        "_type": "number",
-        "_value": "2"
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: [[1],[2],[3]]
-{
-  "_type": "object",
-  "_subtype": "array",
-  "_objectId": "<filtered>",
-  "_description": "Array",
-  "_size": 3,
-  "_preview": {
-    "_type": "object",
-    "_subtype": "array",
-    "_description": "Array",
-    "_lossless": true,
-    "_overflow": false,
-    "_size": 3,
-    "_properties": [
-      {
-        "_name": "0",
-        "_type": "object",
-        "_subtype": "array",
-        "_valuePreview": {
-          "_type": "object",
-          "_subtype": "array",
-          "_description": "Array",
-          "_lossless": true,
-          "_overflow": false,
-          "_size": 1,
-          "_properties": [
-            {
-              "_name": "0",
-              "_type": "number",
-              "_value": "1"
-            }
-          ],
-          "_entries": null
-        }
-      },
-      {
-        "_name": "1",
-        "_type": "object",
-        "_subtype": "array",
-        "_valuePreview": {
-          "_type": "object",
-          "_subtype": "array",
-          "_description": "Array",
-          "_lossless": true,
-          "_overflow": false,
-          "_size": 1,
-          "_properties": [
-            {
-              "_name": "0",
-              "_type": "number",
-              "_value": "2"
-            }
-          ],
-          "_entries": null
-        }
-      },
-      {
-        "_name": "2",
-        "_type": "object",
-        "_subtype": "array",
-        "_valuePreview": {
-          "_type": "object",
-          "_subtype": "array",
-          "_description": "Array",
-          "_lossless": true,
-          "_overflow": false,
-          "_size": 1,
-          "_properties": [
-            {
-              "_name": "0",
-              "_type": "number",
-              "_value": "3"
-            }
-          ],
-          "_entries": null
-        }
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: [true, 1, 1.234, 'string', /regex/]
-{
-  "_type": "object",
-  "_subtype": "array",
-  "_objectId": "<filtered>",
-  "_description": "Array",
-  "_size": 5,
-  "_preview": {
-    "_type": "object",
-    "_subtype": "array",
-    "_description": "Array",
-    "_lossless": false,
-    "_overflow": false,
-    "_size": 5,
-    "_properties": [
-      {
-        "_name": "0",
-        "_type": "boolean",
-        "_value": "true"
-      },
-      {
-        "_name": "1",
-        "_type": "number",
-        "_value": "1"
-      },
-      {
-        "_name": "2",
-        "_type": "number",
-        "_value": "1.234"
-      },
-      {
-        "_name": "3",
-        "_type": "string",
-        "_value": "string"
-      },
-      {
-        "_name": "4",
-        "_type": "object",
-        "_subtype": "regexp",
-        "_value": "/regex/"
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: [[null]]
-{
-  "_type": "object",
-  "_subtype": "array",
-  "_objectId": "<filtered>",
-  "_description": "Array",
-  "_size": 1,
-  "_preview": {
-    "_type": "object",
-    "_subtype": "array",
-    "_description": "Array",
-    "_lossless": true,
-    "_overflow": false,
-    "_size": 1,
-    "_properties": [
-      {
-        "_name": "0",
-        "_type": "object",
-        "_subtype": "array",
-        "_valuePreview": {
-          "_type": "object",
-          "_subtype": "array",
-          "_description": "Array",
-          "_lossless": true,
-          "_overflow": false,
-          "_size": 1,
-          "_properties": [
-            {
-              "_name": "0",
-              "_type": "object",
-              "_subtype": "null",
-              "_value": "null"
-            }
-          ],
-          "_entries": null
-        }
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: [[undefined]]
-{
-  "_type": "object",
-  "_subtype": "array",
-  "_objectId": "<filtered>",
-  "_description": "Array",
-  "_size": 1,
-  "_preview": {
-    "_type": "object",
-    "_subtype": "array",
-    "_description": "Array",
-    "_lossless": true,
-    "_overflow": false,
-    "_size": 1,
-    "_properties": [
-      {
-        "_name": "0",
-        "_type": "object",
-        "_subtype": "array",
-        "_valuePreview": {
-          "_type": "object",
-          "_subtype": "array",
-          "_description": "Array",
-          "_lossless": true,
-          "_overflow": false,
-          "_size": 1,
-          "_properties": [
-            {
-              "_name": "0",
-              "_type": "undefined",
-              "_value": "undefined"
-            }
-          ],
-          "_entries": null
-        }
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: [{a:1}, {b:2}, {c:2}]
-{
-  "_type": "object",
-  "_subtype": "array",
-  "_objectId": "<filtered>",
-  "_description": "Array",
-  "_size": 3,
-  "_preview": {
-    "_type": "object",
-    "_subtype": "array",
-    "_description": "Array",
-    "_lossless": true,
-    "_overflow": false,
-    "_size": 3,
-    "_properties": [
-      {
-        "_name": "0",
-        "_type": "object",
-        "_valuePreview": {
-          "_type": "object",
-          "_description": "Object",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": [
-            {
-              "_name": "a",
-              "_type": "number",
-              "_value": "1"
-            }
-          ],
-          "_entries": null
-        }
-      },
-      {
-        "_name": "1",
-        "_type": "object",
-        "_valuePreview": {
-          "_type": "object",
-          "_description": "Object",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": [
-            {
-              "_name": "b",
-              "_type": "number",
-              "_value": "2"
-            }
-          ],
-          "_entries": null
-        }
-      },
-      {
-        "_name": "2",
-        "_type": "object",
-        "_valuePreview": {
-          "_type": "object",
-          "_description": "Object",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": [
-            {
-              "_name": "c",
-              "_type": "number",
-              "_value": "2"
-            }
-          ],
-          "_entries": null
-        }
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: [[{a:1}, {b:2}, {c:2}]]
-{
-  "_type": "object",
-  "_subtype": "array",
-  "_objectId": "<filtered>",
-  "_description": "Array",
-  "_size": 1,
-  "_preview": {
-    "_type": "object",
-    "_subtype": "array",
-    "_description": "Array",
-    "_lossless": true,
-    "_overflow": false,
-    "_size": 1,
-    "_properties": [
-      {
-        "_name": "0",
-        "_type": "object",
-        "_subtype": "array",
-        "_valuePreview": {
-          "_type": "object",
-          "_subtype": "array",
-          "_description": "Array",
-          "_lossless": true,
-          "_overflow": false,
-          "_size": 3,
-          "_properties": [
-            {
-              "_name": "0",
-              "_type": "object",
-              "_valuePreview": {
-                "_type": "object",
-                "_description": "Object",
-                "_lossless": true,
-                "_overflow": false,
-                "_properties": [
-                  {
-                    "_name": "a",
-                    "_type": "number",
-                    "_value": "1"
-                  }
-                ],
-                "_entries": null
-              }
-            },
-            {
-              "_name": "1",
-              "_type": "object",
-              "_valuePreview": {
-                "_type": "object",
-                "_description": "Object",
-                "_lossless": true,
-                "_overflow": false,
-                "_properties": [
-                  {
-                    "_name": "b",
-                    "_type": "number",
-                    "_value": "2"
-                  }
-                ],
-                "_entries": null
-              }
-            },
-            {
-              "_name": "2",
-              "_type": "object",
-              "_valuePreview": {
-                "_type": "object",
-                "_description": "Object",
-                "_lossless": true,
-                "_overflow": false,
-                "_properties": [
-                  {
-                    "_name": "c",
-                    "_type": "number",
-                    "_value": "2"
-                  }
-                ],
-                "_entries": null
-              }
-            }
-          ],
-          "_entries": null
-        }
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: arr = []; arr[0] = arr; arr
-{
-  "_type": "object",
-  "_subtype": "array",
-  "_objectId": "<filtered>",
-  "_description": "Array",
-  "_size": 1,
-  "_preview": {
-    "_type": "object",
-    "_subtype": "array",
-    "_description": "Array",
-    "_lossless": false,
-    "_overflow": false,
-    "_size": 1,
-    "_properties": [
-      {
-        "_name": "0",
-        "_type": "object",
-        "_subtype": "array",
-        "_value": "Array"
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: arr = []; arr.length = 100; arr
-{
-  "_type": "object",
-  "_subtype": "array",
-  "_objectId": "<filtered>",
-  "_description": "Array",
-  "_size": 100,
-  "_preview": {
-    "_type": "object",
-    "_subtype": "array",
-    "_description": "Array",
-    "_lossless": true,
-    "_overflow": false,
-    "_size": 100,
-    "_properties": [],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: arr = []; arr.length = 100; arr.fill(1)
-{
-  "_type": "object",
-  "_subtype": "array",
-  "_objectId": "<filtered>",
-  "_description": "Array",
-  "_size": 100,
-  "_preview": {
-    "_type": "object",
-    "_subtype": "array",
-    "_description": "Array",
-    "_lossless": false,
-    "_overflow": true,
-    "_size": 100,
-    "_properties": [
-      {
-        "_name": "0",
-        "_type": "number",
-        "_value": "1"
-      },
-      {
-        "_name": "1",
-        "_type": "number",
-        "_value": "1"
-      },
-      {
-        "_name": "2",
-        "_type": "number",
-        "_value": "1"
-      },
-      {
-        "_name": "3",
-        "_type": "number",
-        "_value": "1"
-      },
-      {
-        "_name": "4",
-        "_type": "number",
-        "_value": "1"
-      },
-      {
-        "_name": "5",
-        "_type": "number",
-        "_value": "1"
-      },
-      {
-        "_name": "6",
-        "_type": "number",
-        "_value": "1"
-      },
-      {
-        "_name": "7",
-        "_type": "number",
-        "_value": "1"
-      },
-      {
-        "_name": "8",
-        "_type": "number",
-        "_value": "1"
-      },
-      {
-        "_name": "9",
-        "_type": "number",
-        "_value": "1"
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: arr = []; arr.length = 100; arr[10] = 1; arr
-{
-  "_type": "object",
-  "_subtype": "array",
-  "_objectId": "<filtered>",
-  "_description": "Array",
-  "_size": 100,
-  "_preview": {
-    "_type": "object",
-    "_subtype": "array",
-    "_description": "Array",
-    "_lossless": true,
-    "_overflow": false,
-    "_size": 100,
-    "_properties": [
-      {
-        "_name": "10",
-        "_type": "number",
-        "_value": "1"
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: a = null; (function() { a = arguments; })(1, '2', /3/); a
-{
-  "_type": "object",
-  "_subtype": "array",
-  "_objectId": "<filtered>",
-  "_description": "Arguments",
-  "_size": 3,
-  "_preview": {
-    "_type": "object",
-    "_subtype": "array",
-    "_description": "Arguments",
-    "_lossless": false,
-    "_overflow": false,
-    "_size": 3,
-    "_properties": [
-      {
-        "_name": "0",
-        "_type": "number",
-        "_value": "1"
-      },
-      {
-        "_name": "1",
-        "_type": "string",
-        "_value": "2"
-      },
-      {
-        "_name": "2",
-        "_type": "object",
-        "_subtype": "regexp",
-        "_value": "/3/"
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: new Int32Array(new ArrayBuffer(16))
-{
-  "_type": "object",
-  "_subtype": "array",
-  "_objectId": "<filtered>",
-  "_description": "Int32Array",
-  "_size": 4,
-  "_preview": {
-    "_type": "object",
-    "_subtype": "array",
-    "_description": "Int32Array",
-    "_lossless": false,
-    "_overflow": false,
-    "_size": 4,
-    "_properties": [
-      {
-        "_name": "0",
-        "_type": "number",
-        "_value": "0"
-      },
-      {
-        "_name": "1",
-        "_type": "number",
-        "_value": "0"
-      },
-      {
-        "_name": "2",
-        "_type": "number",
-        "_value": "0"
-      },
-      {
-        "_name": "3",
-        "_type": "number",
-        "_value": "0"
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: new Uint8ClampedArray(12)
-{
-  "_type": "object",
-  "_subtype": "array",
-  "_objectId": "<filtered>",
-  "_description": "Uint8ClampedArray",
-  "_size": 12,
-  "_preview": {
-    "_type": "object",
-    "_subtype": "array",
-    "_description": "Uint8ClampedArray",
-    "_lossless": false,
-    "_overflow": true,
-    "_size": 12,
-    "_properties": [
-      {
-        "_name": "0",
-        "_type": "number",
-        "_value": "0"
-      },
-      {
-        "_name": "1",
-        "_type": "number",
-        "_value": "0"
-      },
-      {
-        "_name": "2",
-        "_type": "number",
-        "_value": "0"
-      },
-      {
-        "_name": "3",
-        "_type": "number",
-        "_value": "0"
-      },
-      {
-        "_name": "4",
-        "_type": "number",
-        "_value": "0"
-      },
-      {
-        "_name": "5",
-        "_type": "number",
-        "_value": "0"
-      },
-      {
-        "_name": "6",
-        "_type": "number",
-        "_value": "0"
-      },
-      {
-        "_name": "7",
-        "_type": "number",
-        "_value": "0"
-      },
-      {
-        "_name": "8",
-        "_type": "number",
-        "_value": "0"
-      },
-      {
-        "_name": "9",
-        "_type": "number",
-        "_value": "0"
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: var intArray = new Int32Array(new ArrayBuffer(16)); for (var i = 0; i < intArray.length; ++i) intArray[i] = i; intArray
-{
-  "_type": "object",
-  "_subtype": "array",
-  "_objectId": "<filtered>",
-  "_description": "Int32Array",
-  "_size": 4,
-  "_preview": {
-    "_type": "object",
-    "_subtype": "array",
-    "_description": "Int32Array",
-    "_lossless": false,
-    "_overflow": false,
-    "_size": 4,
-    "_properties": [
-      {
-        "_name": "0",
-        "_type": "number",
-        "_value": "0"
-      },
-      {
-        "_name": "1",
-        "_type": "number",
-        "_value": "1"
-      },
-      {
-        "_name": "2",
-        "_type": "number",
-        "_value": "2"
-      },
-      {
-        "_name": "3",
-        "_type": "number",
-        "_value": "3"
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: var buffer = new ArrayBuffer(10000000); var int8View = new Int8Array(buffer); int8View
-{
-  "_type": "object",
-  "_subtype": "array",
-  "_objectId": "<filtered>",
-  "_description": "Int8Array",
-  "_size": 10000000,
-  "_preview": {
-    "_type": "object",
-    "_subtype": "array",
-    "_description": "Int8Array",
-    "_lossless": false,
-    "_overflow": true,
-    "_size": 10000000,
-    "_properties": [
-      {
-        "_name": "0",
-        "_type": "number",
-        "_value": "0"
-      },
-      {
-        "_name": "1",
-        "_type": "number",
-        "_value": "0"
-      },
-      {
-        "_name": "2",
-        "_type": "number",
-        "_value": "0"
-      },
-      {
-        "_name": "3",
-        "_type": "number",
-        "_value": "0"
-      },
-      {
-        "_name": "4",
-        "_type": "number",
-        "_value": "0"
-      },
-      {
-        "_name": "5",
-        "_type": "number",
-        "_value": "0"
-      },
-      {
-        "_name": "6",
-        "_type": "number",
-        "_value": "0"
-      },
-      {
-        "_name": "7",
-        "_type": "number",
-        "_value": "0"
-      },
-      {
-        "_name": "8",
-        "_type": "number",
-        "_value": "0"
-      },
-      {
-        "_name": "9",
-        "_type": "number",
-        "_value": "0"
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: ({})
-{
-  "_type": "object",
-  "_objectId": "<filtered>",
-  "_description": "Object",
-  "_preview": {
-    "_type": "object",
-    "_description": "Object",
-    "_lossless": true,
-    "_overflow": false,
-    "_properties": [],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: ({a: 1})
-{
-  "_type": "object",
-  "_objectId": "<filtered>",
-  "_description": "Object",
-  "_preview": {
-    "_type": "object",
-    "_description": "Object",
-    "_lossless": true,
-    "_overflow": false,
-    "_properties": [
-      {
-        "_name": "a",
-        "_type": "number",
-        "_value": "1"
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: ({a: 1, b: 0, c: -0})
-{
-  "_type": "object",
-  "_objectId": "<filtered>",
-  "_description": "Object",
-  "_preview": {
-    "_type": "object",
-    "_description": "Object",
-    "_lossless": true,
-    "_overflow": false,
-    "_properties": [
-      {
-        "_name": "a",
-        "_type": "number",
-        "_value": "1"
-      },
-      {
-        "_name": "b",
-        "_type": "number",
-        "_value": "0"
-      },
-      {
-        "_name": "c",
-        "_type": "number",
-        "_value": "-0"
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: ({a: 1, b: "string", c: /regex/, d: Symbol('sym')})
-{
-  "_type": "object",
-  "_objectId": "<filtered>",
-  "_description": "Object",
-  "_preview": {
-    "_type": "object",
-    "_description": "Object",
-    "_lossless": false,
-    "_overflow": false,
-    "_properties": [
-      {
-        "_name": "a",
-        "_type": "number",
-        "_value": "1"
-      },
-      {
-        "_name": "b",
-        "_type": "string",
-        "_value": "string"
-      },
-      {
-        "_name": "c",
-        "_type": "object",
-        "_subtype": "regexp",
-        "_value": "/regex/"
-      },
-      {
-        "_name": "d",
-        "_type": "symbol",
-        "_value": "Symbol(sym)"
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: o = {a:1}; o.b = o; o
-{
-  "_type": "object",
-  "_objectId": "<filtered>",
-  "_description": "Object",
-  "_preview": {
-    "_type": "object",
-    "_description": "Object",
-    "_lossless": false,
-    "_overflow": false,
-    "_properties": [
-      {
-        "_name": "a",
-        "_type": "number",
-        "_value": "1"
-      },
-      {
-        "_name": "b",
-        "_type": "object",
-        "_value": "Object"
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: ({a:function a(){}, b:function b(){}, get getter(){}, set setter(v){}})
-{
-  "_type": "object",
-  "_objectId": "<filtered>",
-  "_description": "Object",
-  "_preview": {
-    "_type": "object",
-    "_description": "Object",
-    "_lossless": false,
-    "_overflow": false,
-    "_properties": [
-      {
-        "_name": "a",
-        "_type": "function",
-        "_value": ""
-      },
-      {
-        "_name": "b",
-        "_type": "function",
-        "_value": ""
-      },
-      {
-        "_name": "getter",
-        "_type": "accessor"
-      },
-      {
-        "_name": "setter",
-        "_type": "accessor"
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: function Foo() {}; new Foo
-{
-  "_type": "object",
-  "_objectId": "<filtered>",
-  "_description": "Foo",
-  "_preview": {
-    "_type": "object",
-    "_description": "Foo",
-    "_lossless": false,
-    "_overflow": false,
-    "_properties": [],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: var Foo2 = function() {}; new Foo2
-{
-  "_type": "object",
-  "_objectId": "<filtered>",
-  "_description": "Foo2",
-  "_preview": {
-    "_type": "object",
-    "_description": "Foo2",
-    "_lossless": false,
-    "_overflow": false,
-    "_properties": [],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: var namespace = {}; namespace.Foo3 = function() {}; new namespace.Foo3
-{
-  "_type": "object",
-  "_objectId": "<filtered>",
-  "_description": "Foo3",
-  "_preview": {
-    "_type": "object",
-    "_description": "Foo3",
-    "_lossless": false,
-    "_overflow": false,
-    "_properties": [],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: function Bar() { this._x = 5 }; Bar.prototype = {constructor: Bar, get x() {return this._x;}}; new Bar
-{
-  "_type": "object",
-  "_objectId": "<filtered>",
-  "_description": "Bar",
-  "_preview": {
-    "_type": "object",
-    "_description": "Bar",
-    "_lossless": false,
-    "_overflow": false,
-    "_properties": [
-      {
-        "_name": "_x",
-        "_type": "number",
-        "_value": "5"
-      },
-      {
-        "_name": "constructor",
-        "_type": "function",
-        "_value": ""
-      },
-      {
-        "_name": "x",
-        "_type": "accessor"
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: function Bar2() { this._x = 5 }; Bar.prototype = {get x() {return this._x;}}; new Bar2
-{
-  "_type": "object",
-  "_objectId": "<filtered>",
-  "_description": "Bar2",
-  "_preview": {
-    "_type": "object",
-    "_description": "Bar2",
-    "_lossless": false,
-    "_overflow": false,
-    "_properties": [
-      {
-        "_name": "_x",
-        "_type": "number",
-        "_value": "5"
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: window.loadEvent
-{
-  "_type": "object",
-  "_objectId": "<filtered>",
-  "_description": "Event",
-  "_preview": {
-    "_type": "object",
-    "_description": "Event",
-    "_lossless": false,
-    "_overflow": true,
-    "_properties": [
-      {
-        "_name": "isTrusted",
-        "_type": "boolean",
-        "_value": "true"
-      },
-      {
-        "_name": "type",
-        "_type": "string",
-        "_value": "load"
-      },
-      {
-        "_name": "target",
-        "_type": "object",
-        "_subtype": "node",
-        "_value": "#document"
-      },
-      {
-        "_name": "currentTarget",
-        "_type": "object",
-        "_value": "Window"
-      },
-      {
-        "_name": "eventPhase",
-        "_type": "number",
-        "_value": "2"
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: new ArrayBuffer(16)
-{
-  "_type": "object",
-  "_objectId": "<filtered>",
-  "_description": "ArrayBuffer",
-  "_preview": {
-    "_type": "object",
-    "_description": "ArrayBuffer",
-    "_lossless": false,
-    "_overflow": false,
-    "_properties": [
-      {
-        "_name": "byteLength",
-        "_type": "number",
-        "_value": "16"
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: new DataView(new ArrayBuffer(16))
-{
-  "_type": "object",
-  "_objectId": "<filtered>",
-  "_description": "DataView",
-  "_preview": {
-    "_type": "object",
-    "_description": "DataView",
-    "_lossless": false,
-    "_overflow": false,
-    "_properties": [
-      {
-        "_name": "byteOffset",
-        "_type": "number",
-        "_value": "0"
-      },
-      {
-        "_name": "byteLength",
-        "_type": "number",
-        "_value": "16"
-      },
-      {
-        "_name": "buffer",
-        "_type": "object",
-        "_value": "ArrayBuffer"
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: obj = {}; obj['prop'] = 1; obj[Symbol()] = 2; obj[Symbol('sym')] = 3; obj[Symbol('sym')] = 4; obj[Symbol.iterator] = Symbol(); obj
-{
-  "_type": "object",
-  "_objectId": "<filtered>",
-  "_description": "Object",
-  "_preview": {
-    "_type": "object",
-    "_description": "Object",
-    "_lossless": true,
-    "_overflow": false,
-    "_properties": [
-      {
-        "_name": "prop",
-        "_type": "number",
-        "_value": "1"
-      },
-      {
-        "_name": "Symbol()",
-        "_type": "number",
-        "_value": "2"
-      },
-      {
-        "_name": "Symbol(sym)",
-        "_type": "number",
-        "_value": "3"
-      },
-      {
-        "_name": "Symbol(sym)",
-        "_type": "number",
-        "_value": "4"
-      },
-      {
-        "_name": "Symbol(Symbol.iterator)",
-        "_type": "symbol",
-        "_value": "Symbol()"
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: document.body
-{
-  "_type": "object",
-  "_subtype": "node",
-  "_objectId": "<filtered>",
-  "_description": "<body>",
-  "_preview": {
-    "_type": "object",
-    "_subtype": "node",
-    "_description": "<body>",
-    "_lossless": false,
-    "_overflow": true,
-    "_properties": [
-      {
-        "_name": "aLink",
-        "_type": "string",
-        "_value": ""
-      },
-      {
-        "_name": "background",
-        "_type": "string",
-        "_value": ""
-      },
-      {
-        "_name": "bgColor",
-        "_type": "string",
-        "_value": ""
-      },
-      {
-        "_name": "link",
-        "_type": "string",
-        "_value": ""
-      },
-      {
-        "_name": "text",
-        "_type": "string",
-        "_value": ""
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: div = document.createElement('div'); div.className = 'foo bar'; div
-{
-  "_type": "object",
-  "_subtype": "node",
-  "_objectId": "<filtered>",
-  "_description": "<div class=\"foo bar\">",
-  "_preview": {
-    "_type": "object",
-    "_subtype": "node",
-    "_description": "<div class=\"foo bar\">",
-    "_lossless": false,
-    "_overflow": true,
-    "_properties": [
-      {
-        "_name": "align",
-        "_type": "string",
-        "_value": ""
-      },
-      {
-        "_name": "title",
-        "_type": "string",
-        "_value": ""
-      },
-      {
-        "_name": "lang",
-        "_type": "string",
-        "_value": ""
-      },
-      {
-        "_name": "translate",
-        "_type": "boolean",
-        "_value": "true"
-      },
-      {
-        "_name": "dir",
-        "_type": "string",
-        "_value": ""
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: span = document.createElement('span'); span.id = 'foo'; span
-{
-  "_type": "object",
-  "_subtype": "node",
-  "_objectId": "<filtered>",
-  "_description": "<span id=\"foo\">",
-  "_preview": {
-    "_type": "object",
-    "_subtype": "node",
-    "_description": "<span id=\"foo\">",
-    "_lossless": false,
-    "_overflow": true,
-    "_properties": [
-      {
-        "_name": "title",
-        "_type": "string",
-        "_value": ""
-      },
-      {
-        "_name": "lang",
-        "_type": "string",
-        "_value": ""
-      },
-      {
-        "_name": "translate",
-        "_type": "boolean",
-        "_value": "true"
-      },
-      {
-        "_name": "dir",
-        "_type": "string",
-        "_value": ""
-      },
-      {
-        "_name": "dataset",
-        "_type": "object",
-        "_value": "DOMStringMap"
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: input = document.createElement('input'); input.type = 'password'; input
-{
-  "_type": "object",
-  "_subtype": "node",
-  "_objectId": "<filtered>",
-  "_description": "<input type=\"password\">",
-  "_preview": {
-    "_type": "object",
-    "_subtype": "node",
-    "_description": "<input type=\"password\">",
-    "_lossless": false,
-    "_overflow": true,
-    "_properties": [
-      {
-        "_name": "accept",
-        "_type": "string",
-        "_value": ""
-      },
-      {
-        "_name": "alt",
-        "_type": "string",
-        "_value": ""
-      },
-      {
-        "_name": "autocomplete",
-        "_type": "string",
-        "_value": ""
-      },
-      {
-        "_name": "autofocus",
-        "_type": "boolean",
-        "_value": "false"
-      },
-      {
-        "_name": "defaultChecked",
-        "_type": "boolean",
-        "_value": "false"
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: text = document.createTextNode('text content'); text
-{
-  "_type": "object",
-  "_subtype": "node",
-  "_objectId": "<filtered>",
-  "_description": "#text \"text content\"",
-  "_preview": {
-    "_type": "object",
-    "_subtype": "node",
-    "_description": "#text \"text content\"",
-    "_lossless": false,
-    "_overflow": true,
-    "_properties": [
-      {
-        "_name": "wholeText",
-        "_type": "string",
-        "_value": "text content"
-      },
-      {
-        "_name": "assignedSlot",
-        "_type": "object",
-        "_subtype": "null",
-        "_value": "null"
-      },
-      {
-        "_name": "splitText",
-        "_type": "function",
-        "_value": ""
-      },
-      {
-        "_name": "data",
-        "_type": "string",
-        "_value": "text content"
-      },
-      {
-        "_name": "length",
-        "_type": "number",
-        "_value": "12"
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: comment = document.createComment('comment content'); comment
-{
-  "_type": "object",
-  "_subtype": "node",
-  "_objectId": "<filtered>",
-  "_description": "<!--comment content-->",
-  "_preview": {
-    "_type": "object",
-    "_subtype": "node",
-    "_description": "<!--comment content-->",
-    "_lossless": false,
-    "_overflow": true,
-    "_properties": [
-      {
-        "_name": "data",
-        "_type": "string",
-        "_value": "comment content"
-      },
-      {
-        "_name": "length",
-        "_type": "number",
-        "_value": "15"
-      },
-      {
-        "_name": "previousElementSibling",
-        "_type": "object",
-        "_subtype": "null",
-        "_value": "null"
-      },
-      {
-        "_name": "nextElementSibling",
-        "_type": "object",
-        "_subtype": "null",
-        "_value": "null"
-      },
-      {
-        "_name": "substringData",
-        "_type": "function",
-        "_value": ""
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: svgElement = document.createElementNS('http://www.w3.org/2000/svg', 'rect'); svgElement.classList.add('test'); svgElement
-{
-  "_type": "object",
-  "_subtype": "node",
-  "_objectId": "<filtered>",
-  "_description": "<rect class=\"test\">",
-  "_preview": {
-    "_type": "object",
-    "_subtype": "node",
-    "_description": "<rect class=\"test\">",
-    "_lossless": false,
-    "_overflow": true,
-    "_properties": [
-      {
-        "_name": "x",
-        "_type": "object",
-        "_value": "SVGAnimatedLength"
-      },
-      {
-        "_name": "y",
-        "_type": "object",
-        "_value": "SVGAnimatedLength"
-      },
-      {
-        "_name": "width",
-        "_type": "object",
-        "_value": "SVGAnimatedLength"
-      },
-      {
-        "_name": "height",
-        "_type": "object",
-        "_value": "SVGAnimatedLength"
-      },
-      {
-        "_name": "rx",
-        "_type": "object",
-        "_value": "SVGAnimatedLength"
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: [document.body, div, span, input, text, comment, svgElement]
-{
-  "_type": "object",
-  "_subtype": "array",
-  "_objectId": "<filtered>",
-  "_description": "Array",
-  "_size": 7,
-  "_preview": {
-    "_type": "object",
-    "_subtype": "array",
-    "_description": "Array",
-    "_lossless": false,
-    "_overflow": false,
-    "_size": 7,
-    "_properties": [
-      {
-        "_name": "0",
-        "_type": "object",
-        "_subtype": "node",
-        "_value": "<body>"
-      },
-      {
-        "_name": "1",
-        "_type": "object",
-        "_subtype": "node",
-        "_value": "<div class=\"foo bar\">"
-      },
-      {
-        "_name": "2",
-        "_type": "object",
-        "_subtype": "node",
-        "_value": "<span id=\"foo\">"
-      },
-      {
-        "_name": "3",
-        "_type": "object",
-        "_subtype": "node",
-        "_value": "<input type=\"password\">"
-      },
-      {
-        "_name": "4",
-        "_type": "object",
-        "_subtype": "node",
-        "_value": "#text \"text content\""
-      },
-      {
-        "_name": "5",
-        "_type": "object",
-        "_subtype": "node",
-        "_value": "<!--comment content-->"
-      },
-      {
-        "_name": "6",
-        "_type": "object",
-        "_subtype": "node",
-        "_value": "<rect class=\"test\">"
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: document.head.children
-{
-  "_type": "object",
-  "_subtype": "array",
-  "_objectId": "<filtered>",
-  "_description": "HTMLCollection",
-  "_size": 3,
-  "_preview": {
-    "_type": "object",
-    "_subtype": "array",
-    "_description": "HTMLCollection",
-    "_lossless": false,
-    "_overflow": false,
-    "_size": 3,
-    "_properties": [
-      {
-        "_name": "0",
-        "_type": "object",
-        "_subtype": "node",
-        "_value": "<meta>"
-      },
-      {
-        "_name": "1",
-        "_type": "object",
-        "_subtype": "node",
-        "_value": "<script>"
-      },
-      {
-        "_name": "2",
-        "_type": "object",
-        "_subtype": "node",
-        "_value": "<script>"
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: document.getElementsByClassName('my-test')
-{
-  "_type": "object",
-  "_subtype": "array",
-  "_objectId": "<filtered>",
-  "_description": "HTMLCollection",
-  "_size": 3,
-  "_preview": {
-    "_type": "object",
-    "_subtype": "array",
-    "_description": "HTMLCollection",
-    "_lossless": false,
-    "_overflow": false,
-    "_size": 3,
-    "_properties": [
-      {
-        "_name": "0",
-        "_type": "object",
-        "_subtype": "node",
-        "_value": "<p class=\"my-test\">"
-      },
-      {
-        "_name": "1",
-        "_type": "object",
-        "_subtype": "node",
-        "_value": "<p class=\"my-test\">"
-      },
-      {
-        "_name": "2",
-        "_type": "object",
-        "_subtype": "node",
-        "_value": "<p class=\"my-test\">"
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: document.querySelectorAll('.my-test')
-{
-  "_type": "object",
-  "_subtype": "array",
-  "_objectId": "<filtered>",
-  "_description": "NodeList",
-  "_size": 3,
-  "_preview": {
-    "_type": "object",
-    "_subtype": "array",
-    "_description": "NodeList",
-    "_lossless": false,
-    "_overflow": false,
-    "_size": 3,
-    "_properties": [
-      {
-        "_name": "0",
-        "_type": "object",
-        "_subtype": "node",
-        "_value": "<p class=\"my-test\">"
-      },
-      {
-        "_name": "1",
-        "_type": "object",
-        "_subtype": "node",
-        "_value": "<p class=\"my-test\">"
-      },
-      {
-        "_name": "2",
-        "_type": "object",
-        "_subtype": "node",
-        "_value": "<p class=\"my-test\">"
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: error = null; try { [].x.x; } catch (e) { error = e; }; error
-{
-  "_type": "object",
-  "_subtype": "error",
-  "_objectId": "<filtered>",
-  "_description": "TypeError: undefined is not an object (evaluating '[].x.x')",
-  "_preview": {
-    "_type": "object",
-    "_subtype": "error",
-    "_description": "TypeError: undefined is not an object (evaluating '[].x.x')",
-    "_lossless": false,
-    "_overflow": false,
-    "_properties": [
-      {
-        "_name": "message",
-        "_type": "string",
-        "_value": "undefined is not an object (evaluating '[].x.x')"
-      },
-      {
-        "_name": "line",
-        "_type": "number",
-        "_value": "3"
-      },
-      {
-        "_name": "column",
-        "_type": "number",
-        "_value": "25"
-      },
-      {
-        "_name": "stack",
-        "_type": "string",
-        "_value": "global code\nevaluateWithScopeExtension@[native code]\n_evaluateOn\n_evaluateAndWrap\nevaluate"
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: error = null; try { eval('if()'); } catch (e) { error = e; }; error
-{
-  "_type": "object",
-  "_subtype": "error",
-  "_objectId": "<filtered>",
-  "_description": "SyntaxError: Unexpected token ')'",
-  "_preview": {
-    "_type": "object",
-    "_subtype": "error",
-    "_description": "SyntaxError: Unexpected token ')'",
-    "_lossless": false,
-    "_overflow": false,
-    "_properties": [
-      {
-        "_name": "message",
-        "_type": "string",
-        "_value": "Unexpected token ')'"
-      },
-      {
-        "_name": "line",
-        "_type": "number",
-        "_value": "3"
-      },
-      {
-        "_name": "column",
-        "_type": "number",
-        "_value": "25"
-      },
-      {
-        "_name": "stack",
-        "_type": "string",
-        "_value": "eval@[native code]\nglobal code\nevaluateWithScopeEx…ative code]\n_evaluateOn\n_evaluateAndWrap\nevaluate"
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: error = null; try { document.createTextNode('').splitText(100); } catch (e) { error = e; }; error
-{
-  "_type": "object",
-  "_subtype": "error",
-  "_objectId": "<filtered>",
-  "_description": "IndexSizeError (DOM Exception 1): The index is not in the allowed range.",
-  "_preview": {
-    "_type": "object",
-    "_subtype": "error",
-    "_description": "IndexSizeError (DOM Exception 1): The index is not in the allowed range.",
-    "_lossless": false,
-    "_overflow": true,
-    "_properties": [
-      {
-        "_name": "code",
-        "_type": "number",
-        "_value": "1"
-      },
-      {
-        "_name": "name",
-        "_type": "string",
-        "_value": "IndexSizeError"
-      },
-      {
-        "_name": "message",
-        "_type": "string",
-        "_value": "The index is not in the allowed range."
-      },
-      {
-        "_name": "line",
-        "_type": "number",
-        "_value": "3"
-      },
-      {
-        "_name": "column",
-        "_type": "number",
-        "_value": "58"
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: new Map
-{
-  "_type": "object",
-  "_subtype": "map",
-  "_objectId": "<filtered>",
-  "_description": "Map",
-  "_size": 0,
-  "_preview": {
-    "_type": "object",
-    "_subtype": "map",
-    "_description": "Map",
-    "_lossless": true,
-    "_overflow": false,
-    "_size": 0,
-    "_properties": [],
-    "_entries": []
-  }
-}
-
------------------------------------------------------
-EXPRESSION: map = new Map; map.set(1, 2); map.set('key', 'value'); map
-{
-  "_type": "object",
-  "_subtype": "map",
-  "_objectId": "<filtered>",
-  "_description": "Map",
-  "_size": 2,
-  "_preview": {
-    "_type": "object",
-    "_subtype": "map",
-    "_description": "Map",
-    "_lossless": true,
-    "_overflow": false,
-    "_size": 2,
-    "_properties": [],
-    "_entries": [
-      {
-        "_key": {
-          "_type": "number",
-          "_description": "1",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": null,
-          "_entries": null
-        },
-        "_value": {
-          "_type": "number",
-          "_description": "2",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": null,
-          "_entries": null
-        }
-      },
-      {
-        "_key": {
-          "_type": "string",
-          "_description": "key",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": null,
-          "_entries": null
-        },
-        "_value": {
-          "_type": "string",
-          "_description": "value",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": null,
-          "_entries": null
-        }
-      }
-    ]
-  }
-}
-
------------------------------------------------------
-EXPRESSION: map = new Map; map.set({a:1}, {b:2}); map.set(document.body, [1,2]); map
-{
-  "_type": "object",
-  "_subtype": "map",
-  "_objectId": "<filtered>",
-  "_description": "Map",
-  "_size": 2,
-  "_preview": {
-    "_type": "object",
-    "_subtype": "map",
-    "_description": "Map",
-    "_lossless": false,
-    "_overflow": false,
-    "_size": 2,
-    "_properties": [],
-    "_entries": [
-      {
-        "_key": {
-          "_type": "object",
-          "_description": "Object",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": [
-            {
-              "_name": "a",
-              "_type": "number",
-              "_value": "1"
-            }
-          ],
-          "_entries": null
-        },
-        "_value": {
-          "_type": "object",
-          "_description": "Object",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": [
-            {
-              "_name": "b",
-              "_type": "number",
-              "_value": "2"
-            }
-          ],
-          "_entries": null
-        }
-      },
-      {
-        "_key": {
-          "_type": "object",
-          "_subtype": "node",
-          "_description": "<body>",
-          "_lossless": false,
-          "_overflow": true,
-          "_properties": [
-            {
-              "_name": "aLink",
-              "_type": "string",
-              "_value": ""
-            },
-            {
-              "_name": "background",
-              "_type": "string",
-              "_value": ""
-            },
-            {
-              "_name": "bgColor",
-              "_type": "string",
-              "_value": ""
-            },
-            {
-              "_name": "link",
-              "_type": "string",
-              "_value": ""
-            },
-            {
-              "_name": "text",
-              "_type": "string",
-              "_value": ""
-            }
-          ],
-          "_entries": null
-        },
-        "_value": {
-          "_type": "object",
-          "_subtype": "array",
-          "_description": "Array",
-          "_lossless": true,
-          "_overflow": false,
-          "_size": 2,
-          "_properties": [
-            {
-              "_name": "0",
-              "_type": "number",
-              "_value": "1"
-            },
-            {
-              "_name": "1",
-              "_type": "number",
-              "_value": "2"
-            }
-          ],
-          "_entries": null
-        }
-      }
-    ]
-  }
-}
-
------------------------------------------------------
-EXPRESSION: map = new Map; for (var i = 0; i <= 100; i++) map.set(i, i); map
-{
-  "_type": "object",
-  "_subtype": "map",
-  "_objectId": "<filtered>",
-  "_description": "Map",
-  "_size": 101,
-  "_preview": {
-    "_type": "object",
-    "_subtype": "map",
-    "_description": "Map",
-    "_lossless": false,
-    "_overflow": true,
-    "_size": 101,
-    "_properties": [],
-    "_entries": [
-      {
-        "_key": {
-          "_type": "number",
-          "_description": "0",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": null,
-          "_entries": null
-        },
-        "_value": {
-          "_type": "number",
-          "_description": "0",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": null,
-          "_entries": null
-        }
-      },
-      {
-        "_key": {
-          "_type": "number",
-          "_description": "1",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": null,
-          "_entries": null
-        },
-        "_value": {
-          "_type": "number",
-          "_description": "1",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": null,
-          "_entries": null
-        }
-      },
-      {
-        "_key": {
-          "_type": "number",
-          "_description": "2",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": null,
-          "_entries": null
-        },
-        "_value": {
-          "_type": "number",
-          "_description": "2",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": null,
-          "_entries": null
-        }
-      },
-      {
-        "_key": {
-          "_type": "number",
-          "_description": "3",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": null,
-          "_entries": null
-        },
-        "_value": {
-          "_type": "number",
-          "_description": "3",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": null,
-          "_entries": null
-        }
-      },
-      {
-        "_key": {
-          "_type": "number",
-          "_description": "4",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": null,
-          "_entries": null
-        },
-        "_value": {
-          "_type": "number",
-          "_description": "4",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": null,
-          "_entries": null
-        }
-      }
-    ]
-  }
-}
-
------------------------------------------------------
-EXPRESSION: map = new Map; map.set(map, map); map
-{
-  "_type": "object",
-  "_subtype": "map",
-  "_objectId": "<filtered>",
-  "_description": "Map",
-  "_size": 1,
-  "_preview": {
-    "_type": "object",
-    "_subtype": "map",
-    "_description": "Map",
-    "_lossless": false,
-    "_overflow": false,
-    "_size": 1,
-    "_properties": [],
-    "_entries": [
-      {
-        "_key": {
-          "_type": "object",
-          "_subtype": "map",
-          "_description": "Map",
-          "_lossless": false,
-          "_overflow": true,
-          "_size": 1,
-          "_properties": [],
-          "_entries": []
-        },
-        "_value": {
-          "_type": "object",
-          "_subtype": "map",
-          "_description": "Map",
-          "_lossless": false,
-          "_overflow": true,
-          "_size": 1,
-          "_properties": [],
-          "_entries": []
-        }
-      }
-    ]
-  }
-}
-
------------------------------------------------------
-EXPRESSION: map = new WeakMap; strongKey = {id:1}; map.set(strongKey, [1,2]); map
-{
-  "_type": "object",
-  "_subtype": "weakmap",
-  "_objectId": "<filtered>",
-  "_description": "WeakMap",
-  "_size": 1,
-  "_preview": {
-    "_type": "object",
-    "_subtype": "weakmap",
-    "_description": "WeakMap",
-    "_lossless": true,
-    "_overflow": false,
-    "_size": 1,
-    "_properties": [],
-    "_entries": [
-      {
-        "_key": {
-          "_type": "object",
-          "_description": "Object",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": [
-            {
-              "_name": "id",
-              "_type": "number",
-              "_value": "1"
-            }
-          ],
-          "_entries": null
-        },
-        "_value": {
-          "_type": "object",
-          "_subtype": "array",
-          "_description": "Array",
-          "_lossless": true,
-          "_overflow": false,
-          "_size": 2,
-          "_properties": [
-            {
-              "_name": "0",
-              "_type": "number",
-              "_value": "1"
-            },
-            {
-              "_name": "1",
-              "_type": "number",
-              "_value": "2"
-            }
-          ],
-          "_entries": null
-        }
-      }
-    ]
-  }
-}
-
------------------------------------------------------
-EXPRESSION: new Set
-{
-  "_type": "object",
-  "_subtype": "set",
-  "_objectId": "<filtered>",
-  "_description": "Set",
-  "_size": 0,
-  "_preview": {
-    "_type": "object",
-    "_subtype": "set",
-    "_description": "Set",
-    "_lossless": true,
-    "_overflow": false,
-    "_size": 0,
-    "_properties": [],
-    "_entries": []
-  }
-}
-
------------------------------------------------------
-EXPRESSION: set = new Set; set.add(1); set.add(2); set.add('key'); set
-{
-  "_type": "object",
-  "_subtype": "set",
-  "_objectId": "<filtered>",
-  "_description": "Set",
-  "_size": 3,
-  "_preview": {
-    "_type": "object",
-    "_subtype": "set",
-    "_description": "Set",
-    "_lossless": true,
-    "_overflow": false,
-    "_size": 3,
-    "_properties": [],
-    "_entries": [
-      {
-        "_value": {
-          "_type": "number",
-          "_description": "1",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": null,
-          "_entries": null
-        }
-      },
-      {
-        "_value": {
-          "_type": "number",
-          "_description": "2",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": null,
-          "_entries": null
-        }
-      },
-      {
-        "_value": {
-          "_type": "string",
-          "_description": "key",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": null,
-          "_entries": null
-        }
-      }
-    ]
-  }
-}
-
------------------------------------------------------
-EXPRESSION: set = new Set; set.add({a:1}); set.add(document.body); set.add([1,2]); set
-{
-  "_type": "object",
-  "_subtype": "set",
-  "_objectId": "<filtered>",
-  "_description": "Set",
-  "_size": 3,
-  "_preview": {
-    "_type": "object",
-    "_subtype": "set",
-    "_description": "Set",
-    "_lossless": false,
-    "_overflow": false,
-    "_size": 3,
-    "_properties": [],
-    "_entries": [
-      {
-        "_value": {
-          "_type": "object",
-          "_description": "Object",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": [
-            {
-              "_name": "a",
-              "_type": "number",
-              "_value": "1"
-            }
-          ],
-          "_entries": null
-        }
-      },
-      {
-        "_value": {
-          "_type": "object",
-          "_subtype": "node",
-          "_description": "<body>",
-          "_lossless": false,
-          "_overflow": true,
-          "_properties": [
-            {
-              "_name": "aLink",
-              "_type": "string",
-              "_value": ""
-            },
-            {
-              "_name": "background",
-              "_type": "string",
-              "_value": ""
-            },
-            {
-              "_name": "bgColor",
-              "_type": "string",
-              "_value": ""
-            },
-            {
-              "_name": "link",
-              "_type": "string",
-              "_value": ""
-            },
-            {
-              "_name": "text",
-              "_type": "string",
-              "_value": ""
-            }
-          ],
-          "_entries": null
-        }
-      },
-      {
-        "_value": {
-          "_type": "object",
-          "_subtype": "array",
-          "_description": "Array",
-          "_lossless": true,
-          "_overflow": false,
-          "_size": 2,
-          "_properties": [
-            {
-              "_name": "0",
-              "_type": "number",
-              "_value": "1"
-            },
-            {
-              "_name": "1",
-              "_type": "number",
-              "_value": "2"
-            }
-          ],
-          "_entries": null
-        }
-      }
-    ]
-  }
-}
-
------------------------------------------------------
-EXPRESSION: set = new Set; for (var i = 0; i <= 100; i++) set.add(i); set
-{
-  "_type": "object",
-  "_subtype": "set",
-  "_objectId": "<filtered>",
-  "_description": "Set",
-  "_size": 101,
-  "_preview": {
-    "_type": "object",
-    "_subtype": "set",
-    "_description": "Set",
-    "_lossless": false,
-    "_overflow": true,
-    "_size": 101,
-    "_properties": [],
-    "_entries": [
-      {
-        "_value": {
-          "_type": "number",
-          "_description": "0",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": null,
-          "_entries": null
-        }
-      },
-      {
-        "_value": {
-          "_type": "number",
-          "_description": "1",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": null,
-          "_entries": null
-        }
-      },
-      {
-        "_value": {
-          "_type": "number",
-          "_description": "2",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": null,
-          "_entries": null
-        }
-      },
-      {
-        "_value": {
-          "_type": "number",
-          "_description": "3",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": null,
-          "_entries": null
-        }
-      },
-      {
-        "_value": {
-          "_type": "number",
-          "_description": "4",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": null,
-          "_entries": null
-        }
-      }
-    ]
-  }
-}
-
------------------------------------------------------
-EXPRESSION: set = new Set; set.add(set); set
-{
-  "_type": "object",
-  "_subtype": "set",
-  "_objectId": "<filtered>",
-  "_description": "Set",
-  "_size": 1,
-  "_preview": {
-    "_type": "object",
-    "_subtype": "set",
-    "_description": "Set",
-    "_lossless": false,
-    "_overflow": false,
-    "_size": 1,
-    "_properties": [],
-    "_entries": [
-      {
-        "_value": {
-          "_type": "object",
-          "_subtype": "set",
-          "_description": "Set",
-          "_lossless": false,
-          "_overflow": true,
-          "_size": 1,
-          "_properties": [],
-          "_entries": []
-        }
-      }
-    ]
-  }
-}
-
------------------------------------------------------
-EXPRESSION: set = new WeakSet; strongKey = {id:1}; set.add(strongKey); set
-{
-  "_type": "object",
-  "_subtype": "weakset",
-  "_objectId": "<filtered>",
-  "_description": "WeakSet",
-  "_size": 1,
-  "_preview": {
-    "_type": "object",
-    "_subtype": "weakset",
-    "_description": "WeakSet",
-    "_lossless": true,
-    "_overflow": false,
-    "_size": 1,
-    "_properties": [],
-    "_entries": [
-      {
-        "_value": {
-          "_type": "object",
-          "_description": "Object",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": [
-            {
-              "_name": "id",
-              "_type": "number",
-              "_value": "1"
-            }
-          ],
-          "_entries": null
-        }
-      }
-    ]
-  }
-}
-
------------------------------------------------------
-EXPRESSION: 'a'[Symbol.iterator]()
-{
-  "_type": "object",
-  "_subtype": "iterator",
-  "_objectId": "<filtered>",
-  "_description": "String Iterator",
-  "_preview": {
-    "_type": "object",
-    "_subtype": "iterator",
-    "_description": "String Iterator",
-    "_lossless": true,
-    "_overflow": false,
-    "_properties": [
-      {
-        "_name": "string",
-        "_type": "string",
-        "_value": "a",
-        "_internal": true
-      }
-    ],
-    "_entries": [
-      {
-        "_value": {
-          "_type": "string",
-          "_description": "a",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": null,
-          "_entries": null
-        }
-      }
-    ]
-  }
-}
-
------------------------------------------------------
-EXPRESSION: 'long string'[Symbol.iterator]()
-{
-  "_type": "object",
-  "_subtype": "iterator",
-  "_objectId": "<filtered>",
-  "_description": "String Iterator",
-  "_preview": {
-    "_type": "object",
-    "_subtype": "iterator",
-    "_description": "String Iterator",
-    "_lossless": false,
-    "_overflow": true,
-    "_properties": [
-      {
-        "_name": "string",
-        "_type": "string",
-        "_value": "long string",
-        "_internal": true
-      }
-    ],
-    "_entries": [
-      {
-        "_value": {
-          "_type": "string",
-          "_description": "l",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": null,
-          "_entries": null
-        }
-      },
-      {
-        "_value": {
-          "_type": "string",
-          "_description": "o",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": null,
-          "_entries": null
-        }
-      },
-      {
-        "_value": {
-          "_type": "string",
-          "_description": "n",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": null,
-          "_entries": null
-        }
-      },
-      {
-        "_value": {
-          "_type": "string",
-          "_description": "g",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": null,
-          "_entries": null
-        }
-      },
-      {
-        "_value": {
-          "_type": "string",
-          "_description": " ",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": null,
-          "_entries": null
-        }
-      }
-    ]
-  }
-}
-
------------------------------------------------------
-EXPRESSION: [][Symbol.iterator]()
-{
-  "_type": "object",
-  "_subtype": "iterator",
-  "_objectId": "<filtered>",
-  "_description": "Array Iterator",
-  "_preview": {
-    "_type": "object",
-    "_subtype": "iterator",
-    "_description": "Array Iterator",
-    "_lossless": true,
-    "_overflow": false,
-    "_properties": [
-      {
-        "_name": "array",
-        "_type": "object",
-        "_subtype": "array",
-        "_valuePreview": {
-          "_type": "object",
-          "_subtype": "array",
-          "_description": "Array",
-          "_lossless": true,
-          "_overflow": false,
-          "_size": 0,
-          "_properties": [],
-          "_entries": null
-        },
-        "_internal": true
-      },
-      {
-        "_name": "kind",
-        "_type": "string",
-        "_value": "value",
-        "_internal": true
-      }
-    ],
-    "_entries": []
-  }
-}
-
------------------------------------------------------
-EXPRESSION: [1][Symbol.iterator]()
-{
-  "_type": "object",
-  "_subtype": "iterator",
-  "_objectId": "<filtered>",
-  "_description": "Array Iterator",
-  "_preview": {
-    "_type": "object",
-    "_subtype": "iterator",
-    "_description": "Array Iterator",
-    "_lossless": true,
-    "_overflow": false,
-    "_properties": [
-      {
-        "_name": "array",
-        "_type": "object",
-        "_subtype": "array",
-        "_valuePreview": {
-          "_type": "object",
-          "_subtype": "array",
-          "_description": "Array",
-          "_lossless": true,
-          "_overflow": false,
-          "_size": 1,
-          "_properties": [
-            {
-              "_name": "0",
-              "_type": "number",
-              "_value": "1"
-            }
-          ],
-          "_entries": null
-        },
-        "_internal": true
-      },
-      {
-        "_name": "kind",
-        "_type": "string",
-        "_value": "value",
-        "_internal": true
-      }
-    ],
-    "_entries": [
-      {
-        "_value": {
-          "_type": "number",
-          "_description": "1",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": null,
-          "_entries": null
-        }
-      }
-    ]
-  }
-}
-
------------------------------------------------------
-EXPRESSION: [1, 'two', 3, 'four', 5, 'size'][Symbol.iterator]()
-{
-  "_type": "object",
-  "_subtype": "iterator",
-  "_objectId": "<filtered>",
-  "_description": "Array Iterator",
-  "_preview": {
-    "_type": "object",
-    "_subtype": "iterator",
-    "_description": "Array Iterator",
-    "_lossless": false,
-    "_overflow": true,
-    "_properties": [
-      {
-        "_name": "array",
-        "_type": "object",
-        "_subtype": "array",
-        "_value": "Array",
-        "_internal": true
-      },
-      {
-        "_name": "kind",
-        "_type": "string",
-        "_value": "value",
-        "_internal": true
-      }
-    ],
-    "_entries": [
-      {
-        "_value": {
-          "_type": "number",
-          "_description": "1",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": null,
-          "_entries": null
-        }
-      },
-      {
-        "_value": {
-          "_type": "string",
-          "_description": "two",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": null,
-          "_entries": null
-        }
-      },
-      {
-        "_value": {
-          "_type": "number",
-          "_description": "3",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": null,
-          "_entries": null
-        }
-      },
-      {
-        "_value": {
-          "_type": "string",
-          "_description": "four",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": null,
-          "_entries": null
-        }
-      },
-      {
-        "_value": {
-          "_type": "number",
-          "_description": "5",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": null,
-          "_entries": null
-        }
-      }
-    ]
-  }
-}
-
------------------------------------------------------
-EXPRESSION: [1, 'two', 3, 'four', 5, 'size'].keys()
-{
-  "_type": "object",
-  "_subtype": "iterator",
-  "_objectId": "<filtered>",
-  "_description": "Array Iterator",
-  "_preview": {
-    "_type": "object",
-    "_subtype": "iterator",
-    "_description": "Array Iterator",
-    "_lossless": false,
-    "_overflow": true,
-    "_properties": [
-      {
-        "_name": "array",
-        "_type": "object",
-        "_subtype": "array",
-        "_value": "Array",
-        "_internal": true
-      },
-      {
-        "_name": "kind",
-        "_type": "string",
-        "_value": "key",
-        "_internal": true
-      }
-    ],
-    "_entries": [
-      {
-        "_value": {
-          "_type": "number",
-          "_description": "0",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": null,
-          "_entries": null
-        }
-      },
-      {
-        "_value": {
-          "_type": "number",
-          "_description": "1",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": null,
-          "_entries": null
-        }
-      },
-      {
-        "_value": {
-          "_type": "number",
-          "_description": "2",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": null,
-          "_entries": null
-        }
-      },
-      {
-        "_value": {
-          "_type": "number",
-          "_description": "3",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": null,
-          "_entries": null
-        }
-      },
-      {
-        "_value": {
-          "_type": "number",
-          "_description": "4",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": null,
-          "_entries": null
-        }
-      }
-    ]
-  }
-}
-
------------------------------------------------------
-EXPRESSION: [1, 'two', 3, 'four', 5, 'size'].entries()
-{
-  "_type": "object",
-  "_subtype": "iterator",
-  "_objectId": "<filtered>",
-  "_description": "Array Iterator",
-  "_preview": {
-    "_type": "object",
-    "_subtype": "iterator",
-    "_description": "Array Iterator",
-    "_lossless": false,
-    "_overflow": true,
-    "_properties": [
-      {
-        "_name": "array",
-        "_type": "object",
-        "_subtype": "array",
-        "_value": "Array",
-        "_internal": true
-      },
-      {
-        "_name": "kind",
-        "_type": "string",
-        "_value": "key+value",
-        "_internal": true
-      }
-    ],
-    "_entries": [
-      {
-        "_value": {
-          "_type": "object",
-          "_subtype": "array",
-          "_description": "Array",
-          "_lossless": true,
-          "_overflow": false,
-          "_size": 2,
-          "_properties": [
-            {
-              "_name": "0",
-              "_type": "number",
-              "_value": "0"
-            },
-            {
-              "_name": "1",
-              "_type": "number",
-              "_value": "1"
-            }
-          ],
-          "_entries": null
-        }
-      },
-      {
-        "_value": {
-          "_type": "object",
-          "_subtype": "array",
-          "_description": "Array",
-          "_lossless": true,
-          "_overflow": false,
-          "_size": 2,
-          "_properties": [
-            {
-              "_name": "0",
-              "_type": "number",
-              "_value": "1"
-            },
-            {
-              "_name": "1",
-              "_type": "string",
-              "_value": "two"
-            }
-          ],
-          "_entries": null
-        }
-      },
-      {
-        "_value": {
-          "_type": "object",
-          "_subtype": "array",
-          "_description": "Array",
-          "_lossless": true,
-          "_overflow": false,
-          "_size": 2,
-          "_properties": [
-            {
-              "_name": "0",
-              "_type": "number",
-              "_value": "2"
-            },
-            {
-              "_name": "1",
-              "_type": "number",
-              "_value": "3"
-            }
-          ],
-          "_entries": null
-        }
-      },
-      {
-        "_value": {
-          "_type": "object",
-          "_subtype": "array",
-          "_description": "Array",
-          "_lossless": true,
-          "_overflow": false,
-          "_size": 2,
-          "_properties": [
-            {
-              "_name": "0",
-              "_type": "number",
-              "_value": "3"
-            },
-            {
-              "_name": "1",
-              "_type": "string",
-              "_value": "four"
-            }
-          ],
-          "_entries": null
-        }
-      },
-      {
-        "_value": {
-          "_type": "object",
-          "_subtype": "array",
-          "_description": "Array",
-          "_lossless": true,
-          "_overflow": false,
-          "_size": 2,
-          "_properties": [
-            {
-              "_name": "0",
-              "_type": "number",
-              "_value": "4"
-            },
-            {
-              "_name": "1",
-              "_type": "number",
-              "_value": "5"
-            }
-          ],
-          "_entries": null
-        }
-      }
-    ]
-  }
-}
-
------------------------------------------------------
-EXPRESSION: map = new Map; map.set(1, 2); map.set('key', 'value'); map.values()
-{
-  "_type": "object",
-  "_subtype": "iterator",
-  "_objectId": "<filtered>",
-  "_description": "Map Iterator",
-  "_preview": {
-    "_type": "object",
-    "_subtype": "iterator",
-    "_description": "Map Iterator",
-    "_lossless": false,
-    "_overflow": false,
-    "_properties": [
-      {
-        "_name": "map",
-        "_type": "object",
-        "_subtype": "map",
-        "_value": "Map",
-        "_internal": true
-      },
-      {
-        "_name": "kind",
-        "_type": "string",
-        "_value": "value",
-        "_internal": true
-      }
-    ],
-    "_entries": [
-      {
-        "_value": {
-          "_type": "number",
-          "_description": "2",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": null,
-          "_entries": null
-        }
-      },
-      {
-        "_value": {
-          "_type": "string",
-          "_description": "value",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": null,
-          "_entries": null
-        }
-      }
-    ]
-  }
-}
-
------------------------------------------------------
-EXPRESSION: map.keys()
-{
-  "_type": "object",
-  "_subtype": "iterator",
-  "_objectId": "<filtered>",
-  "_description": "Map Iterator",
-  "_preview": {
-    "_type": "object",
-    "_subtype": "iterator",
-    "_description": "Map Iterator",
-    "_lossless": false,
-    "_overflow": false,
-    "_properties": [
-      {
-        "_name": "map",
-        "_type": "object",
-        "_subtype": "map",
-        "_value": "Map",
-        "_internal": true
-      },
-      {
-        "_name": "kind",
-        "_type": "string",
-        "_value": "key",
-        "_internal": true
-      }
-    ],
-    "_entries": [
-      {
-        "_value": {
-          "_type": "number",
-          "_description": "1",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": null,
-          "_entries": null
-        }
-      },
-      {
-        "_value": {
-          "_type": "string",
-          "_description": "key",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": null,
-          "_entries": null
-        }
-      }
-    ]
-  }
-}
-
------------------------------------------------------
-EXPRESSION: map.entries()
-{
-  "_type": "object",
-  "_subtype": "iterator",
-  "_objectId": "<filtered>",
-  "_description": "Map Iterator",
-  "_preview": {
-    "_type": "object",
-    "_subtype": "iterator",
-    "_description": "Map Iterator",
-    "_lossless": false,
-    "_overflow": false,
-    "_properties": [
-      {
-        "_name": "map",
-        "_type": "object",
-        "_subtype": "map",
-        "_value": "Map",
-        "_internal": true
-      },
-      {
-        "_name": "kind",
-        "_type": "string",
-        "_value": "key+value",
-        "_internal": true
-      }
-    ],
-    "_entries": [
-      {
-        "_value": {
-          "_type": "object",
-          "_subtype": "array",
-          "_description": "Array",
-          "_lossless": true,
-          "_overflow": false,
-          "_size": 2,
-          "_properties": [
-            {
-              "_name": "0",
-              "_type": "number",
-              "_value": "1"
-            },
-            {
-              "_name": "1",
-              "_type": "number",
-              "_value": "2"
-            }
-          ],
-          "_entries": null
-        }
-      },
-      {
-        "_value": {
-          "_type": "object",
-          "_subtype": "array",
-          "_description": "Array",
-          "_lossless": true,
-          "_overflow": false,
-          "_size": 2,
-          "_properties": [
-            {
-              "_name": "0",
-              "_type": "string",
-              "_value": "key"
-            },
-            {
-              "_name": "1",
-              "_type": "string",
-              "_value": "value"
-            }
-          ],
-          "_entries": null
-        }
-      }
-    ]
-  }
-}
-
------------------------------------------------------
-EXPRESSION: set = new Set; for (var i = 0; i <= 100; i++) set.add(i); set.values()
-{
-  "_type": "object",
-  "_subtype": "iterator",
-  "_objectId": "<filtered>",
-  "_description": "Set Iterator",
-  "_preview": {
-    "_type": "object",
-    "_subtype": "iterator",
-    "_description": "Set Iterator",
-    "_lossless": false,
-    "_overflow": true,
-    "_properties": [
-      {
-        "_name": "set",
-        "_type": "object",
-        "_subtype": "set",
-        "_value": "Set",
-        "_internal": true
-      },
-      {
-        "_name": "kind",
-        "_type": "string",
-        "_value": "value",
-        "_internal": true
-      }
-    ],
-    "_entries": [
-      {
-        "_value": {
-          "_type": "number",
-          "_description": "0",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": null,
-          "_entries": null
-        }
-      },
-      {
-        "_value": {
-          "_type": "number",
-          "_description": "1",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": null,
-          "_entries": null
-        }
-      },
-      {
-        "_value": {
-          "_type": "number",
-          "_description": "2",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": null,
-          "_entries": null
-        }
-      },
-      {
-        "_value": {
-          "_type": "number",
-          "_description": "3",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": null,
-          "_entries": null
-        }
-      },
-      {
-        "_value": {
-          "_type": "number",
-          "_description": "4",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": null,
-          "_entries": null
-        }
-      }
-    ]
-  }
-}
-
------------------------------------------------------
-EXPRESSION: map.entries()
-{
-  "_type": "object",
-  "_subtype": "iterator",
-  "_objectId": "<filtered>",
-  "_description": "Map Iterator",
-  "_preview": {
-    "_type": "object",
-    "_subtype": "iterator",
-    "_description": "Map Iterator",
-    "_lossless": false,
-    "_overflow": false,
-    "_properties": [
-      {
-        "_name": "map",
-        "_type": "object",
-        "_subtype": "map",
-        "_value": "Map",
-        "_internal": true
-      },
-      {
-        "_name": "kind",
-        "_type": "string",
-        "_value": "key+value",
-        "_internal": true
-      }
-    ],
-    "_entries": [
-      {
-        "_value": {
-          "_type": "object",
-          "_subtype": "array",
-          "_description": "Array",
-          "_lossless": true,
-          "_overflow": false,
-          "_size": 2,
-          "_properties": [
-            {
-              "_name": "0",
-              "_type": "number",
-              "_value": "1"
-            },
-            {
-              "_name": "1",
-              "_type": "number",
-              "_value": "2"
-            }
-          ],
-          "_entries": null
-        }
-      },
-      {
-        "_value": {
-          "_type": "object",
-          "_subtype": "array",
-          "_description": "Array",
-          "_lossless": true,
-          "_overflow": false,
-          "_size": 2,
-          "_properties": [
-            {
-              "_name": "0",
-              "_type": "string",
-              "_value": "key"
-            },
-            {
-              "_name": "1",
-              "_type": "string",
-              "_value": "value"
-            }
-          ],
-          "_entries": null
-        }
-      }
-    ]
-  }
-}
-
------------------------------------------------------
-EXPRESSION: x = undefined; (function() { x = arguments; })(1, 'two'); x[Symbol.iterator]()
-{
-  "_type": "object",
-  "_subtype": "iterator",
-  "_objectId": "<filtered>",
-  "_description": "Array Iterator",
-  "_preview": {
-    "_type": "object",
-    "_subtype": "iterator",
-    "_description": "Array Iterator",
-    "_lossless": true,
-    "_overflow": false,
-    "_properties": [
-      {
-        "_name": "array",
-        "_type": "object",
-        "_subtype": "array",
-        "_valuePreview": {
-          "_type": "object",
-          "_subtype": "array",
-          "_description": "Arguments",
-          "_lossless": true,
-          "_overflow": false,
-          "_size": 2,
-          "_properties": [
-            {
-              "_name": "0",
-              "_type": "number",
-              "_value": "1"
-            },
-            {
-              "_name": "1",
-              "_type": "string",
-              "_value": "two"
-            }
-          ],
-          "_entries": null
-        },
-        "_internal": true
-      },
-      {
-        "_name": "kind",
-        "_type": "string",
-        "_value": "value",
-        "_internal": true
-      }
-    ],
-    "_entries": [
-      {
-        "_value": {
-          "_type": "number",
-          "_description": "1",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": null,
-          "_entries": null
-        }
-      },
-      {
-        "_value": {
-          "_type": "string",
-          "_description": "two",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": null,
-          "_entries": null
-        }
-      }
-    ]
-  }
-}
-
------------------------------------------------------
-EXPRESSION: iter = [1, 2][Symbol.iterator](); iter['return'] = function(){}; iter
-{
-  "_type": "object",
-  "_subtype": "iterator",
-  "_objectId": "<filtered>",
-  "_description": "Array Iterator",
-  "_preview": {
-    "_type": "object",
-    "_subtype": "iterator",
-    "_description": "Array Iterator",
-    "_lossless": true,
-    "_overflow": false,
-    "_properties": [
-      {
-        "_name": "array",
-        "_type": "object",
-        "_subtype": "array",
-        "_valuePreview": {
-          "_type": "object",
-          "_subtype": "array",
-          "_description": "Array",
-          "_lossless": true,
-          "_overflow": false,
-          "_size": 2,
-          "_properties": [
-            {
-              "_name": "0",
-              "_type": "number",
-              "_value": "1"
-            },
-            {
-              "_name": "1",
-              "_type": "number",
-              "_value": "2"
-            }
-          ],
-          "_entries": null
-        },
-        "_internal": true
-      },
-      {
-        "_name": "kind",
-        "_type": "string",
-        "_value": "value",
-        "_internal": true
-      }
-    ],
-    "_entries": [
-      {
-        "_value": {
-          "_type": "number",
-          "_description": "1",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": null,
-          "_entries": null
-        }
-      },
-      {
-        "_value": {
-          "_type": "number",
-          "_description": "2",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": null,
-          "_entries": null
-        }
-      }
-    ]
-  }
-}
-
------------------------------------------------------
-EXPRESSION: new Promise(function(){})
-{
-  "_type": "object",
-  "_objectId": "<filtered>",
-  "_description": "Promise",
-  "_preview": {
-    "_type": "object",
-    "_description": "Promise",
-    "_lossless": false,
-    "_overflow": false,
-    "_properties": [
-      {
-        "_name": "status",
-        "_type": "string",
-        "_value": "pending",
-        "_internal": true
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: Promise.reject()
-{
-  "_type": "object",
-  "_objectId": "<filtered>",
-  "_description": "Promise",
-  "_preview": {
-    "_type": "object",
-    "_description": "Promise",
-    "_lossless": false,
-    "_overflow": false,
-    "_properties": [
-      {
-        "_name": "status",
-        "_type": "string",
-        "_value": "rejected",
-        "_internal": true
-      },
-      {
-        "_name": "result",
-        "_type": "undefined",
-        "_value": "undefined",
-        "_internal": true
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: Promise.reject('result')
-{
-  "_type": "object",
-  "_objectId": "<filtered>",
-  "_description": "Promise",
-  "_preview": {
-    "_type": "object",
-    "_description": "Promise",
-    "_lossless": false,
-    "_overflow": false,
-    "_properties": [
-      {
-        "_name": "status",
-        "_type": "string",
-        "_value": "rejected",
-        "_internal": true
-      },
-      {
-        "_name": "result",
-        "_type": "string",
-        "_value": "result",
-        "_internal": true
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: Promise.resolve()
-{
-  "_type": "object",
-  "_objectId": "<filtered>",
-  "_description": "Promise",
-  "_preview": {
-    "_type": "object",
-    "_description": "Promise",
-    "_lossless": false,
-    "_overflow": false,
-    "_properties": [
-      {
-        "_name": "status",
-        "_type": "string",
-        "_value": "resolved",
-        "_internal": true
-      },
-      {
-        "_name": "result",
-        "_type": "undefined",
-        "_value": "undefined",
-        "_internal": true
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: Promise.resolve({result:1})
-{
-  "_type": "object",
-  "_objectId": "<filtered>",
-  "_description": "Promise",
-  "_preview": {
-    "_type": "object",
-    "_description": "Promise",
-    "_lossless": false,
-    "_overflow": false,
-    "_properties": [
-      {
-        "_name": "status",
-        "_type": "string",
-        "_value": "resolved",
-        "_internal": true
-      },
-      {
-        "_name": "result",
-        "_type": "object",
-        "_valuePreview": {
-          "_type": "object",
-          "_description": "Object",
-          "_lossless": true,
-          "_overflow": false,
-          "_properties": [
-            {
-              "_name": "result",
-              "_type": "number",
-              "_value": "1"
-            }
-          ],
-          "_entries": null
-        },
-        "_internal": true
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: new Proxy({x:1, y:1}, {handler: true})
-{
-  "_type": "object",
-  "_subtype": "proxy",
-  "_objectId": "<filtered>",
-  "_description": "Proxy",
-  "_preview": {
-    "_type": "object",
-    "_subtype": "proxy",
-    "_description": "Proxy",
-    "_lossless": false,
-    "_overflow": false,
-    "_properties": [
-      {
-        "_name": "x",
-        "_type": "number",
-        "_value": "1"
-      },
-      {
-        "_name": "y",
-        "_type": "number",
-        "_value": "1"
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: new Proxy(new Proxy({foo:1, bar:1}, {}), {})
-{
-  "_type": "object",
-  "_subtype": "proxy",
-  "_objectId": "<filtered>",
-  "_description": "Proxy",
-  "_preview": {
-    "_type": "object",
-    "_subtype": "proxy",
-    "_description": "Proxy",
-    "_lossless": false,
-    "_overflow": false,
-    "_properties": [
-      {
-        "_name": "foo",
-        "_type": "number",
-        "_value": "1"
-      },
-      {
-        "_name": "bar",
-        "_type": "number",
-        "_value": "1"
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: Person = class Person { constructor(name){} get fullName(){} methodName(p1, p2){} }; Person
-{
-  "_type": "function",
-  "_subtype": "class",
-  "_objectId": "<filtered>",
-  "_description": "class Person",
-  "_classPrototype": {
-    "_type": "object",
-    "_objectId": "<filtered>",
-    "_description": "Person"
-  },
-  "_functionDescription": "class Person { constructor(name){} get fullName(){} methodName(p1, p2){} }"
-}
-
------------------------------------------------------
-EXPRESSION: Person.prototype.methodName
-{
-  "_type": "function",
-  "_objectId": "<filtered>",
-  "_description": "function methodName(p1, p2){}"
-}
-
------------------------------------------------------
-EXPRESSION: new Person
-{
-  "_type": "object",
-  "_objectId": "<filtered>",
-  "_description": "Person",
-  "_preview": {
-    "_type": "object",
-    "_description": "Person",
-    "_lossless": false,
-    "_overflow": false,
-    "_properties": [],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: Alpha = class A { methodA(){} }; Beta = class B extends Alpha { methodB(){} }; Beta
-{
-  "_type": "function",
-  "_subtype": "class",
-  "_objectId": "<filtered>",
-  "_description": "class B",
-  "_classPrototype": {
-    "_type": "object",
-    "_objectId": "<filtered>",
-    "_description": "B"
-  },
-  "_functionDescription": "class B extends Alpha { methodB(){} }"
-}
-
------------------------------------------------------
-EXPRESSION: [Beta]
-{
-  "_type": "object",
-  "_subtype": "array",
-  "_objectId": "<filtered>",
-  "_description": "Array",
-  "_size": 1,
-  "_preview": {
-    "_type": "object",
-    "_subtype": "array",
-    "_description": "Array",
-    "_lossless": false,
-    "_overflow": false,
-    "_size": 1,
-    "_properties": [
-      {
-        "_name": "0",
-        "_type": "function",
-        "_subtype": "class",
-        "_value": "class B"
-      }
-    ],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: Object.seal({})
-{
-  "_type": "object",
-  "_objectId": "<filtered>",
-  "_description": "Object",
-  "_preview": {
-    "_type": "object",
-    "_description": "Object",
-    "_lossless": true,
-    "_overflow": false,
-    "_properties": [],
-    "_entries": null
-  }
-}
-
------------------------------------------------------
-EXPRESSION: Object.freeze({})
-{
-  "_type": "object",
-  "_objectId": "<filtered>",
-  "_description": "Object",
-  "_preview": {
-    "_type": "object",
-    "_description": "Object",
-    "_lossless": true,
-    "_overflow": false,
-    "_properties": [],
-    "_entries": null
-  }
-}
-