
A promising feature: JavaScript Promise Integration with Francis McCabe - WasmAssembly
08/26/24 • 52 min
In this episode, Thomas Steiner chats with Francis McCabe from Google, who's the champion of the JavaScript Promise Integration and the Stack Switching proposals. They go from talking about synchronous assumptions in code over to discussing the JavaScript Promise Integration (JSPI) proposal and how to use it in practice, its performance implications, and how to use it in practice. After exploring a neat side effect of JSPI, namely lazy loading, the fall into the rabbit hole of comparing JSPI to the upcoming ES module integration of Wasm. Finally, Francis gives an overview of his other early stage Stack Switching proposal.
Resources: The Paper introducing Go! → https://goo.gle/3AiyCrY The JSPI proposal → https://goo.gle/3yxfkOM JSPI entering origin trial → https://goo.gle/4cjprok JSPI origin trial → https://goo.gle/4cmjxD4 Introducing JSPI → https://goo.gle/3YEPT90 The new JSPI API → https://goo.gle/4cie1RN The JSPI API change → https://goo.gle/4cie1RN Code example → https://goo.gle/3Arlq3P Stack-Switching Proposal for WebAssembly → https://goo.gle/3Ar2KRM The Vivant series → https://goo.gle/46Htp97
In this episode, Thomas Steiner chats with Francis McCabe from Google, who's the champion of the JavaScript Promise Integration and the Stack Switching proposals. They go from talking about synchronous assumptions in code over to discussing the JavaScript Promise Integration (JSPI) proposal and how to use it in practice, its performance implications, and how to use it in practice. After exploring a neat side effect of JSPI, namely lazy loading, the fall into the rabbit hole of comparing JSPI to the upcoming ES module integration of Wasm. Finally, Francis gives an overview of his other early stage Stack Switching proposal.
Resources: The Paper introducing Go! → https://goo.gle/3AiyCrY The JSPI proposal → https://goo.gle/3yxfkOM JSPI entering origin trial → https://goo.gle/4cjprok JSPI origin trial → https://goo.gle/4cmjxD4 Introducing JSPI → https://goo.gle/3YEPT90 The new JSPI API → https://goo.gle/4cie1RN The JSPI API change → https://goo.gle/4cie1RN Code example → https://goo.gle/3Arlq3P Stack-Switching Proposal for WebAssembly → https://goo.gle/3Ar2KRM The Vivant series → https://goo.gle/46Htp97
Previous Episode

String built-ins with Mozilla's Ryan Hunt - WasmAssembly
In this episode, Thomas Steiner interviews Mozilla's Ryan Hunt, who's the champion of the string built-ins proposal. They first discuss Ryan's way into Mozilla and his role in the SpiderMonkey team, and then dive deep into the string built-ins proposal and some challenges and rabbit holes with it.
Resources: Ryan Hunt on LinkedIn → https://goo.gle/3Wxcfqb
SpiderMonkey blog → https://goo.gle/3Ww8ReX
WasmGC proposal → https://goo.gle/3Sz2CG7
Google Sheets WasmGC → https://goo.gle/4foOXv7
BrowserTech podcast episode with Row Zero → https://goo.gle/3SyfAUR
String Built-ins proposal → https://goo.gle/3LPXzxw
Potential other built-ins → https://goo.gle/4d445fL
Lin Clark's post on calls between JavaScript and WebAssembly being finally fast → https://goo.gle/3WNoeRV
The problems with `this` and operators like `===` → https://goo.gle/3WrWGA8
Using built-ins → https://goo.gle/3LONEIk
Polyfilling built-ins → https://goo.gle/4fpW4DJ
Scheme Wasm compiler → https://goo.gle/3Syg6lL
OCaml compiler → https://goo.gle/3A4Qs1B
Compact impact section proposal → https://goo.gle/4d5rBZQ
Compact impact section slides → https://goo.gle/4d7NU12
Memory64 proposal → https://goo.gle/4fqmghr
Seinfeld → https://goo.gle/3YyxpHb
Frasier → https://goo.gle/46CiRYT
Scrubs → https://goo.gle/3AiWhbu
Culver's restaurants → https://goo.gle/3LLRyBZ
Menards home improvement store → https://goo.gle/3WJpiWG
Ryan on GitHub → https://goo.gle/3A9BSG4
Next Episode

Exploring the Bytecode Alliance with Cosmonic's Bailey Hayes - WasmAssembly
In this episode, your host Thomas Steiner chats with Cosmonic's CTO and Bytecode Alliance technical steering committee and board member, Bailey Hayes, about the exciting world of WebAssembly at her company, and specifically at the Bytecode Alliance. After exploring how Cosmonic makes use of WASI for their wasmCloud product, they get into details about the Bytecode Alliance, the workstreams and projects hosted there, and how to work with it.
Resources:
Bailey Hayes on LinkedIn → https://goo.gle/47xpA6M
Cosmonic's post welcoming Bailey → https://goo.gle/3ZzM1Gy
WebAssembly on the factory floor → https://goo.gle/3ZynB01
What is Cosmonic → https://goo.gle/4ethuhW
jco → https://goo.gle/4ecjdIC
jco example → https://goo.gle/4gwhBLu
SpiderMonkey → https://goo.gle/4gIR1Ps
WASI http → https://goo.gle/3MQvK8L
WasmAssembly episode with Ryan Hunt on string built-ins: https://goo.gle/3zs0Mk3
The various HTTP methods in WASI http → https://goo.gle/3Xxp9EX
WasmAssembly episode with Luke Wagner on WASI and the component model → https://goo.gle/3Xxryj8
Bytecode Alliance → https://goo.gle/3MPY0bD
WasmEdge runtime → https://goo.gle/47xq392
Bytecode Alliance board → https://goo.gle/4gIRd18
Bytecode Alliance technical steering committee → https://goo.gle/3XR2qoQ
Bytecode Alliance community stream update → https://goo.gle/3XPNZ4g
Bytecode Alliance updated developer roadmap → https://goo.gle/3ZAQp8f
Bytecode Alliance projects → https://goo.gle/4dhl8dR
Wasmtime → https://goo.gle/47wX9WP
Cranelift → https://goo.gle/3zvezGD
WAMR → https://goo.gle/3MUaC1c
Javy → https://goo.gle/3TxAqEk
WebAssembly System Interface (WASI) → https://goo.gle/4duTBpv
Component model → https://goo.gle/47CFtJu
WASI Subgroup in the WebAssembly CG → https://goo.gle/3zvfUx9
Brandon Sanderson's Mistborn saga → https://goo.gle/4e9y2LX
Bailey on Mastodon → https://goo.gle/3TB9lju
Bailey on X → https://goo.gle/3XyGnBV
Bailey's Bytecode Alliance videos → https://goo.gle/47wJ0c9
If you like this episode you’ll love
Episode Comments
Generate a badge
Get a badge for your website that links back to this episode
<a href="https://goodpods.com/podcasts/wasmassembly-489412/a-promising-feature-javascript-promise-integration-with-francis-mccabe-72348424"> <img src="https://storage.googleapis.com/goodpods-images-bucket/badges/generic-badge-1.svg" alt="listen to a promising feature: javascript promise integration with francis mccabe - wasmassembly on goodpods" style="width: 225px" /> </a>
Copy