MIRROR: javascript for 馃悳's, a tiny runtime with big ambitions ant.themackabu.dev

fix use-after-free by scanning WeakMap entries during mark phase master

additional correctness fixes: - Mark await_coro in gc_mark_promise_handler via gc_mark_coroutine - Defer active_async_coro unlinking until after js_resolve/reject_promise in sv_start_tla, sv_start_async_closure, and resume_coroutine_if_suspended, so the coroutine's VM is scanned if GC triggers during promise resolution - Walk prototype chain in js_for_in_keys for spec-compliant for...in - Refactor Object.assign to use an is_enumerable_prop helper