Releases: ocsigen/js_of_ocaml
Releases · ocsigen/js_of_ocaml
5.6.0
CHANGES:
Features/Changes
- Compiler: try to preserve clorures ordering between ml and js
- Compiler: js-parser accept for await
Bug fixes
- Compiler: js-parser now accept all the line terminators defined in the spec
- Compiler: js-parser: fix support for LHS assignment target
- Compiler: js-parser: fix parser of default export
- Compiler: js-parser: allow 'as' as ident
- Compiler: js-parser: fix for-in rewriting
- Compiler: js-parser: fix yield pretty print
- Compiler: js-parser: fix async arrow function
- Compiler: js-parser: fix class printing
- Compiler: js-parser: fix #privateName
5.5.2
CHANGES:
Features/Changes
- Compiler: global dead code elimination (Micah Cantor, #1503)
- Compiler: change control-flow compilation strategy (#1496)
- Compiler: loop no longer absorb the whole continuation
- Compiler: Dead code elimination of unused references (#2076)
- Compiler: reduce memory consumption (#1516)
- Compiler: support for import and export construct in the js parser/printer
- Lib: add download attribute to anchor element
- Misc: switch CI to OCaml 5.1
- Misc: preliminary support for OCaml 5.2
- Misc: support for OCaml 5.1.1
Bug fixes
- Runtime: fix Dom_html.onIE (#1493)
- Runtime: add conversion functions + strict equality for compatibility with Wasm_of_ocaml (#1492)
- Runtime: Dynlink should be able to find symbols in jsoo_runtime #1517
- Runtime: fix Unix.lstat, Unix.LargeFile.lstat (#1519)
- Compiler: fix global flow analysis (#1494)
- Compiler: fix js parser/printer wrt async functions (#1515)
- Compiler: fix free variables pass wrt parameters' default value (#1521)
- Compiler: fix free variables for classes
- Compiler: fix internal invariant (continuation)
- Compiler: fix variable renaming for let, const and classes
- Lib: Url.Current.set_fragment need not any urlencode (#1497)
5.5.1
CHANGES:
Features/Changes
- Compiler: global dead code elimination (Micah Cantor, #1503)
- Compiler: change control-flow compilation strategy (#1496)
- Compiler: loop no longer absorb the whole continuation
- Compiler: Dead code elimination of unused references (#2076)
- Compiler: reduce memory consumption (#1516)
- Compiler: support for import and export construct in the js parser/printer
- Lib: add download attribute to anchor element
- Misc: switch CI to OCaml 5.1
- Misc: preliminary support for OCaml 5.2
- Misc: support for OCaml 5.1.1
Bug fixes
- Runtime: fix Dom_html.onIE (#1493)
- Runtime: add conversion functions + strict equality for compatibility with Wasm_of_ocaml (#1492)
- Runtime: Dynlink should be able to find symbols in jsoo_runtime #1517
- Runtime: fix Unix.lstat, Unix.LargeFile.lstat (#1519)
- Compiler: fix global flow analysis (#1494)
- Compiler: fix js parser/printer wrt async functions (#1515)
- Compiler: fix free variables pass wrt parameters' default value (#1521)
- Compiler: fix free variables for classes
- Compiler: fix internal invariant (continuation)
- Compiler: fix variable renaming for let, const and classes
- Lib: Url.Current.set_fragment need not any urlencode (#1497)
5.5.0
CHANGES:
Features/Changes
- Compiler: global dead code elimination (Micah Cantor, #1503)
- Compiler: change control-flow compilation strategy (#1496)
- Compiler: loop no longer absorb the whole continuation
- Compiler: Dead code elimination of unused references (#2076)
- Compiler: reduce memory consumption (#1516)
- Compiler: support for import and export construct in the js parser/printer
- Lib: add download attribute to anchor element
- Misc: switch CI to OCaml 5.1
- Misc: preliminary support for OCaml 5.2
- Misc: support for OCaml 5.1.1
Bug fixes
- Runtime: fix Dom_html.onIE (#1493)
- Runtime: add conversion functions + strict equality for compatibility with Wasm_of_ocaml (#1492)
- Runtime: Dynlink should be able to find symbols in jsoo_runtime #1517
- Runtime: fix Unix.lstat, Unix.LargeFile.lstat (#1519)
- Compiler: fix global flow analysis (#1494)
- Compiler: fix js parser/printer wrt async functions (#1515)
- Compiler: fix free variables pass wrt parameters' default value (#1521)
- Compiler: fix free variables for classes
- Compiler: fix internal invariant (continuation)
- Compiler: fix variable renaming for let, const and classes
- Lib: Url.Current.set_fragment need not any urlencode (#1497)
5.4.0
CHANGES:
Bug fixes
- Runtime: Fix recursive modules on ocaml < 4.13 (#1485)
- Runtime: fix hashing of NaN (#1475)
- Runtime: float rounding should resolve tie away from zero (#1475)
- Runtime: fix Gc.stat, Gc.quick_stat, Gc.get (#1475)
- Compiler: fix some miscompilation, probably introduced in jsoo 5.0.0,
revealed by OCaml 5.0
5.3.0
CHANGES:
Features/Changes
- Misc: Bump magic number for ocaml 5.1
- Misc: changes to stay compatible with the next version of ppx_expect
- Runtime: support conversion of Uint8ClampedArray typed arrays to bigarrays (#1472)
Bug fixes
- Compiler: fix location for parsing errors when last token is a virtual semicolon
- Compiler: fix variable renaming with nested const/let decl with identical names
- Compiler: fix variable renaming inside js method
- Compiler: consise body should allow any expression but object literals
- Compiler: preserve [new] without arguments [new C] (vs [new C()]
- Compiler: remove invalid rewriting of js (#1471, #1469)
- Runtime: fix int32 values returned from bigarrays when wrapping Uint32Array objects (#1472)
5.2.0
CHANGES:
Features/Changes
- Compiler: jsoo link archive with -a (#1428)
Bug fixes
- Compiler: put custom header at the top of the output file (fix #1441)
- Compiler (js parser): fix parsing of js labels (fix #1440)
- Compiler: fix simplification of js with let and const
- Compiler: reduce memory consumption when parsing js
- Compiler: parsing js can return a list of token, the list was sometime incorrect
- Sourcemap: stop producing sourcemaps mappings with negative lines or columns
- Runtime: fix marshalling with sharing and string (use-js-string)
5.1.1
5.1.0
CHANGES:
Features/Changes
- Lib: Added support for KeyboardEvent.getModifierState
- Misc: bump min ocaml version to 4.08
- Misc: remove some old runtime files to support some external libs
- Misc: switch to dune 3.7
- Effects: partial CPS transformation, resulting in much better performances, lower compilation time and smaller generated code
- Compiler: separate compilation can now drops unused units when linking (similar to ocamlc). (#1378)
- Compiler: specialize string to js-string conversion for all valid utf8 strings (previously just ascii)
- Compiler: JavaScript files generated by
js_of_ocaml
are now UTF-8 encoded. - Compiler: use identifier for object literals when possible
- Compiler: Cache function arity (the length prop of a function is slow with v8)
- Compiler: The js lexer is now utf8 aware, recognize and emit utf8 ident
- Compiler: Update the js lexer with new number literal syntax
- Compiler: update js parser to support most es6 feature (#1391)
- Compiler: stop parsing the builtin js runtime if not necessary
- Compiler: improve js pretty printer (#1405)
- Compiler: improve debug location and speedup compilation (#1407)
- Toplevel: Enable separate compilation of toplevels
- Runtime: js backtrace recording controled by OCAMLRUNPARAM
- Runtime: support for zstd decompression of marshalled data (ocaml.5.1) (#12006)
- Runtime: stub out custom runtime events symbols for OCaml 5.1 (#1414)
Bug fixes
- Effects: fix Js.export and Js.export_all to work with functions (#1417,#1377)
- Sourcemap: fix incorrect sourcemap with separate compilation
- Compiler: fix control flow analysis; some annotions were wrong in the runtime
- Compiler: js backtrace recording respected in the js runtime and when using effects
- Compiler: no longer fail on invalid source file (when the file is a directory)
- Runtime: fix the compilation of some mutually recursive functions