Thibaud Michaud 7aea96892a [wasm] Do not generate import-specific export wrappers
The signature-specific export wrappers load the target and ref from the
import dispatch table or from the function data depending on whether the
target is a re-exported import or an internal function. But the target
and ref from the function data is more generic and also works for
re-exported imports.

In fact wrapper tier-up may accidentally replace an export wrapper
compiled for an import with an export wrapper compiled for an internal
function, but we did not notice it because the latter still works.

However the other way around does not work. The wrapper compiled for a
re-exported import uses the dispatch table, which breaks if the target
is not an import. This happens if we try to enable the generic wrapper
for re-exported imports.

Remove the import-specific path entirely since the other one is more
generic, which allows us to use the generic wrapper for re-exported
imports and will reduce the number of wrappers that we need to compile.

R=jkummerow@chromium.org

Bug: 343772336
Change-Id: I54446f38971167a5128521027939707ac20d1a86
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5604484
Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/main@{#94380}
2024-06-11 16:35:28 +00:00
2024-06-06 09:14:14 +00:00
2024-05-07 10:37:45 +00:00
2019-05-15 12:06:15 +00:00
2024-06-06 13:18:55 +00:00
2024-05-22 13:26:56 +00:00
2024-06-10 19:08:21 +00:00
2017-07-28 13:39:24 +00:00
2021-08-24 10:39:33 +00:00
2024-05-06 09:03:21 +00:00
2024-05-06 09:03:21 +00:00
2022-08-04 08:53:02 +00:00
2024-01-11 08:57:35 +00:00
2024-06-11 01:10:31 +00:00
2024-06-11 05:02:42 +00:00
2020-10-20 22:12:28 +00:00
2020-04-24 19:19:36 +00:00
2022-09-13 07:54:54 +00:00
2021-08-16 13:05:19 +00:00
2021-09-08 01:38:52 +00:00
2023-01-23 17:07:21 +00:00
2023-01-23 17:07:21 +00:00
2024-05-17 09:16:10 +00:00

V8 JavaScript Engine

V8 is Google's open source JavaScript engine.

V8 implements ECMAScript as specified in ECMA-262.

V8 is written in C++ and is used in Google Chrome, the open source browser from Google.

V8 can run standalone, or can be embedded into any C++ application.

V8 Project page: https://v8.dev/docs

Getting the Code

Checkout depot tools, and run

    fetch v8

This will checkout V8 into the directory v8 and fetch all of its dependencies. To stay up to date, run

    git pull origin
    gclient sync

For fetching all branches, add the following into your remote configuration in .git/config:

    fetch = +refs/branch-heads/*:refs/remotes/branch-heads/*
    fetch = +refs/tags/*:refs/tags/*

Contributing

Please follow the instructions mentioned at v8.dev/docs/contribute.

S
Description
The bare minimum headers from v8 required to build sandstorm from source.
https://chromium.googlesource.com/v8/v8.git
Readme BSD-3-Clause
931 MiB
0 Stars 1 Watchers 0 Forks
Languages
Markdown 100%