- 12 Feb, 2021 3 commits
-
-
Benedikt Meurer authored
As outlined in the design document linked below, we're removing the support for the non-standard Function.displayName property for the purpose of Error.stack and DevTools Inspector stack traces. The motivation here is that the negative lookup is costly, and we have Function.name as a standard alternative (configurable since ES6 for exactly this reason). I dediced to go with JSFunction::GetDebugName(), since JSFunction::GetName() was confusing in that it'd only get the "name" property's value if it's a data property, but not with accessors. JSFunction::GetDebugName() makes it clear that this is really a debug helper function and might not give you the "name" property value. Doc: https://bit.ly/devtools-function-displayName-removal Bug: v8:8742, chromium:1177685, chromium:1077657, chromium:17356 Change-Id: I7717585cbace626174b2f2ed2a4f68f75429eca1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2692189 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#72715}
-
Benedikt Meurer authored
Following up on https://crrev.com/c/2689185, this CL significantly simplifies the whole implementation of the stack trace capturing. Before this CL, capturing any stack trace (for the purpose of the API or Error.stack) would roughly work like this: 1. The CaptureStackTrace() function uses the StackFrameIterator to walk the system stack. For each native frame it uses the FrameSummary abstraction to get all (including potentially inlined) frames. For each of those it appends a record consisting of six elements to a FrameArray (this holds pointers to the actual closures and receivers). 2. Afterwards the FrameArray is shrinked to the required size, and a new FixedArray is allocated, and initialized with new StackTraceFrame objects where each holds a reference to the FrameArray, the index of the frame, and an initially uninitialized StackFrameInfo reference. This new FixedArray is then returned from CaptureStackTrace() and either stored on a message object or provided to the API as v8::StackTrace. The new approach removes a lot of the machinery in between and directly creates a FixedArray of StackFrameInfo objects in CaptureStackTrace(). These StackFrameInfo objects are directly exposed as v8::StackFrame on the public API, and they hold the six fields that were previously stored flat in the FrameArray. This not only avoids a lot of copying around of data and creation of temporary objects and handles, but most importantly unifies and simplifies the stack frame function inside StackFrameInfo, so you no longer need to wonder which function / object might be responsible for a certain API. There's still a lot of room for improvement. In particular we currently don't cache the source position for a given StackFrameInfo (or globally), but rather recompute it every time. This is still very fast, significantly faster than the previous approach. There are some notable (potentially user visible) changes: - The CallSite#GetPosition() method now consistently returns the Wasm module relative bytecode offset for all Wasm frames (previously it'd return the function relative bytecode offset for non-asm.js Wasm frames). - The column and line numbers returned from StackFrameInfo methods are consistently 1-based now, instead of sometimes being 0-based (Wasm) and sometimes being 1-based (JS and asm.js Wasm). The only potentially noticable difference is that for CallSite#GetLineNumber() no longer returns 0 for Wasm frames, but that was wrong and useless anyways. - CallSite#GetThis() would sometimes return the_hole, another bug flushed out by this CL. The CL also contains some other not noteworthy drive-by-cleanups. Fixed: chromium:1057211 Bug: chromium:1077657, chromium:1069425, v8:8742 Bug: chromium:1127391, chromium:1098530, chromium:981541 Change-Id: Iff12f6838a4d99080db8dd96bccc14440affc5a5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2689183 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Simon Zünd <szuend@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#72694}
-
Santiago Aboy Solanes authored
Bug: v8:11422 Change-Id: I106b2226d531d7a868ac9344cce8c965250316e1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2690589Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#72692}
-
- 29 Jan, 2021 1 commit
-
-
Marja Hölttä authored
Fix 1: Track Scope::needs_home_object and Scope::uses_super_property accurately. When "eval" is seen, figure out whether it can access "super" and if yes, set the corresponding home object as needed. Fix 2: The object literal scope shouldn't be entered for things inside spreads. Original: https://chromium-review.googlesource.com/c/v8/v8/+/2563275 Previous reland: https://chromium-review.googlesource.com/c/v8/v8/+/2637220 This saves memory (the home object doesn't need to be stored for each method, but only once per class) and hopefully makes the home object a constant in the optimized code. Detailed documentation of the changes: https://docs.google.com/document/d/1ZVXcoQdf9IdMsnRI9iyUjyq9NDoEyx9nA3XqMgwflMs/edit?usp=sharing Bug: v8:9237 Bug: chromium:1167918 Bug: chromium:1167981 Bug: chromium:1167988 Bug: chromium:1168055 Bug: chromium:1171195 Bug: chromium:1171600 Change-Id: I9686e0d90cd0c1128757eca440a88748897ee91e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2655509 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#72422}
-
- 28 Jan, 2021 3 commits
-
-
Benedikt Meurer authored
This adds a [[WebAssemblyMemory]] internal property to ArrayBuffer and SharedArrayBuffer instances that are owned by WebAssembly.Memory objects. This allows the devtools-frontend to find the WebAssembly.Memory for any given ArrayBuffer, making it possible to properly support WebAssembly.memory.grow() eventually, but also showing a reasonable tab title. Before: https://imgur.com/hod9jPR.png After: https://imgur.com/v195VoC.png Bug: chromium:1171621, chromium:1171619, chromium:1166577 Change-Id: Ife22cabdfcf54ab30c234ea4ca86bfbb711ab2f1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2653155 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Kim-Anh Tran <kimanh@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#72403}
-
Dominik Inführ authored
10ms is most likely too short, this also forces us to rename those metrics. Also rename the corresponding tracing events. Bug: v8:10315 Change-Id: I42fb1572b150f15cf12c2b02444f015fae349344 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2652494Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#72400}
-
Marja Hölttä authored
This reverts commit f6450b97. Reason for revert: ClusterFuzz bugs Original change's description: > Reland [super] Store home object in Context instead of JSFunction > > 1) Computed property keys (esp functions in them) shouldn't be inside > the object literal scope. > > 2) I was using an imprecise "maybe uses super" and storing it to > preparse data. This won't fly, since it pollutes sister scopes and > leads to confusion wrt whether an object literal needs a home object > or not. Made it precise (mostly cancelling changes in the original CL). > > 3) PreParser::NewSuperPropertyReference was creating a VariableProxy for > this_function (which made it used) -> inconsistent scopes between > parsing and preparsing. > > 4) MultipleEntryBlockContextScope was messing up the accumulator > > Original: https://chromium-review.googlesource.com/c/v8/v8/+/2563275 > > This saves memory (the home object doesn't need to be stored for each > method, but only once per class) and hopefully makes the home object > a constant in the optimized code. > > Detailed documentation of the changes: > https://docs.google.com/document/d/1ZVXcoQdf9IdMsnRI9iyUjyq9NDoEyx9nA3XqMgwflMs/edit?usp=sharing > > Bug: v8:9237, chromium:1167918, chromium:1167981, chromium:1167988, chromium:1168055 > Change-Id: I4f53f18cc18762c33e53d8c802909b42f1c33538 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2637220 > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Commit-Queue: Marja Hölttä <marja@chromium.org> > Cr-Commit-Position: refs/heads/master@{#72169} TBR=marja@chromium.org,leszeks@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: v8:9237 Bug: chromium:1167918 Bug: chromium:1167981 Bug: chromium:1167988 Bug: chromium:1168055 Bug: chromium:1171195 Bug: chromium:1171600 Change-Id: I15209f50c3fc8acf385a23f031ebb64139e2f519 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2653158Reviewed-by: Marja Hölttä <marja@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#72391}
-
- 26 Jan, 2021 2 commits
-
-
Benedikt Meurer authored
The contract between V8 and Blink is that embedder fields belong to Blink, at least when the object has two or more of them. Now we had 2-3 embedder fields used by the debug proxies and that was confusing Blink, since it expects the first slot to hold an aligned pointer in that case and we had a HeapObject reference stored there. This is a quickfix, which avoids internal fields completely for the context extension proxy (using interceptors on the prototype instead) and changes the named proxies to store the name table under a private symbol instead of using a second internal field. A proper but way more involved fix is to introduce a proper instance type here and use space in the header instead of misusing embedder fields. Fixed: chromium:1170283 Bug: chromium:1159402 Change-Id: I6c4bbe2fe88fef29a6b9946708588245efbbe72b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2649033 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Auto-Submit: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#72323}
-
Shu-yu Guo authored
This CL implements the upcoming spec change: https://github.com/tc39/proposal-regexp-match-indices/pull/49 A new JSRegExpResultWithIndices subclass is introduced with a separate map and an extra slot for storing the indices. If /d is passed, exec() constructs a JSRegExpResultWithIndices and eagerly builds indices. The existing re-execution logic is removed. Bug: v8:9548 Change-Id: Ic11853e7521017af5e8bd583c7b82bb672821132 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2616873 Commit-Queue: Shu-yu Guo <syg@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#72306}
-
- 19 Jan, 2021 2 commits
-
-
Marja Hölttä authored
1) Computed property keys (esp functions in them) shouldn't be inside the object literal scope. 2) I was using an imprecise "maybe uses super" and storing it to preparse data. This won't fly, since it pollutes sister scopes and leads to confusion wrt whether an object literal needs a home object or not. Made it precise (mostly cancelling changes in the original CL). 3) PreParser::NewSuperPropertyReference was creating a VariableProxy for this_function (which made it used) -> inconsistent scopes between parsing and preparsing. 4) MultipleEntryBlockContextScope was messing up the accumulator Original: https://chromium-review.googlesource.com/c/v8/v8/+/2563275 This saves memory (the home object doesn't need to be stored for each method, but only once per class) and hopefully makes the home object a constant in the optimized code. Detailed documentation of the changes: https://docs.google.com/document/d/1ZVXcoQdf9IdMsnRI9iyUjyq9NDoEyx9nA3XqMgwflMs/edit?usp=sharing Bug: v8:9237, chromium:1167918, chromium:1167981, chromium:1167988, chromium:1168055 Change-Id: I4f53f18cc18762c33e53d8c802909b42f1c33538 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2637220Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#72169}
-
Maya Lekova authored
This reverts commit 4d5b878b. Reason for revert: Suspected to cause a failure on ChromeOS, which is blocking the roll - https://chromium-review.googlesource.com/c/chromium/src/+/2636263 Original change's description: > [super] Store home object in Context instead of JSFunction > > This saves memory (the home object doesn't need to be stored for each > method, but only once per class) and hopefully makes the home object > a constant in the optimized code. > > Detailed documentation of the changes: > https://docs.google.com/document/d/1ZVXcoQdf9IdMsnRI9iyUjyq9NDoEyx9nA3XqMgwflMs/edit?usp=sharing > > Bug: v8:9237 > Change-Id: Ia0925bdc8bfe54cbefcba6d10f64746d63a530c7 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2563275 > Commit-Queue: Marja Hölttä <marja@chromium.org> > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Cr-Commit-Position: refs/heads/master@{#72137} TBR=marja@chromium.org,leszeks@chromium.org Change-Id: Idc5a8240cef4da8893ccc608ee4ae0d7206a1ba8 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:9237 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2637215Reviewed-by: Maya Lekova <mslekova@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#72142}
-
- 18 Jan, 2021 1 commit
-
-
Marja Hölttä authored
This saves memory (the home object doesn't need to be stored for each method, but only once per class) and hopefully makes the home object a constant in the optimized code. Detailed documentation of the changes: https://docs.google.com/document/d/1ZVXcoQdf9IdMsnRI9iyUjyq9NDoEyx9nA3XqMgwflMs/edit?usp=sharing Bug: v8:9237 Change-Id: Ia0925bdc8bfe54cbefcba6d10f64746d63a530c7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2563275 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#72137}
-
- 14 Jan, 2021 1 commit
-
-
Ulan Degenbaev authored
Bug: v8:11181 Change-Id: I8ca8b7249ef660874da761c11f192ffd06748ff5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2558219 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#72096}
-
- 08 Jan, 2021 1 commit
-
-
Benedikt Meurer authored
Previously the Debug Proxy API that's exposed on Wasm frames by Runtime.evaluateOnCallFrame() was implemented via actual JSProxy instances. That means that all entities such as "memories", "tables", "stack", "globals", etc. were JSProxy instances with "get" and "has" traps. But that has a couple of down-sides: 1. In DevTools front-end, the proxies are shown as JSProxy, which is not very useful to developers, since they cannot interact with them nor can they inspect their contents. And the object preview also only shows "Proxy {}" for them. 2. The performance doesn't scale well, which becomes a painful bottleneck with larger Wasm modules that contain hundreds of thousands of functions or globals. 3. We cannot use the JSProxy instances in the Scope view (for the reasons outlined in 1.) and hence we have different logic to provide Scope values than values in the rest of DevTools, which led to subtle but annoying bugs and inconsistencies. This also changes the "locals" implementation by querying the values ahead of time, similar to the object exposed to the Scope view, instead of on-demand, since the "locals" object might survive the current debugger pause and peeking into the stack afterwards would read invalid memory (and might even be a security issue). For being able to change locals we need to look into a similar solution as what we have for JavaScript locals already. The expression stack already works this way. For performance reasons (especially scaling to huge, realistic Wasm modules), we cache the per-instance proxies ("functions", "memories", "tables" and "globals") on the WasmInstanceObject and reuse them (which is safe since they have a `null` prototype and are non-extensible), and we also cache the proxy maps (with the interceptors) on the JSGlobalObject per native context. Doc: http://bit.ly/devtools-wasm-entities Bug: chromium:1127914, chromium:1159402, chromium:1071432, chromium:1164241 Change-Id: I6191035fdfd887835ae533fcdaabb5bbc8e661ae Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2606058 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Auto-Submit: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#71981}
-
- 16 Dec, 2020 2 commits
-
-
Dominik Inführ authored
This CL completes sweeping in Heap::PerformGarbageCollection before invoking the actual collection. Collection code can now assume that sweeping was already finished. This helps with emitting the right epoch for sweeping and avoids a data-race when updating the epoch while sweeping tasks are still running. Bug: chromium:1154636 Change-Id: Ic9c4ac49568199d0ea48f17eea132079defe74a5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2573478 Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#71794}
-
Dominik Inführ authored
This is a reland of b614cd78 Original change's description: > Reland "Reland "[heap] Add epoch to GC tracing events"" > > This is a reland of 3238162d > > No changes since the last reland. > > Original change's description: > > Reland "[heap] Add epoch to GC tracing events" > > > > This is a reland of be52501d > > > > Fix data race by not emitting the epoch for sweeper background jobs > > at them moment. > > > > Original change's description: > > > [heap] Add epoch to GC tracing events > > > > > > This CL adds the TRACE_GC_EPOCH macro, which adds the epoch as attribute > > > to the trace event. Use TRACE_GC_EPOCH for top-level events, nested > > > events can get the information from its parent. > > > > > > V8's GC needs an epoch for young and full collections, since scavenges > > > also occur during incremental marking. The epoch is also process-wide, > > > so different isolates do not reuse the same id. > > > > > > Change-Id: I8889bccce51e008374b4796445a50062bd87a45d > > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2565247 > > > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> > > > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > > > Cr-Commit-Position: refs/heads/master@{#71521} > > > > Change-Id: Ib8f4bfdc01c459955eb6db63bb6e24a8aa068f09 > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2567702 > > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> > > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#71567} > > TBR=ulan@chromium.org,dinfuehr@chromium.org > > Change-Id: I09dcfabbad4ef1ad50e02a227282982cd7d87997 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2571122 > Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> > Cr-Commit-Position: refs/heads/master@{#71609} Change-Id: I89dfa5c7658197348a39be51b75dba77bfd4a70b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2577470 Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#71777}
-
- 04 Dec, 2020 2 commits
-
-
Sathya Gunasekaran authored
This reverts commit b614cd78. Reason for revert: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64/40448/overview Original change's description: > Reland "Reland "[heap] Add epoch to GC tracing events"" > > This is a reland of 3238162d > > No changes since the last reland. > > Original change's description: > > Reland "[heap] Add epoch to GC tracing events" > > > > This is a reland of be52501d > > > > Fix data race by not emitting the epoch for sweeper background jobs > > at them moment. > > > > Original change's description: > > > [heap] Add epoch to GC tracing events > > > > > > This CL adds the TRACE_GC_EPOCH macro, which adds the epoch as attribute > > > to the trace event. Use TRACE_GC_EPOCH for top-level events, nested > > > events can get the information from its parent. > > > > > > V8's GC needs an epoch for young and full collections, since scavenges > > > also occur during incremental marking. The epoch is also process-wide, > > > so different isolates do not reuse the same id. > > > > > > Change-Id: I8889bccce51e008374b4796445a50062bd87a45d > > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2565247 > > > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> > > > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > > > Cr-Commit-Position: refs/heads/master@{#71521} > > > > Change-Id: Ib8f4bfdc01c459955eb6db63bb6e24a8aa068f09 > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2567702 > > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> > > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#71567} > > TBR=ulan@chromium.org,dinfuehr@chromium.org > > Change-Id: I09dcfabbad4ef1ad50e02a227282982cd7d87997 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2571122 > Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> > Cr-Commit-Position: refs/heads/master@{#71609} TBR=ulan@chromium.org,dinfuehr@chromium.org Change-Id: I9dfd37f969ec0c5e5f278e6a82732995fd82e5d9 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2574002Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#71610}
-
Dominik Inführ authored
This is a reland of 3238162d No changes since the last reland. Original change's description: > Reland "[heap] Add epoch to GC tracing events" > > This is a reland of be52501d > > Fix data race by not emitting the epoch for sweeper background jobs > at them moment. > > Original change's description: > > [heap] Add epoch to GC tracing events > > > > This CL adds the TRACE_GC_EPOCH macro, which adds the epoch as attribute > > to the trace event. Use TRACE_GC_EPOCH for top-level events, nested > > events can get the information from its parent. > > > > V8's GC needs an epoch for young and full collections, since scavenges > > also occur during incremental marking. The epoch is also process-wide, > > so different isolates do not reuse the same id. > > > > Change-Id: I8889bccce51e008374b4796445a50062bd87a45d > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2565247 > > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> > > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#71521} > > Change-Id: Ib8f4bfdc01c459955eb6db63bb6e24a8aa068f09 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2567702 > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#71567} TBR=ulan@chromium.org,dinfuehr@chromium.org Change-Id: I09dcfabbad4ef1ad50e02a227282982cd7d87997 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2571122Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#71609}
-
- 03 Dec, 2020 1 commit
-
-
Philip Pfaffe authored
Also construct the `JSMap`s used to store these names lazily and only on-demand, and construct them directly instead of first doing a `std::vector<Handle<String>>` and using that to construct the `JSMap`. The latter resulted in a gigantic root set of 150k+ handles, which wasn't well received by the GC. Bug: chromium:1154154 Fixed: chromium:1154564 Also-By: bmeurer@chromium.org Change-Id: I92e8931f15eda133e2a62b5cc53fbe1f2dafcead Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2568275 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Auto-Submit: Philip Pfaffe <pfaffe@chromium.org> Cr-Commit-Position: refs/heads/master@{#71589}
-
- 02 Dec, 2020 2 commits
-
-
Maya Lekova authored
This reverts commit 3238162d. Reason for revert: Speculative revert for https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64/40411/overview, causing SEGV_ACCERR on test/mjsunit/harmony/promise-any-overflow-2.js and other failures in minor_mc variant Original change's description: > Reland "[heap] Add epoch to GC tracing events" > > This is a reland of be52501d > > Fix data race by not emitting the epoch for sweeper background jobs > at them moment. > > Original change's description: > > [heap] Add epoch to GC tracing events > > > > This CL adds the TRACE_GC_EPOCH macro, which adds the epoch as attribute > > to the trace event. Use TRACE_GC_EPOCH for top-level events, nested > > events can get the information from its parent. > > > > V8's GC needs an epoch for young and full collections, since scavenges > > also occur during incremental marking. The epoch is also process-wide, > > so different isolates do not reuse the same id. > > > > Change-Id: I8889bccce51e008374b4796445a50062bd87a45d > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2565247 > > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> > > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#71521} > > Change-Id: Ib8f4bfdc01c459955eb6db63bb6e24a8aa068f09 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2567702 > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#71567} TBR=ulan@chromium.org,dinfuehr@chromium.org Change-Id: I29a131f798c3536d16e4b4c44c0fcb8b35dd0051 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2569764Reviewed-by: Maya Lekova <mslekova@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#71569}
-
Dominik Inführ authored
This is a reland of be52501d Fix data race by not emitting the epoch for sweeper background jobs at them moment. Original change's description: > [heap] Add epoch to GC tracing events > > This CL adds the TRACE_GC_EPOCH macro, which adds the epoch as attribute > to the trace event. Use TRACE_GC_EPOCH for top-level events, nested > events can get the information from its parent. > > V8's GC needs an epoch for young and full collections, since scavenges > also occur during incremental marking. The epoch is also process-wide, > so different isolates do not reuse the same id. > > Change-Id: I8889bccce51e008374b4796445a50062bd87a45d > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2565247 > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#71521} Change-Id: Ib8f4bfdc01c459955eb6db63bb6e24a8aa068f09 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2567702 Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#71567}
-
- 01 Dec, 2020 2 commits
-
-
Clemens Backes authored
This reverts commit be52501d. Reason for revert: Multiple TSan issues: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20TSAN/34457/overview (and others) Original change's description: > [heap] Add epoch to GC tracing events > > This CL adds the TRACE_GC_EPOCH macro, which adds the epoch as attribute > to the trace event. Use TRACE_GC_EPOCH for top-level events, nested > events can get the information from its parent. > > V8's GC needs an epoch for young and full collections, since scavenges > also occur during incremental marking. The epoch is also process-wide, > so different isolates do not reuse the same id. > > Change-Id: I8889bccce51e008374b4796445a50062bd87a45d > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2565247 > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#71521} TBR=ulan@chromium.org,dinfuehr@chromium.org Change-Id: I8219595f0751de84cbea7e047ef21aa95da32f07 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2567696Reviewed-by: Clemens Backes <clemensb@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#71523}
-
Dominik Inführ authored
This CL adds the TRACE_GC_EPOCH macro, which adds the epoch as attribute to the trace event. Use TRACE_GC_EPOCH for top-level events, nested events can get the information from its parent. V8's GC needs an epoch for young and full collections, since scavenges also occur during incremental marking. The epoch is also process-wide, so different isolates do not reuse the same id. Change-Id: I8889bccce51e008374b4796445a50062bd87a45d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2565247 Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#71521}
-
- 30 Nov, 2020 1 commit
-
-
Dominik Inführ authored
Change-Id: I5a42e582bec48a0f10f4914295e0c9a267e37b57 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2565518Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#71507}
-
- 25 Nov, 2020 1 commit
-
-
Dominik Inführ authored
Scopes aren't used anymore. Change-Id: Id233974e3b9760560deb85d822218efe9ab9f896 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2560199 Auto-Submit: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#71415}
-
- 24 Nov, 2020 1 commit
-
-
Frank Tang authored
Bug: v8:11174 Change-Id: If84c9056d0147720dabce52154648b4086146d0c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2556258Reviewed-by: Frank Tang <ftang@chromium.org> Reviewed-by: Shu-yu Guo <syg@chromium.org> Commit-Queue: Frank Tang <ftang@chromium.org> Cr-Commit-Position: refs/heads/master@{#71361}
-
- 30 Oct, 2020 1 commit
-
-
Martin Bidlingmaier authored
This commit adds the 'l' (linear) RegExp flag (as in e.g. /asdf|123/l) that forces execution in linear time. These regexps are handled by the experimental engine. If the experimental engine cannot handle the pattern, an exception is thrown on creation of the regexp. The commit also adds a new global V8 flag and changes an existing one: * --enable-experimental-engine, which turns on recognition of the RegExp 'l' flag. Previously this flag also caused all supported regexps to be executed by the experimental engine; this is not the case anymore. * --default-to-experimental-regexp-engine takes over the previous semantics of --enable-experimental-regexp-engine: We execute all supported regexps with the experimental engine. Cq-Include-Trybots: luci.v8.try:v8_linux64_fyi_rel_ng Bug: v8:10765 Change-Id: I5622a89b19404105e8be280d454e9fdd63c003b3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2461244Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Simon Zünd <szuend@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Martin Bidlingmaier <mbid@google.com> Cr-Commit-Position: refs/heads/master@{#70892}
-
- 29 Oct, 2020 1 commit
-
-
Dominik Inführ authored
Merge the list of concurrently swept ArrayBufferExtensions sooner back to the main thread. When appending a new ArrayBufferExtension check whether the concurrent sweeping was already finished and merge the lists if it is. In order to reduce the number of GCs in the linked test case, reset young_bytes_ and old_bytes_ to 0 while sweeping the ArrayBufferExtensions. Surviving extensions will be accounted again when merging lists. As a drive-by change remove scavenge.process_array_buffers from GCTracer. GCTracer also printed the wrong value for fast_promote. Bug: v8:11044 Change-Id: I8a772df895c43a69493015f42336c6f33fe52056 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2505764Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#70880}
-
- 27 Oct, 2020 1 commit
-
-
Mike Stanton authored
This CL provides synchronized get/set to feedback vector slots. The FeedbackNexus is set up to use order preserving reads when used on the background thread, and a lock to ensure coherent read of information for ICKinds with two slots. The main thread takes the lock on sets. This test provides patterns to be followed by concurrent TurboFan. We don't yet access the FeedbackVector on the background thread. This CL only makes it safe to do so. The next step will come when the optimizing compiler begins to query the the vector from the background thread. Currently, with --concurrent-inlining turned on this is done in bytecode serialization on the main thread. Without concurrent inlining, it's also done on the main thread, in both cases using the FeedbackNexus. Bug: v8:7790 Change-Id: I49d8b8031190f91a0da1c24f375b6b6d8a9fe038 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2276210 Commit-Queue: Michael Stanton <mvstanton@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#70797}
-
- 22 Oct, 2020 1 commit
-
-
Dominik Inführ authored
Measure time from requesting GC on background thread until the main thread starts the collection. Also add trace event for the GC on the background thread. Bug: v8:10315 Change-Id: I765ce0df8a1c31e4f64661ea8dc0b6a4685a3132 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2489681Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#70707}
-
- 15 Oct, 2020 1 commit
-
-
Daniel Clark authored
This is the first change in the process of implementing import assertions per https://tc39.es/proposal-import-assertions/. This CR adds support for the empty form of the AssertClause. Also added is a --harmony-import-assertions flag to enable/disable import assertions. For now, the feature is off by default. The next change will enable the parser to handle a non-empty list of AssertEntries. Bug: v8:10958 Change-Id: I0832d89effc27225aa4430605a51690461daf7ad Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2468623Reviewed-by: Marja Hölttä <marja@chromium.org> Commit-Queue: Dan Clark <daniec@microsoft.com> Cr-Commit-Position: refs/heads/master@{#70545}
-
- 13 Aug, 2020 1 commit
-
-
Dominik Inführ authored
Bug: v8:10315 Change-Id: I70f62b5bc3856163aba2672149876b185fc20c00 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2346277Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#69389}
-
- 03 Aug, 2020 1 commit
-
-
Jakob Kummerow authored
This is a stop-gap solution (while we wait for a proper spec) that lets managed WasmGC objects perform round-trips through JavaScript. On the JavaScript side, they appear as empty/opaque. Bug: v8:7748 Change-Id: I0dd368bc14d622f3ef41871484228267359e9b5b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2316306 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#69207}
-
- 30 Jul, 2020 1 commit
-
-
Frank Tang authored
This is a reland of 482c3bbf Original change's description: > [Intl] Sync Intl.Segmenter to latest version > > https://tc39.es/proposal-intl-segmenter/ > > TC39 passed Intl.Segmenter to stage 3 in Jul 21. > This CL move our earlier prototype to the current spec. > > Bug: v8:6891 > Change-Id: I07234beed54f671c26bdbfb3983c5bc2fa5a29b0 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2219413 > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Reviewed-by: Frank Tang <ftang@chromium.org> > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Commit-Queue: Frank Tang <ftang@chromium.org> > Cr-Commit-Position: refs/heads/master@{#69080} Bug: v8:6891 Change-Id: Ie3a02d8ddf6f95f0632f97b38b613b185abeb592 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2321118Reviewed-by: Frank Tang <ftang@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Frank Tang <ftang@chromium.org> Cr-Commit-Position: refs/heads/master@{#69153}
-
- 27 Jul, 2020 2 commits
-
-
Shu-yu Guo authored
This reverts commit 482c3bbf. Reason for revert: Test failure https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20gc%20stress/29160? Original change's description: > [Intl] Sync Intl.Segmenter to latest version > > https://tc39.es/proposal-intl-segmenter/ > > TC39 passed Intl.Segmenter to stage 3 in Jul 21. > This CL move our earlier prototype to the current spec. > > Bug: v8:6891 > Change-Id: I07234beed54f671c26bdbfb3983c5bc2fa5a29b0 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2219413 > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Reviewed-by: Frank Tang <ftang@chromium.org> > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Commit-Queue: Frank Tang <ftang@chromium.org> > Cr-Commit-Position: refs/heads/master@{#69080} TBR=jkummerow@chromium.org,tebbi@chromium.org,ftang@chromium.org,syg@chromium.org Change-Id: I1488d5fd50012c5e8873a4fed2fa7638d86d5c6a No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:6891 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2320741Reviewed-by: Shu-yu Guo <syg@chromium.org> Commit-Queue: Shu-yu Guo <syg@chromium.org> Cr-Commit-Position: refs/heads/master@{#69081}
-
Frank Tang authored
https://tc39.es/proposal-intl-segmenter/ TC39 passed Intl.Segmenter to stage 3 in Jul 21. This CL move our earlier prototype to the current spec. Bug: v8:6891 Change-Id: I07234beed54f671c26bdbfb3983c5bc2fa5a29b0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2219413Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Frank Tang <ftang@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Frank Tang <ftang@chromium.org> Cr-Commit-Position: refs/heads/master@{#69080}
-
- 16 Jul, 2020 1 commit
-
-
Dominik Inführ authored
Now that --concurrent-inlining is already using LocalHeaps and requires a global safepoint, let's measure how long it takes to stop-the-world. Bug: v8:10315 Change-Id: I90f451448199fd43b9991849f4343f77e4aa3813 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2300544Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#68886}
-
- 27 May, 2020 1 commit
-
-
Marja Hölttä authored
All strings in the internalized string list now have them. Bug: v8:10506 Change-Id: I68feb34d0dc424465a53ac73a5d6b5297e29dd00 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2218032 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#68014}
-
- 12 May, 2020 1 commit
-
-
Ulan Degenbaev authored
Change-Id: I3d5d856d86deb283173c7b6f0f302e3c4e4b67fb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2190755 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#67729}
-
- 21 Apr, 2020 1 commit
-
-
Shu-yu Guo authored
Use the InstallFunction helper to create the initial map and prototypes instead of manually doing so. WeakRef is currently creating an unused Map tied to JS_WEAK_REF_TYPE that would cause the various LogMaps cctests to fail when the feature ships. Bug: v8:8179 Change-Id: Ic1b35ebe5da722fa030af336099fff6153b4baed Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2158488 Commit-Queue: Shu-yu Guo <syg@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#67294}
-