Skip to content

Releases: Samsung/escargot

Escargot v5.0.3

Choose a tag to compare

@ksh8281 ksh8281 released this 06 Oct 08:20

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

Choose a tag to compare

@github-actions github-actions released this 11 Sep 11:41

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

Choose a tag to compare

@github-actions github-actions released this 10 Sep 01:46

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-mac host jars no longer fail with
    UnsatisfiedLinkError: libwalrus.so when loaded standalone — the host
    jar build no longer enables ESCARGOT_WASM, matching the real Android
    AAR build, and defensively bundles libwalrus.* if it's ever present.
  • Tizen RPM build (rpmbuild) no longer aborts with "Installed (but
    unpackaged) file(s) found" — libgc-lib.so is now declared in
    escargot.spec's %files for 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_UBSAN CMake option, enabled by default on x64 Release CI
    legs, catching several latent UB issues (fixed in this release):
    signed-overflow multiply in Math.imul, UB shifts of signed int32_t in
    left-shift/toInt32/IEEE754 code, an out-of-range 1 << paramIndex in
    esprima, null-pointer-at-zero-length memcpys, an undersized shift
    denominator in double-conversion's strtod, and a null-allocator
    reference bind in rapidjson's stack allocator.

v5.0.0

Choose a tag to compare

@github-actions github-actions released this 09 Sep 02:45

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

Contributors

Thanks also to everyone who kept contributing this cycle:

Full Changelog: v4.3.0...v5.0.0

v4.3.0

Choose a tag to compare

@ksh8281 ksh8281 released this 21 Aug 08:36
1577634

Release Note v4.3.0

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

Full Changelog: v4.2.0...v4.3.0

Escargot 4.2.0

Choose a tag to compare

@clover2123 clover2123 released this 31 Oct 06:58

Release Note v4.2.0

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

Choose a tag to compare

@clover2123 clover2123 released this 02 Jul 04:35

Release Note v4.1.1

  • Fully support ECMAScript 2023
  • Fix misc bugs/omitted functions
  • Update TCO debug mode

Escargot 4.1.0

Choose a tag to compare

@clover2123 clover2123 released this 14 May 01:56

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_API to enable non-standard features such as Template, Error Callback used by specific third-parties.

WebAssembly

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

Choose a tag to compare

@clover2123 clover2123 released this 05 Apr 04:30

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

Multi-Platform Build

OS Architecture
Ubuntu x86/x64/arm/aarch64
macOS x64
Windows x86
Android x86/x64/arm/aarch64

Escargot 3.0.0

Choose a tag to compare

@clover2123 clover2123 released this 04 Jun 10:35

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