Skip to content

Commit 98613ea

Browse files
committed
fix circuler object issue
1 parent 1dfaf70 commit 98613ea

3 files changed

Lines changed: 10 additions & 8 deletions

File tree

packages/devtool-extenstion/extension/core/background.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,7 @@ const saveCatchData = (request, { id: tabId, title }, subType) => {
183183

184184
cacheContext[key].oldValue = cacheContext[key].newValue;
185185
cacheContext[key].newValue = parsedData.context[key];
186+
cacheContext[key].newValue.value = JSON.parse(cacheContext[key].newValue.value || null);
186187
}
187188
});
188189

packages/devtool-extenstion/extension/core/hook.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ export function installHook(target, settings) {
4646
const debugObj = fiberNodeToDebug.context[key];
4747
if (debugObj.valueChanged) {
4848
memo[key] = {
49-
value: debugObj.value,
49+
value: helpers.parseData(debugObj.value),
5050
displayName: debugObj.displayName,
5151
valueChanged: debugObj.valueChanged,
5252
remove: true,

packages/devtool-extenstion/extension/core/injectGlobalHook.js

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,9 @@ function injectHelpers(target) {
5555
};
5656

5757
const parseData = (data) => {
58-
//For Detecting Circular Structures
59-
const seen = new WeakSet();
58+
// For Detecting Circular Structures
59+
const seen = new WeakMap();
60+
6061
const stringifyResolver = function (k, v) {
6162
if (typeof v === "function") {
6263
return "function () {}";
@@ -65,10 +66,10 @@ function injectHelpers(target) {
6566
return `<${v.tagName}> HTMLElemet`;
6667
}
6768
if (v instanceof Set) {
68-
return `Set [${Array.from(v).toString()}]`;
69+
return `Set [${parseData(Array.from(v))}]`;
6970
}
7071
if (v instanceof Map) {
71-
return `Map ${JSON.stringify(Object.fromEntries(v), stringifyResolver)}`;
72+
return `Map ${parseData(Object.fromEntries(v))}`;
7273
}
7374
if (v instanceof WeakSet) {
7475
return `WeekSet []`;
@@ -79,12 +80,12 @@ function injectHelpers(target) {
7980
if (isReactNode(k, v)) {
8081
return "<REACT NODE>";
8182
}
82-
//Detect Circular Structure
83+
// Detect Circular Structure
8384
if (typeof v === "object" && v !== null) {
8485
if (seen.has(v)) {
85-
return "Circular Structure";
86+
return `<CIRCULER OBJECT> ${seen.get(v)}`;
8687
}
87-
seen.add(v);
88+
seen.set(v, k);
8889
}
8990
return v;
9091
};

0 commit comments

Comments
 (0)