github andrewmd5/hako v1.0.0
Hako v1.0.0

latest releases: v1.0.2, v1.0.1
2 months ago

Updated Changelog

🐛 Bug Fixes

JavaScript Engine Core

  • Fixed Array.from() and TypedArray.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 redundant to_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 clock
    • performance.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

Don't miss a new hako release

NewReleases is sending notifications on new releases.