From b3a232e8b5279e939625d0067ee638429d188241 Mon Sep 17 00:00:00 2001 From: Guillaume Chau Date: Tue, 18 Oct 2022 14:59:26 +0200 Subject: [PATCH] fix: handle errors in encoder --- packages/shared-utils/src/transfer.ts | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/packages/shared-utils/src/transfer.ts b/packages/shared-utils/src/transfer.ts index ec86ded67..467e2f755 100644 --- a/packages/shared-utils/src/transfer.ts +++ b/packages/shared-utils/src/transfer.ts @@ -15,8 +15,12 @@ function encode (data, replacer, list, seen) { const keys = Object.keys(data) for (i = 0, l = keys.length; i < l; i++) { key = keys[i] - value = data[key] - if (replacer) value = replacer.call(data, key, value) + try { + value = data[key] + if (replacer) value = replacer.call(data, key, value) + } catch (e) { + value = e + } stored[key] = encode(value, replacer, list, seen) } } else if (proto === '[object Array]') { @@ -24,8 +28,12 @@ function encode (data, replacer, list, seen) { seen.set(data, index) list.push(stored) for (i = 0, l = data.length; i < l; i++) { - value = data[i] - if (replacer) value = replacer.call(data, i, value) + try { + value = data[i] + if (replacer) value = replacer.call(data, i, value) + } catch (e) { + value = e + } stored[i] = encode(value, replacer, list, seen) } } else {