Releases: boa-dev/boa
v0.12
v0.11
See changelog
v0.10
This release makes the execution of the official ECMAScript test suite possible in Boa. It also brings a new lexer and many new features. You can see the release announcement or the changelog for more information.
v0.9.0
v0.8.0
see changelog!
v0.7.0 - New Parser
See changelog!
# 0.6.0 (2020-02-14) - Migration to Workspace Architechure + lexer/parser improvements
The lexer has had several fixes in this release, including how it parses numbers, scientific notation should be improved.
On top of that the lexer no longer panics on errors including Syntax Errors (thanks @adumbidiot), instead you get some output on where the error happened.
Moving to a workspace architecture
Boa offers both a CLI and a library, initially these were all in the same binary. The downside is
those who want to embed boa as-is end up with all of the command-line dependencies.
So the time has come to separate out the two, this is normal procedure, this should be analogous to ripgrep
and the regex crate.
Cargo has great support for workspaces, so this shouldn't be an issue.
Benchmarks
We now have benchmarks which run against master!
Thanks to Github Actions these will run automatically a commit is merged.
Feature enhancements:
- FEATURE #218:
Implement Array.prototype.toString (@cisen) - FEATURE #216:
Keep accepting new array elements after spread. - FEATURE #220:
Documentation updates. (@croraf) - FEATURE #226:
add parser benchmark for expressions. (@jasonwilliams) - FEATURE #217:
String.prototype.replace() implemented - FEATURE #247:
Moved to a workspace architecture (@Razican)
Bug fixes:
- BUG #222:
Fixed clippy errors (@IovoslavIovchev) - BUG #228:
[lexer: single-line-comment] Fix bug when single line comment is last line of file (@croraf) - BUG #229:
Replace error throwing with panic in "Lexer::next()" (@croraf) - BUG #232/BUG #238:
Clippy checking has been scaled right back to just Perf and Style (@jasonwilliams) - BUG #227:
Array.prototype.toString should be called by ES value (@cisen) - BUG #242:
Fixed some panics in the lexer (@adumbidiot) - BUG #235:
Fixed arithmetic operations with no space (@gomesalexandre) - BUG #245:
Fixed parsing of floats with scientific notation (@adumbidiot)
0.5.1 (2019-12-02) - Rest / Spread (almost)
Feature enhancements:
- FEATURE #151:
Implement the Rest/Spread operator (functions and arrays). - FEATURE #193:
Implement macro for setting builtin functions - FEATURE #211:
Better Display support for all Objects (pretty printing)
0.5.0 (2019-11-06) - Hacktoberfest Release
Feature enhancements:
- FEATURE #119:
Introduce realm struct to hold realm context and global object. - FEATURE #89:
Implement exponentiation operator. Thanks @arbroween - FEATURE #47:
Add tests for comments in source code. Thanks @Emanon42 - FEATURE #137:
Use Monaco theme for the demo page - FEATURE #114:
String.match(regExp) is implemented (@muskuloes) - FEATURE #115:
String.matchAll(regExp) is implemented (@bojan88) - FEATURE #163:
Implement Array.prototype.every() (@letmutx) - FEATURE #165:
Implement Array.prototype.find() (@letmutx) - FEATURE #166:
Implement Array.prototype.findIndex() (@felipe-fg) - FEATURE #39:
Implement block scoped variable declarations (@barskern) - FEATURE #161:
Enable obj[key] = value syntax. - FEATURE #179:
Implement the Tilde operator (@letmutx) - FEATURE #189:
Implement Array.prototype.includes (incl tests) (@simonbrahan) - FEATURE #180:
Implement Array.prototype.slice (@muskuloes @letmutx) - FEATURE #152:
Short Function syntax (no arguments) - FEATURE #164:
Implement Array.prototype.fill() (@bojan88) - Array tests: Tests implemented for shift, unshift and reverse, pop and push (@muskuloes)
- Demo page has been improved, new font plus change on input. Thanks @WofWca
- FEATURE #182:
Implement some Number prototype methods (incl tests) (@pop) - FEATURE #34:
Number object and Constructore are implemented (including methods) (@pop) - FEATURE #194:
Array.prototype.map (@IovoslavIovchev) - FEATURE #90:
Symbol Implementation (@jasonwilliams)
Bug fixes:
0.4.0 (2019-09-25)
v0.4.0 brings quite a big release. The biggest feature to land is the support of regular expressions.
Functions now have the arguments object supported and we have a debugging
section in the docs.
Feature enhancements:
- FEATURE #6:
Support for regex literals. (Big thanks @999eagle) - FEATURE #13:
toLowerCase, toUpperCase, substring, substr and valueOf implemented (thanks @arbroween) - Support for
arguments
object within functions StringData
instead ofPrimitieData
to match spec- Native function signatures changed, operations added to match spec
- Primitives can now be boxed/unboxed when methods are ran on them
- Spelling edits (thanks @someguynamedmatt)
- Ability to set global values before interpreter starts (thanks @999eagle)
- Assign operators implemented (thanks @oll3)
Bug fixes: