diff --git a/packages/runtime-vapor/__tests__/components/Teleport.spec.ts b/packages/runtime-vapor/__tests__/components/Teleport.spec.ts
index 45a2e5858c0..d4282ab8a6e 100644
--- a/packages/runtime-vapor/__tests__/components/Teleport.spec.ts
+++ b/packages/runtime-vapor/__tests__/components/Teleport.spec.ts
@@ -195,7 +195,7 @@ describe('renderer: VaporTeleport', () => {
expect(target.innerHTML).toBe('
teleported 2
')
})
- test.todo('parent rerender + toggle disabled', async () => {
+ test('parent rerender + toggle disabled', async () => {
const target = document.createElement('div')
const root = document.createElement('div')
const parentId = 'test3-parent-rerender'
diff --git a/packages/runtime-vapor/src/renderEffect.ts b/packages/runtime-vapor/src/renderEffect.ts
index d41ee357191..3c937c0ed58 100644
--- a/packages/runtime-vapor/src/renderEffect.ts
+++ b/packages/runtime-vapor/src/renderEffect.ts
@@ -41,6 +41,9 @@ export class RenderEffect extends ReactiveEffect {
this.onTrigger = instance.rtg
? e => invokeArrayFns(instance.rtg!, e)
: void 0
+
+ // register effect for stopping them during HMR rerender
+ ;(instance.renderEffects || (instance.renderEffects = [])).push(this)
}
job.i = instance
}
@@ -71,11 +74,6 @@ export class RenderEffect extends ReactiveEffect {
setCurrentInstance(...prev)
if (__DEV__ && instance) {
startMeasure(instance, `renderEffect`)
-
- if (instance.renderEffects) {
- instance.renderEffects.forEach(e => e.stop())
- instance.renderEffects = []
- }
}
}