Stack Switching denotes a technology that allows programs to suspend and resume computation. This is an active area that is part of the WebAssembly standards track. See https://github.com/WebAssembly/stack-switching and https://github.com/WebAssembly/meetings/tree/main/stack. This particular feature refers to the integration between JavaScript Promises and stack switching. This is described in more detail in https://docs.google.com/document/d/16Us-pyte2-9DECJDfGm5tnUpfngJJOc8jbj54HMqE9Y/edit#
This spec is backed by a standardization effort. We do not plan to ship the JSPI until it has been standardized by the W3C Wasm WG. However, post standardization, we will depend on all browsers implementing the standard.
Does this intent deprecate or change behavior of existing APIs, such that it has potentially high risk for Android WebView-based applications?
None.
Developers can piggyback on existing DevTools support for Promises to help with debugging JSPI applications. In particular the existing mechanisms for constructing extended stack traces from so-called Promise chains will also include stack traces from JSPI applications.
OriginTrial desktop last | 130 |
OriginTrial desktop first | 122 |
OriginTrial Android last | 130 |
OriginTrial Android first | 122 |
OriginTrial webView last | 130 |
OriginTrial webView first | 122 |
This is an update to the previous intent-to-experiment (filled out a few more fields)
SummaryStack Switching denotes a technology that allows programs to suspend and resume computation. This is an active area that is part of the WebAssembly standards track. See https://github.com/WebAssembly/stack-switching and https://github.com/WebAssembly/meetings/tree/main/stack. This particular feature refers to the integration between JavaScript Promises and stack switching. This is described in more detail in https://docs.google.com/document/d/16Us-pyte2-9DECJDfGm5tnUpfngJJOc8jbj54HMqE9Y/edit#
Blink componentBlink>JavaScript>WebAssembly
Search tagsstack switching, Promise, JSPI
TAG reviewhttps://github.com/w3ctag/design-reviews/issues/809
TAG review statusPending
Risks
Interoperability and CompatibilityThis spec is backed by a standardization effort. We do not plan to ship the JSPI until it has been standardized by the W3C Wasm WG. However, post standardization, we will depend on all browsers implementing the standard.
Gecko: Positive (https://bugzilla.mozilla.org/show_bug.cgi?id=1850627) Mozilla have started their own imlementation
WebKit: No signal
Web developers: No signals
Other signals:
WebView application risksDoes this intent deprecate or change behavior of existing APIs, such that it has potentially high risk for Android WebView-based applications?
Goals for experimentationThis specification is getting close to finalization. We would like feedback from a wider audience as to the utility and convenience of using the API.
In addition, we are interested in performance benchmarking in production applications.
Ongoing technical constraintsNone.
DebuggabilityDevelopers can piggyback on existing DevTools support for Promises to help with debugging JSPI applications. In particular the existing mechanisms for constructing extended stack traces from so-called Promise chains will also include stack traces from JSPI applications.
Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, ChromeOS, Android, and Android WebView)?Yes
Is this feature fully tested by web-platform-tests?No
Flag name on chrome://flagsenable-experimental-webassembly-stack-switching
Finch feature nameNone
Non-finch justificationNone
Requires code in //chrome?False
Tracking bughttps://bugs.chromium.org/p/v8/issues/detail?id=12191&q=owner%3Ame&can=2
Estimated milestonesOriginTrial desktop last130OriginTrial desktop first122OriginTrial Android last130OriginTrial Android first122OriginTrial webView last130OriginTrial webView first122
Link to entry on the Chrome Platform Statushttps://chromestatus.com/feature/5674874568704000
Links to previous Intent discussionsIntent to prototype: https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAAdKk6BGFseZ6pBO2qEW_xeovVw1_guVq26rcNM1nWY442Y5Ng%40mail.gmail.com Intent to Experiment: https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAE65UWD8e57Bd5x3nr63M3QcdPo6TKom%2BVZT%3DvO2Uo4x6th_kA%40mail.gmail.com
--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/a6f6bbfe-498e-4812-9773-f19706db4547n%40chromium.org.
Yep - that is an official positive signal, thanks!
Goals for experimentationThis specification is getting close to finalization. We would like feedback from a wider audience as to the utility and convenience of using the API.
In addition, we are interested in performance benchmarking in production applications.
Ongoing technical constraintsNone.
DebuggabilityDevelopers can piggyback on existing DevTools support for Promises to help with debugging JSPI applications. In particular the existing mechanisms for constructing extended stack traces from so-called Promise chains will also include stack traces from JSPI applications.
Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, ChromeOS, Android, and Android WebView)?Yes
Is this feature fully tested by web-platform-tests?No
I'm guessing it will be covered by tests, at least eventually?
Flag name on chrome://flagsenable-experimental-webassembly-stack-switching
Finch feature nameNone
Non-finch justificationNone
Requires code in //chrome?False
Tracking bughttps://bugs.chromium.org/p/v8/issues/detail?id=12191&q=owner%3Ame&can=2
Estimated milestonesOriginTrial desktop last130OriginTrial desktop first122OriginTrial Android last130OriginTrial Android first122OriginTrial webView last130OriginTrial webView first122
Link to entry on the Chrome Platform Statushttps://chromestatus.com/feature/5674874568704000
Links to previous Intent discussionsIntent to prototype: https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAAdKk6BGFseZ6pBO2qEW_xeovVw1_guVq26rcNM1nWY442Y5Ng%40mail.gmail.com Intent to Experiment: https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAE65UWD8e57Bd5x3nr63M3QcdPo6TKom%2BVZT%3DvO2Uo4x6th_kA%40mail.gmail.com
This intent message was generated by Chrome Platform Status.
--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAE65UWDSWF%2BDQ2pCc-F3C%3DOodohzdAo5JMw0cDfaTasbTi9EhQ%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/522bbfde-000d-46c4-ae9e-1eafe6ad6a85%40chromium.org.
The policy has changed a bit to accept a direct extension,
without any breaks, where we previously didn't so it's possible
the documentation you saw was outdated. The enforced break was to
prevent burn-in that would make it painful to do suitable changes
or drop an idea, but it seems that has not been a big problem so
the process was tweaked.
/Daniel
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/6990cb55-b822-426e-bf5a-328c09f9750an%40chromium.org.