@@ -124,9 +124,28 @@ function caml_compare(_a, _b) {
124124 var len_a = a . length | 0 ;
125125 var len_b = b . length | 0 ;
126126 if ( len_a === len_b ) {
127- if ( a . constructor === Object && b . constructor === Object ) {
127+ if ( Array . isArray ( a ) ) {
128128 var a$1 = a ;
129129 var b$1 = b ;
130+ var _i = 0 ;
131+ var same_length = len_a ;
132+ while ( true ) {
133+ var i = _i ;
134+ if ( i === same_length ) {
135+ return 0 ;
136+ } else {
137+ var res = caml_compare ( a$1 [ i ] , b$1 [ i ] ) ;
138+ if ( res !== 0 ) {
139+ return res ;
140+ } else {
141+ _i = i + 1 | 0 ;
142+ continue ;
143+ }
144+ }
145+ } ;
146+ } else {
147+ var a$2 = a ;
148+ var b$2 = b ;
130149 var min_key_lhs = [ /* None */ 0 ] ;
131150 var min_key_rhs = [ /* None */ 0 ] ;
132151 var do_key = function ( param , key ) {
@@ -150,8 +169,8 @@ function caml_compare(_a, _b) {
150169 }
151170 } ;
152171 var partial_arg = /* tuple */ [
153- a$1 ,
154- b$1 ,
172+ a$2 ,
173+ b$2 ,
155174 min_key_rhs
156175 ] ;
157176 var do_key_a = ( function ( partial_arg ) {
@@ -160,17 +179,17 @@ function caml_compare(_a, _b) {
160179 }
161180 } ( partial_arg ) ) ;
162181 var partial_arg$1 = /* tuple */ [
163- b$1 ,
164- a$1 ,
182+ b$2 ,
183+ a$2 ,
165184 min_key_lhs
166185 ] ;
167186 var do_key_b = ( function ( partial_arg$1 ) {
168187 return function do_key_b ( param ) {
169188 return do_key ( partial_arg$1 , param ) ;
170189 }
171190 } ( partial_arg$1 ) ) ;
172- for_in ( a$1 , do_key_a ) ;
173- for_in ( b$1 , do_key_b ) ;
191+ for_in ( a$2 , do_key_a ) ;
192+ for_in ( b$2 , do_key_b ) ;
174193 var match = min_key_lhs [ 0 ] ;
175194 var match$1 = min_key_rhs [ 0 ] ;
176195 if ( match ) {
@@ -184,25 +203,6 @@ function caml_compare(_a, _b) {
184203 } else {
185204 return 0 ;
186205 }
187- } else {
188- var a$2 = a ;
189- var b$2 = b ;
190- var _i = 0 ;
191- var same_length = len_a ;
192- while ( true ) {
193- var i = _i ;
194- if ( i === same_length ) {
195- return 0 ;
196- } else {
197- var res = caml_compare ( a$2 [ i ] , b$2 [ i ] ) ;
198- if ( res !== 0 ) {
199- return res ;
200- } else {
201- _i = i + 1 | 0 ;
202- continue ;
203- }
204- }
205- } ;
206206 }
207207 } else if ( len_a < len_b ) {
208208 var a$3 = a ;
@@ -291,51 +291,51 @@ function caml_equal(_a, _b) {
291291 var len_a = a . length | 0 ;
292292 var len_b = b . length | 0 ;
293293 if ( len_a === len_b ) {
294- if ( a . constructor === Object && b . constructor === Object ) {
294+ if ( Array . isArray ( a ) ) {
295295 var a$1 = a ;
296296 var b$1 = b ;
297+ var _i = 0 ;
298+ var same_length = len_a ;
299+ while ( true ) {
300+ var i = _i ;
301+ if ( i === same_length ) {
302+ return /* true */ 1 ;
303+ } else if ( caml_equal ( a$1 [ i ] , b$1 [ i ] ) ) {
304+ _i = i + 1 | 0 ;
305+ continue ;
306+ } else {
307+ return /* false */ 0 ;
308+ }
309+ } ;
310+ } else {
311+ var a$2 = a ;
312+ var b$2 = b ;
297313 var result = [ /* true */ 1 ] ;
298- var do_key_a = ( function ( b$1 , result ) {
314+ var do_key_a = ( function ( b$2 , result ) {
299315 return function do_key_a ( key ) {
300- if ( b$1 . hasOwnProperty ( key ) ) {
316+ if ( b$2 . hasOwnProperty ( key ) ) {
301317 return 0 ;
302318 } else {
303319 result [ 0 ] = /* false */ 0 ;
304320 return /* () */ 0 ;
305321 }
306322 }
307- } ( b$1 , result ) ) ;
308- var do_key_b = ( function ( a$1 , b$1 , result ) {
323+ } ( b$2 , result ) ) ;
324+ var do_key_b = ( function ( a$2 , b$2 , result ) {
309325 return function do_key_b ( key ) {
310- if ( ! a$1 . hasOwnProperty ( key ) || ! caml_equal ( b$1 [ key ] , a$1 [ key ] ) ) {
326+ if ( ! a$2 . hasOwnProperty ( key ) || ! caml_equal ( b$2 [ key ] , a$2 [ key ] ) ) {
311327 result [ 0 ] = /* false */ 0 ;
312328 return /* () */ 0 ;
313329 } else {
314330 return 0 ;
315331 }
316332 }
317- } ( a$1 , b$1 , result ) ) ;
318- for_in ( a$1 , do_key_a ) ;
333+ } ( a$2 , b$2 , result ) ) ;
334+ for_in ( a$2 , do_key_a ) ;
319335 if ( result [ 0 ] ) {
320- for_in ( b$1 , do_key_b ) ;
336+ for_in ( b$2 , do_key_b ) ;
321337 }
322338 return result [ 0 ] ;
323- } else {
324- var a$2 = a ;
325- var b$2 = b ;
326- var _i = 0 ;
327- var same_length = len_a ;
328- while ( true ) {
329- var i = _i ;
330- if ( i === same_length ) {
331- return /* true */ 1 ;
332- } else if ( caml_equal ( a$2 [ i ] , b$2 [ i ] ) ) {
333- _i = i + 1 | 0 ;
334- continue ;
335- } else {
336- return /* false */ 0 ;
337- }
338- } ;
339339 }
340340 } else {
341341 return /* false */ 0 ;
0 commit comments