File tree 1 file changed +12
-10
lines changed
1 file changed +12
-10
lines changed Original file line number Diff line number Diff line change @@ -336,16 +336,14 @@ Watcher.prototype.teardown = function () {
336
336
337
337
const seenObjects = new Set ( )
338
338
function traverse ( val , seen ) {
339
- var i , keys
340
-
339
+ let i , keys , isA , isO
341
340
if ( ! seen ) {
342
341
seen = seenObjects
343
342
seen . clear ( )
344
343
}
345
- if ( isArray ( val ) ) {
346
- i = val . length
347
- while ( i -- ) traverse ( val [ i ] , seen )
348
- } else if ( isObject ( val ) ) {
344
+ isA = isArray ( val )
345
+ isO = isObject ( val )
346
+ if ( isA || isO ) {
349
347
if ( val . __ob__ ) {
350
348
var depId = val . __ob__ . dep . id
351
349
if ( seen . has ( depId ) ) {
@@ -354,9 +352,13 @@ function traverse (val, seen) {
354
352
seen . add ( depId )
355
353
}
356
354
}
357
-
358
- keys = Object . keys ( val )
359
- i = keys . length
360
- while ( i -- ) traverse ( val [ keys [ i ] ] , seen )
355
+ if ( isA ) {
356
+ i = val . length
357
+ while ( i -- ) traverse ( val [ i ] , seen )
358
+ } else if ( isO ) {
359
+ keys = Object . keys ( val )
360
+ i = keys . length
361
+ while ( i -- ) traverse ( val [ keys [ i ] ] , seen )
362
+ }
361
363
}
362
364
}
You can’t perform that action at this time.
0 commit comments