NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #4904 most downloaded on crates.io
Boa is a Javascript lexer, parser and compiler written in Rust. Currently, it has support for some of the language.
Last release 1 months ago
28 Aug 2026
Ships fairly regularly
a new release about every 5 months
Nearly every release is documented
notes for 6 of 6 stable releases
Nothing withdrawn
no release was ever pulled
2 years old
6 releases · first in 2024
ci: add SemVer check workflow to detect API-breaking changes by @thakazuki in https://github.com/boa-dev/boa/pull/4476
Promise objects by @jedel1043 in https://github.com/boa-dev/boa/pull/4495ignoreBOM option in TextDecoder by @apoorvdarshan in https://github.com/boa-dev/boa/pull/4631%o / %O Object Formatting by @rajat552 in https://github.com/boa-dev/boa/pull/4762Address newtype for bytecode addresses by @hansl in https://github.com/boa-dev/boa/pull/4862Request.clone() and Response.clone() per Fetch Standard §7.3/§7.4 by @Nakshatra480 in https://github.com/boa-dev/boa/pull/4993FinalizationRegistry by @jedel1043 in https://github.com/boa-dev/boa/pull/5101Iterator.concat by @Nakshatra480 in https://github.com/boa-dev/boa/pull/5171Error.prototype.stack accessor property by @HalidOdat in https://github.com/boa-dev/boa/pull/4552requires_function_scope in constructor by @hpp2334 in https://github.com/boa-dev/boa/pull/4470Map and Set objects by @jedel1043 in https://github.com/boa-dev/boa/pull/4497JsError variant by @jedel1043 in https://github.com/boa-dev/boa/pull/4534ReferenceError: access of uninitialized binding in class private field initializers by @regularkevvv in https://github.com/boa-dev/boa/pull/4662Date.parse hour 24 with non-zero minutes/seconds/ms by @Ansh-699 in https://github.com/boa-dev/boa/pull/4780Date.prototype.toISOString formatting year 0 as -000000 instead of 0000 by @Ansh-699 in https://github.com/boa-dev/boa/pull/4776delete with optional chaining not actually deleting properties by @Ansh-699 in https://github.com/boa-dev/boa/pull/4720ArrayBuffer::data() by @zhuzhu81998 in https://github.com/boa-dev/boa/pull/4670vec.push(...) to push at the end by @hansl in https://github.com/boa-dev/boa/pull/4712execute_bytecode_instruction and execute_bytecode_instruction_with_budget by @zhuzhu81998 in https://github.com/boa-dev/boa/pull/4878JsSharedArrayBuffer::to_vec by @jedel1043 in https://github.com/boa-dev/boa/pull/5062NanBoxedValue related operations by @jedel1043 in https://github.com/boa-dev/boa/pull/4506environments and realm fields from the Vm by @jedel1043 in https://github.com/boa-dev/boa/pull/4507JsValue::to_property_key operation by @jedel1043 in https://github.com/boa-dev/boa/pull/4505String Error with Proper KeywordToBinaryOpError Type by @rajat552 in https://github.com/boa-dev/boa/pull/4676ForInIterator from Builtin/Intrinsic System by @rajat552 in https://github.com/boa-dev/boa/pull/4689CompletePromiseCapability opcode by @jedel1043 in https://github.com/boa-dev/boa/pull/4831undefined by @jedel1043 in https://github.com/boa-dev/boa/pull/4840super-related accesses by @jedel1043 in https://github.com/boa-dev/boa/pull/4847RegisterOperand newtype for register-typed opcode arguments by @hansl in https://github.com/boa-dev/boa/pull/4866PoisonableEnvironment layer by @zhuzhu81998 in https://github.com/boa-dev/boa/pull/4874All variant from FormatDefaults enum by @rajat552 in https://github.com/boa-dev/boa/pull/4902NativeError constructor boilerplate by @Nakshatra480 in https://github.com/boa-dev/boa/pull/4958inc_non_root_count by @shruti2522 in https://github.com/boa-dev/boa/pull/4936aws-lc-rs in favour of ring by @jedel1043 in https://github.com/boa-dev/boa/pull/5068js_error! over JsError::from_opaque by @p0lyw0lf in https://github.com/boa-dev/boa/pull/5116JsAsyncGenerator fully type safe by @jedel1043 in https://github.com/boa-dev/boa/pull/5066Overflow::Reject in Temporal.PlainTime.with by @HalidOdat in https://github.com/boa-dev/boa/pull/4490debugger as statement by @zzzdong in https://github.com/boa-dev/boa/pull/4510[[GetOwnProperty]] by @HalidOdat in https://github.com/boa-dev/boa/pull/4532Default impls with #[derive(Default)] by @linkmauve in https://github.com/boa-dev/boa/pull/4517Expression::FormalParameterList by @hpp2334 in https://github.com/boa-dev/boa/pull/4537parseInt and parseFloat by @HalidOdat in https://github.com/boa-dev/boa/pull/4542SparseElement variant for simple sparse array storage by @HalidOdat in https://github.com/boa-dev/boa/pull/4543Intl.DateTimeFormat by @nekevss in https://github.com/boa-dev/boa/pull/4378let declarations by @regularkevvv in https://github.com/boa-dev/boa/pull/4593TextDecoder.decode() did not consider DataView by @zhuzhu81998 in https://github.com/boa-dev/boa/pull/4729/[]*1/u.exec() should not panic by @Anayo-Anyafulu in https://github.com/boa-dev/boa/pull/4726TypedArray offset and length not respected by TextDecoder by @zhuzhu81998 in https://github.com/boa-dev/boa/pull/4763alreadyCalled record between Promise.allSettled resolve/reject handlers by @Ansh-699 in https://github.com/boa-dev/boa/pull/4778insta crate by @nekevss in https://github.com/boa-dev/boa/pull/4921JsArrayBuffer::to_vec for copying bytes by @alienx5499 in https://github.com/boa-dev/boa/pull/4976Bytecode is one word and VaryingOperand does not vary any more by @zhuzhu81998 in https://github.com/boa-dev/boa/pull/4978ErrorContext for Error by @linisha15 in https://github.com/boa-dev/boa/pull/5103cargo install with cached baptiste0928/cargo-install by @RishavTiwari25 in https://github.com/boa-dev/boa/pull/5180IsTypedArrayFixedLength implementation to match spec by @AlvinThorn008 in https://github.com/boa-dev/boa/pull/5262Iterator.prototype.includes proposal by @nekevss in https://github.com/boa-dev/boa/pull/5227Date.prototype.toLocaleString by @Vellumic in https://github.com/boa-dev/boa/pull/5324console.table implementation by @hunterchen7 in https://github.com/boa-dev/boa/pull/5218Date by @Vellumic in https://github.com/boa-dev/boa/pull/5411Intl.DateTimeFormat constructor with spec-mandated initialization order by @Vellumic in https://github.com/boa-dev/boa/pull/5336One column per month.
Patch release to backport a fix for a Wasm compatibility bug, and to fix our release workflow.
Patch release to backport a fix for a Wasm compatibility bug, and to fix our release workflow.
Full Changelog: v0.21...v0.21.1
Build out Temporal's ZonedDateTime and Now by @nekevss in https://github.com/boa-dev/boa/pull/4068
ZonedDateTime and Now by @nekevss in https://github.com/boa-dev/boa/pull/4068ZonedDateTime method implementations by @nekevss in https://github.com/boa-dev/boa/pull/4095JsString to JsStr by @jedel1043 in https://github.com/boa-dev/boa/pull/4106Error.isError by @jedel1043 in https://github.com/boa-dev/boa/pull/4114JobQueues by @jedel1043 in https://github.com/boa-dev/boa/pull/4111PlainDate string methods by @nekevss in https://github.com/boa-dev/boa/pull/4119JobQueue into JobExecutor and introduce NativeAsyncJob by @jedel1043 in https://github.com/boa-dev/boa/pull/4118From<Cow<'a, str>> for JsString by @CrazyboyQCD in https://github.com/boa-dev/boa/pull/4134toString and toJSON methods on Temporal builtins by @nekevss in https://github.com/boa-dev/boa/pull/4126Array.fromAsync by @jedel1043 in https://github.com/boa-dev/boa/pull/4115toString and toJSON methods for the remaining builtins Duration, PlainMonthDay, and PlainYearMonth by @nekevss in https://github.com/boa-dev/boa/pull/4135Tagged<T> into a utility crate by @HalidOdat in https://github.com/boa-dev/boa/pull/3849from_async_fn to allow capturing the context by @jedel1043 in https://github.com/boa-dev/boa/pull/4215#[boa_module] macro to automatically implement a Module by @hansl in https://github.com/boa-dev/boa/pull/4277JobExecutor::run_jobs_async a plain async method by @jedel1043 in https://github.com/boa-dev/boa/pull/4331ModuleLoaders by @jedel1043 in https://github.com/boa-dev/boa/pull/4328AsyncFnOnce in constructors of NativeAsyncJob by @jedel1043 in https://github.com/boa-dev/boa/pull/4333Atomics.waitAsync by @jedel1043 in https://github.com/boa-dev/boa/pull/4339Math.sumPrecise by @nekevss in https://github.com/boa-dev/boa/pull/4383Date.prototype.toTemporalInstant from the Temporal proposal by @nekevss in https://github.com/boa-dev/boa/pull/4382Instrinsics parameter by @mdrokz in https://github.com/boa-dev/boa/pull/4466BuiltInConstructor constants to ensure no additional allocations by @jedel1043 in https://github.com/boa-dev/boa/pull/4464) not } by @zzzdong in https://github.com/boa-dev/boa/pull/4058super within initializer of static private property by @jedel1043 in https://github.com/boa-dev/boa/pull/4121to_temporal_time and ZonedDateTime.prototype.withPlainTime by @nekevss in https://github.com/boa-dev/boa/pull/4154wasm_js feature of getrandom in boa_engine crate by @HalidOdat in https://github.com/boa-dev/boa/pull/4241--dump-ast flag by @HalidOdat in https://github.com/boa-dev/boa/pull/4337NanBoxedValue by @jedel1043 in https://github.com/boa-dev/boa/pull/4346contains_direct_eval for ordinary function by @hpp2334 in https://github.com/boa-dev/boa/pull/4453try_break macro in favour of question mark operator by @jedel1043 in https://github.com/boa-dev/boa/pull/4112to_string in cow_* by @CrazyboyQCD in https://github.com/boa-dev/boa/pull/4166Gc<T> with Rc<T> for SourceText by @HalidOdat in https://github.com/boa-dev/boa/pull/4293temporal_rs from 0.0.9 to 0.0.10 by @HalidOdat in https://github.com/boa-dev/boa/pull/4318Call::operation as cold. by @cijiugechu in https://github.com/boa-dev/boa/pull/4319Box<T> from JsValue for JsString by @HalidOdat in https://github.com/boa-dev/boa/pull/4329repr(C) on Object to prevent field reordering by @HalidOdat in https://github.com/boa-dev/boa/pull/4343/= parsed as AssignDiv by @Nikita-str in https://github.com/boa-dev/boa/pull/4048JsString conversion by @CrazyboyQCD in https://github.com/boa-dev/boa/pull/4054fjcvtzs instruction for ARMv8.3 target by @CrazyboyQCD in https://github.com/boa-dev/boa/pull/4084JsValue's internals and expose it through a JsVariant (with immutable reference) by @hansl in https://github.com/boa-dev/boa/pull/4080PlainDateTime.prototype.since by @nekevss in https://github.com/boa-dev/boa/pull/4096temporal_rs version and related changes by @nekevss in https://github.com/boa-dev/boa/pull/4098boa_tester to support sm changes by @nekevss in https://github.com/boa-dev/boa/pull/4099PropertyDescriptor functions by @raskad in https://github.com/boa-dev/boa/pull/4104cow_to_ascii_uppercase instead by @heygsc in https://github.com/boa-dev/boa/pull/4124[[DefineOwnProperty]] based on the array shape by @raskad in https://github.com/boa-dev/boa/pull/4101SourceText collection & toString() for fns and methods by @Nikita-str in https://github.com/boa-dev/boa/pull/4038setTimeout, setInterval and clearInterval (and the same clearTimeout) implementations by @hansl in https://github.com/boa-dev/boa/pull/4130PlainDateTime.prototype.round implementation from temporal_rs by @nekevss in https://github.com/boa-dev/boa/pull/4164JsValue by @HalidOdat in https://github.com/boa-dev/boa/pull/4178PlainDate.prototype.toZonedDateTime method by @nekevss in https://github.com/boa-dev/boa/pull/4233PlainDateTime::toZonedDateTime & PlainDateTime::toPlainDate implementations by @nekevss in https://github.com/boa-dev/boa/pull/4234contains operation by @HalidOdat in https://github.com/boa-dev/boa/pull/4267CallFrame by @HalidOdat in https://github.com/boa-dev/boa/pull/4269README.md by @HalidOdat in https://github.com/boa-dev/boa/pull/4270Spans to expression nodes by @HalidOdat in https://github.com/boa-dev/boa/pull/4273JsValue::mul to handle zero times a negative integer by @Rafferty97 in https://github.com/boa-dev/boa/pull/4303mimalloc as global allocator on windows by @cijiugechu in https://github.com/boa-dev/boa/pull/4314Binding modifiers to use bitflags by @cijiugechu in https://github.com/boa-dev/boa/pull/4316Gc<T> by @HalidOdat in https://github.com/boa-dev/boa/pull/4291Gc::inner_ptr by @cijiugechu in https://github.com/boa-dev/boa/pull/4317JsStr from 24 to 16 bytes by @HalidOdat in https://github.com/boa-dev/boa/pull/4322JsObject to always be size 8 by @raskad in https://github.com/boa-dev/boa/pull/4287Nullable<T> type that deserialize null to Nullable::<T>::Null by @hansl in https://github.com/boa-dev/boa/pull/4325JsString's static string tagging by @HalidOdat in https://github.com/boa-dev/boa/pull/4334Fetch API (beta) by @hansl in https://github.com/boa-dev/boa/pull/4338Box from Object's data member by @HalidOdat in https://github.com/boa-dev/boa/pull/4342Math.sumPrecise to remove SummationState by @nekevss in https://github.com/boa-dev/boa/pull/4392JumpTable instruction by @HalidOdat in https://github.com/boa-dev/boa/pull/4372JsValueStore as well as structuredClone and tests by @hansl in https://github.com/boa-dev/boa/pull/4366Temporal.PlainTime.from tests by @nekevss in https://github.com/boa-dev/boa/pull/4411Date and RegExp JsValueStore from/to by @hansl in https://github.com/boa-dev/boa/pull/4415GcRefCell by @hansl in https://github.com/boa-dev/boa/pull/4422JsValueStore for SharedArrayBuffer and postMessage by @hansl in https://github.com/boa-dev/boa/pull/4417Math.sumPrecise Performance by @Gumichocopengin8 in https://github.com/boa-dev/boa/pull/4462Full Changelog: https://github.com/boa-dev/boa/compare/v0.20...v0.21
Bump dependencies with breaking changes by @jedel1043 in https://github.com/boa-dev/boa/pull/4050
Instant for new Temporal functionality by @nekevss in https://github.com/boa-dev/boa/pull/3928Atomics.pause by @jedel1043 in https://github.com/boa-dev/boa/pull/3956debugger statement by @shurizzle in https://github.com/boa-dev/boa/pull/3976Logger trait by @hansl in https://github.com/boa-dev/boa/pull/4005TryIntoJs trait and derive macro for it by @Nikita-str in https://github.com/boa-dev/boa/pull/3999TryFromJs from JsMap for HashMap & BtreeMap by @Nikita-str in https://github.com/boa-dev/boa/pull/3998JsString by @CrazyboyQCD in https://github.com/boa-dev/boa/pull/3915Math.pow function according to ECMAScript specification by @magic-akari in https://github.com/boa-dev/boa/pull/3916neg operation by @CrazyboyQCD in https://github.com/boa-dev/boa/pull/3926AsyncGenerator by @jedel1043 in https://github.com/boa-dev/boa/pull/3950js_str macro to correctly handle latin1 strings by @jedel1043 in https://github.com/boa-dev/boa/pull/3959IntegerOrInfinity eq bug fix by @Nikita-str in https://github.com/boa-dev/boa/pull/4010RawJsString's representation to make JsStrings construction from string literal heap-allocation free by @CrazyboyQCD in https://github.com/boa-dev/boa/pull/3935ref value in nightly and add target to nightly release by @nekevss in https://github.com/boa-dev/boa/pull/4042with methods by @nekevss in https://github.com/boa-dev/boa/pull/3955JsValue::to_json fix integer property keys by @Nikita-str in https://github.com/boa-dev/boa/pull/4011Error by @CrazyboyQCD in https://github.com/boa-dev/boa/pull/4020Full Changelog: https://github.com/boa-dev/boa/compare/v0.19...v0.20.0
Implement new spec changes for AsyncGenerator by @jedel1043 in #3950
AsyncGenerator by @jedel1043 in #3950Full Changelog: v0.19...v0.19.1
AsyncGenerator by @jedel1043 in https://github.com/boa-dev/boa/pull/3950Full Changelog: https://github.com/boa-dev/boa/compare/v0.19...v0.19.1
Add release binary striping by @Razican in https://github.com/boa-dev/boa/pull/3727
let as variable names by @raskad in https://github.com/boa-dev/boa/pull/3743async in for-of loops by @raskad in https://github.com/boa-dev/boa/pull/3745ToString call in Function constructor by @HalidOdat in https://github.com/boa-dev/boa/pull/3820with statements by @raskad in https://github.com/boa-dev/boa/pull/3870return inside then by @jedel1043 in https://github.com/boa-dev/boa/pull/3879i32 and f64 by @HalidOdat in https://github.com/boa-dev/boa/pull/3760PropertyKey conversion by @HalidOdat in https://github.com/boa-dev/boa/pull/3769min <= max in clamp_finite by @jedel1043 in https://github.com/boa-dev/boa/pull/3699Context from ByteCompiler by @HalidOdat in https://github.com/boa-dev/boa/pull/3829JsStrings by @HalidOdat in https://github.com/boa-dev/boa/pull/3450js_str with js_string in examples by @getong in https://github.com/boa-dev/boa/pull/3836JsString into its own crate by @HalidOdat in https://github.com/boa-dev/boa/pull/3837FormalParameterList from CodeBlock by @HalidOdat in https://github.com/boa-dev/boa/pull/3882this value by @HalidOdat in https://github.com/boa-dev/boa/pull/3771HasProperty and Get operations when possible by @raskad in https://github.com/boa-dev/boa/pull/3883Temporal.Calendar and Temporal.TimeZone by @jedel1043 in https://github.com/boa-dev/boa/pull/3890get_unchecked method to JsString and JsStr by @CrazyboyQCD in https://github.com/boa-dev/boa/pull/3898Full Changelog: https://github.com/boa-dev/boa/compare/v0.18...v0.19
Your coding agent can read these notes before it upgrades. Set up the MCP server →