You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
async_hooks prototype-metadata test fails on Linux main: compiled fixture sees AsyncLocalStorage/AsyncResource prototype methods as missing #9980
crates/perry/tests/issue_6764_async_hooks_prototype_metadata.rs::async_hooks_constructors_expose_real_prototype_methods fails on main on Linux x86_64 (perrymaster, Node 26.5.1, nightly-2026-08-20), independent of any PR. The compiled fixture reports every AsyncLocalStorage.prototype.* / AsyncResource.prototype.* method as missing, then throws when it calls one.
Reproduction (main @ 8b7dc33, fresh worktree, the CI job's own command)
cargo build --release -p perry-runtime-static -p perry-stdlib-static && \
PERRY_RUNTIME_DIR=$PWD/target/release cargo test -p perry --test issue_6764_async_hooks_prototype_metadata async_hooks_constructors_expose_real_prototype_methods
Result (144 s, rc=101):
test async_hooks_constructors_expose_real_prototype_methods ... FAILED
panicked at crates/perry/tests/issue_6764_async_hooks_prototype_metadata.rs:100:5: compiled fixture failed, status: ExitStatus(unix_wait_status(256))
fixture stdout:
storage: constructor:AsyncLocalStorage/0|run:missing|getStore:missing|enterWith:missing|exit:missing|disable:missing
resource: constructor:AsyncResource/1|asyncId:missing|triggerAsyncId:missing|emitDestroy:missing|runInAsyncScope:missing|bind:missing
fixture stderr:
TypeError: Function.prototype.call was called on a value that is not a function at <anonymous>
The same output, byte for byte, appears on the branch of #9958 (the job that first surfaced it locally); a replay of that branch's parent is what attributed it to main.
What is known
The fixture reads AsyncLocalStorage.prototype.run etc. as plain property reads and checks typeof value === "function"; all read as non-functions, so the failure is in how the compiled program sees the native classes' prototype methods (codegen exposes AsyncLocalStorage/AsyncResource as native-instance classes: lower_call/builtin.rs, expr/instance_misc1.rs, this_super_call.rs), not in the later .call.
Fix or attribute: run the command above on Linux main; if it is Linux-only, find the platform-dependent piece of the native-class prototype exposure. Until then, treat this job as known-red-on-main in local replays (see #9974).
Activity