Releases: bwrrp/whynot.js
5.0.0
4.0.1
- Update dependencies to their latest versions - no functional changes
Full Changelog: 4.0.0...4.0.1
4.0.0
- Breaking: rename bundles - this package now contains whynot.umd.js for UMD / CommonJS environments, and whynot.esm.js for environments that support ECMAScript modules. Most bundlers and environments should automatically select an appropriate version but some may need configuration changes to account for the new filenames.
3.0.3
3.0.2
This release contains no functional changes, but reduces the size of the whynot bundles by making two changes to the build process:
- Whynot now uses terser instead of babel-minify to better reduce the size of the bundles.
- The bundles now target only somewhat-modern browsers (ES2017). This reduces the amount of code generated only to support older environments. If you still need to run whynot on very old browsers / environments, it's probably best to use something like babel (with its preset-env) to convert the library.
3.0.1
This is a bugfix release to fix an error in determining traces, which could crash or return invalid or duplicate results for generations with multiple survivors (i.e., where multiple tests accept the same input), or for programs with multiple accept instructions.
3.0.0
This release includes some breaking changes in the interest of, again, greatly reducing the number of allocations and improving overall performance. Matching very large inputs now no longer runs out of memory and can be up to 10 times faster than with 2.x.
- Input for VM.execute is now an array. This speeds up access, and we haven't encountered any cases where the generator-like function would be beneficial.
- The Trace.records array is gone. As each trace instance (excluding prefixes) can have at most one record, it is now available as Trace.record, saving a few array allocations.
- Result.failingTraces has been removed. We had not found a use case for this so far.
Starting from this release, TypeScript typings are included for the built version.
2.0.1
2.0.0
This release includes some breaking changes in the interest of greatly reducing the number of allocations:
- Removed the head property of returned traces. Use record instructions if you need to know which path was taken through the program.
- Made allocation of the records array lazy. If no records are recorded for a trace, records will now be null instead of an empty array.