File tree Expand file tree Collapse file tree 3 files changed +39
-9
lines changed Expand file tree Collapse file tree 3 files changed +39
-9
lines changed Original file line number Diff line number Diff line change @@ -134,10 +134,20 @@ let caml_lazy_make (fn : _ -> _) =
134134 whose tag is 0, we optimize that case
135135*)
136136let caml_update_dummy : _ -> _ -> unit = [% raw{| function(x,y){
137- for (var k in y){
138- x[k] = y[k]
139- }
137+ var k
138+ if (Array. isArray(y)){
139+ for (k = 0 ; k < y.length ; ++ k){
140+ x[k] = y[k]
141+ }
142+ if (y.tag != = undefined){
143+ x.tag = y.tag
144+ }
145+ } else {
146+ for (var k in y){
147+ x[k] = y[k]
148+ }
140149 }
150+ }
141151| }]
142152
143153(* Caml_obj_extern.set_length x (Caml_obj_extern.length y) *)
Original file line number Diff line number Diff line change @@ -55,10 +55,20 @@ function caml_lazy_make(fn) {
5555}
5656
5757var caml_update_dummy = ( function ( x , y ) {
58- for ( var k in y ) {
59- x [ k ] = y [ k ]
58+ var k
59+ if ( Array . isArray ( y ) ) {
60+ for ( k = 0 ; k < y . length ; ++ k ) {
61+ x [ k ] = y [ k ]
62+ }
63+ if ( y . tag !== undefined ) {
64+ x . tag = y . tag
65+ }
66+ } else {
67+ for ( var k in y ) {
68+ x [ k ] = y [ k ]
69+ }
6070 }
61- } ) ;
71+ } ) ;
6272
6373function caml_compare ( _a , _b ) {
6474 while ( true ) {
Original file line number Diff line number Diff line change @@ -55,10 +55,20 @@ function caml_lazy_make(fn) {
5555}
5656
5757var caml_update_dummy = ( function ( x , y ) {
58- for ( var k in y ) {
59- x [ k ] = y [ k ]
58+ var k
59+ if ( Array . isArray ( y ) ) {
60+ for ( k = 0 ; k < y . length ; ++ k ) {
61+ x [ k ] = y [ k ]
62+ }
63+ if ( y . tag !== undefined ) {
64+ x . tag = y . tag
65+ }
66+ } else {
67+ for ( var k in y ) {
68+ x [ k ] = y [ k ]
69+ }
6070 }
61- } ) ;
71+ } ) ;
6272
6373function caml_compare ( _a , _b ) {
6474 while ( true ) {
You can’t perform that action at this time.
0 commit comments