Bug 247396
Summary: | [WASM-Function-References] Add support for local initialization tracking | ||
---|---|---|---|
Product: | WebKit | Reporter: | Asumu Takikawa <asumu> |
Component: | WebAssembly | Assignee: | Nobody <webkit-unassigned> |
Status: | RESOLVED FIXED | ||
Severity: | Normal | CC: | webkit-bug-importer |
Priority: | P2 | Keywords: | InRadar |
Version: | WebKit Nightly Build | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Bug Depends on: | |||
Bug Blocks: | 247393 |
Asumu Takikawa
The typed function references proposal introduces non-defaultable types such as `(ref $t)`. References that inhabit those types must be initialized, and can't be used in an uninitialized state (like null).
As a result, it's necessary to track local initialization state somehow so that `local.get` can be disallowed on uninitialized references, and have a defined result on initialized locals.
The issue tracking the spec algorithm: https://github.com/WebAssembly/function-references/pull/63
The chosen algorithm for this is "1a" from here: https://github.com/WebAssembly/function-references/issues/44#issuecomment-1136373660 (initialization state is reset after each block)
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Radar WebKit Bug Importer
<rdar://problem/102166692>
Asumu Takikawa
Pull request: https://github.com/WebKit/WebKit/pull/16713
EWS
Committed 267309@main (83c1c1073f0f): <https://commits.webkit.org/267309@main>
Reviewed commits have been landed. Closing PR #16713 and removing active labels.