@@ -8,7 +8,7 @@ See the accompanying LICENSE file for terms.
88
99// Generate an internal UID to make the regexp pattern harder to guess.
1010var UID = Math . floor ( Math . random ( ) * 0x10000000000 ) . toString ( 16 ) ;
11- var PLACE_HOLDER_REGEXP = new RegExp ( '"@__(F|R|D|M|S|U )-' + UID + '-(\\d+)__@"' , 'g' ) ;
11+ var PLACE_HOLDER_REGEXP = new RegExp ( '"@__(F|R|D|M|S)-' + UID + '-(\\d+)__@"' , 'g' ) ;
1212
1313var IS_NATIVE_CODE_REGEXP = / \{ \s * \[ n a t i v e c o d e \] \s * \} / g;
1414var IS_PURE_FUNCTION = / f u n c t i o n .* ?\( / ;
@@ -44,13 +44,11 @@ module.exports = function serialize(obj, options) {
4444 var dates = [ ] ;
4545 var maps = [ ] ;
4646 var sets = [ ] ;
47- var undefs = [ ] ;
4847
4948 // Returns placeholders for functions and regexps (identified by index)
5049 // which are later replaced by their string representation.
5150 function replacer ( key , value ) {
52-
53- if ( ! value && value !== undefined ) {
51+ if ( ! value ) {
5452 return value ;
5553 }
5654
@@ -81,10 +79,6 @@ module.exports = function serialize(obj, options) {
8179 return '@__F-' + UID + '-' + ( functions . push ( origValue ) - 1 ) + '__@' ;
8280 }
8381
84- if ( type === 'undefined' ) {
85- return '@__U-' + UID + '-' + ( undefs . push ( origValue ) - 1 ) + '__@' ;
86- }
87-
8882 return value ;
8983 }
9084
@@ -125,12 +119,6 @@ module.exports = function serialize(obj, options) {
125119 return serializedFn ;
126120 }
127121
128- // Protects against `JSON.stringify()` returning `undefined`, by serializing
129- // to the literal string: "undefined".
130- if ( obj === undefined ) {
131- return String ( obj ) ;
132- }
133-
134122 var str ;
135123
136124 // Creates a JSON string representation of the value.
@@ -154,7 +142,7 @@ module.exports = function serialize(obj, options) {
154142 str = str . replace ( UNSAFE_CHARS_REGEXP , escapeUnsafeChars ) ;
155143 }
156144
157- if ( functions . length === 0 && regexps . length === 0 && dates . length === 0 && maps . length === 0 && sets . length === 0 && undefs . length === 0 ) {
145+ if ( functions . length === 0 && regexps . length === 0 && dates . length === 0 && maps . length === 0 && sets . length === 0 ) {
158146 return str ;
159147 }
160148
@@ -178,10 +166,6 @@ module.exports = function serialize(obj, options) {
178166 return "new Set(" + serialize ( Array . from ( sets [ valueIndex ] . values ( ) ) , options ) + ")" ;
179167 }
180168
181- if ( type === 'U' ) {
182- return 'undefined'
183- }
184-
185169 var fn = functions [ valueIndex ] ;
186170
187171 return serializeFunc ( fn ) ;
0 commit comments