diff --git a/packages/runtime-core/src/createRenderer.ts b/packages/runtime-core/src/createRenderer.ts index a6f750c02..fd6452346 100644 --- a/packages/runtime-core/src/createRenderer.ts +++ b/packages/runtime-core/src/createRenderer.ts @@ -113,7 +113,7 @@ export function createRenderer(options: RendererOptions) { if (refNode === null) { queueNodeOp([platformAppendChild, container, newNode]) } else { - queueNodeOp([platformInsertBefore, newNode, refNode]) + queueNodeOp([platformInsertBefore, container, newNode, refNode]) } } diff --git a/packages/scheduler/src/experimental.ts b/packages/scheduler/src/experimental.ts index 6f2a0eb73..e7a010b12 100644 --- a/packages/scheduler/src/experimental.ts +++ b/packages/scheduler/src/experimental.ts @@ -1,7 +1,5 @@ // TODO infinite updates detection -// import { Op } from './patchNodeOps' - type Op = [Function, ...any[]] const enum Priorities { @@ -180,9 +178,10 @@ function flush(): void { // now we are really done hasPendingFlush = false pendingRejectors.length = 0 - while ((job = nextTickQueue.shift())) { - job() + for (let i = 0; i < nextTickQueue.length; i++) { + nextTickQueue[i]() } + nextTickQueue.length = 0 } else { // got more job to do // shouldn't reach here in compat mode, because the patchQueue is