File tree Expand file tree Collapse file tree 1 file changed +11
-8
lines changed Expand file tree Collapse file tree 1 file changed +11
-8
lines changed Original file line number Diff line number Diff line change @@ -17,18 +17,17 @@ var userQueue = []
17
17
var has = { }
18
18
var circular = { }
19
19
var waiting = false
20
- var internalQueueDepleted = false
21
20
22
21
/**
23
22
* Reset the batcher's state.
24
23
*/
25
24
26
25
function resetBatcherState ( ) {
27
- queue = [ ]
28
- userQueue = [ ]
26
+ queue . length = 0
27
+ userQueue . length = 0
29
28
has = { }
30
29
circular = { }
31
- waiting = internalQueueDepleted = false
30
+ waiting = false
32
31
}
33
32
34
33
/**
@@ -37,8 +36,12 @@ function resetBatcherState () {
37
36
38
37
function flushBatcherQueue ( ) {
39
38
runBatcherQueue ( queue )
40
- internalQueueDepleted = true
39
+ queue . length = 0
41
40
runBatcherQueue ( userQueue )
41
+ // user watchers triggered more internal watchers
42
+ if ( queue . length ) {
43
+ runBatcherQueue ( queue )
44
+ }
42
45
// dev tool hook
43
46
/* istanbul ignore if */
44
47
if ( devtools && config . devtools ) {
@@ -88,13 +91,13 @@ function runBatcherQueue (queue) {
88
91
*/
89
92
90
93
export function pushWatcher ( watcher ) {
91
- var id = watcher . id
94
+ const id = watcher . id
92
95
if ( has [ id ] == null ) {
93
96
// push watcher into appropriate queue
94
- var q = internalQueueDepleted || watcher . user
97
+ const q = watcher . user
95
98
? userQueue
96
99
: queue
97
- has [ id ] = true
100
+ has [ id ] = q . length
98
101
q . push ( watcher )
99
102
// queue the flush
100
103
if ( ! waiting ) {
You can’t perform that action at this time.
0 commit comments