- 20 Aug, 2019 1 commit
-
-
Joshua Litt authored
Implements match indices for regexp, as specified by https://github.com/tc39/proposal-regexp-match-indices, a stage 3 TC39 proposal. This implementation is hidden behind the '--harmony-regexp-match-indices' flag. Regexp match indices extends the JSRegExpResult object with an array of indices of matches, as well as a dictionary of capture names to match indices. Bug: v8:9548 Change-Id: I9866a2d1f5af6a507de710357cb5e74c694e7558 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1734937 Commit-Queue: Joshua Litt <joshualitt@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#63272}
-
- 19 Aug, 2019 3 commits
-
-
Dominik Inführ authored
This reverts commit 60843b42. Reason for revert: TSAN detected issue between Scavenge workers. One task could invoke RefillFreeList(), while the other task iterates the remembered set of a swept page. Original change's description: > Use list of invalidated objects for old-to-new refs > > Instead of inserting "deletion" entries into the store buffer, keep a > list of invalidated objects to filter out invalid old-to-new slots. > > The first CL https://crrev.com/c/1704109 got reverted because both the > sweeper and the main task were modifying the invalidated slots data > structure concurrently. This CL changes this, such that the sweeper > only modifies the invalidated slots during the final atomic pause when > the main thread is not running. The sweeper does not need to clean this > data structure after the pause, since the "update pointers" phase > already removed all invalidated slots. > > The second CL https://crrev.com/c/1733081 got reverted because the > sweeper might find more free space than the full GC before it. If an > object shrinks after the pause but before the sweep, the invalidated > object might span free memory and potentially new allocated objects. > Therefore shrink invalidated objects when processing swept pages on > the main thread. Also clean recorded slots in the gap. > > TBR=petermarshall@chromium.org > > Bug: v8:9454 > Change-Id: I80d1fa3bbc24e97f7c97a373aaad66f105456f12 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1751795 > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#63239} TBR=ulan@chromium.org,hpayer@chromium.org,dinfuehr@chromium.org Change-Id: I9c6a371ebe36a1873acbe0d6c6a75dd2f5a55f4e No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:9454 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1760817Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#63253}
-
Jakob Kummerow authored
Change-Id: Ib28e408cb6046fd728ceff6e6bf4005a241664e2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1745340Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#63247}
-
Dominik Inführ authored
Instead of inserting "deletion" entries into the store buffer, keep a list of invalidated objects to filter out invalid old-to-new slots. The first CL https://crrev.com/c/1704109 got reverted because both the sweeper and the main task were modifying the invalidated slots data structure concurrently. This CL changes this, such that the sweeper only modifies the invalidated slots during the final atomic pause when the main thread is not running. The sweeper does not need to clean this data structure after the pause, since the "update pointers" phase already removed all invalidated slots. The second CL https://crrev.com/c/1733081 got reverted because the sweeper might find more free space than the full GC before it. If an object shrinks after the pause but before the sweep, the invalidated object might span free memory and potentially new allocated objects. Therefore shrink invalidated objects when processing swept pages on the main thread. Also clean recorded slots in the gap. TBR=petermarshall@chromium.org Bug: v8:9454 Change-Id: I80d1fa3bbc24e97f7c97a373aaad66f105456f12 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1751795 Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#63239}
-
- 14 Aug, 2019 1 commit
-
-
Michaël Zasso authored
This change makes the code compatible with both Python 2 and Python 3. Change-Id: I99d68af9c3163607c3a2fdbafac339a98b7471e4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1751331 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#63207}
-
- 13 Aug, 2019 1 commit
-
-
cjihrig authored
Update postmortem metadata constants for V8 7.4 in Node.js. Change-Id: I7d248b345e0326dafb776e144a6a22a381a05fc1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1546049 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#63189}
-
- 12 Aug, 2019 2 commits
-
-
Ross McIlroy authored
Create canonical ScopeInfos for the global this binding and empty function in the read only space, rather than creating them during bootstrapping for each native context. This saves some memory, and also means we don't need to access the native context to get the global this binding in when deserializing a scope info, which is important since parsing should be native context independent. BUG=chromium:992063 Change-Id: I800f576e8e9b95d46e043cba0c1a03ae19a683c7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1748690 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#63174}
-
Yang Guo authored
R=machenbach@chromium.org Bug: chromium:992584 Change-Id: I301013731a502689f2edd5c90e5e7bf2136198c5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1745337Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#63159}
-
- 09 Aug, 2019 2 commits
-
-
Santiago Aboy Solanes authored
Bug: v8:9396 Change-Id: Ic5082b91cc61a286bd6a440009bf18202e853339 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1730997Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#63141}
-
Tamer Tas authored
TBR=machenbach@chromium.org Bug: chromium:883629 Change-Id: Ie9d4584f6fd2c59e51128b09df5de3fbf8cf8780 No-Try: True Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1745468Reviewed-by:
Tamer Tas <tmrts@chromium.org> Auto-Submit: Tamer Tas <tmrts@chromium.org> Commit-Queue: Tamer Tas <tmrts@chromium.org> Cr-Commit-Position: refs/heads/master@{#63136}
-
- 08 Aug, 2019 2 commits
-
-
Dominik Inführ authored
This reverts commit e2f98ec2. Reason for revert: Caused performance regression in ArrayLiteralInitialSpreadSmallHoley. Original change's description: > Use list of invalidated objects for old-to-new refs > > Instead of inserting "deletion" entries into the store buffer, keep > a list of invalidated objects to filter out invalid old-to-new slots. > > The first CL https://crrev.com/c/1704109 got reverted because both the sweeper and the main task were modifying the invalidated slots data structure concurrently. This CL changes this, such that the sweeper only modifies the invalidated slots during the final atomic pause when the main thread is not running. The sweeper does not need to clean this data structure after the pause, since the "update pointers" phase already removed all invalidated slots. > > Bug: v8:9454 > Change-Id: Iffb5bf96de2c89eee1ee1231a3414a0f2a155cbc > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1733081 > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Peter Marshall <petermarshall@chromium.org> > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> > Cr-Commit-Position: refs/heads/master@{#63087} TBR=ulan@chromium.org,petermarshall@chromium.org,dinfuehr@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: v8:9454 Change-Id: I328b9f72df45fc9570d4a4d1b5389eac010638c7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1743970 Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#63131}
-
Tamer Tas authored
TBR=machenbach@chromium.org No-Try: True Change-Id: Ie0a94f97989a6f5a7e0b68c733035e3dac264215 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1743966Reviewed-by:
Tamer Tas <tmrts@chromium.org> Auto-Submit: Tamer Tas <tmrts@chromium.org> Commit-Queue: Tamer Tas <tmrts@chromium.org> Cr-Commit-Position: refs/heads/master@{#63123}
-
- 07 Aug, 2019 4 commits
-
-
Michael Achenbach authored
TBR=santa Change-Id: I05cdd74eea6f2b02158d6d9854f35a08b455edd4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1741656Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#63117}
-
Tobias Tebbi authored
This reverts commit 79b00555. Reason for revert: needs more discussion Original change's description: > [torque] introduce JSAny type for user-accessible JavaScript values > > This CL introduces a JSAny type for user-exposed JavaScript values and > a few new types to define it. Especially, it splits Symbol into > PrivateSymbol (not exposed) and PublicSymbol (JavaScript exposed > symbols). > > The change is mostly mechanical, but a few things are interesting: > - PropertyKey and JSPrimitive were designed to coincide with the spec > notions of IsPropertyKey() and primitive value, respectively. > - Since Name is an open type, we define AnyName to be the known > subtypes of Name. This is not too elegant, but by using AnyName > instead of Name, typeswitch can properly conclude something if a > subtype of Name is excluded. > > Small drive-by changes, which were necessary: > - Allow subtyping on label parameters. > - Fix the formatting of typeswitch, it was broken with union types > in case types. > > Bug: v8:7793 > Change-Id: I14b10507f8cf316ad85e048fe8d53d1df5e0bb13 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1735322 > Commit-Queue: Tobias Tebbi <tebbi@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Cr-Commit-Position: refs/heads/master@{#63114} TBR=neis@chromium.org,jgruber@chromium.org,tebbi@chromium.org Change-Id: Ifde7881d74afe407628f40047997339d54cb2424 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7793 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1741652Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#63115}
-
Tobias Tebbi authored
This CL introduces a JSAny type for user-exposed JavaScript values and a few new types to define it. Especially, it splits Symbol into PrivateSymbol (not exposed) and PublicSymbol (JavaScript exposed symbols). The change is mostly mechanical, but a few things are interesting: - PropertyKey and JSPrimitive were designed to coincide with the spec notions of IsPropertyKey() and primitive value, respectively. - Since Name is an open type, we define AnyName to be the known subtypes of Name. This is not too elegant, but by using AnyName instead of Name, typeswitch can properly conclude something if a subtype of Name is excluded. Small drive-by changes, which were necessary: - Allow subtyping on label parameters. - Fix the formatting of typeswitch, it was broken with union types in case types. Bug: v8:7793 Change-Id: I14b10507f8cf316ad85e048fe8d53d1df5e0bb13 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1735322 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#63114}
-
Michael Achenbach authored
Change-Id: I035d276004b21f167ede2ecd9bc59759f135bbd9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1741647Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#63107}
-
- 06 Aug, 2019 1 commit
-
-
Dominik Inführ authored
Instead of inserting "deletion" entries into the store buffer, keep a list of invalidated objects to filter out invalid old-to-new slots. The first CL https://crrev.com/c/1704109 got reverted because both the sweeper and the main task were modifying the invalidated slots data structure concurrently. This CL changes this, such that the sweeper only modifies the invalidated slots during the final atomic pause when the main thread is not running. The sweeper does not need to clean this data structure after the pause, since the "update pointers" phase already removed all invalidated slots. Bug: v8:9454 Change-Id: Iffb5bf96de2c89eee1ee1231a3414a0f2a155cbc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1733081Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#63087}
-
- 05 Aug, 2019 3 commits
-
-
Michael Achenbach authored
This is a reland of 3fc96631 The private method on_event in timeout proc is now renamed to be truly private. Original change's description: > [test] Print hanging tests on linux on test-runner termination > > This will print the list of processes still running before and after > joining workers during termination. This will help debugging hanging > tests during flake-bisect or with num-fuzzer, which both terminate > on total timeout and currently still sometimes hang without printing > processes. > > Bug: v8:8292 > Change-Id: I124b65fa35b8d7a6aa198fcf50f2c20df94dc51a > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1735312 > Reviewed-by: Tamer Tas <tmrts@chromium.org> > Commit-Queue: Michael Achenbach <machenbach@chromium.org> > Cr-Commit-Position: refs/heads/master@{#63065} Bug: v8:8292 Change-Id: Ibad1172666d6f4d2c07884a54edfe9d6499b57fe Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1735318Reviewed-by:
Tamer Tas <tmrts@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#63072}
-
Michael Achenbach authored
This reverts commit 3fc96631. Reason for revert: _on_event clashes with a the same function in timeout proc. Original change's description: > [test] Print hanging tests on linux on test-runner termination > > This will print the list of processes still running before and after > joining workers during termination. This will help debugging hanging > tests during flake-bisect or with num-fuzzer, which both terminate > on total timeout and currently still sometimes hang without printing > processes. > > Bug: v8:8292 > Change-Id: I124b65fa35b8d7a6aa198fcf50f2c20df94dc51a > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1735312 > Reviewed-by: Tamer Tas <tmrts@chromium.org> > Commit-Queue: Michael Achenbach <machenbach@chromium.org> > Cr-Commit-Position: refs/heads/master@{#63065} TBR=machenbach@chromium.org,tmrts@chromium.org Change-Id: Ic29013e92c77a9905e06ee13a2449e033285eb36 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:8292 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1735317Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#63066}
-
Michael Achenbach authored
This will print the list of processes still running before and after joining workers during termination. This will help debugging hanging tests during flake-bisect or with num-fuzzer, which both terminate on total timeout and currently still sometimes hang without printing processes. Bug: v8:8292 Change-Id: I124b65fa35b8d7a6aa198fcf50f2c20df94dc51a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1735312Reviewed-by:
Tamer Tas <tmrts@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#63065}
-
- 31 Jul, 2019 2 commits
-
-
Seth Brenith authored
This is a reland of 517ab73f Updates since original: now compressed pointers passed to the function GetObjectProperties are required to be sign-extended. Previously, the function allowed zero-extended values, but that led to ambiguity on pointers like 0x88044919: is it compressed or is the heap range actually centered on 0x100000000? Original change's description: > Add postmortem debugging helper library > > This change begins to implement the functionality described in > https://docs.google.com/document/d/1evHnb1uLlSbvHAAsmOXyc25x3uh1DjgNa8u1RHvwVhk/edit# > for investigating V8 state in crash dumps. > > This change adds a new library, v8_debug_helper, for providing platform- > agnostic assistance with postmortem debugging. This library can be used > by extensions built for debuggers such as WinDbg or lldb. Its public API > is described by debug-helper.h; currently the only method it exposes is > GetObjectProperties, but we'd like to add more functionality over time. > The API surface is restricted to plain C-style structs and pointers, so > that it's easy to link from a debugger extension built with a different > toolchain. > > This change also adds a new cctest file to exercise some basic > interaction with the new library. > > The API function GetObjectProperties takes an object pointer (which > could be compressed, or weak, or a SMI), and returns a string > description of the object and a list of properties the object contains. > For now, the list of properties is entirely based on Torque object > definitions, but we expect to add custom properties in future updates so > that it can be easier to make sense of complex data structures such as > dictionaries. > > GetObjectProperties does several things that are intended to generate > somewhat useful results even in cases where memory may be corrupt or > unavailable: > - The caller may optionally provide a type string which will be used if > the memory for the object's Map is inaccessible. > - All object pointers are compared against the list of known objects > generated by mkgrokdump. The caller may optionally provide the > pointers for the first pages of various heap spaces, to avoid spurious > matches. If those pointers are not provided, then any matches are > prefixed with "maybe" in the resulting description string, such as > "maybe UndefinedValue (0x4288000341 <Oddball>)". > > Bug: v8:9376 > > Change-Id: Iebf3cc2dea3133c7811bcefcdf38d9458b02fded > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1628012 > Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Reviewed-by: Michael Stanton <mvstanton@chromium.org> > Cr-Commit-Position: refs/heads/master@{#62882} Bug: v8:9376 Change-Id: I866a1cc9d4c34bfe10c7b98462451fe69763cf3f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1717090Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Cr-Commit-Position: refs/heads/master@{#63008}
-
Michael Achenbach authored
Change-Id: Ica3d8ca233278e50e390aad37138942d23b5b8b1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1728612Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#63003}
-
- 30 Jul, 2019 2 commits
-
-
Sathya Gunasekaran authored
Previously, this was run as a microtask and this CL changes it to run as a separate task as mandated by the current WeakRef spec. This CL also introduces a FinalizationGroup type to the V8 API representing the JSFinalizationGroup. This has a `Cleanup` function that runs the cleanup callback associated with it. SetHostCleanupFinalizationGroupCallback is added to set the embedder defined HostCleanupFinalizationGroupCallback. ClearKeptObject is exposed on the v8::Isolate to reset the strongly held set of objects. The general workflow is the following: (a) When the GC notices that a given finalization group has dirty cells, it calls HostCleanupFinalizationGroupCallback with the given finalization group. (b) As part of HostCleanupFinalizationGroupCallback, the embedder enqueues a task that at some point later calls FinalizationGroup::Cleanup. (c) At some point in the future, FinalizationGroup::Cleanup is called, which runs the cleanup callback of the finalization group. This patch also includes d8 changes to use these new APIs. Currently, d8 cycles through the enqueued finalization groups after a synchronous turn (and it's microtask checkpoint) and runs the cleanup callbacks. Change-Id: I06eb4da2c103b2792a9c62bc4b98fd4e5c4892fc Bug: v8:8179 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1655655 Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#62984}
-
Michael Achenbach authored
Change-Id: If57fdeeaef9a45ad7d17c0fc27dc89fbc83e4a02 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1725627Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#62983}
-
- 25 Jul, 2019 2 commits
-
-
Leszek Swirski authored
Data in the viewer has to be in the same order as the labels. Change-Id: I2e64fb30ebc0e3585c7b9d364553cb6a5ec1f3cb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1718159 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#62921}
-
Leszek Swirski authored
Distinguish between generic Tagged and Smi in-object fields, and special case (boxed) double values and string data rather than lumping those into generic "raw data" Change-Id: I5d635434ab94065c077a40110948424c31ead73d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1718154 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#62914}
-
- 24 Jul, 2019 1 commit
-
-
Zhi An Ng authored
This reverts commit 517ab73f. Reason for revert: Test failures https://bugs.chromium.org/p/v8/issues/detail?id=9538 Original change's description: > Add postmortem debugging helper library > > This change begins to implement the functionality described in > https://docs.google.com/document/d/1evHnb1uLlSbvHAAsmOXyc25x3uh1DjgNa8u1RHvwVhk/edit# > for investigating V8 state in crash dumps. > > This change adds a new library, v8_debug_helper, for providing platform- > agnostic assistance with postmortem debugging. This library can be used > by extensions built for debuggers such as WinDbg or lldb. Its public API > is described by debug-helper.h; currently the only method it exposes is > GetObjectProperties, but we'd like to add more functionality over time. > The API surface is restricted to plain C-style structs and pointers, so > that it's easy to link from a debugger extension built with a different > toolchain. > > This change also adds a new cctest file to exercise some basic > interaction with the new library. > > The API function GetObjectProperties takes an object pointer (which > could be compressed, or weak, or a SMI), and returns a string > description of the object and a list of properties the object contains. > For now, the list of properties is entirely based on Torque object > definitions, but we expect to add custom properties in future updates so > that it can be easier to make sense of complex data structures such as > dictionaries. > > GetObjectProperties does several things that are intended to generate > somewhat useful results even in cases where memory may be corrupt or > unavailable: > - The caller may optionally provide a type string which will be used if > the memory for the object's Map is inaccessible. > - All object pointers are compared against the list of known objects > generated by mkgrokdump. The caller may optionally provide the > pointers for the first pages of various heap spaces, to avoid spurious > matches. If those pointers are not provided, then any matches are > prefixed with "maybe" in the resulting description string, such as > "maybe UndefinedValue (0x4288000341 <Oddball>)". > > Bug: v8:9376 > > Change-Id: Iebf3cc2dea3133c7811bcefcdf38d9458b02fded > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1628012 > Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Reviewed-by: Michael Stanton <mvstanton@chromium.org> > Cr-Commit-Position: refs/heads/master@{#62882} TBR=yangguo@chromium.org,mvstanton@chromium.org,jgruber@chromium.org,tebbi@chromium.org,seth.brenith@microsoft.com Change-Id: Ia078f2e8d101d2375b5db88021b2d65d28f1b075 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:9376 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1716033Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#62899}
-
- 23 Jul, 2019 1 commit
-
-
Seth Brenith authored
This change begins to implement the functionality described in https://docs.google.com/document/d/1evHnb1uLlSbvHAAsmOXyc25x3uh1DjgNa8u1RHvwVhk/edit# for investigating V8 state in crash dumps. This change adds a new library, v8_debug_helper, for providing platform- agnostic assistance with postmortem debugging. This library can be used by extensions built for debuggers such as WinDbg or lldb. Its public API is described by debug-helper.h; currently the only method it exposes is GetObjectProperties, but we'd like to add more functionality over time. The API surface is restricted to plain C-style structs and pointers, so that it's easy to link from a debugger extension built with a different toolchain. This change also adds a new cctest file to exercise some basic interaction with the new library. The API function GetObjectProperties takes an object pointer (which could be compressed, or weak, or a SMI), and returns a string description of the object and a list of properties the object contains. For now, the list of properties is entirely based on Torque object definitions, but we expect to add custom properties in future updates so that it can be easier to make sense of complex data structures such as dictionaries. GetObjectProperties does several things that are intended to generate somewhat useful results even in cases where memory may be corrupt or unavailable: - The caller may optionally provide a type string which will be used if the memory for the object's Map is inaccessible. - All object pointers are compared against the list of known objects generated by mkgrokdump. The caller may optionally provide the pointers for the first pages of various heap spaces, to avoid spurious matches. If those pointers are not provided, then any matches are prefixed with "maybe" in the resulting description string, such as "maybe UndefinedValue (0x4288000341 <Oddball>)". Bug: v8:9376 Change-Id: Iebf3cc2dea3133c7811bcefcdf38d9458b02fded Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1628012 Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Cr-Commit-Position: refs/heads/master@{#62882}
-
- 22 Jul, 2019 1 commit
-
-
Debrian Figueroa authored
Allows writing of output error to json output path specified. Bug: chromium:985959 Change-Id: I4bbc94dbc8b0c21f1ce75e722c69fab18eeb1f01 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1710205 Commit-Queue: Debrian Figueroa <debrian@google.com> Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#62858}
-
- 19 Jul, 2019 1 commit
-
-
Michael Starzinger authored
This makes sure the language mode of the module is correctly propagated through the WebAssembly module, so that exported functions are allocated with the correct language mode. It extends the existing {ModuleOrigin} enum to consist of three values now. R=clemensh@chromium.org TEST=mjsunit/regress/wasm/regress-985154 BUG=chromium:985154 Change-Id: Id7b566738b1e710cc5001b894022bcd0f2c01bc3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1708484 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#62826}
-
- 17 Jul, 2019 3 commits
-
-
Andreas Haas authored
With this CL we add proposal tests to the wasm-spec-tests. For this I extended the update-wasm-spec-tests.sh script. Additionally to generating the spec tests it does the following: For each proposal it identifies those tests that are different to the spec tests, and then copies those tests also to the wasm-spec-tests directory. Additionally I adjusted the test runner of the wasm spec test to run the proposal tests with the correct flags. CC=binji@chromium.org R=clemensh@chromium.org Bug: v8:7581 Change-Id: Idb7aa3c0a468ddb65b2ef3421def836561579cd9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1706470Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#62777}
-
Tamer Tas authored
{do_raw_json} and {do_json} both read the log files to construct a dictionary of stats. This CL extracts that logic and eliminates code duplication No-Try: true Bug: v8:9448 Change-Id: I375920c25942a92cc12790ac60a4c7960cfd44b2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1706473 Auto-Submit: Tamer Tas <tmrts@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#62768}
-
Tamer Tas authored
{json} command prints the results of benchmarks after aggregating it. This makes accessing raw data for analysis, a tedious process. This CL implements {raw-json} for accessing raw results. TBR=ulan@chromium.org No-Try: true Bug: v8:9448 Change-Id: I7c00fc0eca23b8bd5c967db903f71c5b46eddea3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1706059Reviewed-by:
Tamer Tas <tmrts@chromium.org> Auto-Submit: Tamer Tas <tmrts@chromium.org> Commit-Queue: Tamer Tas <tmrts@chromium.org> Cr-Commit-Position: refs/heads/master@{#62761}
-
- 16 Jul, 2019 3 commits
-
-
Dominik Inführ authored
This reverts commit dcac02ee. Reason for revert: TSAN discovered issue with cleaning invalidated slots in sweeper threads and inserting new slots in the main thread. Original change's description: > Use list of invalidated objects for old-to-new refs > > Instead of inserting "deletion" entries into the store buffer, keep > a list of invalidated objects to filter out invalid old-to-new slots. > > Bug: v8:9454 > Change-Id: Icd21d8cb2159190457f54d0f8b56742ecc820419 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1695474 > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Peter Marshall <petermarshall@chromium.org> > Cr-Commit-Position: refs/heads/master@{#62744} TBR=ulan@chromium.org,petermarshall@chromium.org,dinfuehr@chromium.org Change-Id: I4278e9100c76657663e0a6a62f5d86bb3a343c0e No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:9454 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1704109Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#62746}
-
Dominik Inführ authored
Instead of inserting "deletion" entries into the store buffer, keep a list of invalidated objects to filter out invalid old-to-new slots. Bug: v8:9454 Change-Id: Icd21d8cb2159190457f54d0f8b56742ecc820419 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1695474 Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#62744}
-
Tamer Tas authored
perfrunner returns a failure if the build timeouts at any point even if it's successful after retries. It tries to surface up the timeout issue. Due to this, some bots stay red consistently, and confuses the sheriffs. This CL masks the timeouts if the suite succeeds in the end. TBR=verwaest@chromium.org,sergiyb@chromium.org Bug: v8:9494 Change-Id: I8e107e80dfaa51095501bb2e855d9fbbe4023da9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1702612Reviewed-by:
Tamer Tas <tmrts@chromium.org> Auto-Submit: Tamer Tas <tmrts@chromium.org> Commit-Queue: Tamer Tas <tmrts@chromium.org> Cr-Commit-Position: refs/heads/master@{#62735}
-
- 15 Jul, 2019 1 commit
-
-
Seth Brenith authored
This change is mostly mechanical, but it's worth mentioning a few slightly interesting cases: - A couple of field definitions didn't match the signedness of their corresponding accessors. - The generated accessors for Smi data use Smi values directly, but usually we want C++ accessors to use ints instead. I added a macro that hides the generated Smi accessors and exposes int accessors, but we might consider generating int accessors directly. - The data held in some fields is described in comments next to the accessor definition for those fields. With automatically generated accessors, those comments need a new home. In this change I put them in the Torque object definition, but I'm open to other suggestions. - gen-postmortem-metadata couldn't find updated class definitions after they got split across multiple lines, so I changed its matching logic. (Ideally debug-support.cc should be a Torque compiler output rather than something that involves parsing C++ with regexes, but this makes it correctly report subclass relationships for now.) - The end offsets generated by Torque were off by one from the values that would be generated by DEFINE_FIELD_OFFSET_CONSTANTS. Change-Id: I3df4fcd27997b46c41ca879065b9d97f6c939f07 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1692192Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Cr-Commit-Position: refs/heads/master@{#62719}
-
- 12 Jul, 2019 3 commits
-
-
Michael Achenbach authored
Bug: v8:9476 Change-Id: Id3660d40fe219ee0816ac8550ee8affd1be4b95b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1698399Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#62682}
-
Sam Clegg authored
I noticed the indentation was off in one function, but also fixed all the other flake8 issues in this file. Change-Id: I2303ed87da7154484a872315f8355f57621514c4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1697054Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Sam Clegg <sbc@chromium.org> Cr-Commit-Position: refs/heads/master@{#62669}
-
Michael Achenbach authored
NOTRY=true Bug: chromium:813833,chromium:983128 Change-Id: I449796b761f53bb15a3563604d5a4a9018035cb6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1697255Reviewed-by:
Tamer Tas <tmrts@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#62662}
-