File tree Expand file tree Collapse file tree 1 file changed +27
-0
lines changed
vendor/json-stringify-safe Expand file tree Collapse file tree 1 file changed +27
-0
lines changed Original file line number Diff line number Diff line change 1+ exports = module . exports = stringify
2+ exports . getSerialize = serializer
3+
4+ function stringify ( obj , replacer , spaces , cycleReplacer ) {
5+ return JSON . stringify ( obj , serializer ( replacer , cycleReplacer ) , spaces )
6+ }
7+
8+ function serializer ( replacer , cycleReplacer ) {
9+ var stack = [ ] , keys = [ ]
10+
11+ if ( cycleReplacer == null ) cycleReplacer = function ( key , value ) {
12+ if ( stack [ 0 ] === value ) return "[Circular ~]"
13+ return "[Circular ~." + keys . slice ( 0 , stack . indexOf ( value ) ) . join ( "." ) + "]"
14+ }
15+
16+ return function ( key , value ) {
17+ if ( stack . length > 0 ) {
18+ var thisPos = stack . indexOf ( this )
19+ ~ thisPos ? stack . splice ( thisPos + 1 ) : stack . push ( this )
20+ ~ thisPos ? keys . splice ( thisPos , Infinity , key ) : keys . push ( key )
21+ if ( ~ stack . indexOf ( value ) ) value = cycleReplacer . call ( this , key , value )
22+ }
23+ else stack . push ( value )
24+
25+ return replacer == null ? value : replacer . call ( this , key , value )
26+ }
27+ }
You can’t perform that action at this time.
0 commit comments