Bug Fixes
- String NaN-boxing in function calls —
is_stringlocals (I64 raw pointers) passed to functions expecting F64 now usejs_nanbox_string(STRING_TAG0x7FFF) instead ofinline_nanbox_pointer(POINTER_TAG0x7FFD). FixestextfieldGetStringreturn values becomingundefinedwhen used inencodeURIComponent,||, or cross-module calls (GH-10, GH-11, GH-12) - JS interop string args —
js_call_functionandjs_native_call_methodfallback paths now properly NaN-box string arguments with STRING_TAG instead of raw I64→F64 bitcast
Performance
- Direct object field access —
PropertyGet/PropertySeton variables assigned from object literals now use direct offset loads/stores (24 + idx*8) instead ofjs_object_get_field_by_nameruntime lookup, when field ordering is known at compile time - Object field cache upgraded — 3-tuple entries
(keys_ptr, key_hash, field_index)for collision safety, 1024 entries (up from 512)