Skip to content

Track WebAssembly/component-model#686 (web-embedding draft): post-A10 alignment watchlist #115

Description

@lannbot

WebAssembly/component-model#686 is eqrion's draft web embedding for components (binds components directly to WebIDL, replacing the Explainer's JS-API sketch; Gecko prototype behind it). It is the presumptive shape of eventual native support, so divergences between it and our embedder API are migration surface.

This issue is tracking only. The PR explicitly states it needs more iterations and is not ready for detailed review — no upstream feedback goes out from here. Revisit when the author calls for review or the draft visibly stabilizes.

Amendment A10 (#114) already took the two cheap alignments: ComponentException naming and { kind, value } variant dictionaries.

Watchlist

# Surface deltic (embedder-api.md) #686 draft Disposition
1 option-typed record fields, none case field absent on lift option<T>T? as required member → null present cosmetic-ish; would touch lift shape + bindgen types. Wait.
2 exception inheritance ComponentException extends Error + structured payload ComponentException derived from DOMException (TODO in draft) DOMException absent in bare sm/jsc shell lanes; a payload-carrying subclass would stay brand-compatible if we ever move. Wait.
3 instance import/export object shape two-level, interface-name-keyed records TODO upstream the only item with structural-change potential for us. Watch closely.
4 s64/u64 bigint long long (JS Number; BigInt throws at the JS binding) hold ours; expect the draft to move.
5 list<u8> / numeric lists Uint8Array (always a copy) sequence<octet>; no BufferSource coercion path hold ours; expect the draft to move.
6 own disposal [Symbol.dispose]/drop() + FinalizationRegistry backstop FinalizationRegistry only hold ours.
7 streams/futures Stream<T>/Future<T> handles (cancel/drop expressible) ReadableStream?/Promise — TODO in draft nothing to align to yet.
8 variant dictionary { kind, value } (adopted, A10) { kind, value } aligned; residual risk is upstream churn away from it (re-migration accepted — contract A10 note).

Re-check triggers

  • New iterations pushed to the PR (author: "needs a couple more iterations") or the PR merging.
  • The Mozilla prototype landing/shipping in Nightly.
  • WebIDL-spec coordination artifacts appearing (anonymous/non-global namespaces, per-instance interfaces).

Refs: contracts/embedder-api.md (A10 status entry + terminology note), PR #114.

Metadata

Metadata

Assignees

No one assigned

    Labels

    p3Lowest priority: watchlists, doc-only adjudications, deletion candidatesupstream-trackingBlocked on or watching an external project (spec, wasmtime, engines, toolchains)

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions