Move componentize-js to the lann fork and adopt its eager-settlement fix - #31
Merged
Conversation
Collaborator
Author
|
The red conformance check here is #32 — the TLS pin checkout breakage that fails every CI run in this repository today, including this PR's doc-only first push. #33 fixes it and is green. Once #33 lands, merging main into this branch will turn this PR green; the bump itself passed all 55 conformance cases on both jco legs before the composed leg's build aborted, plus |
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.
Repoint the componentize-js references (shim header, library README) at
the lann/componentize-js fork, and bump the pin to its head
f417fa6d5f74, which mergeslann/componentize-js#1:
the eager (returned-immediately) async-import path now settles
result<>-typed imports spec-shaped — ok payload unwrapped, err rejectedas
ComponentError— instead of resolving with the raw{ tag, val }wrapper.
Unlike the webcrypto sibling's shim,
websocket.jsperforms nosettlement normalization:
connect,send, andreceiveare allresult<>-typed async imports whose settlements it consumes directly(
message.tag === "string", try/catch for errors). On the previous pin,an import that completed without suspending — e.g.
receivewith amessage already buffered — would surface the raw wrapper as if it were
the message variant. The bump delivers the fix this shim's assumptions
require.
With the fix in the pin, the parity/smoke transpiles no longer need
jco's
--no-eager-subtask-return(the workaround that answered everyasync-lowered import with a subtask so the guest's broken
returned-immediately lowering was never reached); the flag is dropped
from the three transpile scripts and the now-unused option plumbing from
scripts/jco-transpile.mjs. That the flag was load-bearing — and thatthe parity suite really exercises the eager path — was verified by
running the flag-less round trip against the old toolchain
(
COMPONENTIZE_JSescape hatch): it hangs until the harness timeout;on the pinned toolchain it matches the baseline.
The digests in
componentize-js.sha256are the webcrypto sibling'snewly published and attestation-verified builds, per that file's
sourcing note (both repositories pin the same revision; see
polymorph-components/polymorph-webcrypto#344).
Verified locally on the new toolchain:
just wpt::smokeandjust wpt::parity(round trip matches the 50-pass baseline, zerolosses).