|
|
@@ -12,7 +12,6 @@ import {
|
|
|
// triggered, the DOM would have already been in updated
|
|
|
// state.
|
|
|
|
|
|
-var queueIndex
|
|
|
var queue = []
|
|
|
var userQueue = []
|
|
|
var has = {}
|
|
|
@@ -57,8 +56,8 @@ function flushBatcherQueue () {
|
|
|
function runBatcherQueue (queue) {
|
|
|
// do not cache length because more watchers might be pushed
|
|
|
// as we run existing watchers
|
|
|
- for (queueIndex = 0; queueIndex < queue.length; queueIndex++) {
|
|
|
- var watcher = queue[queueIndex]
|
|
|
+ for (let i = 0; i < queue.length; i++) {
|
|
|
+ var watcher = queue[i]
|
|
|
var id = watcher.id
|
|
|
has[id] = null
|
|
|
watcher.run()
|
|
|
@@ -91,22 +90,16 @@ function runBatcherQueue (queue) {
|
|
|
export function pushWatcher (watcher) {
|
|
|
var id = watcher.id
|
|
|
if (has[id] == null) {
|
|
|
- if (internalQueueDepleted && !watcher.user) {
|
|
|
- // an internal watcher triggered by a user watcher...
|
|
|
- // let's run it immediately after current user watcher is done.
|
|
|
- userQueue.splice(queueIndex + 1, 0, watcher)
|
|
|
- } else {
|
|
|
- // push watcher into appropriate queue
|
|
|
- var q = watcher.user
|
|
|
- ? userQueue
|
|
|
- : queue
|
|
|
- has[id] = q.length
|
|
|
- q.push(watcher)
|
|
|
- // queue the flush
|
|
|
- if (!waiting) {
|
|
|
- waiting = true
|
|
|
- nextTick(flushBatcherQueue)
|
|
|
- }
|
|
|
+ // push watcher into appropriate queue
|
|
|
+ var q = internalQueueDepleted || watcher.user
|
|
|
+ ? userQueue
|
|
|
+ : queue
|
|
|
+ has[id] = true
|
|
|
+ q.push(watcher)
|
|
|
+ // queue the flush
|
|
|
+ if (!waiting) {
|
|
|
+ waiting = true
|
|
|
+ nextTick(flushBatcherQueue)
|
|
|
}
|
|
|
}
|
|
|
}
|