- 03 Aug, 2022 1 commit
-
-
Thibaud Michaud authored
Implement the WebAssembly.Function-based API. With the old API, wrapping an import and export with JS Promise Integration looked like: WebAssembly.returnPromiseOnSuspend(<wasm_export>); WebAssembly.suspendOnReturnedPromise( new WebAssembly.Function(<sig>, <js_import>)); With the new API: new WebAssembly.Function(<sig>, <wasm_export>, {promising: 'first'}) new WebAssembly.Function(<sig>, <js_import>, {suspending: 'first'}) For details, see https://github.com/WebAssembly/js-promise-integration/pull/8/files R=ahaas@chromium.org Bug: v8:12191 Change-Id: Iaefaac5304a038fc39283db165b637af7e48b009 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3804669Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/main@{#82183}
-
- 28 Jul, 2022 1 commit
-
-
Matthias Liedtke authored
Bug: v8:7748 Change-Id: Ifd4caec2015894f736dd94356298f6ee35ac852b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3779911Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Auto-Submit: Matthias Liedtke <mliedtke@chromium.org> Reviewed-by:
Philip Pfaffe <pfaffe@chromium.org> Commit-Queue: Matthias Liedtke <mliedtke@chromium.org> Cr-Commit-Position: refs/heads/main@{#82035}
-
- 27 Jul, 2022 1 commit
-
-
Thibaud Michaud authored
This is a reland of commit 8cb02753 Original change's description: > [wasm] Materialize suspender in JS-to-wasm wrapper > > Instead of creating the Suspender object in JS and passing it to the > stack-switching js-to-wasm wrapper, the wrapper now automatically > creates the Suspender object and forwards it as an extra parameter to > the wasm function. See: > https://github.com/WebAssembly/js-promise-integration/pull/1/files > > R=ahaas@chromium.org > > Bug: v8:12191 > Change-Id: I2badee823f4223a293632f93e7e59f24c49d0820 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3779688 > Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> > Reviewed-by: Andreas Haas <ahaas@chromium.org> > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Cr-Commit-Position: refs/heads/main@{#81890} Bug: v8:12191 Change-Id: Iea233e30aa269279d2fe17f5230c87285c33e232 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3780817 Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/main@{#82009}
-
- 22 Jul, 2022 2 commits
-
-
Nico Hartmann authored
This reverts commit 8cb02753. Reason for revert: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20TSAN%20-%20isolates/20736/overview Original change's description: > [wasm] Materialize suspender in JS-to-wasm wrapper > > Instead of creating the Suspender object in JS and passing it to the > stack-switching js-to-wasm wrapper, the wrapper now automatically > creates the Suspender object and forwards it as an extra parameter to > the wasm function. See: > https://github.com/WebAssembly/js-promise-integration/pull/1/files > > R=ahaas@chromium.org > > Bug: v8:12191 > Change-Id: I2badee823f4223a293632f93e7e59f24c49d0820 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3779688 > Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> > Reviewed-by: Andreas Haas <ahaas@chromium.org> > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Cr-Commit-Position: refs/heads/main@{#81890} Bug: v8:12191 Change-Id: Id22ed357e3a59bd1569687eadbc9b007d3da995c No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3780816 Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Nico Hartmann <nicohartmann@chromium.org> Owners-Override: Nico Hartmann <nicohartmann@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Cr-Commit-Position: refs/heads/main@{#81891}
-
Thibaud Michaud authored
Instead of creating the Suspender object in JS and passing it to the stack-switching js-to-wasm wrapper, the wrapper now automatically creates the Suspender object and forwards it as an extra parameter to the wasm function. See: https://github.com/WebAssembly/js-promise-integration/pull/1/files R=ahaas@chromium.org Bug: v8:12191 Change-Id: I2badee823f4223a293632f93e7e59f24c49d0820 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3779688 Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/main@{#81890}
-
- 21 Jul, 2022 1 commit
-
-
Thibaud Michaud authored
Add a test where the GC gets called during parameter conversion, and fix two related issues: - Reorder spilled references so that they are at the top of the stack before the builtin call - Add the missing frame marker on the new stack R=ahaas@chromium.org Bug: v8:12191 Change-Id: I3f68c675123c726543df6942d110fe06bc6c0efb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3780530 Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/main@{#81873}
-
- 19 Jul, 2022 1 commit
-
-
Thibaud Michaud authored
The suspender is only needed by the wrapper, do not forward it to the JS import. R=ahaas@chromium.org Bug: v8:12191 Change-Id: Id8e9a820491588b40fffb5dfd8706e85a16b8b23 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3768410Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/main@{#81818}
-
- 11 Jul, 2022 2 commits
-
-
Thibaud Michaud authored
Suspender.{returnPromiseOnSuspend,suspendOnReturnedPromise} are not tied to a specific suspender anymore, so move them to WebAssembly.{returnPRomiseOnSuspend,suspendOnReturnedPromise}. With this change, the suspender property is not needed anymore on the function data. Convert it to a boolean flag that just indicates whether a function uses the JS Promise Integration API. R=ahaas@chromium.org Bug: v8:12191 Change-Id: I1b6d8e3190ebf5049dbc7eedee448999cf077509 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3748660Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/main@{#81639}
-
Thibaud Michaud authored
This CL is the first step towards the 'static API': https://github.com/WebAssembly/js-promise-integration/pull/1/files The limitation of the previous API is that the stack-switching wrappers are tied to a particular suspender. Since a suspender cannot be re-entered until the corresponding computation has completed, this prevents creating multiple concurrent instances of the same export. Multiple APIs have been proposed and are still under discussion to solve that, but the core idea is the same: the suspender should become a runtime argument of the export and the import. This CL implements that. For now, the suspender is still explicit everywhere: it is created in JS and passed to the export, and forwarded to the JS import. Eventually, the suspender may be completely hidden from JS: it would be materialized by the export wrapper, and "swallowed" by the import wrapper, as proposed in the PR above. R=ahaas@chromium.org Bug: v8:12191 Change-Id: Ic425a3fd920c7ad03874c636cd835d31c0e04994 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3748655Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/main@{#81633}
-
- 08 Jul, 2022 1 commit
-
-
Thibaud Michaud authored
The stack-switching variant of the wasm-to-js wrapper was only generated for js functions with matching arity. Also suspend for js functions with mismatching arity and unknown callables. R=ahaas@chromium.org Bug: v8:12191 Change-Id: Iab3e2d85210c86a814ae1defab9cd57bf74d80d2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3749578Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/main@{#81605}
-
- 06 Jul, 2022 1 commit
-
-
Thibaud Michaud authored
Fix some issues with nested suspenders: - Fix scratch register conflict when returning from an inner suspender - The outer suspender should stay in 'Active' state - Suspenders should become 'Inactive' when they return CC=ahaas@chromium.org Bug: v8:12191 Change-Id: Ic6c6108c4f8df3d32417d7813eb04e0e2a46d27a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3743386Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/main@{#81555}
-
- 28 Jun, 2022 1 commit
-
-
Thibaud Michaud authored
Only the parent of the continuation itself was updated. Also update the parent of the suspender R=ahaas@chromium.org Bug: v8:12191 Change-Id: I06684548abe70f4bbda48c12e9e8adda84e1ec27 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3726293Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/main@{#81419}
-
- 23 Jun, 2022 2 commits
-
-
Thibaud Michaud authored
Throw a wasm trap when trying to re-enter a suspender that is active or suspended. R=ahaas@chromium.org Bug: v8:12191 Change-Id: Ic448a15db29de14fb8d6bb8408af8fbaae82a2b4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3716481Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/main@{#81326}
-
Thibaud Michaud authored
If the returned promise rejects, we switch to the suspender's stack and throw the value. Re-purpose the WasmOnFulfilled data to also represent the rejecting case and rename it to WasmResumeData. R=ahaas@chromium.org CC=fgm@chromium.org Bug: v8:12191 Change-Id: I91a301c3c6d9d243efbfabe7263555e11f0d9277 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3706606Reviewed-by:
Omer Katz <omerkatz@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/main@{#81325}
-
- 16 Jun, 2022 1 commit
-
-
Thibaud Michaud authored
Exceptions should propagate inside the logical stack, which can consist of multiple wasm stack segments. When the outermost frame of the current segment is reached, pick up the parent stack and continue the search from there, and update the state to reflect the implicit stack switch. Drive-by: cleanups. R=ahaas@chromium.org CC=fgm@chromium.org Bug: v8:12191, v8:12960 Change-Id: Ia5cb39a6ae197fb68e635f986952419dc43c7b98 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3695376Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/main@{#81208}
-
- 27 Apr, 2022 1 commit
-
-
Thibaud Michaud authored
The JS import returns a tagged value, not a value of the machine representation that corresponds to the signature's return type, since it hasn't been converted yet. R=ahaas@chromium.org Bug: v8:12191 Change-Id: I0783af85eed9c5d25347200540e3e4eee48edfd4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3464036Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/main@{#80213}
-
- 17 Feb, 2022 1 commit
-
-
Thibaud Michaud authored
Use the existing generic js-to-wasm wrapper to handle arguments in the stack-switching export wrapper, by combining them into a single helper function parameterized by a boolean. If the stack_switch parameter is false, the generated js-to-wasm wrapper is the same as before. If the stack_switch parameter is true, we allocate and switch to the new stack before starting to process the parameters. To load the parameters, we also keep a pointer to the old stack. After the call, we convert the return value according to the return type as usual, and then switch back to the parent stack (which may be different than the original stack, but has a compatible stack frame layout). If the stack suspends during the call, control-flow jumps right before we deconstruct and leave the frame, and returns the Promise as an externref in the return register. R=ahaas@chromium.org,jkummerow@chromium.org CC=fgm@chromium.org Bug: v8:12191 Change-Id: If3f8eaba8edebe6e98d4738f79f895fdb5322adc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3460410Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/main@{#79148}
-
- 15 Feb, 2022 1 commit
-
-
Thibaud Michaud authored
Split small chunks of assembly instructions into separate functions. This makes the code easier to follow and to maintain, especially for register allocation. Drive-by: simplify stack-switching test. R=ahaas@chromium.org Bug: v8:12191 Change-Id: Id7544a3b2d16085540d9f1863a0eabd1f72f22bb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3461929Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/main@{#79105}
-
- 07 Feb, 2022 2 commits
-
-
Thibaud Michaud authored
Currently, the stack-switching import wrapper always suspends. Only suspend if the returned value is a promise, otherwise just convert and return the value back to wasm. R=ahaas@chromium.org CC=fgm@chromium.org Bug: v8:12191 Change-Id: I26e7a3921aeae30fcce7f0ccc98d790a1a6f8c35 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3440655Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/main@{#78980}
-
Thibaud Michaud authored
- Suspender.suspendOnReturnedPromise expects a function with type [ti*]->[externref] and returns a function with the same type. - Suspender.returnPromiseOnSuspend expects a function with type [ti*]->[to] and returns a function with type [ti*]->[externref]. Changes: - Check the wrapped function's return types - Skip type checking of return types when importing a wrapper (and assert that the return type is externref) - Add special case for WebAssembly.Function.type of a WasmExportedFunction: it currently returns the signature declared by the module. Change the return type to externref if this is a stack-switching export. Bug: v8:12191 Change-Id: I6619c306e9613825ad1b021cb3400d73cd684656 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3435190Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/main@{#78973}
-
- 03 Feb, 2022 1 commit
-
-
Thibaud Michaud authored
This is a reland of f942f656 Changes: Change the order of initialization for wasm continuations to ensure object integrity if a GC happens during allocation. Also add missing handles. Original change's description: > Reland "[wasm] Resume suspender on resolved promise" > > This is a reland of a865d16b > > Changes: > - Make the next ID atomic > - Leave more space for runtime calls in debug mode > > Original change's description: > > [wasm] Resume suspender on resolved promise > > > > Implement the WasmResume builtin, which resumes a wasm suspender > > when the corresponding JS promise resolves. > > > > Drive-by 1: Fix detection of empty stacks in the stack frame iterator. > > Drive-by 2: Add a stack ID for better tracing. > > > > R=ahaas@chromium.org > > CC=fgm@chromium.org > > > > Bug: v8:12191 > > Change-Id: Ifa3f00c4259f802292b04d426c739e9b551f87b9 > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3420827 > > Reviewed-by: Andreas Haas <ahaas@chromium.org> > > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > > Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> > > Cr-Commit-Position: refs/heads/main@{#78842} > > Bug: v8:12191 > Change-Id: I3c231690b27be79a0c00e13043342bb4a3628886 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3427203 > Reviewed-by: Andreas Haas <ahaas@chromium.org> > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> > Cr-Commit-Position: refs/heads/main@{#78890} Bug: v8:12191 Change-Id: I0e1362d3a9da1fd8c0d600ad9776ce2fd26c6a52 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3434145Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/main@{#78922}
-
- 01 Feb, 2022 2 commits
-
-
Thibaud Michaud authored
This reverts commit f942f656. Reason for revert: Breaks gc-stress Original change's description: > Reland "[wasm] Resume suspender on resolved promise" > > This is a reland of a865d16b > > Changes: > - Make the next ID atomic > - Leave more space for runtime calls in debug mode > > Original change's description: > > [wasm] Resume suspender on resolved promise > > > > Implement the WasmResume builtin, which resumes a wasm suspender > > when the corresponding JS promise resolves. > > > > Drive-by 1: Fix detection of empty stacks in the stack frame iterator. > > Drive-by 2: Add a stack ID for better tracing. > > > > R=ahaas@chromium.org > > CC=fgm@chromium.org > > > > Bug: v8:12191 > > Change-Id: Ifa3f00c4259f802292b04d426c739e9b551f87b9 > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3420827 > > Reviewed-by: Andreas Haas <ahaas@chromium.org> > > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > > Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> > > Cr-Commit-Position: refs/heads/main@{#78842} > > Bug: v8:12191 > Change-Id: I3c231690b27be79a0c00e13043342bb4a3628886 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3427203 > Reviewed-by: Andreas Haas <ahaas@chromium.org> > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> > Cr-Commit-Position: refs/heads/main@{#78890} Bug: v8:12191 Change-Id: I5037419b6cee7a3bb49c1649e5a5d11a935a9b28 No-Presubmit: true No-Tree-Checks: true No-Try: true Auto-submit: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3429500 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Thibaud Michaud <thibaudm@chromium.org> Owners-Override: Maya Lekova <mslekova@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/main@{#78893}
-
Thibaud Michaud authored
This is a reland of a865d16b Changes: - Make the next ID atomic - Leave more space for runtime calls in debug mode Original change's description: > [wasm] Resume suspender on resolved promise > > Implement the WasmResume builtin, which resumes a wasm suspender > when the corresponding JS promise resolves. > > Drive-by 1: Fix detection of empty stacks in the stack frame iterator. > Drive-by 2: Add a stack ID for better tracing. > > R=ahaas@chromium.org > CC=fgm@chromium.org > > Bug: v8:12191 > Change-Id: Ifa3f00c4259f802292b04d426c739e9b551f87b9 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3420827 > Reviewed-by: Andreas Haas <ahaas@chromium.org> > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> > Cr-Commit-Position: refs/heads/main@{#78842} Bug: v8:12191 Change-Id: I3c231690b27be79a0c00e13043342bb4a3628886 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3427203Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/main@{#78890}
-
- 28 Jan, 2022 2 commits
-
-
Thibaud Michaud authored
This reverts commit a865d16b. Reason for revert: breaks tsan and gc-stress Original change's description: > [wasm] Resume suspender on resolved promise > > Implement the WasmResume builtin, which resumes a wasm suspender > when the corresponding JS promise resolves. > > Drive-by 1: Fix detection of empty stacks in the stack frame iterator. > Drive-by 2: Add a stack ID for better tracing. > > R=ahaas@chromium.org > CC=fgm@chromium.org > > Bug: v8:12191 > Change-Id: Ifa3f00c4259f802292b04d426c739e9b551f87b9 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3420827 > Reviewed-by: Andreas Haas <ahaas@chromium.org> > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> > Cr-Commit-Position: refs/heads/main@{#78842} Bug: v8:12191 Change-Id: I3352c8b1dcc8d99e1bd782a09276add219a3ecda No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3424489 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Owners-Override: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#78845}
-
Thibaud Michaud authored
Implement the WasmResume builtin, which resumes a wasm suspender when the corresponding JS promise resolves. Drive-by 1: Fix detection of empty stacks in the stack frame iterator. Drive-by 2: Add a stack ID for better tracing. R=ahaas@chromium.org CC=fgm@chromium.org Bug: v8:12191 Change-Id: Ifa3f00c4259f802292b04d426c739e9b551f87b9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3420827Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/main@{#78842}
-
- 26 Jan, 2022 1 commit
-
-
Thibaud Michaud authored
Create and return the chained promise, which resumes the suspended wasm continuation once the JS promise resolves: - Add stub for the WasmResume builtin, which will resume the given suspender. - Add the JS function wrapper for the builtin. - On suspension, return promise.then(onFulfilled) to the prompt. R=ahaas@chromium.org CC=fgm@chromium.org Bug: v8:12191 Change-Id: I2d6136b2bd610daa4be1880f347b7bdf897e75ac Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3404776Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/main@{#78787}
-
- 21 Jan, 2022 1 commit
-
-
Thibaud Michaud authored
Save the PC in the jump buffer and implement the suspend builtin. R=ahaas@chromium.org CC=fgm@chromium.org Bug: v8:12191 Change-Id: I1a6d965d7864dce0a572f6c8d7102046dad190fd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3345006Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/main@{#78715}
-
- 11 Jan, 2022 1 commit
-
-
Thibaud Michaud authored
- Add Suspender.suspendOnReturnedPromise method - Extend the WasmApiFunctionRef data with the suspender - Detect wrapped WasmJSFunctions when we resolve the import For now the generated wrapper is still a regular wasm-to-js wrapper, but this sets the ground for generating specific wrappers for functions wrapped by suspendOnReturnedPromise, and to access the suspender from the wrapper code. R=ahaas@chromium.org CC=fgm@chromium.org Bug: v8:12191 Change-Id: I81cbec6b023507e47e6e1463b5f9b912f807da6a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3345000Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/main@{#78560}
-
- 08 Dec, 2021 1 commit
-
-
Thibaud Michaud authored
Treat all stack pointers as roots: - Maintain a global linked-list of StackMemories - Update StackFrameIterator to process inactive stacks - Visit roots in all inactive stacks (including root marking and root pointer updating). Drive-by: - Fix some issues uncovered by the test - Refactor the builtin constants R=mlippautz@chromium.org,ahaas@chromium.org Bug: v8:12191 Change-Id: I5b6381f9818166e2eabf80dd59135673dddb2afc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3310932Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/main@{#78291}
-
- 05 Nov, 2021 2 commits
-
-
Thibaud Michaud authored
R=ahaas@chromium.org CC=fgm@chromium.org Bug: v8:12191 Change-Id: I415c4488262a97cf04b71fd8e96071c7bff972cf Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3231337Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/main@{#77740}
-
Thibaud Michaud authored
R=ahaas@chromium.org Bug: v8:12191 Change-Id: I15a5507a7dd0f02a3bbe9d3ce200206adf4d4539 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3231075 Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/main@{#77734}
-
- 26 Oct, 2021 1 commit
-
-
Thibaud Michaud authored
R=ahaas@chromium.org CC=fgm@chromium.org Bug: v8:12191 Change-Id: Ied9ab5fa5009e5ab268d1c9893729d8210ae62ce Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3220344 Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/main@{#77542}
-