File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -46,7 +46,7 @@ internals.parseObject = function (chain, val) {
4646 obj = [ ] ;
4747 obj = obj . concat ( internals . parseObject ( chain , val ) ) ;
4848 }
49- else if ( ! isNaN ( index ) && root !== cleanRoot ) {
49+ else if ( ! isNaN ( index ) && root !== cleanRoot && index <= 20 ) {
5050 obj = [ ] ;
5151 obj [ index ] = internals . parseObject ( chain , val ) ;
5252 }
Original file line number Diff line number Diff line change @@ -82,6 +82,13 @@ describe('Riddler.parse()', function () {
8282 done ( ) ;
8383 } ) ;
8484
85+ it ( 'limits specific array indices to 20' , function ( done ) {
86+
87+ expect ( Riddler . parse ( 'a[20]=a' ) ) . to . deep . equal ( { a : [ 'a' ] } ) ;
88+ expect ( Riddler . parse ( 'a[21]=a' ) ) . to . deep . equal ( { a : { '21' : 'a' } } ) ;
89+ done ( ) ;
90+ } ) ;
91+
8592 it ( 'supports encoded = signs' , function ( done ) {
8693
8794 expect ( Riddler . parse ( 'he%3Dllo=th%3Dere' ) ) . to . deep . equal ( { 'he=llo' : 'th=ere' } ) ;
@@ -159,7 +166,7 @@ describe('Riddler.parse()', function () {
159166
160167 it ( 'should compact sparse arrays' , function ( done ) {
161168
162- expect ( Riddler . parse ( 'a[9999 ]=1&a[2]=2' ) ) . to . deep . equal ( { a : [ '2' , '1' ] } ) ;
169+ expect ( Riddler . parse ( 'a[10 ]=1&a[2]=2' ) ) . to . deep . equal ( { a : [ '2' , '1' ] } ) ;
163170 done ( ) ;
164171 } ) ;
165172
You can’t perform that action at this time.
0 commit comments