Skip to content

contracts: refresh upstream JS-API draft annotations after its redesign (#115) - #253

Merged
lannbot merged 1 commit into
mainfrom
cm686/jsapi-redesign-annotations
Aug 30, 2026
Merged

contracts: refresh upstream JS-API draft annotations after its redesign (#115)#253
lannbot merged 1 commit into
mainfrom
cm686/jsapi-redesign-annotations

Conversation

@lannbot

@lannbot lannbot commented Aug 30, 2026

Copy link
Copy Markdown
Collaborator

Docs-only refresh of the three contracts/embedder-api.md annotations
that described the upstream draft tracked in #115, stale since that PR's
2026-08-21 redesign from WebIDL web-embedding to JS-API (refs kept
non-linkifying deliberately — no backlink noise upstream):

  • Terminology note (variants): the { kind, value } dictionary
    survived the redesign, and the draft's option<option<T>> boxing now
    matches our option rule exactly — the note now says so.
  • Error model: the old parenthetical claimed the draft derives from
    DOMException and matches our exception name; both are now false. The
    redesign converged on our shape (extends Error + structured
    payload) but renamed the class. Dated correction note: rename
    deferred (breaking runtime+protocol), tracked in Track upstream CM PR 686 (JS-API redesign): post-A10 alignment watchlist #115; the draft's
    convert-any-thrown-value rule is called out as a retained divergence.
  • Platform-class pattern: the draft's resource-import story is now
    normatively this pattern (constructor satisfies the type import,
    tagged imports read off .prototype, @@isWasmResourceOf brand
    check); the mechanism description is updated from the old
    "interface object" wording.

Behavior-neutral: no code, no goldens, no version bump, no breaking
labels. Issue #115's watchlist was rewritten against the new draft in
the same pass (rows closed: s64/u64, list<u8>, disposal; rename and
null-as-none decisions deferred per operator).

Gates: just version-guard-local (PASS); docs-only otherwise, CI core
covers the rest.

…gn (#115)

The upstream draft tracked in #115 was redesigned from a WebIDL web
embedding to a JS-API (2026-08-21). Three annotations in
contracts/embedder-api.md referenced the old draft's facts:

- terminology note: the { kind, value } variant dictionary survived the
  redesign, and its nested-option boxing now matches our option rule
- Error model: the draft's exception converged on our shape (extends
  Error + structured payload; DOMException gone) but renamed itself to
  ComponentError; our rename is deferred, tracked in #115
- platform-class pattern: the draft's import story is now normatively
  this pattern (constructor + prototype reads, @@isWasmResourceOf brand)

Behavior-neutral; issue #115's watchlist rewritten in the same pass.
@lannbot
lannbot enabled auto-merge August 30, 2026 22:12
@lannbot
lannbot merged commit 9e17dc9 into main Aug 30, 2026
4 checks passed
@lannbot
lannbot deleted the cm686/jsapi-redesign-annotations branch August 30, 2026 22:17
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.

2 participants