v8/test
Ulan Degenbaev 5611f70b3d "Reland x4 [arraybuffer] Rearchitect backing store ownership"
This is a reland of bc33f5aeba

Contributed by titzer@chromium.org

Original change's description:
> [arraybuffer] Rearchitect backing store ownership
>
> This CL completely rearchitects the ownership of array buffer backing stores,
> consolidating ownership into a {BackingStore} C++ object that is tracked
> throughout V8 using unique_ptr and shared_ptr where appropriate.
>
> Overall, lifetime management is simpler and more explicit. The numerous
> ways that array buffers were initialized have been streamlined to one
> Attach() method on JSArrayBuffer. The array buffer tracker in the
> GC implementation now manages std::shared_ptr<BackingStore> pointers,
> and the construction and destruction of the BackingStore object itself
> handles the underlying page or embedder-allocated memory.
>
> The embedder API remains unchanged for now. We use the
> v8::ArrayBuffer::Contents struct to hide an additional shared_ptr to
> keep the backing store alive properly, even in the case of aliases
> from live heap objects. Thus the embedder has a lower chance of making
> a mistake. Long-term, we should move the embedder to a model where they
> manage backing stores using shared_ptr to an opaque backing store object.

TBR=yangguo@chromium.org

BUG=v8:9380,v8:9221,chromium:986318

Change-Id: If671a4a9ca0476e8f084efae46e0d2bf99ed99ef
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1731005
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63041}
2019-08-02 10:40:43 +00:00
..
benchmarks [test] Skip flaky test on predictable mode 2019-05-07 13:57:18 +00:00
cctest "Reland x4 [arraybuffer] Rearchitect backing store ownership" 2019-08-02 10:40:43 +00:00
common [asm.js] Propagate language mode to exported functions. 2019-07-19 11:47:48 +00:00
debugger [debugger] Fix debug-evaluate for context-allocated this. 2019-07-05 12:14:35 +00:00
fuzzer [csa] block cloning to optimize branch on phi 2019-07-30 10:30:29 +00:00
inspector Reland "[d8] Remove maximum workers limitation" 2019-07-30 07:56:17 +00:00
intl [Intl] Adding volume units. 2019-07-24 17:16:46 +00:00
js-perf-test [test] Add micro-benchmark tests for calls with local vars 2019-07-12 16:54:01 +00:00
memory [owners] Remove redundant OWNERS files in test/ 2019-06-24 12:44:32 +00:00
message Reland "Reland "Let all early errors be SyntaxErrors."" 2019-07-08 10:15:46 +00:00
mjsunit "Reland x4 [arraybuffer] Rearchitect backing store ownership" 2019-08-02 10:40:43 +00:00
mkgrokdump Reland "Add postmortem debugging helper library" 2019-07-31 14:30:19 +00:00
mozilla [regexp] Add missing case for EscapeRegExpPattern 2019-07-09 08:11:51 +00:00
preparser Add OWNERS files for src and test 2019-05-30 04:51:21 +00:00
test262 [atomics] Wire up 64 bit atomic Wait in JS 2019-08-02 10:39:38 +00:00
torque [torque] Infer type arguments of generic struct initializers 2019-08-02 09:10:01 +00:00
unittests "Reland x4 [arraybuffer] Rearchitect backing store ownership" 2019-08-02 10:40:43 +00:00
wasm-api-tests [wasm-c-api] Drop Isolate::Enter/Exit calls... 2019-07-12 18:51:32 +00:00
wasm-js [testrunner] generalize test loader to accept multiple extensions 2019-06-25 12:12:11 +00:00
wasm-spec-tests [wasm][ia32] Fix i64tof32 conversion on Windows 2019-07-30 12:30:09 +00:00
webkit [regexp] Add missing case for EscapeRegExpPattern 2019-07-09 08:11:51 +00:00
BUILD.gn [wasm-c-api] Add tests and fixes 2019-05-28 09:57:04 +00:00
OWNERS [owners] Make test/ owned by COMMON_OWNERS 2019-06-06 20:56:09 +00:00