commit c7382062ea10daa2c5c4254331b94d03f0ff1548
parent 0408a16e1698ed8c0c5007c383666bb515bf5dca
Author: alexical <dothayer@mozilla.com>
Date: Thu, 9 Oct 2025 18:02:26 +0000
Bug 1992249 - Fix MapLike entries loop r=ochameau,devtools-reviewers,profiler-reviewers,canaltinova
Differential Revision: https://phabricator.services.mozilla.com/D268008
Diffstat:
2 files changed, 631 insertions(+), 4 deletions(-)
diff --git a/devtools/client/shared/components/reps/reps/value-summary-reader.mjs b/devtools/client/shared/components/reps/reps/value-summary-reader.mjs
@@ -206,7 +206,7 @@ function readMapLikeSummary(result, reader, depth, shapes) {
preview.entries = [];
preview.size = reader.readUint32();
if (depth < 1) {
- for (let i = 0; i < preview.length && i < MAX_COLLECTION_VALUES; i++) {
+ for (let i = 0; i < preview.size && i < MAX_COLLECTION_VALUES; i++) {
const keySummary = readValueSummary(reader, depth + 1, shapes);
const valueSummary = readValueSummary(reader, depth + 1, shapes);
preview.entries.push([
diff --git a/tools/profiler/tests/browser/browser_test_feature_jstracing_objtestutils.snapshot.mjs b/tools/profiler/tests/browser/browser_test_feature_jstracing_objtestutils.snapshot.mjs
@@ -217,7 +217,88 @@ export default [
"frozen": false,
"preview": {
"kind": "MapLike",
- "entries": [],
+ "entries": [
+ [
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": {
+ "type": "object",
+ "class": "Object",
+ "ownPropertyLength": 0,
+ "isError": false,
+ "extensible": false,
+ "sealed": false,
+ "frozen": false,
+ "preview": {
+ "kind": "Object",
+ "ownProperties": {},
+ "ownPropertiesLength": 1
+ }
+ }
+ },
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": {
+ "type": "object",
+ "class": "Object",
+ "ownPropertyLength": 0,
+ "isError": false,
+ "extensible": false,
+ "sealed": false,
+ "frozen": false,
+ "preview": {
+ "kind": "Object",
+ "ownProperties": {},
+ "ownPropertiesLength": 1
+ }
+ }
+ }
+ ],
+ [
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": {
+ "type": "object",
+ "class": "Object",
+ "ownPropertyLength": 0,
+ "isError": false,
+ "extensible": false,
+ "sealed": false,
+ "frozen": false,
+ "preview": {
+ "kind": "Object",
+ "ownProperties": {},
+ "ownPropertiesLength": 1
+ }
+ }
+ },
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": {
+ "type": "object",
+ "class": "Object",
+ "ownPropertyLength": 0,
+ "isError": false,
+ "extensible": false,
+ "sealed": false,
+ "frozen": false,
+ "preview": {
+ "kind": "Object",
+ "ownProperties": {},
+ "ownPropertiesLength": 1
+ }
+ }
+ }
+ ]
+ ],
"size": 2
}
},
@@ -233,7 +314,280 @@ export default [
"frozen": false,
"preview": {
"kind": "MapLike",
- "entries": [],
+ "entries": [
+ [
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": {
+ "type": "symbol",
+ "name": "0"
+ }
+ },
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": 0
+ }
+ ],
+ [
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": {
+ "type": "symbol",
+ "name": "1"
+ }
+ },
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": 1
+ }
+ ],
+ [
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": {
+ "type": "symbol",
+ "name": "2"
+ }
+ },
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": 2
+ }
+ ],
+ [
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": {
+ "type": "symbol",
+ "name": "3"
+ }
+ },
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": 3
+ }
+ ],
+ [
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": {
+ "type": "symbol",
+ "name": "4"
+ }
+ },
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": 4
+ }
+ ],
+ [
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": {
+ "type": "symbol",
+ "name": "5"
+ }
+ },
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": 5
+ }
+ ],
+ [
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": {
+ "type": "symbol",
+ "name": "6"
+ }
+ },
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": 6
+ }
+ ],
+ [
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": {
+ "type": "symbol",
+ "name": "7"
+ }
+ },
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": 7
+ }
+ ],
+ [
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": {
+ "type": "symbol",
+ "name": "8"
+ }
+ },
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": 8
+ }
+ ],
+ [
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": {
+ "type": "symbol",
+ "name": "9"
+ }
+ },
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": 9
+ }
+ ],
+ [
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": {
+ "type": "symbol",
+ "name": "10"
+ }
+ },
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": 10
+ }
+ ],
+ [
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": {
+ "type": "symbol",
+ "name": "11"
+ }
+ },
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": 11
+ }
+ ],
+ [
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": {
+ "type": "symbol",
+ "name": "12"
+ }
+ },
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": 12
+ }
+ ],
+ [
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": {
+ "type": "symbol",
+ "name": "13"
+ }
+ },
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": 13
+ }
+ ],
+ [
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": {
+ "type": "symbol",
+ "name": "14"
+ }
+ },
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": 14
+ }
+ ],
+ [
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": {
+ "type": "symbol",
+ "name": "15"
+ }
+ },
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": 15
+ }
+ ]
+ ],
"size": 20
}
},
@@ -249,7 +603,280 @@ export default [
"frozen": false,
"preview": {
"kind": "MapLike",
- "entries": [],
+ "entries": [
+ [
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": {
+ "type": "symbol",
+ "name": "0"
+ }
+ },
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": 0
+ }
+ ],
+ [
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": {
+ "type": "symbol",
+ "name": "1"
+ }
+ },
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": 1
+ }
+ ],
+ [
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": {
+ "type": "symbol",
+ "name": "2"
+ }
+ },
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": 2
+ }
+ ],
+ [
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": {
+ "type": "symbol",
+ "name": "3"
+ }
+ },
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": 3
+ }
+ ],
+ [
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": {
+ "type": "symbol",
+ "name": "4"
+ }
+ },
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": 4
+ }
+ ],
+ [
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": {
+ "type": "symbol",
+ "name": "5"
+ }
+ },
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": 5
+ }
+ ],
+ [
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": {
+ "type": "symbol",
+ "name": "6"
+ }
+ },
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": 6
+ }
+ ],
+ [
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": {
+ "type": "symbol",
+ "name": "7"
+ }
+ },
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": 7
+ }
+ ],
+ [
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": {
+ "type": "symbol",
+ "name": "8"
+ }
+ },
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": 8
+ }
+ ],
+ [
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": {
+ "type": "symbol",
+ "name": "9"
+ }
+ },
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": 9
+ }
+ ],
+ [
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": {
+ "type": "symbol",
+ "name": "10"
+ }
+ },
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": 10
+ }
+ ],
+ [
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": {
+ "type": "symbol",
+ "name": "11"
+ }
+ },
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": 11
+ }
+ ],
+ [
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": {
+ "type": "symbol",
+ "name": "12"
+ }
+ },
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": 12
+ }
+ ],
+ [
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": {
+ "type": "symbol",
+ "name": "13"
+ }
+ },
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": 13
+ }
+ ],
+ [
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": {
+ "type": "symbol",
+ "name": "14"
+ }
+ },
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": 14
+ }
+ ],
+ [
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": {
+ "type": "symbol",
+ "name": "15"
+ }
+ },
+ {
+ "configurable": true,
+ "enumerable": true,
+ "writable": true,
+ "value": 15
+ }
+ ]
+ ],
"size": 331
}
},