Skip to content

Commit b3a232e

Browse files
committed
fix: handle errors in encoder
1 parent 751edce commit b3a232e

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

packages/shared-utils/src/transfer.ts

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,25 @@ function encode (data, replacer, list, seen) {
1515
const keys = Object.keys(data)
1616
for (i = 0, l = keys.length; i < l; i++) {
1717
key = keys[i]
18-
value = data[key]
19-
if (replacer) value = replacer.call(data, key, value)
18+
try {
19+
value = data[key]
20+
if (replacer) value = replacer.call(data, key, value)
21+
} catch (e) {
22+
value = e
23+
}
2024
stored[key] = encode(value, replacer, list, seen)
2125
}
2226
} else if (proto === '[object Array]') {
2327
stored = []
2428
seen.set(data, index)
2529
list.push(stored)
2630
for (i = 0, l = data.length; i < l; i++) {
27-
value = data[i]
28-
if (replacer) value = replacer.call(data, i, value)
31+
try {
32+
value = data[i]
33+
if (replacer) value = replacer.call(data, i, value)
34+
} catch (e) {
35+
value = e
36+
}
2937
stored[i] = encode(value, replacer, list, seen)
3038
}
3139
} else {

0 commit comments

Comments
 (0)