Skip to content

Commit c0d5f3f

Browse files
authored
Revert "change for_in impl for arrays"
1 parent 3cd056a commit c0d5f3f

File tree

3 files changed

+20
-51
lines changed

3 files changed

+20
-51
lines changed

jscomp/runtime/caml_obj.ml

Lines changed: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -34,15 +34,9 @@ module O = struct
3434
external isArray : 'a -> bool = "Array.isArray" [@@bs.val]
3535
type key = string
3636
let for_in : (Caml_obj_extern.t -> (key -> unit) -> unit) =
37-
[%raw{|function (o, foo) {
38-
if (Array.isArray(o)) {
39-
for (var x = 0; x < o.length; x++) {
40-
foo(x)
41-
}
42-
} else {
43-
for (var x in o) { foo(x) }
44-
}
45-
}|}]
37+
[%raw{|function(o,foo){
38+
for (var x in o) { foo(x) }}
39+
|}]
4640
external hasOwnProperty :
4741
t -> key -> bool = "hasOwnProperty" [@@bs.send]
4842
external get_value : Caml_obj_extern.t -> key -> Caml_obj_extern.t = ""[@@bs.get_index]
@@ -139,15 +133,12 @@ let caml_lazy_make (fn : _ -> _) =
139133
In most cases, rec value comes from record/modules,
140134
whose tag is 0, we optimize that case
141135
*)
142-
let caml_update_dummy : _ -> _ -> unit= [%raw{|function (x, y) {
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] }
136+
let caml_update_dummy : _ -> _ -> unit= [%raw{|function(x,y){
137+
for (var k in y){
138+
x[k] = y[k]
149139
}
150-
}|}]
140+
}
141+
|}]
151142

152143
(* Caml_obj_extern.set_length x (Caml_obj_extern.length y) *)
153144
(* [set_length] seems redundant here given that it is initialized as an array

lib/es6/caml_obj.js

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,8 @@ import * as Block from "./block.js";
44
import * as Caml_primitive from "./caml_primitive.js";
55
import * as Caml_builtin_exceptions from "./caml_builtin_exceptions.js";
66

7-
var for_in = (function (o, foo) {
8-
if (Array.isArray(o)) {
9-
for (var x = 0; x < o.length; x++) {
10-
foo(x)
11-
}
12-
} else {
13-
for (var x in o) { foo(x) }
14-
}
15-
});
7+
var for_in = (function(o,foo){
8+
for (var x in o) { foo(x) }});
169

1710
function caml_obj_block(tag, size) {
1811
var v = new Array(size);
@@ -61,15 +54,11 @@ function caml_lazy_make(fn) {
6154
return block;
6255
}
6356

64-
var caml_update_dummy = (function (x, y) {
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] }
57+
var caml_update_dummy = (function(x,y){
58+
for (var k in y){
59+
x[k] = y[k]
7160
}
72-
});
61+
});
7362

7463
function caml_compare(_a, _b) {
7564
while(true) {

lib/js/caml_obj.js

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,8 @@ var Block = require("./block.js");
44
var Caml_primitive = require("./caml_primitive.js");
55
var Caml_builtin_exceptions = require("./caml_builtin_exceptions.js");
66

7-
var for_in = (function (o, foo) {
8-
if (Array.isArray(o)) {
9-
for (var x = 0; x < o.length; x++) {
10-
foo(x)
11-
}
12-
} else {
13-
for (var x in o) { foo(x) }
14-
}
15-
});
7+
var for_in = (function(o,foo){
8+
for (var x in o) { foo(x) }});
169

1710
function caml_obj_block(tag, size) {
1811
var v = new Array(size);
@@ -61,15 +54,11 @@ function caml_lazy_make(fn) {
6154
return block;
6255
}
6356

64-
var caml_update_dummy = (function (x, y) {
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] }
57+
var caml_update_dummy = (function(x,y){
58+
for (var k in y){
59+
x[k] = y[k]
7160
}
72-
});
61+
});
7362

7463
function caml_compare(_a, _b) {
7564
while(true) {

0 commit comments

Comments
 (0)