@@ -184,39 +184,111 @@ function isBigUint64Array(value) {
184
184
}
185
185
exports . isBigUint64Array = isBigUint64Array ;
186
186
187
- function isMap ( value ) {
187
+ function isMapToString ( value ) {
188
188
return ObjectToString ( value ) === '[object Map]' ;
189
189
}
190
+ isMapToString . working = typeof Map !== 'undefined' && isMapToString ( new Map ( ) ) ;
191
+
192
+ function isMap ( value ) {
193
+ if ( typeof Map === 'undefined' ) {
194
+ return false ;
195
+ }
196
+
197
+ return isMapToString . working
198
+ ? isMapToString ( value )
199
+ : value instanceof Map ;
200
+ }
190
201
exports . isMap = isMap ;
191
202
192
- function isSet ( value ) {
203
+ function isSetToString ( value ) {
193
204
return ObjectToString ( value ) === '[object Set]' ;
194
205
}
206
+ isSetToString . working = typeof Set !== 'undefined' && isSetToString ( new Set ( ) ) ;
207
+ function isSet ( value ) {
208
+ if ( typeof Set === 'undefined' ) {
209
+ return false ;
210
+ }
211
+
212
+ return isSetToString . working
213
+ ? isSetToString ( value )
214
+ : value instanceof Set ;
215
+ }
195
216
exports . isSet = isSet ;
196
217
197
- function isWeakMap ( value ) {
218
+ function isWeakMapToString ( value ) {
198
219
return ObjectToString ( value ) === '[object WeakMap]' ;
199
220
}
221
+ isWeakMapToString . working = typeof WeakMap !== 'undefined' && isWeakMapToString ( new WeakMap ( ) ) ;
222
+ function isWeakMap ( value ) {
223
+ if ( typeof WeakMap === 'undefined' ) {
224
+ return false ;
225
+ }
226
+
227
+ return isWeakMapToString . working
228
+ ? isWeakMapToString ( value )
229
+ : value instanceof WeakMap ;
230
+ }
200
231
exports . isWeakMap = isWeakMap ;
201
232
202
- function isWeakSet ( value ) {
233
+ function isWeakSetToString ( value ) {
203
234
return ObjectToString ( value ) === '[object WeakSet]' ;
204
235
}
236
+ isWeakSetToString . working = typeof WeakSet !== 'undefined' && isWeakSetToString ( new WeakSet ( ) ) ;
237
+ function isWeakSet ( value ) {
238
+ return isWeakSetToString ( value ) ;
239
+ if ( typeof WeakSet === 'undefined' ) {
240
+ return false ;
241
+ }
242
+
243
+ return isWeakSetToString . working
244
+ ? isWeakSetToString ( value )
245
+ : value instanceof WeakSet ;
246
+ }
205
247
exports . isWeakSet = isWeakSet ;
206
248
207
- function isArrayBuffer ( value ) {
249
+ function isArrayBufferToString ( value ) {
208
250
return ObjectToString ( value ) === '[object ArrayBuffer]' ;
209
251
}
252
+ isArrayBufferToString . working = typeof ArrayBuffer !== 'undefined' && isArrayBufferToString ( new ArrayBuffer ( ) ) ;
253
+ function isArrayBuffer ( value ) {
254
+ if ( typeof ArrayBuffer === 'undefined' ) {
255
+ return false ;
256
+ }
257
+
258
+ return isArrayBufferToString . working
259
+ ? isArrayBufferToString ( value )
260
+ : value instanceof ArrayBuffer ;
261
+ }
210
262
exports . isArrayBuffer = isArrayBuffer ;
211
263
212
- function isDataView ( value ) {
264
+ function isDataViewToString ( value ) {
213
265
return ObjectToString ( value ) === '[object DataView]' ;
214
266
}
267
+ isDataViewToString . working = typeof ArrayBuffer !== 'undefined' && typeof DataView !== 'undefined' && isDataViewToString ( new DataView ( new ArrayBuffer ( ) ) ) ;
268
+ function isDataView ( value ) {
269
+ if ( typeof DataView === 'undefined' ) {
270
+ return false ;
271
+ }
272
+
273
+ return isDataViewToString . working
274
+ ? isDataViewToString ( value )
275
+ : value instanceof DataView ;
276
+ }
215
277
exports . isDataView = isDataView ;
216
278
217
- function isSharedArrayBuffer ( value ) {
279
+ function isSharedArrayBufferToString ( value ) {
218
280
return ObjectToString ( value ) === '[object SharedArrayBuffer]' ;
219
281
}
282
+ isSharedArrayBufferToString . working = typeof SharedArrayBuffer !== 'undefined' && isSharedArrayBufferToString ( new SharedArrayBuffer ( ) ) ;
283
+ function isSharedArrayBuffer ( value ) {
284
+ if ( typeof SharedArrayBuffer === 'undefined' ) {
285
+ return false ;
286
+ }
287
+
288
+ return isSharedArrayBufferToString . working
289
+ ? isSharedArrayBufferToString ( value )
290
+ : value instanceof SharedArrayBuffer ;
291
+ }
220
292
exports . isSharedArrayBuffer = isSharedArrayBuffer ;
221
293
222
294
function isAsyncFunction ( value ) {
0 commit comments