Skip to content

Releases: MatAtBread/nodent

Fix output of `yield *`

05 Sep 08:50
Compare
Choose a tag to compare
  • Fix JS output routine which (incorrectly) removed the asterisk from yield *.
  • Improve syntax testing to catch differences in primitive values in ASTs

Fix output of `a || (()=>b)`

26 Aug 13:13
Compare
Choose a tag to compare

Fix JS output routine which (incorrectly) removed parenthesis from a || (()=>b) causing a precedence problem.

Closes #54

Fix issue with `for..of` with a `const` or destructuring initializer

20 Aug 20:09
Compare
Choose a tag to compare
  • Fix issue with for..of with a const or destructuring initializer
  • Optimize EagerThenable and guard multiple Promise resolutions

Fix complex ES6 destructring, export async function

06 Aug 19:04
Compare
Choose a tag to compare

Fix `export async` and non-strict block-scoping

20 Jul 11:38
Compare
Choose a tag to compare
  • Update acorn-es7-plugin to fix issue with export async in webpack
  • Fix edge case where a continuation function is treated as a block-scoped (breaks some constructs in non-strict Safari as it could have generated function declarations inside a block).

Enhance support for 'engine' mode

15 Jul 07:34
Compare
Choose a tag to compare
  • Optimize case where 'engine' generates an 'awaitAnywhere' Promise-style callback for an async function nested inside a sync function, and await is legal.
  • Bump version to make support for 'engine' mode easier to detect in toolchains.

"Engine" mode for JS engines that implement async & await

14 Jul 16:34
Compare
Choose a tag to compare
  • Add 'engine' mode that only transpiles the nodent ES7 extensions (async get x(){}, async throw x, async return and await anywhere). Standard ES7 async/await constructs are passed through the compiler unchanged to be run by the underlying engine (e.g. Chrome v53 or Edge v14).
  • Implement parsing for proposed ES7 Object spread var {a,b,...x} = y ; used in Babel (see MatAtBread/fast-async#6)

Revert change to runtime inclusion in 2.5.8 as it breaks some live uses of browserify/webpack

10 Jul 15:41
Compare
Choose a tag to compare

Revert change to runtime inclusion in 2.5.8 as it breaks some live uses of browserify/webpack, and was only included to make istanbul work

ES6 let and const scoping and minor fixes

10 Jul 14:42
Compare
Choose a tag to compare
  • Implement ES6 declaration hoisting
  • Fix typo in covers/https to prevented get() from working
  • Fix path resolution for nodent.require(...) built-ins
  • Fix typos when defining writable Object properties
  • Implement "dual-mode" tests that compare sync/async routines directly
  • Maintain the position of directives when asynchronizing blocks
  • Add dual-mode tests for consts in struct & sloppy mode and scoped try test
  • Correct case where await is at the top level in generator mode
  • Avoid exception when node is created with no location info
  • Include eager.js into runtime.js as source to make istanbul coverage tests work
  • Bump acorn-es7-plugin

Fix `this` in loops. Fix CLI option.

27 Jun 10:15
Compare
Choose a tag to compare
  • Correctly bind this inside loops if it is referenced (#39). Many thanks to https://github.com/jeffreylin for the test case and fix.
  • Fix command-line option --use=(mode) with text input
  • Bump acorn-es7-plugin to to 1.0.15