Releases: MatAtBread/nodent
Releases · MatAtBread/nodent
Fix output of `yield *`
- 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)`
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
- Fix issue with
for..of
with aconst
or destructuring initializer - Optimize EagerThenable and guard multiple Promise resolutions
Fix complex ES6 destructring, export async function
- Fix issue with non-trivial destructuring assignments (fixes MatAtBread/fast-async#8 - thanks to @simonbuchan)
- Fix case where empty "else" block throws an exception (fixes #50 - thanks to @Antender)
- Fix case where single line exported function was incorrectly hoisted with no reference (fixes MatAtBread/fast-async#7 - thanks to @simonbuchan, @naturalethic and @nightwolfz)
- Bump acorn to v3.3.0
Fix `export async` and non-strict block-scoping
- 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
- 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
- Add 'engine' mode that only transpiles the nodent ES7 extensions (
async get x(){}
,async throw x
,async return
andawait
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
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
- 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.
- 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