hhugo
hhugo
I took a look at this. It seems to me that it would be simpler to also embed cmis files together with the runtime. It would make the logic found...
I've pushed a few changes. - `--toplevel` involves `--linkall` - Fix symbol lookup (one should not need to set `Clflags.no_check_prims := true`) - Make sure to emit embedded runtime only...
I've rebased this PR - I've added an example in toplevel/example/lwt_toplevel. One can load the precompiled lib with `#load_js "test_lib_jsoo.js"`. Calling `Test_lib_jsoo.A.test ()` will use a js stubs included in...
> Turn conditional statements into expressions We already do some of this in js_simpl.ml
> > Then, we may be able to coalesce more variable declarations, or omit the return of an arrow function. > > Is that something that will happen magically when...
> Improve handling of functions This is fixed by #1568
This change revealed some issues with some js stubs what were returning `-0` instead of `0`.
@ty, is there any per difference between the two ? Is `object.is` available everywhere?
[some other](https://perf.link/#eyJpZCI6IjMxNzRkdWc2Yjd4IiwidGl0bGUiOiJGaW5kaW5nIG51bWJlcnMgaW4gYW4gYXJyYXkgb2YgMTAwMCIsImJlZm9yZSI6ImNvbnN0IGRhdGEgPSBbMSwyLDM0LDU0LDAsMCwzLDQsNSwxLDIsNTQsNTYsWzAsMSwwXSwgW10sIFsxMjFdLCBbMSwgW11dXSIsInRlc3RzIjpbeyJuYW1lIjoiVGVzdCBDYXNlIiwiY29kZSI6ImxldCBzYW1lID0gMCwgZGlmZiA9IDA7IGZvcihsZXQgeCBvZiBkYXRhKSB7IGZvcihsZXQgeSBvZiBkYXRhKSB7IGlmKE9iamVjdC5pcyh5LHgpKSBzYW1lKys7IGVsc2UgZGlmZisrIH19IiwicnVucyI6WzQyMDAwLDEwMDAsNTUwMDAsMjQwMDAsNTAwMDAsNDAwMCwyNzAwMCw0NzAwMCw0MDAwLDQ0MDAwLDQxMDAwLDEzMDAwLDQzMDAwLDQwMDAsMjUwMDAsMjkwMDAsMTAwMCw0NjAwMCw0MTAwMCwyMDAwMCwxMDAwLDQ0MDAwLDU4MDAwLDUxMDAwLDEzMDAwLDY0MDAwLDI1MDAwLDUyMDAwLDI2MDAwLDI0MDAwLDUyMDAwLDkwMDAsNTQwMDAsNDMwMDAsNjAwMCwyOTAwMCw0MTAwMCwxMTAwMCw1MTAwMCwyMzAwMCwzMTAwMCwyMzAwMCwzNTAwMCwyNTAwMCw1MzAwMCw0MjAwMCwyMDAwLDM0MDAwLDEwMDAsNTcwMDAsMjAwMDAsNTQwMDAsMjUwMDAsNTkwMDAsNDIwMDAsNDAwMCw1MDAwMCw0MTAwMCwyMDAwMCw0MjAwMCw0NTAwMCwxMDAwLDM3MDAwLDExMDAwLDMxMDAwLDU0MDAwLDgwMDAsMjUwMDAsMjAwMDAsMTAwMCw3MDAwLDI1MDAwLDI4MDAwLDMyMDAwLDcwMDAsMjYwMDAsNTYwMDAsNDUwMDAsMjQwMDAsNDAwMCwzMDAwLDQyMDAwLDI1MDAwLDQ5MDAwLDI1MDAwLDQwMDAsNTkwMDAsNTIwMDAsNDgwMDAsMjUwMDAsNDAwMCw1MTAwMCw0NjAwMCwxODAwMCw0ODAwMCwyMDAwMCwzMTAwMCw1MzAwMCwxODAwMCwyMDAwMF0sIm9wcyI6MzAyNjB9LHsibmFtZSI6IkZpbmQgaXRlbSAxMDAiLCJjb2RlIjoibGV0IHNhbWUgPSAwLCBkaWZmID0gMDsgZm9yKGxldCB4IG9mIGRhdGEpIHsgZm9yKGxldCB5IG9mIGRhdGEpIHsgaWYoeSA9PT0geCkgc2FtZSsrOyBlbHNlIGRpZmYrKyB9fSIsInJ1bnMiOlsyOTAwMCw3MDAwMCw2ODAwMCwzMDAwLDY1MDAwLDUwMDAsMjMwMDAsNDgwMDAsNTAwMCwyMzAwMCw0NTAwMCwxMTAwMCw0NTAwMCw1MDAwLDUwMDAsMjUwMDAsMTAwMCwyMTAwMCwyMDAwMCwzOTAwMCw1NDAwMCwzODAwMCwyMjAwMCw1NzAwMCwxODAwMCw2NDAwMCw4MDAwLDM4MDAwLDMzMDAwLDYwMDAwLDgxMDAwLDUwMDAsNDcwMDAsMzEwMDAsMTIwMDAsMTgwMDAsNDkwMDAsMTUwMDAsNTMwMDAsMjEwMDAsMzEwMDAsMjcwMDAsMzIwMDAsMTUwMDAsNTUwMDAsNTQwMDAsMzAwMCwzNzAwMCw0NzAwMCwzNDAwMCwzMTAwMCw1NTAwMCw1MDAwLDY5MDAwLDUzMDAwLDQ2MDAwLDQ4MDAwLDUxMDAwLDUwMDAsMTgwMDAsNTIwMDAsNzUwMDAsNDcwMDAsMjAwMCwyMjAwMCw0OTAwMCwxMzAwMCwyMDAwMCwyNjAwMCwzNjAwMCw0MDAwLDI1MDAwLDQ4MDAwLDQ0MDAwLDYwMDAsMTkwMDAsNjAwMDAsNTcwMDAsMzEwMDAsNzIwMDAsMzAwMCw1MTAwMCwzMjAwMCw1MTAwMCwzMTAwMCw1MDAwLDM4MDAwLDY2MDAwLDcwMDAwLDMxMDAwLDUwMDAwLDM4MDAwLDUyMDAwLDIxMDAwLDUwMDAwLDIwMDAwLDE4MDAwLDQ4MDAwLDEyMDAwLDE1MDAwXSwib3BzIjozNDA2MH1dLCJ1cGRhdGVkIjoiMjAyMy0wMi0yOFQxMToxODozOC4wMTZaIn0%3D ) seems to show that `===` is faster (when inputs are ints and array, which should be the common case).
I'm not really happy with the current implementation, mostly because the decision to use `===` or `Object.is` is syntactic. @vouillon, any opinion ?