33
44// module Data.StrMap
55
6- exports . _copy = function ( m ) {
6+ exports . _copy = function ( m ) {
77 var r = { } ;
88 for ( var k in m ) {
9- r [ k ] = m [ k ] ;
9+ if ( m . hasOwnProperty ( k ) ) {
10+ r [ k ] = m [ k ] ;
11+ }
1012 }
1113 return r ;
1214} ;
1315
14- exports . _copyEff = function ( m ) {
15- return function ( ) {
16+ exports . _copyEff = function ( m ) {
17+ return function ( ) {
1618 var r = { } ;
1719 for ( var k in m ) {
18- r [ k ] = m [ k ] ;
20+ if ( m . hasOwnProperty ( k ) ) {
21+ r [ k ] = m [ k ] ;
22+ }
1923 }
2024 return r ;
2125 } ;
2226} ;
2327
2428exports . empty = { } ;
2529
26- exports . runST = function ( f ) {
30+ exports . runST = function ( f ) {
2731 return f ;
2832} ;
2933
30- exports . _fmapStrMap = function ( m0 , f ) {
34+ // jshint maxparams: 2
35+ exports . _fmapStrMap = function ( m0 , f ) {
3136 var m = { } ;
3237 for ( var k in m0 ) {
33- m [ k ] = f ( m0 [ k ] ) ;
38+ if ( m . hasOwnProperty ( k ) ) {
39+ m [ k ] = f ( m0 [ k ] ) ;
40+ }
3441 }
3542 return m ;
3643} ;
3744
38- exports . _foldM = function ( bind ) {
39- return function ( f ) {
40- return function ( mz ) {
41- return function ( m ) {
42- function g ( k ) {
45+ // jshint maxparams: 1
46+ exports . _foldM = function ( bind ) {
47+ return function ( f ) {
48+ return function ( mz ) {
49+ return function ( m ) {
50+ function g ( k ) {
4351 return function ( z ) {
4452 return f ( z ) ( k ) ( m [ k ] ) ;
4553 } ;
4654 }
4755 for ( var k in m ) {
48- mz = bind ( mz ) ( g ( k ) ) ;
56+ if ( m . hasOwnProperty ( k ) ) {
57+ mz = bind ( mz ) ( g ( k ) ) ;
58+ }
4959 }
5060 return mz ;
5161 } ;
5262 } ;
5363 } ;
5464} ;
5565
56- exports . _foldSCStrMap = function ( m , z , f , fromMaybe ) {
66+ // jshint maxparams: 4
67+ exports . _foldSCStrMap = function ( m , z , f , fromMaybe ) {
5768 for ( var k in m ) {
58- var maybeR = f ( z ) ( k ) ( m [ k ] ) ;
59- var r = fromMaybe ( null ) ( maybeR ) ;
60- if ( r === null ) return z ;
61- else z = r ;
69+ if ( m . hasOwnProperty ( k ) ) {
70+ var maybeR = f ( z ) ( k ) ( m [ k ] ) ;
71+ var r = fromMaybe ( null ) ( maybeR ) ;
72+ if ( r === null ) return z ;
73+ else z = r ;
74+ }
6275 }
6376 return z ;
6477} ;
6578
66- exports . all = function ( f ) {
67- return function ( m ) {
79+ // jshint maxparams: 1
80+ exports . all = function ( f ) {
81+ return function ( m ) {
6882 for ( var k in m ) {
69- if ( ! f ( k ) ( m [ k ] ) ) return false ;
83+ if ( m . hasOwnProperty ( k ) && ! f ( k ) ( m [ k ] ) ) return false ;
7084 }
7185 return true ;
7286 } ;
7387} ;
7488
75- exports . size = function ( m ) {
89+ exports . size = function ( m ) {
7690 var s = 0 ;
7791 for ( var k in m ) {
78- ++ s ;
92+ if ( m . hasOwnProperty ( k ) ) {
93+ ++ s ;
94+ }
7995 }
8096 return s ;
8197} ;
8298
83- exports . _lookup = function ( no , yes , k , m ) {
99+ // jshint maxparams: 4
100+ exports . _lookup = function ( no , yes , k , m ) {
84101 return k in m ? yes ( m [ k ] ) : no ;
85102} ;
86103
87- exports . _unsafeDeleteStrMap = function ( m , k ) {
88- delete m [ k ] ;
89- return m ;
104+ // jshint maxparams: 2
105+ exports . _unsafeDeleteStrMap = function ( m , k ) {
106+ delete m [ k ] ;
107+ return m ;
90108} ;
91109
92- exports . _lookupST = function ( no , yes , k , m ) {
93- return function ( ) {
110+ // jshint maxparams: 4
111+ exports . _lookupST = function ( no , yes , k , m ) {
112+ return function ( ) {
94113 return k in m ? yes ( m [ k ] ) : no ;
95- }
114+ } ;
96115} ;
97116
98- function _collect ( f ) {
99- return function ( m ) {
117+ function _collect ( f ) {
118+ return function ( m ) {
100119 var r = [ ] ;
101120 for ( var k in m ) {
102- r . push ( f ( k ) ( m [ k ] ) ) ;
121+ if ( m . hasOwnProperty ( k ) ) {
122+ r . push ( f ( k ) ( m [ k ] ) ) ;
123+ }
103124 }
104125 return r ;
105126 } ;
106- } ;
127+ }
107128
108129exports . _collect = _collect ;
109130
110- exports . keys = Object . keys || _collect ( function ( k ) {
111- return function ( ) { return k ; } ;
112- } ) ;
131+ exports . keys = Object . keys || _collect ( function ( k ) {
132+ return function ( ) { return k ; } ;
133+ } ) ;
0 commit comments