Skip to content

Commit f9ea998

Browse files
committed
for_in changes - avoid closure in raw
1 parent 4ac15e3 commit f9ea998

File tree

3 files changed

+18
-9
lines changed

3 files changed

+18
-9
lines changed

jscomp/runtime/caml_obj.ml

+6-3
Original file line numberDiff line numberDiff line change
@@ -140,10 +140,13 @@ let caml_lazy_make (fn : _ -> _) =
140140
whose tag is 0, we optimize that case
141141
*)
142142
let caml_update_dummy : _ -> _ -> unit= [%raw{|function (x, y) {
143-
var set = function (k) {
144-
x[k] = y[k]
143+
if (Array.isArray(y)) {
144+
for (var k = 0; k < y.length; k++) {
145+
x[k] = y[k]
146+
}
147+
} else {
148+
for (var k in y) { x[k] = y[k] }
145149
}
146-
for_in(y, set)
147150
}|}]
148151

149152
(* Caml_obj_extern.set_length x (Caml_obj_extern.length y) *)

lib/es6/caml_obj.js

+6-3
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,13 @@ function caml_lazy_make(fn) {
6262
}
6363

6464
var caml_update_dummy = (function (x, y) {
65-
var set = function (k) {
66-
x[k] = y[k]
65+
if (Array.isArray(y)) {
66+
for (var k = 0; k < y.length; k++) {
67+
x[k] = y[k]
68+
}
69+
} else {
70+
for (var k in y) { x[k] = y[k] }
6771
}
68-
for_in(y, set)
6972
});
7073

7174
function caml_compare(_a, _b) {

lib/js/caml_obj.js

+6-3
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,13 @@ function caml_lazy_make(fn) {
6262
}
6363

6464
var caml_update_dummy = (function (x, y) {
65-
var set = function (k) {
66-
x[k] = y[k]
65+
if (Array.isArray(y)) {
66+
for (var k = 0; k < y.length; k++) {
67+
x[k] = y[k]
68+
}
69+
} else {
70+
for (var k in y) { x[k] = y[k] }
6771
}
68-
for_in(y, set)
6972
});
7073

7174
function caml_compare(_a, _b) {

0 commit comments

Comments
 (0)