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