Conversation
Web IDL overload resolution treats functions as objects, accepts a null iterator as missing, and retrieves the iterator method only once. Reuse that method during sequence conversion in both postMessage entry points. Signed-off-by: Filip Skokan <panva.ip@gmail.com> Assisted-by: Codex
Web IDL converts every argument before entering the method algorithm. Perform all USVString conversions before rejecting module workers or parsing URLs, so later conversions can throw or revoke blob URLs first. Signed-off-by: Filip Skokan <panva.ip@gmail.com> Assisted-by: Codex
Evaluate blob module sources under their original URL instead of rewrapping them in a data URL. This preserves import.meta.url and module identity while retaining the captured source after URL revocation. Signed-off-by: Filip Skokan <panva.ip@gmail.com> Assisted-by: Codex
The outside port must serialize and transfer messages even when it has no peer. Retain that port after the backing thread exits and create a closed port when the entry script fetch fails. This preserves clone errors and transfer side effects in both cases. Signed-off-by: Filip Skokan <panva.ip@gmail.com> Assisted-by: Codex
Close the outside port and remove its message forwarding listeners synchronously. Closing the port alone is asynchronous and can leave queued messages dispatching when terminate() runs inside a listener. Allow the current event to finish while discarding subsequent messages, including those drained when the backing thread exits. Signed-off-by: Filip Skokan <panva.ip@gmail.com> Assisted-by: Codex
Collaborator
|
Review requested:
|
avivkeller
reviewed
Sep 27, 2026
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #66354 +/- ##
=======================================
Coverage 90.36% 90.36%
=======================================
Files 792 792
Lines 275386 275446 +60
Branches 52775 52792 +17
=======================================
+ Hits 248843 248916 +73
+ Misses 16979 16949 -30
- Partials 9564 9581 +17
🚀 New features to boost your workflow:
|
This comment has been minimized.
This comment has been minimized.
addaleax
approved these changes
Sep 28, 2026
jasnell
approved these changes
Sep 28, 2026
Signed-off-by: Filip Skokan <panva.ip@gmail.com> Assisted-by: Codex
panva
force-pushed
the
webworker-spec
branch
from
September 28, 2026 11:25
ce7ec43 to
06ef7b4
Compare
This comment has been minimized.
This comment has been minimized.
avivkeller
approved these changes
Sep 28, 2026
Contributor
Failed to resume CIFull Auto Start CI output |
Collaborator
Collaborator
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fix five Web Worker deviations from HTML and Web IDL:
postMessage()overload resolution for callable iterables and null iterators, and retrieveSymbol.iteratoronly once.importScripts()arguments before rejecting module workers or parsing URLs.import.meta.url.terminate(), including when called from a message handler, while allowing the current event to finish.