@@ -466,39 +466,32 @@ export function createPathGetter(ctx: any, path: string) {
466466
467467export function traverse (
468468 value : unknown ,
469- depth ?: number ,
470- currentDepth = 0 ,
469+ depth = Infinity ,
471470 seen ?: Set < unknown > ,
472471) {
473- if ( ! isObject ( value ) || ( value as any ) [ ReactiveFlags . SKIP ] ) {
472+ if ( depth <= 0 || ! isObject ( value ) || ( value as any ) [ ReactiveFlags . SKIP ] ) {
474473 return value
475474 }
476475
477- if ( depth && depth > 0 ) {
478- if ( currentDepth >= depth ) {
479- return value
480- }
481- currentDepth ++
482- }
483-
484476 seen = seen || new Set ( )
485477 if ( seen . has ( value ) ) {
486478 return value
487479 }
488480 seen . add ( value )
481+ depth --
489482 if ( isRef ( value ) ) {
490- traverse ( value . value , depth , currentDepth , seen )
483+ traverse ( value . value , depth , seen )
491484 } else if ( isArray ( value ) ) {
492485 for ( let i = 0 ; i < value . length ; i ++ ) {
493- traverse ( value [ i ] , depth , currentDepth , seen )
486+ traverse ( value [ i ] , depth , seen )
494487 }
495488 } else if ( isSet ( value ) || isMap ( value ) ) {
496489 value . forEach ( ( v : any ) => {
497- traverse ( v , depth , currentDepth , seen )
490+ traverse ( v , depth , seen )
498491 } )
499492 } else if ( isPlainObject ( value ) ) {
500493 for ( const key in value ) {
501- traverse ( value [ key ] , depth , currentDepth , seen )
494+ traverse ( value [ key ] , depth , seen )
502495 }
503496 }
504497 return value
0 commit comments