- 13 Dec, 2021 1 commit
-
-
Manos Koukoutos authored
Since the reftypes proposal has shipped, we remove the respective flag and the code that handled its absence. We maintain a WasmFeature for reftypes for feature detection purposes. We remove the flag declaration from tests, and adapt some tests that make no sense without the flag. Bug: v8:7581 Change-Id: Icf2f8d0feae8f30ec68d5560f1e7ee5959481483 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3329781Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#78351}
-
- 07 Jun, 2021 1 commit
-
-
Andreas Haas authored
A spec test (wasm-js/global/value-get-set) requires WebAssembly.Global.value.set to throw an exception if it is called with 0 arguments. The implementation in V8, however, just checked if the first parameter is `undefined`. This implementation indeed threw an exception if 0 arguments were provided, but it also threw an exception when `undefined` is provided as a parameter. This, however, violates the spec, because globals can be reset to `undefined`. With this CL we replace the checking for `undefined` by checking the length of the arguments that get provided. R=ecmziegler@chromium.org Bug: chromium:1211342 Change-Id: Ic87a0b369dea3e49eddb8f71f2c29dc6a8f5f558 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2940901Reviewed-by: Emanuel Ziegler <ecmziegler@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#74982}
-
- 01 Jun, 2021 1 commit
-
-
Camillo Bruni authored
- Add d8.file.read() and d8.file.execute() helpers - Change tools and tests to use new d8.file helper - Unify error throwing in v8::Shell::ReadFile Change-Id: I5ef4cb27f217508a367106f01e872a4059d5e399 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2928505 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Maya Lekova <mslekova@chromium.org> Reviewed-by: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#74883}
-
- 27 Apr, 2021 1 commit
-
-
Manos Koukoutos authored
Changes: - Add WasmInitExpr class which knows how to create initializer expressions as pairs of {type, value}. Also define a default for every type. Emit such pairs to a byte array with emit_init_expr(). - Add an initializer expression to every global (addGlobal() uses the default if the argument is absent). - Introduce wasmI64Const(); - Update tests as needed. Change-Id: I75ffe96604891506ad78bd3677ce1efe5e0cee07 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2851892 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#74231}
-
- 15 Sep, 2020 1 commit
-
-
Andreas Haas authored
Global.set requires a write barrier. This write barrier was missing in the original CL. The reland only adds the write barrier for ia32, and bails out on the other platforms. Original message: With this CL we add support for all externref globals except for imported mutable globals. R=thibaudm@chromium.org, ulan@chromium.org Bug: v8:7581 Change-Id: I86328a17200d1edc505f4c4357bdf795d95cf0c8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2404777Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#69912}
-
- 10 Jun, 2020 1 commit
-
-
Manos Koukoutos authored
As per the latest update to the 'reference types' wasm proposal, the nullref type is removed. Following that, all its uses in V8 were also removed. This CL: - Removes now dead code referencing nullref. - Changes names of functions/exceptions containing 'nullref' to 'null'. - Changes nullref to the corresponding nullable type in some tests. Bug: v8:7748 Change-Id: I5b4606671d7b24dd48a45a3341e8a1c056fcd1d0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2238026 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#68283}
-
- 09 Jun, 2020 1 commit
-
-
Manos Koukoutos authored
The reference types wasm proposal dropped all subtyping. Subsequently, the 'anyref' type was renamed to externref. This changes all references of the *type* anyref to externref. Additionally, the flag that permits this extension is renamed to "reftypes" to mirror the proposal name. Bug: v8:7748 Change-Id: Icf323f13b9660fd10540e65125af053fca3a03f9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2232941 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Kim-Anh Tran <kimanh@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#68270}
-
- 05 Jun, 2020 1 commit
-
-
Andreas Haas authored
Due to recent spec changes, We do not have to check if ref.func instructions in global declarations only refer to declared functions. Additionally functions referenced in exports and globals are now considered declared. R=ecmziegler@chromium.org Bug: v8:10556 Change-Id: I79856c7d68155a04eb36769ceed8a58fe62a9f9f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2228653 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by: Emanuel Ziegler <ecmziegler@chromium.org> Cr-Commit-Position: refs/heads/master@{#68190}
-
- 03 Jun, 2020 2 commits
-
-
Andreas Haas authored
All subtyping has been removed from the reference-types proposal. This CL implements this proposal change now in V8. R=manoskouk@chromium.org Bug: v8:10556 Change-Id: I08ef064952278e03ea655461fa9f0c96426157c7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2222345 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#68152}
-
Andreas Haas authored
With recent changes to the anyref proposal, null refs now have a type immediate which declares the type of a null ref constant. Likewise, the RefIsNull instruction is type aware now. This CL addresses these proposal changes now. R=jkummerow@chromium.org Bug: v8:10556 Change-Id: I810dfa3a4ab4389afc9639f897cee5d43e9b62cb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2215172 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#68141}
-
- 17 Feb, 2020 1 commit
-
-
Emanuel Ziegler authored
Implement the latest spec changes: - Allow declarative segments to behave like passive & dropped segments. - Enforce that only declared functions may be returned or used in globals as funcref. - Ensure that table fill does not modify any entries if OOB. Spec tests for select and br_table are still failing due to proposal issue Bug: v8:10156 R=ahaas@chromium.org Change-Id: I5b95be36a67bc7482a84b848908cc4cbdf94af03 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2027458Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Emanuel Ziegler <ecmziegler@chromium.org> Cr-Commit-Position: refs/heads/master@{#66297}
-
- 08 Oct, 2019 2 commits
-
-
Clemens Backes authored
This brings our constants back in line with the changed spec text. We already use kExprTableGet and kExprTableSet, but for locals and globals we still use the old wording. This renaming is mostly mechanical. PS1 was created using: ag -l 'kExpr(Get|Set)Global' src test | \ xargs -L1 sed -E 's/kExpr(Get|Set)Global\b/kExprGlobal\1/g' -i PS2 contains manual fixes. R=mstarzinger@chromium.org Bug: v8:9810 Change-Id: I064a6448cd95bc24d31a5931b5b4ef2464ea88b1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1847355 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#64163}
-
Clemens Backes authored
This brings our constants back in line with the changed spec text. We already use kExprTableGet and kExprTableSet, but for locals and globals we still use the old wording. This renaming is mostly mechanical. PS1 was created using: ag -l 'kExpr(Get|Set|Tee)Local' src test | \ xargs -L1 sed -E 's/kExpr(Get|Set|Tee)Local\b/kExprLocal\1/g' -i PS2 contains manual fixes. R=mstarzinger@chromium.org Bug: v8:9810 Change-Id: I1617f1b2a100685a3bf56218e76845a9481959c5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1847354Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#64161}
-
- 14 May, 2019 1 commit
-
-
Andreas Haas authored
Bug: v8:7581 Change-Id: I7ec9a7dbfb57cd6b5d985a7dc664ca3c0965969c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1605726Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#61480}
-
- 08 May, 2019 1 commit
-
-
Andreas Haas authored
Incorrect sub-typing caused some spec tests to fail. The rules in the spec are here: https://webassembly.github.io/reference-types/core/exec/modules.html#globals R=mstarzinger@chromium.org Bug: v8:7581 Change-Id: Ic0924b98a39395e351fec901c47a9debfe56be9d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1598763 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#61314}
-
- 18 Mar, 2019 1 commit
-
-
Andreas Haas authored
Anyfunc globals are very similar to anyref globals. This CL is mostly about extending the conditions which guard the anyref globals code. R=mstarzinger@chromium.org Bug: v8:7581 Change-Id: Ia92ac4560102cc3ed0060342f92758db28f415ca Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1526004Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#60281}
-
- 30 Jan, 2019 1 commit
-
-
Sven Sauleau authored
We noticed that almost every call site were loading both files, the split isn't necessary anymore. In some message tests, removed the absolute line number to allow future changes. Bug: v8:8726 Change-Id: I8527f0a1ecfa685aa01a5e2f5f47ddf1cb13a545 Reviewed-on: https://chromium-review.googlesource.com/c/1446452 Commit-Queue: Sven Sauleau <ssauleau@igalia.com> Reviewed-by: Ben Titzer <titzer@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#59220}
-
- 16 Jan, 2019 1 commit
-
-
Sven Sauleau authored
Fix WebAssembly's global/value-get-set. The argument must not be undefined. mjsunit tests were updated. Bug: v8:8319 Change-Id: Id3d3c9b18cbc8854e589481dfc7c52f35cfb7bf7 Cq-Include-Trybots: luci.chromium.try:linux-blink-rel Reviewed-on: https://chromium-review.googlesource.com/c/1411886Reviewed-by: Ben Smith <binji@chromium.org> Commit-Queue: Sven Sauleau <ssauleau@igalia.com> Cr-Commit-Position: refs/heads/master@{#58863}
-
- 15 Jan, 2019 2 commits
-
-
Andreas Haas authored
R=mstarzinger@chromium.org Bug: v8:7581 Change-Id: If469467663e632a1dba3bd55ace830e1b2f38f7e Reviewed-on: https://chromium-review.googlesource.com/c/1409427 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#58824}
-
Andreas Haas authored
With this CL we support importing mutable anyref globals. The CL contains the following changes: * We store a reference to the buffer of the imported global in `WasmInstance::imported_mutable_globals_buffer`. This FixedArray is already used to keep the ArrayBuffers of value-typed imported mutable globals alive but was not accessed otherwise. * We store the offset in the buffer of the imported global in `WasmInstance::imported_mutable_globals`. This `Address`-array is used for value-typed imported mutalbe globals to store direct pointers into the backing store of the ArrayBuffer of the imported global. * In wasm-compiler.cc we generate code to load these fields and then load or store globals. * in module-compiler.cc I removed the counter variable `next_imported_mutable_global_index`. The variable was only used for a DCHECK. I replaced the DCHECK with a slightly weaker DCHECK now. * Tests. R=mstarzinger@chromium.org Bug: v8:7581 Change-Id: I11f0f4d8637c98eded5fb2eec44bc8ead8ed5c7b Reviewed-on: https://chromium-review.googlesource.com/c/1409169 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#58822}
-
- 10 Jan, 2019 1 commit
-
-
Andreas Haas authored
The flag has been enabled by default since June 2018, see https://crrev.com/c/1095650. R=binji@chromium.org Bug: v8:7625 Change-Id: I7cb4874db7f632b593f912e084b9fb7b8d568afe Reviewed-on: https://chromium-review.googlesource.com/c/1402546Reviewed-by: Ben Smith <binji@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#58689}
-
- 08 Jan, 2019 2 commits
-
-
Andreas Haas authored
R=titzer@chromium.org Bug: v8:7581 Change-Id: I4725eada889cc8cf6a3ca537f05b1da2f5e83f2b Reviewed-on: https://chromium-review.googlesource.com/c/1400413 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by: Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#58632}
-
Andreas Haas authored
This CL adds support for anyref in WebAssembly.Global objects. Note that the specification is not complete yet in this area. I did the following changes: - I renamed the `array_buffer` field of WasmGlobalObject to `untagged_buffer` - I added an additional field of type FixedArray, `tagged_buffer`. - In the constructor of WasmGlobalObject I allocate either the former or the latter, but not both. - In the WebAssembly.Global constructor I added special handling for the case where no initial value is provided. In that case I set the inital value to `null` and not to `undefined`. R=titzer@chromium.org Bug: v8:7581 Change-Id: I7e4855d7e6c04a9bcdc7ebd450caca5819d060e2 Reviewed-on: https://chromium-review.googlesource.com/c/1398226 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by: Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#58625}
-
- 04 Jan, 2019 1 commit
-
-
Andreas Haas authored
With this CL it is possible to import any JavaScript object as an anyref global. The exception is WasmGlobalObject, which cannot hold anyref globals yet. R=clemensh@chromium.org Bug: v8:7581 Change-Id: I5b0fc686a4ec5c579d1d635b53be5ccdf0a78f27 Reviewed-on: https://chromium-review.googlesource.com/c/1382452 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#58557}
-
- 18 Dec, 2018 1 commit
-
-
Andreas Haas authored
This CL implements the global.get and global.set instruction for anyref globals. This includes: * Properly decode anyref globals. * Add a FixedArray to WasmInstanceObject to store anyref globals. * Initialize the FixedArray. * Generate code for global.get and global set. This CL does not allow to import globals yet. R=clemensh@chromium.org Bug: v8:7581 Change-Id: I62617409271d9b6f2253a191681189865aa1f459 Reviewed-on: https://chromium-review.googlesource.com/c/1380112Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#58318}
-