Dear API owners, Our origin trial on supporting JS Strings in Wasm <https://developer.chrome.com/origintrials/#/view_trial/2142587522721513473> (JS String Builtins <https://github.com/WebAssembly/js-string-builtins/blob/main/proposals/js-string-builtins/Overview.md> for Wasm) has reached its final milestone and we would like to continue to experiment with it.
The current status of the proposal and our experiments <https://docs.google.com/document/d/1zL9goDsawTQUFuuQ8ddI_pUcLY1_iFOsHaDZ374dnGw/edit?usp=sharing> is as follows: - The proposal is progressing well and has *reached phase 2* on January 16 with overwhelming support by the community group (17 votes strongly in favor, 11 votes in favor, 4 neutral and no votes against). - Performance of native support for JS strings in J2Wasm, Kotlin and Dart continues to look highly promising, making this a top priority for us to finalize the proposal and ship it in Chrome this year. - There were a *series of changes <https://docs.google.com/presentation/d/1gbyQz0nbLJJ07lbi8iuLHSchQ2-fH29UXS5ebLnG0ZU/edit#slide=id.g1ef40614c6f_0_0> to the proposal* and its API leading up to the vote which since then have all been implemented in V8. - *Sheets and J2Wasm started experimentation on the proposal* and we expect in-the-wild performance numbers of the new API within the next weeks, comparing this with the previous proposal (StringRef) <https://github.com/WebAssembly/stringref/blob/main/proposals/stringref/Overview.md> that this one will replace. - *More experimentation* *with respect to string constants *around binary size, memory overhead and initialization performance is required. Several options <https://docs.google.com/document/d/12Kxqfg56few1NNH0qcF0KsGh8L2QVGox0ldpEabJDOA/edit> are available regarding their implementation in the current proposal. - Rollout of Sheets experiments is currently at 20% of production users offering us a wide number of real-world use cases. We would therefore like to *extend the origin trial by another 6 milestones*, effectively ending it with M130. This is taking into account the long turnaround times required to test any API change between proposal changes, their implementation in Chrome, Binaryen, J2Wasm and Sheets until we can update the experiment and gather new data. We expect to reach phase 3 within the next months and want to use the data to inform the final shape of the proposal to be voted to phase 4, hopefully before the end of the year. Thank you, Emanuel Contact emailsecmzieg...@chromium.org, jkumme...@chromium.org, ad...@chromium.org ExplainerNone Specification https://github.com/WebAssembly/js-string-builtins/blob/main/proposals/js-string-builtins/Overview.md Summary This feature exposes common JS string operations for easy import into WebAssembly and optimizations thereof. This allows creating and manipulating JS strings from WebAssembly without native support within WebAssembly while still allowing for a similar performance as native string references. The mechanism works by exposing suitably strict versions of JS string operations in the WebAssembly JS API. These can be imported by modules using externref as a generic data type for storing the strings. The engine can identify that these imports can be represented by native graph operators without the need for calling into JS. This leads to a comparable peak performance as native string operations while allowing quick interoperability with JS since no copying at the boundary is required when calling into arbitrary JS functions that consume strings. Blink componentBlink>JavaScript>WebAssembly <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EJavaScript%3EWebAssembly> TAG reviewNone TAG review statusNot applicable Chromium Trial NameWebAssemblyJSStringBuiltins Link to origin trial feedback summary https://docs.google.com/document/d/1zL9goDsawTQUFuuQ8ddI_pUcLY1_iFOsHaDZ374dnGw/edit?usp=sharing Origin Trial documentation link https://github.com/WebAssembly/js-string-builtins/blob/main/proposals/js-string-builtins/Overview.md Risks Interoperability and Compatibility None *Gecko*: Positive *WebKit*: No signal *Web developers*: No signals *Other signals*: WebView application risks Does this intent deprecate or change behavior of existing APIs, such that it has potentially high risk for Android WebView-based applications? None Goals for experimentation Ongoing technical constraints None Debuggability None 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 <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md> ?No Flag name on chrome://flagsNone Finch feature nameNone Non-finch justificationNone Requires code in //chrome?False Estimated milestones Origin trial desktop first 119 Origin trial desktop last 124 Link to entry on the Chrome Platform Status https://chromestatus.com/feature/6695587390423040 Links to previous Intent discussionsIntent to Experiment: https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAPAU7RyzxKa0Pj6q7B_jyfT%3DH%2BSK264%3Dx8wn1ans%3D8UjHRhctQ%40mail.gmail.com This intent message was generated by Chrome Platform Status <https://chromestatus.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+unsubscr...@chromium.org. To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAPAU7RyYPNTcmt1uHe279qW46ff3S%3DZ-M%3DHZjKn%3DK%2Bgp_0DyZw%40mail.gmail.com.