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 : _ -> _) =
134
134
whose tag is 0, we optimize that case
135
135
*)
136
136
let 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
+ }
140
149
}
150
+ }
141
151
| }]
142
152
143
153
(* 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) {
55
55
}
56
56
57
57
var 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
+ }
60
70
}
61
- } ) ;
71
+ } ) ;
62
72
63
73
function caml_compare ( _a , _b ) {
64
74
while ( true ) {
Original file line number Diff line number Diff line change @@ -55,10 +55,20 @@ function caml_lazy_make(fn) {
55
55
}
56
56
57
57
var 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
+ }
60
70
}
61
- } ) ;
71
+ } ) ;
62
72
63
73
function caml_compare ( _a , _b ) {
64
74
while ( true ) {
You can’t perform that action at this time.
0 commit comments