v8/test
Maya Lekova fba14bde5f Revert "cppgc-js: Add snapshot for C++ objects"
This reverts commit 02849fd9de.

Reason for revert: Breaks Win64 MSVC bot and closes the tree - https://ci.chromium.org/p/v8/builders/ci/V8%20Win64%20-%20msvc/15416

Original change's description:
> cppgc-js: Add snapshot for C++ objects
>
> The following implements a snapshotting algorithm for C++ objects that
> also filters strongly-connected components (SCCs) of only "hidden"
> objects that are not (transitively) referencing any non-hidden
> objects.
>
> C++ objects come in two versions.
> a. Named objects that have been assigned a name through NameProvider.
> b. Unnamed objects, that are potentially hidden if the build
>    configuration requires Oilpan to hide such names. Hidden objects have
>    their name set to NameProvider::kHiddenName.
>
> The main challenge for the algorithm is to avoid blowing up the final
> object graph with hidden nodes that do not carry information. For that
> reason, the algorithm filters SCCs of only hidden objects, e.g.:
>   ...  -> (object) -> (object) -> (hidden) -> (hidden)
> In this case the (hidden) objects are filtered from the graph. The
> trickiest part is maintaining visibility state for objects referencing
> other objects that are currently being processed.
>
> Main algorithm idea (two passes):
> 1. First pass marks all non-hidden objects and those that transitively
>    reach non-hidden objects as visible. Details:
>    - Iterate over all objects.
>    - If object is non-hidden mark it as visible and also mark parent
>      as visible if needed.
>    - If object is hidden, traverse children as DFS to find non-hidden
>      objects. Post-order process the objects and mark those objects as
>      visible that have child nodes that are visible themselves.
>    - Maintain an epoch counter (StateStorage::state_count_) to allow
>      deferring the visibility decision to other objects in the same
>      SCC. This is similar to the "lowlink" value in Tarjan's algorithm
>      for SCC.
>    - After the first pass it is guaranteed that all deferred
>      visibility decisions can be resolved.
> 2. Second pass adds nodes and edges for all visible objects.
>    - Upon first checking the visibility state of an object, all deferred
>      visibility states are resolved.
>
> For practical reasons, the recursion is transformed into an iteration.
> We do not use plain Tarjan's algorithm to avoid another pass over
> all nodes to create SCCs.
>
> Follow ups:
> 1. Adding wrapper nodes for cpp objects that are wrappables for V8
>    wrappers.
> 2. Adding detachedness information.
>
> Change-Id: I6e127d2c6d65e77defe08e39295a2594f463b962
> Bug: chromium:1056170
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2467854
> Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
> Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
> Reviewed-by: Omer Katz <omerkatz@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#70567}

TBR=ulan@chromium.org,mlippautz@chromium.org,bikineev@chromium.org,omerkatz@chromium.org

Change-Id: I64a2cf2259bdaed81f6e0f92bdcc7a1f0df4d197
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:1056170
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2479471
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Commit-Queue: Maya Lekova <mslekova@chromium.org>
Cr-Commit-Position: refs/heads/master@{#70571}
2020-10-16 14:12:11 +00:00
..
benchmarks [test] Skip some slow benchmarks 2020-09-14 08:43:44 +00:00
cctest [runtime] Fix sorted order of DescriptorArray entries 2020-10-16 14:11:04 +00:00
common [wasm] Include prefix byte in length of bytes read 2020-10-15 20:56:33 +00:00
debugger [debug] consider Object.keys free of side effects 2020-10-01 10:40:02 +00:00
debugging [Py3] Fix flake8 warnings 2020-07-10 16:57:15 +00:00
fuzzer [wasm-simd][fuzzer] Add i32x4.dot_i16x8_s to fuzzer 2020-10-15 23:40:53 +00:00
fuzzilli Fix unhandled promise rejections in REPRL mode 2020-09-30 13:34:23 +00:00
inspector Revert "[debugger] Try to trigger pause-on-oom flakes with an extra printf" 2020-10-16 09:24:31 +00:00
intl Change test expectation per tz2020b 2020-10-15 22:17:03 +00:00
js-perf-test [super property speed] Invert benchmark graphs 2020-08-31 09:24:46 +00:00
memory Reland^4 "[serializer] Allocate during deserialization" 2020-10-07 08:15:50 +00:00
message [wasm][memory64] Prepare memory tracing for i64 addresses 2020-10-13 11:41:54 +00:00
mjsunit Revert "[TurboProp] Avoid marking the output of a call live in its catch handler" 2020-10-16 11:45:42 +00:00
mkgrokdump [heap] Move BaseSpace into base-space.h 2020-06-19 09:38:24 +00:00
mozilla [Respect] Prefer inclusive terms 2020-06-22 18:11:23 +00:00
test262 Mark assignment to call expression test262 tests as deliberate incompat 2020-10-15 15:21:15 +00:00
torque Reland "[torque] typed context slot access" 2020-08-06 11:32:38 +00:00
unittests Revert "cppgc-js: Add snapshot for C++ objects" 2020-10-16 14:12:11 +00:00
wasm-api-tests wasm/c-api: fix the index of StackTraceFrame 2020-10-13 07:34:26 +00:00
wasm-js [wasm] Update spec tests 2020-10-09 17:51:14 +00:00
wasm-spec-tests [wasm] Update spec tests 2020-10-09 17:51:14 +00:00
webkit Disallow \8 and \9 in strict mode and template literals 2020-08-03 18:05:14 +00:00
BUILD.gn [turbofan] Make OSR and stack slots compatible 2020-10-05 17:41:02 +00:00
OWNERS Use relative paths to OWNERS files 2019-08-12 13:52:52 +00:00