Skip to content

Commit 6b32f0d

Browse files
authored
fix(devtools): fix memory leak when devtools is not installed (#4833)
fix #4829
1 parent b5c0142 commit 6b32f0d

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

packages/runtime-core/src/devtools.ts

+7-2
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,12 @@ export let devtools: DevtoolsHook
3333

3434
let buffer: { event: string; args: any[] }[] = []
3535

36+
let devtoolsNotInstalled = false
37+
3638
function emit(event: string, ...args: any[]) {
3739
if (devtools) {
3840
devtools.emit(event, ...args)
39-
} else {
41+
} else if (!devtoolsNotInstalled) {
4042
buffer.push({ event, args })
4143
}
4244
}
@@ -56,7 +58,10 @@ export function setDevtoolsHook(hook: DevtoolsHook, target: any) {
5658
// clear buffer after 3s - the user probably doesn't have devtools installed
5759
// at all, and keeping the buffer will cause memory leaks (#4738)
5860
setTimeout(() => {
59-
buffer = []
61+
if (!devtools) {
62+
devtoolsNotInstalled = true
63+
buffer = []
64+
}
6065
}, 3000)
6166
}
6267
}

0 commit comments

Comments
 (0)