| 1234567891011121314151617181920212223242526272829303132333435363738394041 | "use strict";var compact   = require("../array/#/compact")  , isObject  = require("../object/is-object")  , toArray   = require("../object/to-array")  , isArray   = Array.isArray  , stringify = JSON.stringify;module.exports = function self(value /*, replacer, space*/) {	var replacer = arguments[1], space = arguments[2];	try {		return stringify(value, replacer, space);	} catch (e) {		if (!isObject(value)) return null;		if (typeof value.toJSON === "function") return null;		if (isArray(value)) {			return (				"[" +				compact.call(					value.map(function (item) {						return self(item, replacer, space);					})				) +				"]"			);		}		return (			"{" +			compact				.call(					toArray(value, function (item, key) {						item = self(item, replacer, space);						if (!item) return null;						return stringify(key) + ":" + item;					})				)				.join(",") +			"}"		);	}};
 |