File tree 2 files changed +19
-3
lines changed
2 files changed +19
-3
lines changed Original file line number Diff line number Diff line change @@ -20,7 +20,13 @@ function parse(value) {
20
20
value . split ( ',' ) . forEach ( function ( v ) {
21
21
var params = v . split ( ';' ) ;
22
22
var token = params . shift ( ) . trim ( ) ;
23
- var paramsList = extensions [ token ] = extensions [ token ] || [ ] ;
23
+
24
+ if ( extensions [ token ] === undefined ) {
25
+ extensions [ token ] = [ ] ;
26
+ } else if ( ! extensions . hasOwnProperty ( token ) ) {
27
+ return ;
28
+ }
29
+
24
30
var parsedParams = { } ;
25
31
26
32
params . forEach ( function ( param ) {
@@ -38,10 +44,15 @@ function parse(value) {
38
44
value = value . slice ( 0 , value . length - 1 ) ;
39
45
}
40
46
}
41
- ( parsedParams [ key ] = parsedParams [ key ] || [ ] ) . push ( value ) ;
47
+
48
+ if ( parsedParams [ key ] === undefined ) {
49
+ parsedParams [ key ] = [ value ] ;
50
+ } else if ( parsedParams . hasOwnProperty ( key ) ) {
51
+ parsedParams [ key ] . push ( value ) ;
52
+ }
42
53
} ) ;
43
54
44
- paramsList . push ( parsedParams ) ;
55
+ extensions [ token ] . push ( parsedParams ) ;
45
56
} ) ;
46
57
47
58
return extensions ;
Original file line number Diff line number Diff line change @@ -29,6 +29,11 @@ describe('Extensions', function() {
29
29
foo : [ { bar : [ 'hi' ] } ]
30
30
} ) ;
31
31
} ) ;
32
+
33
+ it ( 'ignores names that match Object.prototype properties' , function ( ) {
34
+ Extensions . parse ( 'hasOwnProperty, toString' ) . should . eql ( { } ) ;
35
+ Extensions . parse ( 'foo; constructor' ) . should . eql ( { foo : [ { } ] } ) ;
36
+ } ) ;
32
37
} ) ;
33
38
34
39
describe ( 'format' , function ( ) {
You can’t perform that action at this time.
0 commit comments