@@ -335,16 +335,18 @@ describe('serialize( obj )', function () {
335
335
var regexKey = / .* / ;
336
336
var m = new Map ( [
337
337
[ 'a' , 123 ] ,
338
- [ regexKey , 456 ]
338
+ [ regexKey , 456 ] ,
339
+ [ Infinity , 322 ]
339
340
] ) ;
340
- expect ( serialize ( m ) ) . to . be . a ( 'string' ) . equal ( 'new Map([["a",123],[new RegExp(".*", ""),456]])' ) ;
341
- expect ( serialize ( { t : [ m ] } ) ) . to . be . a ( 'string' ) . equal ( '{"t":[new Map([["a",123],[new RegExp(".*", ""),456]])]}' ) ;
341
+ expect ( serialize ( m ) ) . to . be . a ( 'string' ) . equal ( 'new Map([["a",123],[new RegExp(".*", ""),456],[Infinity,322] ])' ) ;
342
+ expect ( serialize ( { t : [ m ] } ) ) . to . be . a ( 'string' ) . equal ( '{"t":[new Map([["a",123],[new RegExp(".*", ""),456],[Infinity,322] ])]}' ) ;
342
343
} ) ;
343
344
344
345
it ( 'should deserialize a map' , function ( ) {
345
346
var m = eval ( serialize ( new Map ( [
346
347
[ 'a' , 123 ] ,
347
- [ null , 456 ]
348
+ [ null , 456 ] ,
349
+ [ Infinity , 322 ]
348
350
] ) ) ) ;
349
351
expect ( m ) . to . be . a ( 'Map' ) ;
350
352
expect ( m . get ( null ) ) . to . equal ( 456 ) ;
@@ -357,23 +359,37 @@ describe('serialize( obj )', function () {
357
359
var m = new Set ( [
358
360
'a' ,
359
361
123 ,
360
- regex
362
+ regex ,
363
+ Infinity
361
364
] ) ;
362
- expect ( serialize ( m ) ) . to . be . a ( 'string' ) . equal ( 'new Set(["a",123,new RegExp(".*", "")])' ) ;
363
- expect ( serialize ( { t : [ m ] } ) ) . to . be . a ( 'string' ) . equal ( '{"t":[new Set(["a",123,new RegExp(".*", "")])]}' ) ;
365
+ expect ( serialize ( m ) ) . to . be . a ( 'string' ) . equal ( 'new Set(["a",123,new RegExp(".*", ""),Infinity ])' ) ;
366
+ expect ( serialize ( { t : [ m ] } ) ) . to . be . a ( 'string' ) . equal ( '{"t":[new Set(["a",123,new RegExp(".*", ""),Infinity ])]}' ) ;
364
367
} ) ;
365
368
366
369
it ( 'should deserialize a set' , function ( ) {
367
370
var m = eval ( serialize ( new Set ( [
368
371
'a' ,
369
372
123 ,
370
- null
373
+ null ,
374
+ Infinity
371
375
] ) ) ) ;
372
376
expect ( m ) . to . be . a ( 'Set' ) ;
373
377
expect ( m . has ( null ) ) . to . equal ( true ) ;
374
378
} ) ;
375
379
} ) ;
376
380
381
+ describe ( 'Infinity' , function ( ) {
382
+ it ( 'should serialize Infinity' , function ( ) {
383
+ expect ( serialize ( Infinity ) ) . to . equal ( 'Infinity' ) ;
384
+ expect ( serialize ( { t : [ Infinity ] } ) ) . to . be . a ( 'string' ) . equal ( '{"t":[Infinity]}' ) ;
385
+ } ) ;
386
+
387
+ it ( 'should deserialize Infinity' , function ( ) {
388
+ var d = eval ( serialize ( Infinity ) ) ;
389
+ expect ( d ) . to . equal ( Infinity ) ;
390
+ } ) ;
391
+ } ) ;
392
+
377
393
describe ( 'XSS' , function ( ) {
378
394
it ( 'should encode unsafe HTML chars to Unicode' , function ( ) {
379
395
expect ( serialize ( '</script>' ) ) . to . equal ( '"\\u003C\\u002Fscript\\u003E"' ) ;
0 commit comments