@@ -110,6 +110,7 @@ context
110110We wanted to improve this API, and the solution we thought about was to make
111111` Context ` shareable by wrapping it using ` RefCell ` . However, this proved to be
112112very difficult for two reasons:
113+
1131141 . We needed to change all definitions to take ` &RefCell<Context> ` instead
114115 of ` &mut Context ` , which meant changing pretty much the whole codebase.
1151162 . Some of our VM code was reentrant, which meant calling ` RefCell::borrow_mut `
@@ -243,8 +244,8 @@ The peculiarity about this abstract operation is that it doesn't return anything
243244Instead, it just has a special requirement:
244245
245246> The host environment must perform ` FinishLoadingImportedModule(referrer, moduleRequest, payload, result) ` ,
246- where result is either a normal completion containing the loaded ` Module Record ` or a throw completion,
247- either synchronously or asynchronously.
247+ > where result is either a normal completion containing the loaded ` Module Record ` or a throw completion,
248+ > either synchronously or asynchronously.
248249
249250Why expose the hook this way? Well, there is a clue in the previous requirement:
250251
@@ -263,7 +264,7 @@ passed to the `FinishLoadingImportedModule` abstract operation, which is why
263264the hook also has an additional requirement:
264265
265266> The operation must treat ` payload ` as an opaque value to be passed through to
266- ` FinishLoadingImportedModule ` .
267+ > ` FinishLoadingImportedModule ` .
267268
268269` payload ` is precisely that data, and it may change depending on how the module
269270is imported in the code; ` import "module" ` and ` import("module") ` are two examples
@@ -346,7 +347,7 @@ async fn load_imported_module(
346347}
347348```
348349
349- > * What about synchronous applications?*
350+ > _ What about synchronous applications?_
350351
351352The advantage of having ` JobExecutor ` be the main entry point for any Rust
352353` Future ` s that are enqueued by the engine is that an application can decide how to
@@ -355,7 +356,7 @@ that doesn't want to deal with async Rust executors can implement a completely s
355356` ModuleLoader ` and poll on all futures received by ` JobExecutor ` using something like
356357[ ` futures_lite::poll_once ` ] [ poll_once ] .
357358
358- > * Why not just block on each ` Future ` one by one instead?*
359+ > _ Why not just block on each ` Future ` one by one instead?_
359360
360361Well, there is one new built-in that was introduced on this release which heavily
361362depends on "properly" running ` Future ` s, and by "properly" we mean "not blocking
@@ -464,18 +465,18 @@ awaiting all of the items consecutively.
464465
465466``` javascript
466467// Array.fromAsync is roughly equivalent to:
467- async function toArray (asyncIterator ){
468- const arr = [];
469- for await (const i of asyncIterator) arr .push (i);
470- return arr;
468+ async function toArray (asyncIterator ) {
469+ const arr = [];
470+ for await (const i of asyncIterator) arr .push (i);
471+ return arr;
471472}
472473
473474async function * asyncIterable () {
474475 for (let i = 0 ; i < 5 ; i++ ) {
475476 await new Promise ((resolve ) => setTimeout (resolve, 10 * i));
476477 yield i;
477478 }
478- };
479+ }
479480
480481Array .fromAsync (asyncIterable ()).then ((array ) => console .log (array));
481482// [0, 1, 2, 3, 4]
@@ -523,7 +524,27 @@ Boa's virtual machine (VM) moved from a stack based VM to a register based VM in
523524
524525## New Contributors
525526
526- TODO
527+ - @zzzdong made their first contribution in https://github.com/boa-dev/boa/pull/4058
528+ - @albertleigh made their first contribution in https://github.com/boa-dev/boa/pull/4097
529+ - @heygsc made their first contribution in https://github.com/boa-dev/boa/pull/4124
530+ - @jamesthurley made their first contribution in https://github.com/boa-dev/boa/pull/4155
531+ - @lockels made their first contribution in https://github.com/boa-dev/boa/pull/4189
532+ - @changhc made their first contribution in https://github.com/boa-dev/boa/pull/4176
533+ - @created-by-varun made their first contribution in https://github.com/boa-dev/boa/pull/4198
534+ - @tomoverlund made their first contribution in https://github.com/boa-dev/boa/pull/4254
535+ - @Hemenguelbindi made their first contribution in https://github.com/boa-dev/boa/pull/4145
536+ - @Timkarx made their first contribution in https://github.com/boa-dev/boa/pull/4276
537+ - @Rafferty97 made their first contribution in https://github.com/boa-dev/boa/pull/4303
538+ - @cijiugechu made their first contribution in https://github.com/boa-dev/boa/pull/4307
539+ - @countradooku made their first contribution in https://github.com/boa-dev/boa/pull/4214
540+ - @xubaiwang made their first contribution in https://github.com/boa-dev/boa/pull/4381
541+ - @hamflx made their first contribution in https://github.com/boa-dev/boa/pull/4405
542+ - @BDeuDev made their first contribution in https://github.com/boa-dev/boa/pull/4419
543+ - @jasonmilad made their first contribution in https://github.com/boa-dev/boa/pull/4430
544+ - @hpp2334 made their first contribution in https://github.com/boa-dev/boa/pull/4453
545+ - @Gumichocopengin8 made their first contribution in https://github.com/boa-dev/boa/pull/4462
546+ - @mdrokz made their first contribution in https://github.com/boa-dev/boa/pull/4466
547+ - @rrogerc made their first contribution in https://github.com/boa-dev/boa/pull/4459
527548
528549## Looking Forward
529550
@@ -585,10 +606,8 @@ developers of the engine itself and for users of the engine. Feel free
585606to contact us in [ Matrix] .
586607
587608[ open collective ] : https://opencollective.com/boa
588- [ open issues] :
589- https://github.com/boa-dev/boa/issues?q=is%3Aopen+is%3Aissue+no%3Aassignee
590- [ contribution guide] :
591- https://github.com/boa-dev/boa/blob/main/CONTRIBUTING.md
609+ [ open issues ] : https://github.com/boa-dev/boa/issues?q=is%3Aopen+is%3Aissue+no%3Aassignee
610+ [ contribution guide ] : https://github.com/boa-dev/boa/blob/main/CONTRIBUTING.md
592611[ our website ] : https://github.com/boa-dev/boa-dev.github.io
593612[ testing representation ] : https://github.com/boa-dev/boa/issues/820
594613[ action ] : https://github.com/boa-dev/criterion-compare-action
@@ -599,13 +618,10 @@ to contact us in [Matrix].
599618Once again, big thanks to [ all the contributors] [ contributors ] of this
600619release!!!
601620
602- [ contributors] :
603- https://github.com/boa-dev/boa/graphs/contributors?from=2024-12-05&to=2025-08-30&type=c
621+ [ contributors ] : https://github.com/boa-dev/boa/graphs/contributors?from=2024-12-05&to=2025-08-30&type=c
604622[ changelog ] : https://github.com/boa-dev/boa/blob/v0.21/CHANGELOG.md
605623[ conformance ] : https://boajs.dev/boa/test262/
606624[ feed ] : https://boajs.dev/blog/rss.xml
607625[ collective ] : https://opencollective.com/boa
608- [ easy_issues] :
609- https://github.com/boa-dev/boa/issues?q=is%3Aopen+is%3Aissue+label%3AE-Easy
610- [ first_issues] :
611- https://github.com/boa-dev/boa/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22
626+ [ easy_issues ] : https://github.com/boa-dev/boa/issues?q=is%3Aopen+is%3Aissue+label%3AE-Easy
627+ [ first_issues ] : https://github.com/boa-dev/boa/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22
0 commit comments