From e7b7075b1ea49e6896f72c941894b11e146652d1 Mon Sep 17 00:00:00 2001 From: Marin Atanasov <8436925+tyxla@users.noreply.github.com> Date: Thu, 16 Jan 2025 11:43:58 +0200 Subject: [PATCH] Analytics: Handle JSON stringify errors (#98467) --- client/lib/analytics/ad-tracking/debug.js | 34 +++++++++++++---------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/client/lib/analytics/ad-tracking/debug.js b/client/lib/analytics/ad-tracking/debug.js index 6ecd82353a5ac..4a6aae7ed3eb9 100644 --- a/client/lib/analytics/ad-tracking/debug.js +++ b/client/lib/analytics/ad-tracking/debug.js @@ -1,18 +1,22 @@ export function circularReferenceSafeJSONStringify( json, space ) { - let cache = []; - const str = JSON.stringify( - json, - function ( key, value ) { - if ( typeof value === 'object' && value !== null ) { - if ( cache.indexOf( value ) !== -1 ) { - return 'Circular reference'; + try { + let cache = []; + const str = JSON.stringify( + json, + function ( key, value ) { + if ( typeof value === 'object' && value !== null ) { + if ( cache.indexOf( value ) !== -1 ) { + return 'Circular reference'; + } + cache.push( value ); } - cache.push( value ); - } - return value; - }, - space - ); - cache = null; - return str; + return value; + }, + space + ); + cache = null; + return str; + } catch ( e ) { + return 'Error: ' + e.message; + } }