Skip to content

Move componentize-js to the lann fork and adopt its eager-settlement fix - #31

Merged
lann merged 4 commits into
mainfrom
componentize-js-lann-fork
Aug 6, 2026
Merged

Move componentize-js to the lann fork and adopt its eager-settlement fix#31
lann merged 4 commits into
mainfrom
componentize-js-lann-fork

Conversation

@lann

@lann lann commented Aug 6, 2026

Copy link
Copy Markdown
Collaborator

Repoint the componentize-js references (shim header, library README) at
the lann/componentize-js fork, and bump the pin to its head
f417fa6d5f74, which merges
lann/componentize-js#1:
the eager (returned-immediately) async-import path now settles
result<>-typed imports spec-shaped — ok payload unwrapped, err rejected
as ComponentError — instead of resolving with the raw { tag, val }
wrapper.

Unlike the webcrypto sibling's shim, websocket.js performs no
settlement normalization: connect, send, and receive are all
result<>-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. receive with a
message 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 every
async-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 that
the parity suite really exercises the eager path — was verified by
running the flag-less round trip against the old toolchain
(COMPONENTIZE_JS escape hatch): it hangs until the harness timeout;
on the pinned toolchain it matches the baseline.

The digests in componentize-js.sha256 are the webcrypto sibling's
newly 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::smoke and
just wpt::parity (round trip matches the 50-pass baseline, zero
losses).

@lann lann changed the title Point componentize-js references at the lann/componentize-js fork Move componentize-js to the lann fork and adopt its eager-settlement fix Aug 6, 2026
@lann

lann commented Aug 6, 2026

Copy link
Copy Markdown
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 wpt::smoke and wpt::parity locally.

@lann
lann enabled auto-merge (rebase) August 6, 2026 16:54
@lann
lann merged commit e0dfc67 into main Aug 6, 2026
2 checks passed
@lann
lann deleted the componentize-js-lann-fork branch August 6, 2026 17:52
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.

1 participant