From 4f50094d2290616abe64a464e01dcee3e45740ac Mon Sep 17 00:00:00 2001 From: tylerccwang Date: Wed, 24 Jul 2024 10:14:18 +0800 Subject: [PATCH 1/2] fix: fix recursion-like stack overflow error caused by the old rendering method --- src/Instance.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Instance.ts b/src/Instance.ts index 61aa6ef3fe..d5fc06eb3f 100644 --- a/src/Instance.ts +++ b/src/Instance.ts @@ -158,7 +158,7 @@ export class Marked { renderer[rendererProp] = (...args: unknown[]) => { if (!pack.useNewRenderer) { // TODO: Remove this in next major version - rendererFunc = this.#convertRendererFunction(rendererFunc, rendererProp, renderer) as GenericRendererFunction; + rendererFunc = this.#convertRendererFunction(pack.renderer![rendererProp] as GenericRendererFunction, rendererProp, renderer) as GenericRendererFunction; } let ret = rendererFunc.apply(renderer, args); if (ret === false) { From b0779c65b03191c673a0135c1afec5fe5c2481e5 Mon Sep 17 00:00:00 2001 From: tylerccwang Date: Wed, 24 Jul 2024 14:33:49 +0800 Subject: [PATCH 2/2] refactor: move out old renderer method --- src/Instance.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Instance.ts b/src/Instance.ts index d5fc06eb3f..16e2c060e8 100644 --- a/src/Instance.ts +++ b/src/Instance.ts @@ -153,13 +153,13 @@ export class Marked { } const rendererProp = prop as Exclude; let rendererFunc = pack.renderer[rendererProp] as GenericRendererFunction; + if (!pack.useNewRenderer) { + // TODO: Remove this in next major version + rendererFunc = this.#convertRendererFunction(rendererFunc, rendererProp, renderer) as GenericRendererFunction; + } const prevRenderer = renderer[rendererProp] as GenericRendererFunction; // Replace renderer with func to run extension, but fall back if false renderer[rendererProp] = (...args: unknown[]) => { - if (!pack.useNewRenderer) { - // TODO: Remove this in next major version - rendererFunc = this.#convertRendererFunction(pack.renderer![rendererProp] as GenericRendererFunction, rendererProp, renderer) as GenericRendererFunction; - } let ret = rendererFunc.apply(renderer, args); if (ret === false) { ret = prevRenderer.apply(renderer, args);