On Mon, Jun 15, 2020 at 12:52 PM Yoav Weiss <y...@yoav.ws> wrote: > > > On Fri, Jun 12, 2020 at 8:42 AM 'Andreas Haas' via blink-dev < > blink-...@chromium.org> wrote: > >> Spec >> >> https://github.com/WebAssembly/JS-BigInt-integration >> Contact emails >> ah...@google.com, ecmzieg...@google.com >> > > I'm missing an explainer and a TAG review from the template. > While a TAG review is probably not relevant for WASM changes, it might be > worthwhile to mention that, and cover whatever broad review this feature > have received from the relevant folks. >
Our process says that a TAG review is not required, as this is just a small extension to WebAssembly, and the Wasm CG already provides significant technical oversight. The explainer in https://github.com/WebAssembly/JS-BigInt-integration is a bit short, because it's such a natural extension. When the first WebAssembly spec was made, the BigInt spec was not completed yet. Therefore there did not exist a type in JavaScript that could store WebAssembly I64 values losslessly. It was decided back then that in the first version of WebAssembly, I64 values cannot be passed to JavaScript, and that a RuntimeError is thrown instead whenever it is done. In the meantime the BigInt spec was completed, so JavaScript can now store I64 values losslessly. With this proposal, the WebAssembly spec got extended so that I64 values can be passed to JavaScript as BigInts, and vice versa. Summary >> >> The "JavaScript BigInt to WebAssembly i64 integration >> <https://github.com/WebAssembly/JS-BigInt-integration>" proposal extends >> the JavaScript-WebAssembly API to allow passing I64 values from >> WebAssembly to JavaScript, and vice versa. The representation of I64 values >> in JavaScript is BigInt. >> >> Without this proposal, an exception is thrown every time an I64 value is >> passed over the WebAssembly - JavaScript API. >> >> Is this feature supported on all six Blink platforms (Windows, Mac, >> Linux, Chrome OS, Android, and Android WebView)? >> >> Yes. >> >> Interoperability and Compatibility risk >> This is a finished WebAssembly proposal >> <https://github.com/WebAssembly/proposals/blob/master/finished-proposals.md> >> and has already been integrated into the core WebAssembly spec. The >> proposal is implemented in Chrome and Firefox and passes the spec tests in >> both. Changing the proposal would require changing the WebAssembly spec. >> > > Regardless of spec status: > > - How likely is shipping this to break existing WASM content? > > It is unlikely that shipping this will break existing WebAssembly content. With this feature it is possible to pass WebAssembly I64 values to JavaScript, which currently causes a RuntimeError. > > - What happens if WASM content that contains BigInt is served to > non-supporting browsers? > > A RuntimeError is thrown. > > - Assuming the answer to the above question is "something bad", how > are developers supposed to know to serve this feature only to supporting > browsers? Feature detection? UA sniffing? Other? > > Feature detection is easily possible. > > >> Firefox: Implemented >> <https://bugzilla.mozilla.org/show_bug.cgi?id=1608772> >> > > Firefox ships this feature in Version 78, which is the current beta. > >> >> Safari: No signals >> > > Have we reached out? > I will try to get information about this. > >> Is this feature fully tested? >> >> Yes, tested in wasm mjsunit tests: >> >> https://cs.chromium.org/chromium/src/v8/test/mjsunit/wasm/bigint.js >> >> >> Also passes the wasm spec tests: >> https://github.com/WebAssembly/JS-BigInt-integration/tree/master/test/js-api >> > > Are there WPTs? > Tests exist in the spec proposal, see https://github.com/WebAssembly/JS-BigInt-integration/tree/master/test/js-api. The tests should get merged into WPT eventually, but as far as I can tell this has not happened yet. Our implementation passes all these tests. > > >> >> The feature has also been staged for several months now to get >> ClusterFuzz coverage. >> >> >> Tracking bug >> >> https://crbug.com/v8/7741 <https://crbug.com/v8/7747> >> >> Entry on the feature dashboard <http://www.chromestatus.com/> >> >> https://chromestatus.com/feature/5648655109324800 >> >> Requesting approval to ship? >> >> Yes. >> >> -- >> 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/CAELSTvf%3DT2c44y-3-koKda%3Dbpd40%2BoYbq92p7c2v6jdjoMR05A%40mail.gmail.com >> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAELSTvf%3DT2c44y-3-koKda%3Dbpd40%2BoYbq92p7c2v6jdjoMR05A%40mail.gmail.com?utm_medium=email&utm_source=footer> >> . >> > -- -- v8-users mailing list v8-users@googlegroups.com http://groups.google.com/group/v8-users --- You received this message because you are subscribed to the Google Groups "v8-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to v8-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/v8-users/CAELSTvenaLYnS%3DihdFPsnfBK593fnV82xTksVFJEj50O89055Q%40mail.gmail.com.