Bug Fixes
- x86_64 module-local function dispatch: Function wrappers for
.map(resolveType)callbacks usedLinkage::Exporteven for non-exported functions. When two modules shared the same filename and function names (e.g., twocontract.tsfiles both withresolveType), the linker resolved the wrong wrapper. Non-exported wrappers now useLinkage::Local. obj[c.name]garbage on any-typed objects:is_string_index_expr_getno longer returnsfalsefor all PropertyGet on non-string objects — now defaults to string except for known class instances with numeric fields.- Union-typed
obj[intKey]wrong dispatch:is_unionadded tois_known_arraycheck sojs_dynamic_array_get(which handles arrays at runtime) is used instead of string-key property lookup. - Cross-module
await Promise<[T, T]>tuple indexing:Type::Tupleadded to the Await expression-inference handler's inner_type match for correctis_arrayflag on resolved value. - Bug #8 regression reverted: Broad
Tupleadditions tois_typed_pointer/is_typed_arraycaused SIGBUS on complex module graphs; reverted to minimal one-line fix.
Features
Promise.race: Full implementation —js_promise_raceruntime function iterates promise array, attaches resolve/reject handlers with first-wins semantics, handles already-settled promises and non-promise values.
Previous (v0.4.46)
String.replaceAll,String.matchAll,arr.shift()?.method()fix,Buffer.subarray/slice, SQLite params/pragma/transaction,.lengthon Call results, x86_64 overload dispatch fix