@@ -92,42 +92,42 @@ function caml_compare(a, b) {
9292 return - 1 ;
9393 }
9494 if ( a_type === "number" ) {
95- if ( b === null || b . TAG === 256 ) {
95+ if ( b === null || b . BS_PRIVATE_NESTED_SOME_NONE !== undefined ) {
9696 return 1 ;
9797 } else {
9898 return - 1 ;
9999 }
100100 }
101101 if ( b_type === "number" ) {
102- if ( a === null || a . TAG === 256 ) {
102+ if ( a === null || a . BS_PRIVATE_NESTED_SOME_NONE !== undefined ) {
103103 return - 1 ;
104104 } else {
105105 return 1 ;
106106 }
107107 }
108108 if ( a === null ) {
109- if ( b . TAG === 256 ) {
109+ if ( b . BS_PRIVATE_NESTED_SOME_NONE !== undefined ) {
110110 return 1 ;
111111 } else {
112112 return - 1 ;
113113 }
114114 }
115115 if ( b === null ) {
116- if ( a . TAG === 256 ) {
116+ if ( a . BS_PRIVATE_NESTED_SOME_NONE !== undefined ) {
117117 return - 1 ;
118118 } else {
119119 return 1 ;
120120 }
121121 }
122- var tag_a = a . TAG | 0 ;
123- var tag_b = b . TAG | 0 ;
124- if ( tag_a === 256 ) {
125- if ( tag_b === 256 ) {
126- return Caml_primitive . caml_int_compare ( a [ 1 ] , b [ 1 ] ) ;
122+ if ( a . BS_PRIVATE_NESTED_SOME_NONE !== undefined ) {
123+ if ( b . BS_PRIVATE_NESTED_SOME_NONE !== undefined ) {
124+ return aux_obj_compare ( a , b ) ;
127125 } else {
128126 return - 1 ;
129127 }
130128 }
129+ var tag_a = a . TAG | 0 ;
130+ var tag_b = b . TAG | 0 ;
131131 if ( tag_a === 248 ) {
132132 return Caml_primitive . caml_int_compare ( a [ 1 ] , b [ 1 ] ) ;
133133 }
@@ -165,57 +165,7 @@ function caml_compare(a, b) {
165165 } else if ( ( a instanceof Date && b instanceof Date ) ) {
166166 return ( a - b ) ;
167167 } else {
168- var min_key_lhs = {
169- contents : undefined
170- } ;
171- var min_key_rhs = {
172- contents : undefined
173- } ;
174- var do_key = function ( param , key ) {
175- var min_key = param [ 2 ] ;
176- var b = param [ 1 ] ;
177- if ( ! ( ! b . hasOwnProperty ( key ) || caml_compare ( param [ 0 ] [ key ] , b [ key ] ) > 0 ) ) {
178- return ;
179- }
180- var mk = min_key . contents ;
181- if ( mk !== undefined && key >= mk ) {
182- return ;
183- } else {
184- min_key . contents = key ;
185- return ;
186- }
187- } ;
188- var partial_arg = [
189- a ,
190- b ,
191- min_key_rhs
192- ] ;
193- var do_key_a = function ( param ) {
194- return do_key ( partial_arg , param ) ;
195- } ;
196- var partial_arg$1 = [
197- b ,
198- a ,
199- min_key_lhs
200- ] ;
201- var do_key_b = function ( param ) {
202- return do_key ( partial_arg$1 , param ) ;
203- } ;
204- for_in ( a , do_key_a ) ;
205- for_in ( b , do_key_b ) ;
206- var match = min_key_lhs . contents ;
207- var match$1 = min_key_rhs . contents ;
208- if ( match !== undefined ) {
209- if ( match$1 !== undefined ) {
210- return Caml_primitive . caml_string_compare ( match , match$1 ) ;
211- } else {
212- return - 1 ;
213- }
214- } else if ( match$1 !== undefined ) {
215- return 1 ;
216- } else {
217- return 0 ;
218- }
168+ return aux_obj_compare ( a , b ) ;
219169 }
220170 } else if ( len_a < len_b ) {
221171 var _i$1 = 0 ;
@@ -249,6 +199,60 @@ function caml_compare(a, b) {
249199 }
250200}
251201
202+ function aux_obj_compare ( a , b ) {
203+ var min_key_lhs = {
204+ contents : undefined
205+ } ;
206+ var min_key_rhs = {
207+ contents : undefined
208+ } ;
209+ var do_key = function ( param , key ) {
210+ var min_key = param [ 2 ] ;
211+ var b = param [ 1 ] ;
212+ if ( ! ( ! b . hasOwnProperty ( key ) || caml_compare ( param [ 0 ] [ key ] , b [ key ] ) > 0 ) ) {
213+ return ;
214+ }
215+ var mk = min_key . contents ;
216+ if ( mk !== undefined && key >= mk ) {
217+ return ;
218+ } else {
219+ min_key . contents = key ;
220+ return ;
221+ }
222+ } ;
223+ var partial_arg = [
224+ a ,
225+ b ,
226+ min_key_rhs
227+ ] ;
228+ var do_key_a = function ( param ) {
229+ return do_key ( partial_arg , param ) ;
230+ } ;
231+ var partial_arg$1 = [
232+ b ,
233+ a ,
234+ min_key_lhs
235+ ] ;
236+ var do_key_b = function ( param ) {
237+ return do_key ( partial_arg$1 , param ) ;
238+ } ;
239+ for_in ( a , do_key_a ) ;
240+ for_in ( b , do_key_b ) ;
241+ var match = min_key_lhs . contents ;
242+ var match$1 = min_key_rhs . contents ;
243+ if ( match !== undefined ) {
244+ if ( match$1 !== undefined ) {
245+ return Caml_primitive . caml_string_compare ( match , match$1 ) ;
246+ } else {
247+ return - 1 ;
248+ }
249+ } else if ( match$1 !== undefined ) {
250+ return 1 ;
251+ } else {
252+ return 0 ;
253+ }
254+ }
255+
252256function caml_equal ( a , b ) {
253257 if ( a === b ) {
254258 return true ;
@@ -283,9 +287,6 @@ function caml_equal(a, b) {
283287 if ( tag_a !== tag_b ) {
284288 return false ;
285289 }
286- if ( tag_a === 256 ) {
287- return a [ 1 ] === b [ 1 ] ;
288- }
289290 var len_a = a . length | 0 ;
290291 var len_b = b . length | 0 ;
291292 if ( len_a === len_b ) {
0 commit comments