From 248c116c1093af474687a029990e32dd5b0333a0 Mon Sep 17 00:00:00 2001 From: LXR Date: Fri, 21 Oct 2022 14:58:55 +0800 Subject: [PATCH 1/3] feat: fix vue3 render warning loop --- packages/browser/src/integrations/breadcrumbs.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/browser/src/integrations/breadcrumbs.ts b/packages/browser/src/integrations/breadcrumbs.ts index 6f89732e9767..68350e3b1b39 100644 --- a/packages/browser/src/integrations/breadcrumbs.ts +++ b/packages/browser/src/integrations/breadcrumbs.ts @@ -135,6 +135,12 @@ function _domBreadcrumb(dom: BreadcrumbsOptions['dom']): (handlerData: { [key: s */ // eslint-disable-next-line @typescript-eslint/no-explicit-any function _consoleBreadcrumb(handlerData: { [key: string]: any }): void { + for (let i = 0; i < handlerData.args.length; i++) { + if (handlerData.args[i] === 'ref=Ref<') { + handlerData.args[i + 1] = 'viewRef' + break; + } + } const breadcrumb = { category: 'console', data: { From 4db1ca321adbdfa56e83580b59ea0c906a403dfa Mon Sep 17 00:00:00 2001 From: LXR Date: Fri, 21 Oct 2022 18:23:26 +0800 Subject: [PATCH 2/3] feat:yarn lint --- packages/browser/src/integrations/breadcrumbs.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/browser/src/integrations/breadcrumbs.ts b/packages/browser/src/integrations/breadcrumbs.ts index 68350e3b1b39..d81cc3a8b30b 100644 --- a/packages/browser/src/integrations/breadcrumbs.ts +++ b/packages/browser/src/integrations/breadcrumbs.ts @@ -137,7 +137,7 @@ function _domBreadcrumb(dom: BreadcrumbsOptions['dom']): (handlerData: { [key: s function _consoleBreadcrumb(handlerData: { [key: string]: any }): void { for (let i = 0; i < handlerData.args.length; i++) { if (handlerData.args[i] === 'ref=Ref<') { - handlerData.args[i + 1] = 'viewRef' + handlerData.args[i + 1] = 'viewRef'; break; } } From f30fb86933154cc0556e0612d89dcba1d0077997 Mon Sep 17 00:00:00 2001 From: Rockergmail Date: Fri, 21 Oct 2022 22:09:06 +0800 Subject: [PATCH 3/3] Update packages/browser/src/integrations/breadcrumbs.ts lgmt Co-authored-by: Lukas Stracke --- packages/browser/src/integrations/breadcrumbs.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/browser/src/integrations/breadcrumbs.ts b/packages/browser/src/integrations/breadcrumbs.ts index d81cc3a8b30b..9833562f07a8 100644 --- a/packages/browser/src/integrations/breadcrumbs.ts +++ b/packages/browser/src/integrations/breadcrumbs.ts @@ -135,6 +135,12 @@ function _domBreadcrumb(dom: BreadcrumbsOptions['dom']): (handlerData: { [key: s */ // eslint-disable-next-line @typescript-eslint/no-explicit-any function _consoleBreadcrumb(handlerData: { [key: string]: any }): void { + // This is a hack to fix a Vue3-specific bug that causes an infinite loop of + // console warnings. This happens when a Vue template is rendered with + // an undeclared variable, which we try to stringify, ultimately causing + // Vue to issue another warning which repeats indefinitely. + // see: https://github.com/getsentry/sentry-javascript/pull/6010 + // see: https://github.com/getsentry/sentry-javascript/issues/5916 for (let i = 0; i < handlerData.args.length; i++) { if (handlerData.args[i] === 'ref=Ref<') { handlerData.args[i + 1] = 'viewRef';