Updated Changelog
🐛 Bug Fixes
JavaScript Engine Core
- Fixed
Array.from()
andTypedArray.from()
- Improved iterator handling and proper construction behavior - Fixed Array prototype operations - Corrected operation order in
Object.prototype.propertyIsEnumerable()
- Fixed constructor behavior - The
%TypedArray%
Intrinsic Object is now properly a constructor - Fixed string memory leak - Resolved memory leak in String constructor
- Fixed generator function prototype - Corrected GeneratorFunction prototype setup
- Fixed operation order - Corrected operation order in
js_obj_to_desc()
- Fixed detached buffer handling - Properly handle detached TypedArray in Atomics operations
- Fixed Proxy checks - Improved checks in Proxy defineProperty operations
- Fixed global variable deletion - Corrected the delete operator behavior with global variables
- Fixed setter validation - Setters cannot have rest arguments
- Fixed Proxy getOwnPropertyDescriptor - Better handling with getters and setters
- Fixed prototype comparison - Corrected Proxy prototype comparison logic
Parsing & Compilation
- Fixed destructuring parsing - Only perform destructuring in assignment expressions
- Fixed function definition parsing - Improved parsing of function definitions
- Fixed optional chaining - New keyword cannot be used with an optional chain
Memory & Performance
- Fixed buffer overflow in BSON - Prevented overflow in String and BigInt reader
- Fixed unsafe map iteration - Improved safety during map operations
- Fixed string cache - Resolved string cache issues
- Fixed memory usage tracking - Better memory accounting for various object types
TypedArrays & Binary Data
- Fixed TypedArray byte offset reading - Read byteOffset even for detached buffers
- Fixed TypedArray constructor behavior - Improved validation and construction
- Fixed atomic operations - Better detached buffer handling in Atomics
Regular Expressions
- Fixed RegExp Symbol.match - Corrected
Regexp.prototype[Symbol.match]
implementation
Error Handling
- Fixed error constructor conversion - Resolved conversion errors in error constructors
⚡ Performance Optimizations
Parsing & Compilation
- Optimized constructor parsing - Faster
js_parse_class_default_ctor()
implementation - Optimized array element access - Added
get_array_el3
opcode, removed redundantto_propkey2
opcode - Optimized numeric index handling - Improved
JS_AtomIsNumericIndex1()
with NaN handling
Memory Management
- Improved string operations - Better string handling and caching
✨ New Features
Web APIs
- Performance API - Added complete Performance intrinsic with:
performance.now()
- High-resolution timer using WASI monotonic clockperformance.timeOrigin
- Time origin relative to Unix epoch- Proper WASI clock integration for precise timing
JavaScript Language Support
- Float16Array support - Complete implementation of Float16 typed arrays including:
- Float16Array constructor and methods
- DataView Float16 support
- Math.f16round() function
- Promise.try - Added Promise.try() method for better promise handling
- RegExp.escape - Added RegExp.escape() for safe string escaping in regular expressions
Array Methods
- Added 'at' to unscopables - Array.prototype[Symbol.unscopables] now includes 'at'
Object Model
- Immutable Object.prototype - Object.prototype now has an immutable prototype
🔧 Infrastructure & Build
WebAssembly/WASI
- Disabled thread requirements - Removed threading dependencies for WASI compatibility
- Updated build configuration - Disabled atomics and shared memory features
- Fixed CI integration - Improved GitHub Actions configuration for patch script
- Disabled shared memory - Removed shared memory requirements for better compatibility
Patch Management
- Improved patch workflow - Patch script now commits changes automatically
- Simplified patch naming - Streamlined patch file naming convention
TypeScript Embedder
- Fixed async deadlock - Resolved deadlock in async synchronization operations
- Improved promise handling - Better detection and handling of already-settled promises
🔄 Internal Changes
Code Organization
- Improved error handling patterns - More consistent error handling across modules
- Better type safety - Improved type checking and conversion functions
- Enhanced debugging support - Better property inspection for debugger
Runtime Improvements
- Optimized property operations - Faster property access and modification
- Improved iterator handling - Better support for various iterator types
- Enhanced proxy operations - More spec-compliant proxy behavior