Releases: Samsung/escargot
Releases · Samsung/escargot
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
Escargot 2.0.0
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
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