Repository navigation
Releases: Samsung/escargot
Releases · Samsung/escargot
Release list
Escargot v5.0.3
Escargot v5.0.3
Changes since v5.0.2
Memory and garbage collection
- Reduce temporary object, argument-list, array, captured-binding, and
control-flow allocations. - Stream UTF-8 script sources through bounded parser windows and prevent
string literals from retaining entire source files. - Flatten StringView chains, release cold compressible string pages, and
prevent use-after-free of reloadable and compressible string buffers. - Update GCutil to reduce leaks and avoid scanning explicitly freed objects.
- Fix incremental GC rescanning and clear vacated Vector slots before scans.
Runtime performance
- Optimize object property storage, transition sharing, inline caches, and
lexical scope storage. - Specialize TypedArray indexed access and improve Map and Set size tracking.
- Optimize switch compilation, value tagging, equality checks, and numeric
boxing, including Math results.
Correctness and portability
- Fix IteratorClose when an iterator's return method is null.
- Preserve assignment targets after rejected awaits and handle arguments
bindings without indexed storage. - Preserve ExposableObject property enumeration and correct Object
constructor property-name checks. - Reject BigInt values that are too large to materialize.
- Fix compiler and linker issues involving Clang, MSVC, GCC, PIC, and LTO.
- Fix a Test262 agent startup race and improve CI failure diagnostics.
Embedding and tooling
- Add Memory::setStackBottom and use it in the shell to establish GC roots.
- Enable compressed pointers by default on supported 64-bit hosts.
- Extend DevTools debugger previews to collections and additional objects.
- Add a shell option for incremental GC and improve memory profiling support.
- Publish Android Maven artifacts through the Android release workflow.
- Expand scheduled engine comparisons, including native ARM and Hermes.
Contributors
v5.0.2
Changes since v5.0.1
- Implement Inline cache of instance of operation (#1667)
- Fix memory corruption in GC disclaim callbacks (#1668)
- Optimize computed goto labels initialization in interpret() (#1668)
- Fix Atomics wait/notify race conditions with per-waiter condition variables (#1669)
- Smoke-test all 3 Maven release artifacts in android-release.yml
Contributors
v5.0.1
Escargot v5.0.1
Patch release — build/packaging fixes and a new UBSan CI gate, no
contributor or spec-behavior changes since v5.0.0.
Fixed
- Maven
escargot-ubuntu/escargot-machost jars no longer fail with
UnsatisfiedLinkError: libwalrus.sowhen loaded standalone — the host
jar build no longer enablesESCARGOT_WASM, matching the real Android
AAR build, and defensively bundleslibwalrus.*if it's ever present. - Tizen RPM build (
rpmbuild) no longer aborts with "Installed (but
unpackaged) file(s) found" —libgc-lib.sois now declared in
escargot.spec's%filesfor every profile subpackage. - RTOS baseline CI: QEMU boot-test timeout raised from 60s to 120s so
SunSpider isn't cut off mid-run.
Added
- New
ESCARGOT_UBSANCMake option, enabled by default on x64 Release CI
legs, catching several latent UB issues (fixed in this release):
signed-overflow multiply inMath.imul, UB shifts of signed int32_t in
left-shift/toInt32/IEEE754 code, an out-of-range1 << paramIndexin
esprima, null-pointer-at-zero-lengthmemcpys, an undersized shift
denominator in double-conversion'sstrtod, and a null-allocator
reference bind in rapidjson's stack allocator.
v5.0.0
Release Note v5.0.0
- Fully support ECMAScript 2026
- Add Node-API (N-API) support with a v10-compatible, C-style hosting API — see
docs/n-api.md - Add a Chrome DevTools Protocol debugger (breakpoints, stepping, scope/call-stack inspection, eval, restart)
- Add bare-metal/RTOS reference ports (FreeRTOS, NuttX) and arm-none-eabi support
- Add iOS device (iphoneos) build support
- Add an option to use the system-provided ICU instead of Escargot's vendored one, trading some Intl/Temporal functionality for a smaller binary
- Numerous engine performance and memory improvements (RegExp compile cache, inline caches, GC)
- Fix misc bugs/issues
Language Specification (ECMAScript 2026)
Escargot implements full of ECMAScript 2026 except a few minor features.
Multi-Platform Build
| OS | Architecture |
|---|---|
| Ubuntu | x86/x64/arm/aarch64 |
| macOS | x64/aarch64 |
| Windows | x86/x64/arm64 |
| Android | x86/x64/arm/aarch64 |
| iOS | aarch64 (simulator + device) |
What's Implemented
- Full Temporal API: PlainDate, PlainTime, PlainDateTime, PlainYearMonth, PlainMonthDay, ZonedDateTime, Duration, Instant, Now
- ShadowRealm constructor,
prototype.evaluate,prototype.importValue, wrapped functions (early-stage TC39 proposal, included in official builds via-DESCARGOT_SHADOWREALM=ON) - Iterator.concat
- Array.fromAsync
- Explicit Resource Management refinements
- Node-API (N-API) hosting API with safe GC lifetimes
- Chrome DevTools debugger
New Contributors
- @ivmai made their first contribution in #1510
- @matetokodi made their first contribution in #1531
- @kulcsaradam made their first contribution in #1545
- SAY-5 reported and fixed an out-of-bounds read in the lexer's comment/hashbang skipping (0a79d6c1f)
- @el-s1na made their first contribution in #1581
- @envia made their first contribution in #1627
Contributors
Thanks also to everyone who kept contributing this cycle:
- @kwonjeomsim (Jeonbuk National University)
- @clover2123 (Jeonbuk National University) — inline cache refactoring
- @2Jaeheon (Jeonbuk National University)
Full Changelog: v4.3.0...v5.0.0
v4.3.0
Release Note v4.3.0
- Fully support ECMAScript 2025
- Update Yarr module based on [WebKitGTK 2.48.3]
- Fix misc bugs/issues
Language Specification (ECMAScript 2025)
Escargot implements full of ECMAScript 2025 except a few minor features.
Multi-Platform Build
| OS | Architecture |
|---|---|
| Ubuntu | x86/x64/arm/aarch64 |
| macOS | x64/aarch64 |
| Windows | x86/x64 |
| Android | x86/x64/arm/aarch64 |
What's Implemented
- Explicit Resource Management
- Uint8Array to/from Base64
- Math.sumPrecise
- Error.isError
- RegExp.escape
- Float16 on TypedArrays, DataView, Math.f16round
- Promise.try
- Sync Iterator helpers
- JSON Modules
- Import Attributes
- RegExp Modifiers
- New Set methods
- Duplicate named capture groups
- Intl.DurationFormat
- Intl.NumberFormat V3
- Intl Enumeration API
- Intl.DisplayNames v2
- Extend TimeZoneName Option Proposal
- Intl.Segmenter: Unicode Segmentation in JavaScript
- Intl.DateFormat.prototype.formatRange
New Contributors
- @Moxie07 made their first contribution in #1419
- @2Jaeheon made their first contribution in #1451
- @kwonjeomsim made their first contribution in #1454
Full Changelog: v4.2.0...v4.3.0
Escargot 4.2.0
Release Note v4.2.0
- Fully support ECMAScript 2024
- Update Yarr module based on WebKitGTK 2.44.2
- Fix misc bugs/issues
- Support macOS build on arm64 (M1)
Language Specification (ECMAScript 2024)
Escargot implements full of ECMAScript 2024 except a few minor features.
- Not Supported Features
- RegExp lookbehind assertions
Multi-Platform Build
| OS | Architecture |
|---|---|
| Ubuntu | x86/x64/arm/aarch64 |
| macOS | x64/aarch64 |
| Windows | x86/x64 |
| Android | x86/x64/arm/aarch64 |
Escargot 4.1.1
Release Note v4.1.1
- Fully support ECMAScript 2023
- Fix misc bugs/omitted functions
- Update TCO debug mode
Escargot 4.1.0
Release Note v4.1.0
- Update WebAssembly engine
- Apply several optimizations for performance improvement
- Fix misc bugs/issues
- Add a build option
ESCARGOT_USE_EXTENDED_APIto enable non-standard features such as Template, Error Callback used by specific third-parties.
WebAssembly
- Using Walrus engine linked by wasm-c-api
- Walrus supports interpreter and JITC mode both
- Walrus JITC employs sljit as backend compiler
Optimization
- Advanced Inline Caching: broaden the target range of object's property access cases
- Tail Call Optimization (TCO): apply general TCO approach and specialized TCO for recursive tail calls.
Escargot 4.0.0
Release Note v4.0.0
- Support ECMAScript2022
- Enable WebAssembly
- Support multi platform build
- Several optimizations for memory and performance updated
- Fixed major/minor bugs
Language Specification (ECMAScript 2022)
Escargot implements full of ECMAScript 2022 except a few minor features.
- Not Supported Features
- RegExp lookbehind assertions
WebAssembly
- Using wabt engine linked by wasm-c-api
- Support WebAssembly Core Specification Release 1.0 (https://www.w3.org/TR/wasm-core-1/)
- Support WebAssembly JavaScript Interface 1.0 (https://www.w3.org/TR/wasm-js-api-1/)
Multi-Platform Build
| OS | Architecture |
|---|---|
| Ubuntu | x86/x64/arm/aarch64 |
| macOS | x64 |
| Windows | x86 |
| Android | x86/x64/arm/aarch64 |
Escargot 3.0.0
Release Note v3.0.0
- Escargot now fully supports ES10
- Debugger core features updated
- Several optimizations for memory and performance updated
- Fixed major/minor bugs
Language Specification (ECMAScript 2019)
Escargot implements full of ECMAScript 2019 except a few minor features.
- Not Supported Features
- Shared-Memory
- Atomics
- RegExp lookbehind assertions
Debugger Implementation
- Breakpoint management
- Execution control
- Getting debug info(backtrace, variable)
- Debugger script tools
Enhancements
- Source code compression
- Lazy AtomicString initialization
- Improve performance of property map
- Improve Vector extension logic