- 01 Feb, 2022 1 commit
-
-
Kim-Anh Tran authored
Bug: none Change-Id: I00903b3d709106b0aa6493bec916c70fa522b529 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3429199 Auto-Submit: Kim-Anh Tran <kimanh@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/main@{#78882}
-
- 31 Jan, 2022 1 commit
-
-
Manos Koukoutos authored
Since inheritance depth of every type is known in the isorecursive hybrid type system, rtts with depth are removed. This enables simplification of type checks in Liftoff and Turbofan, as well as decoding of object allocation instructions. Bug: v8:7748 Change-Id: I6b52579b584191d92644de1c6e805d9f054641d3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3422626Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#78860}
-
- 27 Jan, 2022 1 commit
-
-
Victor Gomes authored
- It changes ContextSlotIndex from static to non-static. - Updates ContextSlotIndex and ScriptContextTable::Lookup to use handles, since it is necessary for the NameToIndexHashTable::Add - Adds a NameToIndexHashTableLookup to CSA. - Renames LocalNamesIterator to LocalNamesRange and iterates the hashtable when local names are not inlined. Bug: v8:12315 Change-Id: I2c8c933002fe73f4def145bc207825823262d743 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3406751Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Victor Gomes <victorgomes@chromium.org> Cr-Commit-Position: refs/heads/main@{#78818}
-
- 17 Jan, 2022 1 commit
-
-
Victor Gomes authored
This is a reland of f605d778 Adds a GC safe (using handles) and unsafe versions of the iterator. V8HeapExplorer needs an unsafe one, since it does not allow the creation of handles. Original change's description: > [runtime] Adds LocalNameIterator > > ScopeInfo will contain either inlined (array) local names or > a hash table (names => index) containing the local names. > > We abstract iteration with LocalNameIterator and remove > ContextLocalName since accessing a local name by index in > the hash table would be expensive. > > This CL only implements the iterator for the array. > > Bug: v8:12315 > Change-Id: I2c62802652fca1cf47815ce8768a3f7487f2c39f > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3386603 > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Commit-Queue: Victor Gomes <victorgomes@chromium.org> > Cr-Commit-Position: refs/heads/main@{#78623} Bug: v8:12315 Change-Id: I6288a08b9c342cd3a9cabcb621c40bb44c08c9c4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3394706Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Victor Gomes <victorgomes@chromium.org> Cr-Commit-Position: refs/heads/main@{#78653}
-
- 14 Jan, 2022 2 commits
-
-
Leszek Swirski authored
This reverts commit f605d778. Reason for revert: Segfaults: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux%20-%20gc%20stress/36908/overview Original change's description: > [runtime] Adds LocalNameIterator > > ScopeInfo will contain either inlined (array) local names or > a hash table (names => index) containing the local names. > > We abstract iteration with LocalNameIterator and remove > ContextLocalName since accessing a local name by index in > the hash table would be expensive. > > This CL only implements the iterator for the array. > > Bug: v8:12315 > Change-Id: I2c62802652fca1cf47815ce8768a3f7487f2c39f > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3386603 > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Commit-Queue: Victor Gomes <victorgomes@chromium.org> > Cr-Commit-Position: refs/heads/main@{#78623} Bug: v8:12315 Change-Id: Ibabe231f4357a3dd02d24b89847d579b83867a1a No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3386385 Auto-Submit: Leszek Swirski <leszeks@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Owners-Override: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#78625}
-
Victor Gomes authored
ScopeInfo will contain either inlined (array) local names or a hash table (names => index) containing the local names. We abstract iteration with LocalNameIterator and remove ContextLocalName since accessing a local name by index in the hash table would be expensive. This CL only implements the iterator for the array. Bug: v8:12315 Change-Id: I2c62802652fca1cf47815ce8768a3f7487f2c39f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3386603Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Victor Gomes <victorgomes@chromium.org> Cr-Commit-Position: refs/heads/main@{#78623}
-
- 13 Jan, 2022 2 commits
-
-
Lei Zhang authored
Use grep to check for obviously unneeded includes. e.g. headers that include <vector> but does not contain "std::vector". Change-Id: I43a9e9f01e072fd495918d28ca4cdad5cfa0294c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3354400Reviewed-by:
Marja Hölttä <marja@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org> Cr-Commit-Position: refs/heads/main@{#78613}
-
Benedikt Meurer authored
This unifies and simplifies the way we instrument async functions for the purpose of async stack traces and async stepping. It does so while retaining the observable behavior on the inspector level (for now). Previously we'd mark the implicit promise of the async function object with the async task ID, and whenever we awaited, we'd copy the async task ID to the throwaway promise that is created by the `await`. This however made things unnecessarily interesting in the following regards: 1. We'd see `DebugDidHandle` and `DebugWillHandle` events after the `AsyncFunctionFinished` events, coming from the throwaway promises, while the implicit promise is "done". This is especially confusing with rejection propagation and requires very complex stepping logic for async functions (after this CL it'll be possible to unify and simplify the stepping logic). 2. We have to thread through the "can suspend" information from the Parser all the way through AsyncFunctionReject/AsyncFunctionResolve to the async function instrumentation to decide whether to cancel the pending task when the async function finishes. This CL changes the instrumentation to only happen (non recurringly) for the throwaway promises allocated upon `await`. This solves both problems mentioned above, and works because upon the first `await` the stack captured for the throwaway promise will include the synchronous part as expected, while upon later `await`s the synchronous part will be empty and the asynchronous part will be the stack captured for the previous throwaway promise (and the V8Debugger automatically short circuits stacks with empty synchronous part). Bug: chromium:1280519, chromium:1277451, chromium:1246867 Change-Id: Id604dabc19ea133ea2e9dd63181b1fc33ccb5eda Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3383775Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Maya Lekova <mslekova@chromium.org> Reviewed-by:
Simon Zünd <szuend@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/main@{#78599}
-
- 12 Jan, 2022 1 commit
-
-
Simon Zünd authored
CDP has a "ExceptionDetails" structure that is attached to various CDP commands, e.g. "Runtime#exceptionThrown" or "Runtime#evaluate". The stack trace in the "ExceptionDetails" structure is used in various places in DevTools. The information in the "ExceptionDetails" structure is extracted from a v8::Message object. Message objects are normally created at the exception throw site and may augment the error with manually inspecting the stack (both to capture a fresh stack trace in some cases, as well as to calculate location info). The problem is that in some cases we want to get an "ExceptionDetails" structure after the fact, e.g. when logging a JS "Error" object in a catch block. This means we can't reuse Isolate::CreateMessage as the JS stack at call time is unrelated to the time when an Error object was thrown. To re-use some of the code, this CL introduces a new "CreateMessageFromException" method that is only available from the debugging interface (not public V8 API!). The new method works similar to Isolate::CreateMessage, but: 1) Does not look at the current JS stack, neither for a fresh stack trace nor for location information. 2) Only uses the "detailed" stack trace for location info. This is because the "simple" stack trace could have already been serialized by accessing Error#stack. Bug: chromium:1278650 Doc: https://bit.ly/runtime-get-exception-details Change-Id: I0144516001c71786b9f76ae4dec4442fa1468c5b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3337257Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Simon Zünd <szuend@chromium.org> Cr-Commit-Position: refs/heads/main@{#78586}
-
- 11 Jan, 2022 1 commit
-
-
Manos Koukoutos authored
We introduce a type arrayref, which is a supertype of all array types and a subtype of dataref. We change array.len to accept values of type (ref null array). Drive-by: Fix kEq/kData case in TypecheckJSObject. Bug: v8:7748 Change-Id: I47c6a4487ddf5e7280c1427f43abe87a97c896bd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3368105Reviewed-by:
Simon Zünd <szuend@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#78565}
-
- 05 Jan, 2022 1 commit
-
-
Benedikt Meurer authored
This method performs exactly the same operation as the official `v8::Exception::GetStackTrace()`, which is already used in other places, so there's no point to have a duplicate of that in the debug interface. Bug: chromium:1283162 Change-Id: I09dd07f678165e1565bd77173e8ce64636ef649b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3366659 Auto-Submit: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/main@{#78489}
-
- 29 Dec, 2021 1 commit
-
-
Benedikt Meurer authored
Previously the `Debugger.CallFrame`s in `Debugger.paused` events would report locations relative to the surrounding document in case of inline scripts with `//@ sourceURL` annotations (while `Runtime.CallFrame` was already fixed previously as part of crrev.com/c/3069289). With this CL the locations in `Debugger.CallFrame` are also appropriately adjusted. Drive-by-fix: Several inspector tests were (incorrectly) relying on this wrong treatment, and were also unnecessarily using //# sourceURL annotations. So part of this CL also addresses that problem and makes the tests more robust, using addInlineScript() helper. Fixed: chromium:1283049 Bug: chromium:1183990, chromium:578269 Change-Id: I6e3b215d951c3453c0a9cfc9bccf3dc3d5e92fd6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3359619 Auto-Submit: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/main@{#78450}
-
- 16 Dec, 2021 1 commit
-
-
Igor Sheludko authored
This CL * removes Builtins::codet() and Builtins::codet_handle() returning builtins as CodeT objects in favor of code() and code_handle(), * removes BUILTIN_CODET macro in favor of BUILTIN_CODE, * removes CodeDataContainer table. Bug: v8:11880 Change-Id: Ic868549030744b0ff3ea5d5edbfcacf77c6de96d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3344650Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/main@{#78399}
-
- 15 Dec, 2021 1 commit
-
-
Benedikt Meurer authored
This is the final change list in the list of refactorings to split off the implementations of v8::StackFrame and CallSite objects (as used by the V8 JavaScript stack API). See https://bit.ly/v8-stack-frame for the whole story. This CL adds the v8::internal::StackFrameInfo class as new backing implementation of v8::StackFrame, and puts it into debug-objects.tq to indicate that it's used for the debugger API only. This new class is lightweight and only holds on to static information about the stack frame, and is thus usable for the V8 inspector to implement async stack traces in a cheaper manner going forward. Doc: https://bit.ly/v8-stack-frame Bug: chromium:1258599, chromium:1278650 Fixed: chromium:1278647 Change-Id: I4dbf2d850f47797263af225895129499169aad02 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3302794 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/main@{#78382}
-
- 14 Dec, 2021 2 commits
-
-
Igor Sheludko authored
This CL migrates JSFunction's code accessors to CodeT. Bug: v8:11880 Change-Id: I8cf367eb79cc1d59548dd4f3e18c010f76f101cb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3330466Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/main@{#78365}
-
Benedikt Meurer authored
This is the second step in the refactoring to make v8::StackFrame more lightweight and usable for (long time storage) by the V8 inspector (see https://bit.ly/v8-stack-frame for an overview). This is a purely mechanical change without any functional aspects. The intention is to make the use case for the CallSiteInfo objects clear, namely to serve as the backing store for the CallSite objects exposed via the Error.prepareStackTrace() API and used under the hood to implement the error.stack accessor. Doc: https://bit.ly/v8-stack-frame Bug: chromium:1258599, chromium:1278647, chromium:1278650 Change-Id: I39dffd1f1a8e5158ddc56f2a0a2b1b28321f487a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3300138Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Maya Lekova <mslekova@chromium.org> Reviewed-by:
Simon Zünd <szuend@chromium.org> Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/main@{#78361}
-
- 13 Dec, 2021 1 commit
-
-
Tim van der Lippe authored
We recently ran into two separate issues with this DCHECK. To enhance debugging, let's add some more information as to which property is failing. That should make investigating of the problematic property easier, as we now no longer need to printf the results. R=jkummerow@chromium.org Bug: chromium:1276617, chromium:1262066 Change-Id: I8613780fc9613af700e113bb6050d4cbbd4cb040 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3330467 Commit-Queue: Tim Van der Lippe <tvanderlippe@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Auto-Submit: Tim Van der Lippe <tvanderlippe@chromium.org> Cr-Commit-Position: refs/heads/main@{#78353}
-
- 08 Dec, 2021 2 commits
-
-
Leszek Swirski authored
Introduce a ReusableUnoptimizedCompileState class, passed to ParseInfo, which stores a couple of pointers and most importantly the Zone and AstValueFactory of the parse. This allows the Zone and AstValueFactory to be reused across multiple parses, rather than re-initialising per-Parse. With this, we can amend the LazyCompileDispatcher to initialise one LocalIsolate, Zone and AstValueFactory per background thread loop, rather than one per compile task, which allows us to reduce per-task costs and re-use the AstValueFactory's string table and previous String internalizations. Change-Id: Ia0e29c4e31fbe29af57674ebb10916865d38b2ce Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3313106Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#78289}
-
Benedikt Meurer authored
On the way to a cheaper and more scalable stack frame representation for the inspector (crbug/1258599), this removes the need to expose both what was called "function name" and what was called "function debug name" on a v8::StackFrame instance. The reason to having a distinction between that the V8 API exposes and what the inspector exposes as frame function name is that after the initial refactoring around v8::internal::StackFrameInfo, some wasm cctests would still dig into the implementation details and insist on seeing the "function name" rather than the "function debug name". This CL now addresses that detail in the wasm cctests and going forward unifies the function names used by the inspector and the V8 API (which is not only needed for internal consistency and reduced storage requirements in the future, but also because Blink for example uses v8 API and v8_inspector API interchangeably and assumes that they agree, even though at this point Blink luckily wasn't paying attention to the function name): - The so-called "detailed stack trace", which is produced for the inspector and exposed by the v8 API, always yields the "function debug name" (which for example in case of wasm will be a WAT compatible name), - while the so-called "simple stack trace", which is what is used to implement the CallSite API and underlies Error.stack continues to stick to the "function name" which in case of wasm is not WAT compatible). Bug: chromium:1258599 Change-Id: Ib15d038f3ec893703d0f7b03f6e7573a38e82b39 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3312274Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Simon Zünd <szuend@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/main@{#78283}
-
- 07 Dec, 2021 1 commit
-
-
Kim-Anh Tran authored
This removes the additional call to `didPause` solely for instrumentation breakpoints. They will be reported along with any other pause reasons, and if several apply, 'ambiguous' will be reported as a reason. Bug: chromium:1229541 Change-Id: I38557248dc2274c2ff2c396aa19073f4a5c5abd5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3300134Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Kim-Anh Tran <kimanh@chromium.org> Cr-Commit-Position: refs/heads/main@{#78271}
-
- 03 Dec, 2021 1 commit
-
-
Kim-Anh Tran authored
This CL forwards the information that we are breaking because of a ScheduleBreak runtime call. Bug: chromium:1229541, chromium:1133307 Change-Id: I5eb9462c9df135bc3b3080c354e61e301d24e1ff Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3310804Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Kim-Anh Tran <kimanh@chromium.org> Cr-Commit-Position: refs/heads/main@{#78223}
-
- 02 Dec, 2021 2 commits
-
-
Igor Sheludko authored
... as a prerequisite for adding InstructionStream heap object. Bug: v8:11880 Change-Id: I22b4832cedd46bee4a4c5a0d7b5032eba10b2a7b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3310900Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/main@{#78204}
-
Kim-Anh Tran authored
This CL makes sure to forward the information that we are pausing because of a debugger statement, and to encode it explicitly as an 'other' reason when reporting the pause to the front-end. Drive-by: refactoring the way break reasons are propagated by introducing a new enum for break reasons Bug: chromium:1229541, chromium:1133307 Change-Id: I9d2e8d8da54d96a231eff9d1f62b74507955b18f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3306978Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Kim-Anh Tran <kimanh@chromium.org> Cr-Commit-Position: refs/heads/main@{#78202}
-
- 30 Nov, 2021 2 commits
-
-
Tim van der Lippe authored
While debugging, we discovered a Blink misconfiguration in the navigator.mimeTypes object. We fixed the issue in https://crrev.com/c/3303674, but let's also document on the V8 side when you can hit the DCHECK and where to look next. R=yangguo@chromium.org Bug: chromium:1262066 Change-Id: I256331ec4296963deb152485d8c6699b75c42e37 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3302804 Auto-Submit: Tim Van der Lippe <tvanderlippe@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Tim Van der Lippe <tvanderlippe@chromium.org> Cr-Commit-Position: refs/heads/main@{#78154}
-
Kim-Anh Tran authored
Previously when hitting a debugger statement we would ignore reporting the hit breakpoints. Bug: chromium:1229541, chromium:1133307 Change-Id: I47427a541391a27fc7783930e5e7eb41fbf2bb6a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3306373Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Kim-Anh Tran <kimanh@chromium.org> Cr-Commit-Position: refs/heads/main@{#78145}
-
- 29 Nov, 2021 1 commit
-
-
Kim-Anh Tran authored
Previously, we would encode 'other' as a reason for pausing when stepping too, however, it would not show as such in case it would overlap with another reason. This CL makes sure that we always report 'other' as a reason if we are stepping. Drive-by: only encode 'other' as a reason once Bug: chromium:1229541 Change-Id: Id73822dff68d1d54a2f1fafdf2a097e1377ece75 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3295346Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Kim-Anh Tran <kimanh@chromium.org> Cr-Commit-Position: refs/heads/main@{#78118}
-
- 24 Nov, 2021 1 commit
-
-
Manos Koukoutos authored
Design doc: bit.ly/3jEVgzz We separate the internal representation of function references in Wasm from their JSFunction-based (external) representation. This improves performance of call_ref by requiring less indirections to load the context and call target from a function reference. In the boundary between wasm and JS/the C API, we add transformations between the two representations. Detailed changes: - Introduce WasmInternalFunction, containing fields required by call_ref, as well as a reference to the corresponding WasmExternalFunction. Add a reference to the WasmInternalFunction in WasmFunctionData. The {WasmInternalFunction::FromExternal} helper extracts the internal out of an external function. - Change {WasmInstanceObject::external_functions()} to internal functions. - Change wasm function tables to contain internal functions. - Change the following code to use internal functions: - call_ref in liftoff and Turbofan - function type checks in liftoff and Turbofan - CallRefIC and GenericJSToWasmWrapper builtins - {InitExprInterface::RefFunc} - module-compiler.cc in {ProcessTypeFeedback} - In module-instantiate.cc, in function-rtt creation. - Add transformations between internal and external functions in: - WasmWrapperGraphBuilder::{ToJS, BuildUnpackObjectWrapper, FromJS, BuildJSToJSWrapper}. - debug-wasm-objects.cc in {FunctionProxy::Get}, {WasmValueObject::New} and {AddWasmTableObjectInternalProperties}. - runtime-wasm.cc in ReplaceWrapper - the C and JS APIs - module-instantiate.cc, in import and export processing, as well as {InitializeIndirectFunctionTables} - WasmTableObject::{IsValidElement, SetFunctionTableEntry} - {WasmGlobalObject::SetFuncRef} - Simplify body descriptors of WasmExternalFunction variants. - Adjust tests. Bug: v8:11510 Change-Id: I8377f46f55c3771391ae1c5c8201a83854ee7878 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3277878Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#78068}
-
- 18 Nov, 2021 1 commit
-
-
Dominik Inführ authored
A SafepointScope might need to block for a shared GC initiated from another client isolate. This means that anytime we create a SafepointScope a shared GC may run. This CL adds a DCHECK to ensure AllowGarbageCollected::IsAllowed() holds for each SafepointScope. So far this DCHECK was only run in the less likely event that a SafepointScope actually runs a shared GC. Which is technically good enough but it is easy to miss use cases of SafepointScope where this does not hold. Bug: v8:11708, v8:12377 Change-Id: I30cc33c05ebe4835430e1d699a86079810523858 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3289625Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/main@{#77976}
-
- 16 Nov, 2021 1 commit
-
-
Ng Zhi An authored
Bug: v8:12244,v8:12245 Change-Id: Id74afa611b2b8556ef86c715497b6daddc8ea7a0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3276931Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/main@{#77928}
-
- 12 Nov, 2021 1 commit
-
-
Igor Sheludko authored
Under certain conditions GC could flush bytecode array from SharedFunctionInfos. This CL ensures that the bytecode array is always available for reconstructing source positions. Bug: chromium:1265570 Change-Id: I2ce7eb04201f69121687ab0aaa2af42adb2caae0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3275569Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/main@{#77877}
-
- 10 Nov, 2021 1 commit
-
-
Camillo Bruni authored
Directly memcpy char* literals if they fit in the current pending part. This avoids incremental checks for the current part size. This will improve JSON.stringify for objects with lots of true, false, null values by roughly 10%; Drive-by-fix: - Improve JSON.stringify for empty [] and {} - Add IncrementalStringBuilder::NoExtend DECHECKs Bug: v8:12195 Change-Id: I81ebc9e088cf983adbcfb2d768137e4a3cef9a7a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3260524Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/main@{#77817}
-
- 09 Nov, 2021 1 commit
-
-
Simon Zünd authored
This CL fixes a memory leak where we would not properly pop all Promises from the Isolate-wide Promise stack. This can happen under the following conditions: - `await`ing a Promise in an async function - Debugger is active - AsyncEventDelegate is not set. In the case above, the promise of the surrounding async function is pushed onto the global Promise stack, but not poped before the await. This CL fixes that. R=bmeurer@chromium.org Fixed: chromium:1225905 Change-Id: If03f6bfda48b8cb14bc6a68815fd702632edc68d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3268464Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Simon Zünd <szuend@chromium.org> Cr-Commit-Position: refs/heads/main@{#77790}
-
- 08 Nov, 2021 1 commit
-
-
Ng Zhi An authored
Bug: v8:12244,v8:12245 Change-Id: I68aeaf1f30a03295ef76bb07037e809ed91f6977 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3266009Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/main@{#77775}
-
- 03 Nov, 2021 1 commit
-
-
Yang Guo authored
NewJSObjectWithNullProto has use cases outside of the debugger. We previously changed it to create dictionary mode objects, which affects the performance of non-debugger use cases. This change partially reverts that change by differentiating between use cases. Fixed: chromium:1266160 Change-Id: I875073bdc062cf187ef24da62324f743169d2e29 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3257706 Auto-Submit: Yang Guo <yangguo@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/main@{#77671}
-
- 02 Nov, 2021 1 commit
-
-
Yang Guo authored
When materializing a scope object, we previously assumed that we will not have any name collisions. This is not correct e.g. when eval introduces an aliased local variable. This CL resolves this wrong assumption. The test case should not crash. It however fails as there is a bug in how debug-evaluate should resolve variables defined in eval. R=verwaest@chromium.org Fixed: chromium:1240962 Bug: chromium:1264852 Change-Id: I0e41e7905589735e25eff221376d09997ea99117 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3250911 Auto-Submit: Yang Guo <yangguo@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/main@{#77649}
-
- 28 Oct, 2021 2 commits
-
-
Leszek Swirski authored
Change-Id: I17104eba48919c4608d6ab7e91cb09601a2f71d1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3250636 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/main@{#77599}
-
Tim van der Lippe authored
When evaluating a top-level expression while paused on a breakpoint, we don't support an await expression as top-level statement. In these cases, the error was not informative and could be improved. To do so, we now propagate the information from DebugEvaluate to ParseInfo and use the parse_info in parser-base to throw a more informative error while parsing. R=jarin@chromium.org Fixed: chromium:1132245 Change-Id: I200c5af7391258256d1d86a09cbcae326327a0d9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3247037Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Simon Zünd <szuend@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org> Cr-Commit-Position: refs/heads/main@{#77587}
-
- 27 Oct, 2021 1 commit
-
-
Camillo Bruni authored
- Introduce v8::ScriptCompiler::CompileFunction - Deprecate v8::ScriptCompiler::CompileFunctionInContext - Add v8::Function::GetUnboundScript - Add v8::Script::GetResourceName The ScriptOrModule out-parameter is only used by NodeJS since we don't allow arbitrary objects has host-defined options and they need a way to keep the options alive. This CL deprecates the out-parameter and adds helper methods to address the most common use-cases. The final fix still requires more fundamental changes on how host-defined options are handled. Bug: chromium:1244145 Change-Id: Id29de53521ad626c41391b8300146ee37a1b8a51 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3245117Reviewed-by:
Victor Gomes <victorgomes@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Auto-Submit: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/main@{#77564}
-
- 25 Oct, 2021 1 commit
-
-
Camillo Bruni authored
For the upcoming host_defined_options fixes we will have to explicitly pass the host-defined options to Invoke so we will be able to install it in the script context in the future. Bug: chromium:1244145 Change-Id: I690cc774d6a17278db4381aba8c3408e979606c1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3222765 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Shu-yu Guo <syg@chromium.org> Cr-Commit-Position: refs/heads/main@{#77524}
-
- 21 Oct, 2021 1 commit
-
-
Victor Porof authored
This CL exposes the async stack traces instrumentation on the console object, behind a --experimental-async-stack-tagging-api flag. It serves as a prototype that aims to validate whether the debugging experience can be improved for userland code that uses custom schedulers. The tests are implemented as Blink web tests in the following CL: https://chromium-review.googlesource.com/c/chromium/src/+/3226418 Bug: chromium:332624 Change-Id: Ib1ee71de68f7bb9aff5b944812ce681d8711d217 Signed-off-by:
Victor Porof <victorporof@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3212506Reviewed-by:
Simon Zünd <szuend@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/main@{#77491}
-