@@ -8,7 +8,7 @@ See the accompanying LICENSE file for terms.
8
8
9
9
// Generate an internal UID to make the regexp pattern harder to guess.
10
10
var 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' ) ;
12
12
13
13
var IS_NATIVE_CODE_REGEXP = / \{ \s * \[ n a t i v e c o d e \] \s * \} / g;
14
14
var IS_PURE_FUNCTION = / f u n c t i o n .* ?\( / ;
@@ -44,13 +44,11 @@ module.exports = function serialize(obj, options) {
44
44
var dates = [ ] ;
45
45
var maps = [ ] ;
46
46
var sets = [ ] ;
47
- var undefs = [ ] ;
48
47
49
48
// Returns placeholders for functions and regexps (identified by index)
50
49
// which are later replaced by their string representation.
51
50
function replacer ( key , value ) {
52
-
53
- if ( ! value && value !== undefined ) {
51
+ if ( ! value ) {
54
52
return value ;
55
53
}
56
54
@@ -81,10 +79,6 @@ module.exports = function serialize(obj, options) {
81
79
return '@__F-' + UID + '-' + ( functions . push ( origValue ) - 1 ) + '__@' ;
82
80
}
83
81
84
- if ( type === 'undefined' ) {
85
- return '@__U-' + UID + '-' + ( undefs . push ( origValue ) - 1 ) + '__@' ;
86
- }
87
-
88
82
return value ;
89
83
}
90
84
@@ -125,12 +119,6 @@ module.exports = function serialize(obj, options) {
125
119
return serializedFn ;
126
120
}
127
121
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
-
134
122
var str ;
135
123
136
124
// Creates a JSON string representation of the value.
@@ -154,7 +142,7 @@ module.exports = function serialize(obj, options) {
154
142
str = str . replace ( UNSAFE_CHARS_REGEXP , escapeUnsafeChars ) ;
155
143
}
156
144
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 ) {
158
146
return str ;
159
147
}
160
148
@@ -178,10 +166,6 @@ module.exports = function serialize(obj, options) {
178
166
return "new Set(" + serialize ( Array . from ( sets [ valueIndex ] . values ( ) ) , options ) + ")" ;
179
167
}
180
168
181
- if ( type === 'U' ) {
182
- return 'undefined'
183
- }
184
-
185
169
var fn = functions [ valueIndex ] ;
186
170
187
171
return serializeFunc ( fn ) ;
0 commit comments