Results 508 comments of 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 ?