Skip to content

fix(async_hooks): complete Node lifecycle parity - #8671

Draft
proggeramlug wants to merge 7 commits into
PerryTS:mainfrom
proggeramlug:fix/6764-async-hooks-complete
Draft

fix(async_hooks): complete Node lifecycle parity#8671
proggeramlug wants to merge 7 commits into
PerryTS:mainfrom
proggeramlug:fix/6764-async-hooks-complete

Conversation

@proggeramlug

Copy link
Copy Markdown
Contributor

Fixes #6764

Summary

  • complete async hook mutation, resource identity, Promise trigger, and execution-resource behavior
  • propagate AsyncLocalStorage across timers, promises, ESM, streams, workers, fs, DNS, crypto, zlib, net, HTTP(S), TLS, readline, and event iterators
  • implement AsyncResource and EventEmitterAsyncResource subclass/lifecycle semantics, including bound resource accessors
  • attach Node provider init/before/after/destroy lifecycles to the full issue fixture matrix
  • preserve external net/TLS routing while keeping server and TLSSocket surfaces available

Validation

  • broad affected-crate cargo check
  • exact 194-fixture async_hooks parity run pending final post-rebase execution

No version bump.

@coderabbitai

coderabbitai Bot commented Aug 23, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@proggeramlug

Copy link
Copy Markdown
Contributor Author

Needs a rebase onto current main (7ad718ab4) — conflicts now, so I can't land it as-is.

The collision came from f5739b532 (the #8661 / #8656 / #8666 / #8662 / #8660 batch), which split class_registry.rs into a class_registry/ module directory, which I merged while this PR was open. Conflicting files:

  • crates/perry-codegen/src/expr/this_super_call.rs
  • crates/perry-runtime/src/object/class_registry/parent_static.rs
  • crates/perry-runtime/src/object/class_registry/prototype_objects.rs

Note the last two are in the new submodule layout, so paths that were single-file before now resolve differently.

Everything else in the PR auto-merges, so this should be a contained rebase. Ping me when it's pushed and I'll re-run the batch validation (9 ratchet gates + cargo fmt --check, perry-codegen --lib, perry-runtime --lib at RUST_TEST_THREADS=1) and land it.

@proggeramlug
proggeramlug force-pushed the fix/6764-async-hooks-complete branch from 9f85a93 to 677f055 Compare August 24, 2026 13:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[parity] node:async_hooks — 113 failing node-suite tests (2026-07-22 baseline)

1 participant