New ECMAScript features
Support for Promises
With this new release Boa ships support for ECMAScript Promises. All tests in the 262 test suite
Promises enable asynchronous operations to be executed via an internal job queue. Starting with our work on Promises,
we have stopped ignoring the 262 tests that are flagged as
async. We also have enabled our 262 test runner to work
with asynchronous tests. We would like to thank @aaronmunsters for proposing
the initial PR for Promises (#1923) that we then could expand on.
// This program will print:
// 1. End of synchronous execution.
// 2. The Promise has been resolved.
let promise = Promise.resolve();
promise.then(() => console.log("2. The Promise has been resolved."));
console.log("1. End of synchronous execution.");
Support for Async/Await
The implementation of Promises has enabled us to implement async functions and the await keyword. The async/await syntax
for await...of loops and the
await keyword. While not all tests pass for these features yet, the basic functionality
Support for URI encoding and decoding functions
This version for Boa ships with support for the built-in URI encoding and decoding functions
decodeURIComponent. With the exception of UTF-16 related test, all test in the relevant 262
test suites pass for these functions.
How can you contribute to Boa?
We are also looking to improve the documentation of the engine, both for developers of the engine itself and for users of the engine. Feel free to contact us in Discord.
Last but certainly not least, a big Thank You to all the contributors of this Boa release. We would like to particularly thank our new contributors: