{"version":3,"sources":["../src/object/hasCircularRef.ts"],"names":["hasCircularRef","obj","refs","isCircular","forEachObject","value","isPrimitive","ABORT"],"mappings":";;;;AAOO,SAASA,EAAeC,CAAoB,CAAA,CAC/C,IAAIC,CAAM,CAAA,IAAI,IAAI,CAACD,CAAG,CAAC,CACnBE,CAAAA,CAAAA,CAAW,MACf,OAAAC,CAAAA,CAAcH,EAAKI,CAAQ,EAAA,CACvB,GAAG,CAAAC,GAAAA,CAAYD,CAAK,CAAA,CACpB,IAAGH,CAAK,CAAA,GAAA,CAAIG,CAAK,CACb,CAAA,OAAAF,EAAW,IACHI,CAAAA,GAAAA,CAERL,EAAK,GAAIG,CAAAA,CAAK,GAEtB,CAAE,CAAA,CAAC,cAAc,KAAK,CAAC,EAChBF,CACV","file":"chunk-QGJPD7DJ.mjs","sourcesContent":["/**\n * 检查一个对象是否存在循环引用\n */\n\nimport { isPrimitive } from \"../typecheck/isPrimitive\"\nimport { ABORT, forEachObject } from \"./forEachObject\"\n\nexport function hasCircularRef(obj:object):boolean {\n    let refs= new Set([obj])\n    let isCircular=false\n    forEachObject(obj,(value)=>{\n        if(isPrimitive(value)) return \n        if(refs.has(value)) {\n            isCircular=true\n            return  ABORT\n        }else{\n            refs.add(value)\n        }     \n    },{onlyPrimitive:false})\n    return isCircular\n }\n\n\n\n"]}