Skip to content

Commit bd5374b

Browse files
committed
WIP: change lazy to record
todo: .tag is not | 0 -- this should be fine since we only compare it with forward or lazy
1 parent 913ddc8 commit bd5374b

24 files changed

+1547
-1336
lines changed

jscomp/main/builtin_cmj_datasets.ml

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
(* 6818075612b3182dac4f029627249758 *)
1+
(* d0bce2876e3c70684b48084032bf236f *)
22
let module_names : string array = Obj.magic (
33
"Gc" (* 220 *),
44
"Js" (* 23 *),
@@ -114,7 +114,7 @@ let module_names : string array = Obj.magic (
114114
"Belt_MutableSet" (* 2115 *),
115115
"CamlinternalMod" (* 23 *),
116116
"Js_typed_array2" (* 23 *),
117-
"CamlinternalLazy" (* 219 *),
117+
"CamlinternalLazy" (* 270 *),
118118
"Belt_MutableQueue" (* 572 *),
119119
"Belt_MutableStack" (* 530 *),
120120
"Belt_SortArrayInt" (* 184 *),
@@ -255,7 +255,7 @@ let module_data : string array = Obj.magic (
255255
(* Belt_MutableSet *)"\132\149\166\190\000\000\b/\000\000\002J\000\000\007{\000\000\0076\160\b\000\000\168\000\176\"eq\144\160\160B@@@\176#add\144\160\160B@@@\176#cmp\144\160\160B@@@\176#get\144\160\160B@@@\176#has\144\160\160B@@@\176$copy\144\160\160A@@@\176$diff\144\160\160B@@@\176$keep\144\160\160B@@@\176$make\144\160\160A@@\144\180A\160\176\001\005\154\"id@@\151\176\177@\146\160#cmp$dataA\160\151\176\162@\146#cmp\160\144\004\017@\176\192&_none_A@\000\255\004\002A\160\146A@\176\1929others/belt_MutableSet.ml\001\000\192\001\020\235\001\020\237\192\004\002\001\000\192\001\020\235\001\021\b@\176$size\144\160\160A@@\144\180A\160\176\001\005\198!d@@\147\192\151\176\162^\146$size\160\145\176@3Belt_internalAVLsetA@\004\030\160\151\176\162A\161\004,A\160\144\004\020@\176\192\004 \001\000\215\001\023j\001\023s\192\004!\001\000\215\001\023j\001\023{@@\176\192\004#\001\000\215\001\023j\001\023l\004\003@A\176$some\144\160\160B@@@\176%every\144\160\160B@@@\176%keepU\144\160\160B@@@\176%someU\144\160\160B@@\144\180B\160\176\001\005\191!d@\160\176\001\005\192!p@@\147\192\151\176\162Q\146%someU\160\145\0043@\004O\160\151\176\162A\161\004]A\160\144\004\021@\176\192\004Q\001\000\212\001\023\n\001\023\"\192\004R\001\000\212\001\023\n\001\023*@\160\144\004\023@\176\192\004V\001\000\212\001\023\n\001\023\026\192\004W\001\000\212\001\023\n\001\023,@A\176%split\144\160\160B@@@\176%union\144\160\160B@@@\176&everyU\144\160\160B@@\144\180B\160\176\001\005\184!d@\160\176\001\005\185!p@@\147\192\151\176\162O\146&everyU\160\145\004b@\004~\160\151\176\162A\161\004\140A\160\144\004\021@\176\192\004\128\001\000\210\001\022\180\001\022\206\192\004\129\001\000\210\001\022\180\001\022\214@\160\144\004\023@\176\192\004\133\001\000\210\001\022\180\001\022\197\192\004\134\001\000\210\001\022\180\001\022\216@A\176&getExn\144\160\160B@@@\176&reduce\144\160\160C@@@\176&remove\144\160\160B@@@\176&subset\144\160\160B@@@\176&toList\144\160\160A@@\144\180A\160\176\001\005\200!d@@\147\192\151\176\162_\146&toList\160\145\004\152@\004\180\160\151\176\162A\161\004\194A\160\144\004\018@\176\192\004\182\001\000\217\001\023\139\001\023\150\192\004\183\001\000\217\001\023\139\001\023\158@@\176\192\004\185\001\000\217\001\023\139\001\023\141\004\003@A\176'forEach\144\160\160B@@@\176'isEmpty\144\160\160A@@@\176'maximum\144\160\160A@@\144\180A\160\176\001\005\163!d@@\147\192\151\176\162F\146'maximum\160\145\004\193@\004\221\160\151\176\162A\161\004\235A\160\144\004\018@\176\192\004\223\001\000\202\001\021\163\001\021\175\192\004\224\001\000\202\001\021\163\001\021\183@@\176\192\004\226\001\000\202\001\021\163\001\021\165\004\003@A\176'minimum\144\160\160A@@\144\180A\160\176\001\005\159!d@@\147\192\151\176\162D\146'minimum\160\145\004\224@\004\252\160\151\176\162A\161\005\001\nA\160\144\004\018@\176\192\004\254\001\000\198\001\021J\001\021V\192\004\255\001\000\198\001\021J\001\021^@@\176\192\005\001\001\001\000\198\001\021J\001\021L\004\003@A\176'reduceU\144\160\160C@@@\176'toArray\144\160\160A@@\144\180A\160\176\001\005\202!d@@\147\192\151\176\162b\146'toArray\160\145\005\001\004@\005\001 \160\151\176\162A\161\005\001.A\160\144\004\018@\176\192\005\001\"\001\000\219\001\023\176\001\023\188\192\005\001#\001\000\219\001\023\176\001\023\196@@\176\192\005\001%\001\000\219\001\023\176\001\023\178\004\003@A\176(addCheck\144\160\160B@@@\176(forEachU\144\160\160B@@\144\180B\160\176\001\005\167!d@\160\176\001\005\168!f@@\147\192\151\176\162K\146(forEachU\160\145\005\001+@\005\001G\160\151\176\162A\161\005\001UA\160\144\004\021@\176\192\005\001I\001\000\206\001\021\232\001\022\006\192\005\001J\001\000\206\001\021\232\001\022\014@\160\144\004\023@\176\192\005\001N\001\000\206\001\021\232\001\021\251\192\005\001O\001\000\206\001\021\232\001\022\016@A\176)fromArray\144\160\160B@@@\176)intersect\144\160\160B@@@\176)mergeMany\144\160\160B@@@\176)partition\144\160\160B@@@\176*partitionU\144\160\160B@@@\176*removeMany\144\160\160B@@@\176+removeCheck\144\160\160B@@@\176,getUndefined\144\160\160B@@@\176,maxUndefined\144\160\160A@@\144\180A\160\176\001\005\165!d@@\147\192\151\176\162G\146,maxUndefined\160\145\005\001u@\005\001\145\160\151\176\162A\161\005\001\159A\160\144\004\018@\176\192\005\001\147\001\000\204\001\021\205\001\021\222\192\005\001\148\001\000\204\001\021\205\001\021\230@@\176\192\005\001\150\001\000\204\001\021\205\001\021\207\004\003@A\176,minUndefined\144\160\160A@@\144\180A\160\176\001\005\161!d@@\147\192\151\176\162E\146,minUndefined\160\145\005\001\148@\005\001\176\160\151\176\162A\161\005\001\190A\160\144\004\018@\176\192\005\001\178\001\000\200\001\021x\001\021\137\192\005\001\179\001\000\200\001\021x\001\021\145@@\176\192\005\001\181\001\000\200\001\021x\001\021z\004\003@A\1765fromSortedArrayUnsafe\144\160\160B@@\144\180B\160\176\001\005\206\"xs@\160\176\001\005\207\"id@@\151\176\177@\146\160\005\001\216\005\001\215A\160\151\176\162@\146#cmp\160\144\004\015@\005\001\214\160\147\192\151\176\162e\1465fromSortedArrayUnsafe\160\145\005\001\196@\005\001\224\160\144\004\030@\176\192\005\001\221\001\000\223\001\024B\001\024L\192\005\001\222\001\000\223\001\024B\001\024h@A@\176\192\005\001\224\001\000\223\001\024B\001\024D\192\005\001\225\001\000\223\001\024B\001\024v@\1766checkInvariantInternal\144\160\160A@@\144\180A\160\176\001\005\210!d@@\147\192\151\176\162`\1466checkInvariantInternal\160\145\005\001\223@\005\001\251\160\151\176\162A\161\005\002\tA\160\144\004\018@\176\192\005\001\253\001\000\226\001\024\152\001\024\179\192\005\001\254\001\000\226\001\024\152\001\024\187@@\176\192\005\002\000\001\000\226\001\024\152\001\024\154\004\003@AA",
256256
(* CamlinternalMod *)"\132\149\166\190\000\000\000\003\000\000\000\001\000\000\000\003\000\000\000\003\160\128A",
257257
(* Js_typed_array2 *)"\132\149\166\190\000\000\000\003\000\000\000\001\000\000\000\003\000\000\000\003\160\128A",
258-
(* CamlinternalLazy *)"\132\149\166\190\000\000\000\199\000\000\0005\000\000\000\176\000\000\000\165\160\208\176%force\144\160\160A@@@\176&is_val\144\160\160A@@\144\180A\160\176\001\004J!l@@\151\176\152A\160\151\176\149\176,caml_obj_tagA \160\144\004\014@\176\192>stdlib-406/camlinternalLazy.ml\000`\001\r\000\001\r\031\192\004\002\000`\001\r\000\001\r3@\160\146\144\001\000\246@\176\004\007\192\004\007\000`\001\r\000\001\r?@\176(from_fun\144\160\160A@@@\176(from_val\144\160\160A@@@\176)force_val\144\160\160A@@@A",
258+
(* CamlinternalLazy *)"\132\149\166\190\000\000\000\250\000\000\000F\000\000\000\230\000\000\000\221\160\208\176%force\144\160\160A@@@\176&is_val\144\160\160A@@\144\180A\160\176\001\004\026!l@@\151\176\152A\160\151\176\162@\161#tagA\160\144\004\r@\176\192>stdlib-406/camlinternalLazy.mla\001\006\015\001\006\017\192\004\002a\001\006\015\001\006+@\160\146\144\001\000\246@\176\192\004\007\000o\001\014%\001\014D\192\004\b\000o\001\014%\001\014U@\176(from_fun\144\160\160A@@\144\180A\160\176\001\003\255!f@@\151\176\177@\146\160\004\028\"_0A\160\004\022\160\144\004\011@\176\192\004\029k\001\007y\001\007|\192\004\030k\001\007y\001\007\142@\176(from_val\144\160\160A@@@\176)force_val\144\160\160A@@@A",
259259
(* Belt_MutableQueue *)"\132\149\166\190\000\000\002(\000\000\000\168\000\000\002\031\000\000\002\004\160\b\000\000T\000\176#add\144\160\160B@@@\176#map\144\160\160B@@@\176#pop\144\160\160A@@@\176$copy\144\160\160A@@@\176$make\144\160\160A@@\144\180A\160\176\001\003\245%param@@\151\176\177@\146\176&length%first$lastA\160\146\144@\160\146A\160\146A@\176\192;others/belt_MutableQueue.mlb\001\005\176\001\005\180\192\004\002e\001\005\220\001\005\239@\176$mapU\144\160\160B@@@\176$peek\144\160\160A@@@\176$size\144\160\160A@@\144\180A\160\176\001\004\180!q@@\151\176\162@\161\004&A\160\144\004\b@\176\192\004\030\001\000\163\001\016Y\001\016[\192\004\031\001\000\163\001\016Y\001\016c@\176%clear\144\160\160A@@@\176&popExn\144\160\160A@@@\176&reduce\144\160\160C@@@\176'forEach\144\160\160B@@@\176'isEmpty\144\160\160A@@\144\180A\160\176\001\004\178!q@@\151\176\152@\160\151\176\162@\161\004QA\160\144\004\012@\176\192\004I\001\000\160\001\016<\001\016>\192\004J\001\000\160\001\016<\001\016F@\160\146\144@@\176\004\006\192\004O\001\000\160\001\016<\001\016J@\176'peekExn\144\160\160A@@@\176'reduceU\144\160\160C@@@\176'toArray\144\160\160A@@@\176(forEachU\144\160\160B@@@\176(transfer\144\160\160B@@@\176)fromArray\144\160\160A@@@\176,popUndefined\144\160\160A@@@\176-peekUndefined\144\160\160A@@@A",
260260
(* Belt_MutableStack *)"\132\149\166\190\000\000\001\254\000\000\000\150\000\000\001\237\000\000\001\216\160\b\000\0008\000\176#pop\144\160\160A@@@\176#top\144\160\160A@@@\176$copy\144\160\160A@@\144\180A\160\176\001\003\246!s@@\151\176\177@\146\144$rootA\160\151\176\162@\161\004\006A\160\144\004\015@\176\192;others/belt_MutableStack.mlf\001\005\219\001\005\254\192\004\002f\001\005\219\001\006\004@@\176\192\004\004f\001\005\219\001\005\246\192\004\005f\001\005\219\001\006\005@\176$make\144\160\160A@@\144\180A\160\176\001\003\242%param@@\151\176\177@\146\144\004\030A\160\146A@\176\192\004\024b\001\005\159\001\005\173\192\004\025b\001\005\159\001\005\186@\176$push\144\160\160B@@@\176$size\144\160\160A@@@\176%clear\144\160\160A@@\144\180A\160\176\001\003\244!s@@\151\176\163@\144\004;\160\144\004\b\160\146A@\176\192\0047d\001\005\188\001\005\203\192\0048d\001\005\188\001\005\217@\176'forEach\144\160\160B@@@\176'isEmpty\144\160\160A@@\144\180A\160\176\001\004`!s@@\151\176\152@\160\151\176\162@\161\004YA\160\144\004\012@\176\192\004Su\001\007\014\001\007\030\192\004Tu\001\007\014\001\007$@\160\146A@\176\004\005\192\004Xu\001\007\014\001\007+@\176(forEachU\144\160\160B@@@\176,popUndefined\144\160\160A@@@\176,topUndefined\144\160\160A@@@\176.dynamicPopIter\144\160\160B@@@\176/dynamicPopIterU\144\160\160B@@@A",
261261
(* Belt_SortArrayInt *)"\132\149\166\190\000\000\000\164\000\000\000*\000\000\000\144\000\000\000\132\160\b\000\000 \000\176$diff\144\160\160H@@@\176%union\144\160\160H@@@\176(isSorted\144\160\160A@@@\176)intersect\144\160\160H@@@\176*stableSort\144\160\160A@@@\176,binarySearch\144\160\160B@@@\1761stableSortInPlace\144\160\160A@@@\1764strictlySortedLength\144\160\160A@@@A",

jscomp/stdlib-406/camlinternalLazy.ml

+16-7
Original file line numberDiff line numberDiff line change
@@ -18,23 +18,32 @@
1818
let lazy_tag = 246
1919
let forward_tag = 250
2020

21+
type 'a t = {
22+
mutable tag : int ; (* Invariant: name *)
23+
mutable _0 : 'a
24+
}
2125

2226
external cast_from_lazy : 'a lazy_t -> 'b = "%identity"
2327
external cast_to_lazy : 'b -> 'a lazy_t = "%identity"
2428

25-
external new_block : int -> int -> 'a lazy_t = "caml_obj_block"
26-
external set_tag : 'a lazy_t -> int -> unit = "caml_obj_set_tag"
27-
external tag : 'a lazy_t -> int = "caml_obj_tag"
29+
(* external new_block : int -> int -> 'a lazy_t = "caml_obj_block" *)
30+
let set_tag : 'a lazy_t -> int -> unit = fun x tag ->
31+
(x |. cast_from_lazy).tag<-tag
32+
let tag : 'a lazy_t -> int = fun x ->
33+
(x |. cast_from_lazy). tag
2834

2935
let set_field (blk : 'arg lazy_t) (result : 'a) : unit =
30-
Obj.set_field (Obj.repr blk) 0 (Obj.repr result)
36+
(* Obj.set_field (Obj.repr blk) 0 (Obj.repr result) *)
37+
(blk |. cast_from_lazy)._0<-result
3138
let get_field (blk : 'arg lazy_t ) : 'a =
32-
Obj.obj (Obj.field (Obj.repr blk) 0)
39+
(* Obj.obj (Obj.field (Obj.repr blk) 0) *)
40+
(blk |. cast_from_lazy)._0
3341

3442
let new_block_with_tag tag (value : 'a) : 'arg lazy_t =
35-
let x = new_block tag 1 in
43+
({tag ; _0 = value} |. cast_to_lazy)
44+
(* let x = new_block tag 1 in
3645
set_field x value;
37-
x
46+
x *)
3847

3948
let from_fun (f : unit -> 'arg ) =
4049
new_block_with_tag lazy_tag f

jscomp/test/ext_filename_test.js

+13-7
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,12 @@ var node_parent = "..";
2525

2626
var node_current = ".";
2727

28-
var cwd = CamlinternalLazy.from_fun((function (param) {
29-
return Caml_sys.caml_sys_getcwd(undefined);
30-
}));
28+
var cwd = {
29+
tag: 246,
30+
_0: (function (param) {
31+
return Caml_sys.caml_sys_getcwd(undefined);
32+
})
33+
};
3134

3235
function path_as_directory(x) {
3336
if (x === "" || Ext_string_test.ends_with(x, Filename.dir_sep)) {
@@ -214,10 +217,13 @@ function find_package_json_dir(cwd) {
214217
return find_root_filename(cwd, Test_literals.bsconfig_json);
215218
}
216219

217-
var package_dir = CamlinternalLazy.from_fun((function (param) {
218-
var cwd$1 = CamlinternalLazy.force(cwd);
219-
return find_root_filename(cwd$1, Test_literals.bsconfig_json);
220-
}));
220+
var package_dir = {
221+
tag: 246,
222+
_0: (function (param) {
223+
var cwd$1 = CamlinternalLazy.force(cwd);
224+
return find_root_filename(cwd$1, Test_literals.bsconfig_json);
225+
})
226+
};
221227

222228
function module_name_of_file(file) {
223229
var s = Filename.chop_extension(Curry._1(Filename.basename, file));

jscomp/test/gpr_3697_test.js

+6-3
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,12 @@
33
var CamlinternalLazy = require("../../lib/js/camlinternalLazy.js");
44

55
function fix(param) {
6-
return /* Fix */[CamlinternalLazy.from_fun((function (param) {
7-
return fix(undefined);
8-
}))];
6+
return /* Fix */[{
7+
tag: 246,
8+
_0: (function (param) {
9+
return fix(undefined);
10+
})
11+
}];
912
}
1013

1114
function unfixLeak(_f) {

jscomp/test/hamming_test.js

+73-47
Original file line numberDiff line numberDiff line change
@@ -118,41 +118,47 @@ function pr(param) {
118118
}
119119

120120
function map(f, l) {
121-
return CamlinternalLazy.from_fun((function (param) {
122-
var match = CamlinternalLazy.force(l);
123-
return /* Cons */[
124-
Curry._1(f, match[0]),
125-
map(f, match[1])
126-
];
127-
}));
121+
return {
122+
tag: 246,
123+
_0: (function (param) {
124+
var match = CamlinternalLazy.force(l);
125+
return /* Cons */[
126+
Curry._1(f, match[0]),
127+
map(f, match[1])
128+
];
129+
})
130+
};
128131
}
129132

130133
function merge(cmp, l1, l2) {
131-
return CamlinternalLazy.from_fun((function (param) {
132-
var match = CamlinternalLazy.force(l1);
133-
var match$1 = CamlinternalLazy.force(l2);
134-
var ll2 = match$1[1];
135-
var x2 = match$1[0];
136-
var ll1 = match[1];
137-
var x1 = match[0];
138-
var c = Curry._2(cmp, x1, x2);
139-
if (c === 0) {
140-
return /* Cons */[
141-
x1,
142-
merge(cmp, ll1, ll2)
143-
];
144-
} else if (c < 0) {
145-
return /* Cons */[
146-
x1,
147-
merge(cmp, ll1, l2)
148-
];
149-
} else {
150-
return /* Cons */[
151-
x2,
152-
merge(cmp, l1, ll2)
153-
];
154-
}
155-
}));
134+
return {
135+
tag: 246,
136+
_0: (function (param) {
137+
var match = CamlinternalLazy.force(l1);
138+
var match$1 = CamlinternalLazy.force(l2);
139+
var ll2 = match$1[1];
140+
var x2 = match$1[0];
141+
var ll1 = match[1];
142+
var x1 = match[0];
143+
var c = Curry._2(cmp, x1, x2);
144+
if (c === 0) {
145+
return /* Cons */[
146+
x1,
147+
merge(cmp, ll1, ll2)
148+
];
149+
} else if (c < 0) {
150+
return /* Cons */[
151+
x1,
152+
merge(cmp, ll1, l2)
153+
];
154+
} else {
155+
return /* Cons */[
156+
x2,
157+
merge(cmp, l1, ll2)
158+
];
159+
}
160+
})
161+
};
156162
}
157163

158164
function iter_interval(f, _l, _param) {
@@ -177,24 +183,44 @@ function iter_interval(f, _l, _param) {
177183
};
178184
}
179185

180-
var hamming = CamlinternalLazy.from_fun((function (param) {
181-
return /* Cons */[
182-
nn1,
183-
merge(cmp, ham2, merge(cmp, ham3, ham5))
184-
];
185-
}));
186+
var hamming = { };
187+
188+
var ham2 = { };
189+
190+
var ham3 = { };
191+
192+
var ham5 = { };
193+
194+
Caml_obj.caml_update_dummy(hamming, {
195+
tag: 246,
196+
_0: (function (param) {
197+
return /* Cons */[
198+
nn1,
199+
merge(cmp, ham2, merge(cmp, ham3, ham5))
200+
];
201+
})
202+
});
186203

187-
var ham2 = CamlinternalLazy.from_fun((function (param) {
188-
return CamlinternalLazy.force(map(x2, hamming));
189-
}));
204+
Caml_obj.caml_update_dummy(ham2, {
205+
tag: 246,
206+
_0: (function (param) {
207+
return CamlinternalLazy.force(map(x2, hamming));
208+
})
209+
});
190210

191-
var ham3 = CamlinternalLazy.from_fun((function (param) {
192-
return CamlinternalLazy.force(map(x3, hamming));
193-
}));
211+
Caml_obj.caml_update_dummy(ham3, {
212+
tag: 246,
213+
_0: (function (param) {
214+
return CamlinternalLazy.force(map(x3, hamming));
215+
})
216+
});
194217

195-
var ham5 = CamlinternalLazy.from_fun((function (param) {
196-
return CamlinternalLazy.force(map(x5, hamming));
197-
}));
218+
Caml_obj.caml_update_dummy(ham5, {
219+
tag: 246,
220+
_0: (function (param) {
221+
return CamlinternalLazy.force(map(x5, hamming));
222+
})
223+
});
198224

199225
iter_interval(pr, hamming, /* tuple */[
200226
88000,

jscomp/test/lazy_test.js

+63-36
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,13 @@ var u = {
1111
contents: 3
1212
};
1313

14-
var v = CamlinternalLazy.from_fun((function (param) {
15-
u.contents = 32;
16-
17-
}));
14+
var v = {
15+
tag: 246,
16+
_0: (function (param) {
17+
u.contents = 32;
18+
19+
})
20+
};
1821

1922
function lazy_test(param) {
2023
var h = u.contents;
@@ -51,15 +54,21 @@ var s = {
5154
contents: undefined
5255
};
5356

54-
var set_true = CamlinternalLazy.from_fun((function (param) {
55-
s.contents = 1;
56-
57-
}));
57+
var set_true = {
58+
tag: 246,
59+
_0: (function (param) {
60+
s.contents = 1;
61+
62+
})
63+
};
5864

59-
var set_false = CamlinternalLazy.from_fun((function (param) {
60-
s.contents = undefined;
61-
62-
}));
65+
var set_false = {
66+
tag: 246,
67+
_0: (function (param) {
68+
s.contents = undefined;
69+
70+
})
71+
};
6372

6473
var h;
6574

@@ -83,10 +92,13 @@ var u_v = {
8392
contents: 0
8493
};
8594

86-
var u$1 = CamlinternalLazy.from_fun((function (param) {
87-
u_v.contents = 2;
88-
89-
}));
95+
var u$1 = {
96+
tag: 246,
97+
_0: (function (param) {
98+
u_v.contents = 2;
99+
100+
})
101+
};
90102

91103
CamlinternalLazy.force(u$1);
92104

@@ -96,30 +108,45 @@ var l_from_fun = Lazy.from_fun((function (param) {
96108
return 3;
97109
}));
98110

99-
var forward_test = CamlinternalLazy.from_fun((function (param) {
100-
var u = 3;
101-
u = u + 1 | 0;
102-
return u;
103-
}));
111+
var forward_test = {
112+
tag: 246,
113+
_0: (function (param) {
114+
var u = 3;
115+
u = u + 1 | 0;
116+
return u;
117+
})
118+
};
104119

105-
var f005 = CamlinternalLazy.from_fun((function (param) {
106-
return 6;
107-
}));
120+
var f005 = {
121+
tag: 246,
122+
_0: (function (param) {
123+
return 6;
124+
})
125+
};
108126

109-
var f006 = CamlinternalLazy.from_fun((function (param) {
110-
return (function (param) {
111-
return 3;
112-
});
113-
}));
127+
var f006 = {
128+
tag: 246,
129+
_0: (function (param) {
130+
return (function (param) {
131+
return 3;
132+
});
133+
})
134+
};
114135

115-
var f007 = CamlinternalLazy.from_fun((function (param) {
116-
throw Caml_builtin_exceptions.not_found;
117-
}));
136+
var f007 = {
137+
tag: 246,
138+
_0: (function (param) {
139+
throw Caml_builtin_exceptions.not_found;
140+
})
141+
};
118142

119-
var f008 = CamlinternalLazy.from_fun((function (param) {
120-
console.log("hi");
121-
throw Caml_builtin_exceptions.not_found;
122-
}));
143+
var f008 = {
144+
tag: 246,
145+
_0: (function (param) {
146+
console.log("hi");
147+
throw Caml_builtin_exceptions.not_found;
148+
})
149+
};
123150

124151
Mt.from_pair_suites("Lazy_test", /* :: */[
125152
/* tuple */[

0 commit comments

Comments
 (0)