Closed Bug 1850627 (wasm-jspi-proto) Opened 1 year ago Closed 5 months ago

Initial WebAssembly JS Promise Integration proposal implementation

Categories

(Core :: JavaScript: WebAssembly, task, P1)

task

Tracking

()

RESOLVED FIXED
127 Branch
Tracking Status
firefox127 --- fixed

People

(Reporter: yury, Assigned: yury)

References

(Blocks 2 open bugs)

Details

Attachments

(4 files, 1 obsolete file)

Add support for the WebAssembly JavaScript-Promise Integration Proposal at https://github.com/WebAssembly/js-promise-integration/blob/main/proposals/js-promise-integration/Overview.md.

Attached file demo_pi.js

Bare minimum to make demo_pi.js work.

Currently there are limitations we need to expect (based on https://v8.dev/blog/jspi):

  • Only JS-to-wasm exports and wasm-to-JS imports are supported.
  • It is not possible for instance to call a re-imported wasm export and suspend when it returns a Promise.
  • Each call to a JSPI export runs on a separate stack. (984kB ?)

Yury, should this be a Meta bug for the Promises proposal?

Severity: -- → N/A
Flags: needinfo?(ydelendik)
Priority: -- → P1

(In reply to Steven DeTar [:sdetar] from comment #4)

Yury, should this be a Meta bug for the Promises proposal?

Yep, we can make this one as a meta bug if one is needed.

Flags: needinfo?(ydelendik)
Attachment #9351813 - Attachment description: WIP: Bug 1850627 - Stack switching WIP. → WIP: Bug 1850627 - Promise integration WIP.
Attachment #9351813 - Attachment is obsolete: true
Attachment #9378059 - Attachment description: WIP: Bug 1850627 - Promise integration WIP, no stackroots manipulations. → WIP: Bug 1850627 - Promise integration WIP.
Attached file demo_pi_new.js
Depends on: 1885982
Depends on: 1886432
Attachment #9378059 - Attachment description: WIP: Bug 1850627 - Promise integration WIP. → Bug 1850627 - Promise integration WIP.
Attachment #9389537 - Attachment description: WIP: Bug 1850627 - New JSPI API prototyping → Bug 1850627 - New JSPI API prototyping
Attachment #9378059 - Attachment description: Bug 1850627 - Promise integration WIP. → WIP: Bug 1850627 - Promise integration WIP.
Attachment #9378059 - Attachment description: WIP: Bug 1850627 - Promise integration WIP. → Bug 1850627 - Wasm JS Promise integration basics.
Attachment #9378059 - Attachment description: Bug 1850627 - Wasm JS Promise integration basics. → Bug 1850627 - Wasm JS Promise integration basics. r=rhunt
Attachment #9389537 - Attachment description: Bug 1850627 - New JSPI API prototyping → Bug 1850627 - New JSPI API prototyping. r=rhunt
Depends on: 1893002
Depends on: 1893005
Depends on: 1893008
Depends on: 1893009
Pushed by ydelendik@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/b2471baacff1
Wasm JS Promise integration basics. r=rhunt
https://hg.mozilla.org/integration/autoland/rev/e3f0e435494f
New JSPI API prototyping. r=rhunt
Status: ASSIGNED → RESOLVED
Closed: 5 months ago
Resolution: --- → FIXED
Target Milestone: --- → 127 Branch
Depends on: 1893212
Regressions: 1893838
Type: enhancement → task
Depends on: 1894759
Depends on: 1895803
Depends on: 1895925
Depends on: 1896218
Depends on: 1897153
Depends on: 1897809
Alias: wasm-jspi → wasm-jspi-proto
Summary: Support WebAssembly JS Promise Integration proposal → Initial WebAssembly JS Promise Integration proposal implementation
Blocks: wasm-jspi
No longer depends on: 1893009
No longer depends on: 1894759
No longer depends on: 1895925
No longer depends on: 1893002
No longer depends on: 1896218
No longer depends on: 1897153
No longer depends on: 1897809
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: