Skip to content

Releases: Samsung/escargot

Escargot 4.2.0

31 Oct 06:58
Compare
Choose a tag to compare

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

02 Jul 04:35
Compare
Choose a tag to compare

Release Note v4.1.1

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

Escargot 4.1.0

14 May 01:56
Compare
Choose a tag to compare

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

05 Apr 04:30
Compare
Choose a tag to compare

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

04 Jun 10:35
Compare
Choose a tag to compare

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

Escargot 2.0.0

15 Nov 01:52
Compare
Choose a tag to compare

Release Note v2.0.0

  • Escargot now fully supports ES6.0.
  • Several optimizations for memory and performance updated.
  • Fixed major/minor bugs

Language Specification (ECMAScript 2015)

Escargot implements full of ECMAScript 6.0.

Enhancements

  • Parsing Optimization (over 50% parsing performance improvement)
  • Revise Public API
  • Update Submodules (Yarr, GC) to the latest version

Escargot 1.0.0

15 Nov 01:24
Compare
Choose a tag to compare

Release Note v1.0.0

Escargot is a memory optimized JavaScript engine for mid-range devices such as mobile phone, tablet and TV. This is the first stable release of Escargot.

Language Specification (ECMAScript)

Escargot implements full of ECMAScript 5.1 and part of ECMAScript 6.0.

ES5.1

ES5 specification is fully supported with Escargot.

ES6.0

supported

Object type Implemented Feature Property Type Note
TypedArray Objects TypedArray () constructor Currently it works expectedly only with arraylength less than 210000000
TypedArray (length) constructor
TypedArray (buffer [, byteOffset [, length]]) constructor
TypedArray.prototype.indexOf (searchElement [, fromIndex]) method
TypedArray.prototype.lastIndexOf (searchElement [, fromIndex]) method
TypedArray.prototype.set (array [, offset]) method
TypedArray.prototype.set (typedArray [, offset]) method
TypedArray.prototype.subarray ([begin [, end]]) method
TypedArray.BYTES_PER_ELEMENT data property
TypedArray.prototype.BYTES_PER_ELEMENT data property
TypedArray.prototype.constructor data property
TypedArray.prototype.copyWithin (target, start [, end]) method
TypedArray.prototype.every (callbackfn [, thisArg]) method
getter of TypedArray.prototype.byteLength accessor property
getter of TypedArray.prototype.byteOffset accessor property
getter of TypedArray.prototype.length accessor property
getter of TypedArray.prototype.buffer accessor property
ArrayBuffer Objects ArrayBuffer (length) constructor
ArrayBuffer.isView (arg) function
getter of ArrayBuffer.prototype.byteLength accessor property
ArrayBuffer.prototype.constructor data property
ArrayBuffer.prototype.slice (start, end) method
DataView Objects DataView (buffer [, byteOffset [, byteLength]]) constructor
getter of DataView.prototype.buffer accessor property
getter of DataView.prototype.byteLength accessor property
getter of DataView.prototype.byteOffset accessor property
DataView.prototype.constructor data property
DataView.prototype.[get | set][Float32 | Float64 | Int8 | Int16 | Int32 | Uint8 | Uint16 | Uint32] (byteOffset [, littleEndian)) method
Promise Objects Promise (executor) constructor
Promise.all (iterable) function
Promise.race (iterable) function
Promise.reject (r) function
Promise.resolve (x) function
Promise.prototype.catch (onRejected) method
Promise.prototype.then (onFulfilled, onRejected) method

Modules

  • Parser (based on esprima) : translate the source code into AST nodes
  • ByteCodeGenerator : generate register-based bytecode
  • Interpreter : interpret the bytecode sequentially
  • GC (based on Boehm-Demers-Weiser GC) : automatically free memory