"Fossies" - the Fresh Open Source Software Archive

Member "Atom/resources/app/apm/node_modules/json-stringify-safe/stringify.js" (8 Mar 2017, 907 Bytes) of archive /windows/misc/atom-windows.zip:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) Javascript source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file.

    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 }