v8/test/mjsunit/wasm
Ulan Degenbaev 62e168308c Reland x5 [arraybuffer] Rearchitect backing store ownership
This reverts commit 8fdb23873b.

Original change's description:
> "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}

TBR=yangguo@chromium.org,clemensh@chromium.org,mstarzinger@chromium.org

Change-Id: Iba55c7ab71e5642b5cb6aeb699d6fc9cf9061486
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1771795
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63461}
2019-08-29 16:40:18 +00:00
..
embenchen
adapter-frame.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
add-getters.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
anyfunc-interpreter.js [wasm] Support anyref for external calls in interpreter. 2019-04-09 13:42:57 +00:00
anyfunc.js [wasm] Implement the ref.func instruction 2019-05-13 11:19:32 +00:00
anyref-globals-interpreter.js [wasm] Support mutable imported anyref globals in interpreter. 2019-04-09 11:52:41 +00:00
anyref-globals.js [wasm] Allow ref.func to initialize globals 2019-05-14 13:05:21 +00:00
anyref-interpreter.js [wasm] Support anyref for external calls in interpreter. 2019-04-09 13:42:57 +00:00
anyref-table.js [wasm] Rename (Get|Set)Table to Table(Get|Set) 2019-07-08 12:55:14 +00:00
anyref.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
asm-wasm-copy.js
asm-wasm-deopt.js
asm-wasm-exception-in-tonumber.js
asm-wasm-expr.js
asm-wasm-f32.js [wasm] Enable more asm.js tests 2018-02-21 15:42:22 +00:00
asm-wasm-f64.js [wasm] Enable more asm.js tests 2018-02-21 15:42:22 +00:00
asm-wasm-heap.js
asm-wasm-i32.js
asm-wasm-imports.js [asm.js] Split large asm.js test into parts. 2018-08-09 14:02:04 +00:00
asm-wasm-literals.js
asm-wasm-math-intrinsic.js [wasm] Intrinsify math imports 2018-11-26 15:17:51 +00:00
asm-wasm-memory.js Reland "[asmjs] Properly validate asm.js heap sizes" 2018-08-21 09:00:04 +00:00
asm-wasm-names.js
asm-wasm-stack.js
asm-wasm-stdlib.js
asm-wasm-switch.js
asm-wasm-u32.js
asm-wasm.js Reland "[asmjs] Properly validate asm.js heap sizes" 2018-08-21 09:00:04 +00:00
asm-with-wasm-off.js
async-compile.js [wasm] Make error messages deterministic 2019-03-14 15:05:18 +00:00
atomics64-stress.js [mjsunit/wasm] Reuse WebAssembly.Memory objects in stress test 2019-07-11 13:23:19 +00:00
atomics-stress.js [mjsunit/wasm] Reuse WebAssembly.Memory objects in stress test 2019-07-11 13:23:19 +00:00
atomics.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
bigint-i64-to-imported-js-func.js [wasm] split bigint.js test 2019-03-28 14:48:12 +00:00
bigint.js [wasm] 32-bit support WebAssembly's i64<>JavaScript's BigInt conversions 2019-08-21 17:03:51 +00:00
bounds-check-64bit.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
bounds-check-turbofan.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
bulk-memory.js [wasm][test] Get rid of the imported parameter in addElementSegments 2019-05-21 10:03:55 +00:00
calls.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
code-space-exhaustion.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
compare-exchange64-stress.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
compare-exchange-stress.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
compilation-hints-async-compilation.js [wasm-hints] Lazy Baseline Compilation 2019-04-29 12:26:26 +00:00
compilation-hints-decoder.js [wasm-hints] Lazy Baseline Compilation 2019-04-29 12:26:26 +00:00
compilation-hints-ignored.js [wasm-hints] Add Tests for Compilation Hints 2019-04-18 10:34:42 +00:00
compilation-hints-interpreter.js [wasm] Use new names for instructions 2019-05-21 18:33:21 +00:00
compilation-hints-lazy-validation.js [wasm-hints] Lazy Validation Flag 2019-04-18 12:43:52 +00:00
compilation-hints-streaming-compilation.js [wasm] Use new names for instructions 2019-05-21 18:33:21 +00:00
compilation-hints-streaming-lazy-validation.js [wasm-hints] Lazy Validation Flag 2019-04-18 12:43:52 +00:00
compilation-hints-sync-compilation.js [wasm-hints] Lazy Baseline Compilation 2019-04-29 12:26:26 +00:00
compilation-limits-asm.js
compilation-limits.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
compiled-module-management.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
compiled-module-serialization.js [wasm][test] Get rid of the imported parameter in addElementSegments 2019-05-21 10:03:55 +00:00
data-segments.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
disable-trap-handler.js
disallow-codegen.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
divrem-trap.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
empirical_max_memory.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
ensure-wasm-binaries-up-to-date.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
errors.js [wasm] Make error messages deterministic 2019-03-14 15:05:18 +00:00
exceptions-anyref-interpreter.js [wasm] Support reference types on interpreter entry. 2019-04-08 15:48:07 +00:00
exceptions-anyref.js [wasm] Rename "except_ref" to "exnref" throughout the code. 2019-07-15 15:09:28 +00:00
exceptions-export.js [wasm] Revise compile error messages 2019-02-01 14:36:12 +00:00
exceptions-global-interpreter.js [wasm] Support reference type globals in interpreter. 2019-04-09 09:50:48 +00:00
exceptions-global.js [wasm] Add support to construct 'exnref' type globals. 2019-08-27 14:29:16 +00:00
exceptions-import.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
exceptions-interpreter.js [wasm] Fix lifetime of reference values on interpreter stack. 2019-04-05 12:47:56 +00:00
exceptions-rethrow-interpreter.js [wasm] Fix interpreter stack height for throwing opcode. 2019-04-05 14:04:56 +00:00
exceptions-rethrow.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
exceptions-shared.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
exceptions-simd-interpreter.js [wasm] Extend interpreter exception support to Simd128. 2019-04-05 13:51:06 +00:00
exceptions-simd.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
exceptions-utils.js [wasm][test] Deduplicate assertWasmThrows helper method. 2018-12-10 09:56:17 +00:00
exceptions.js [wasm] Rename "except_ref" to "exnref" throughout the code. 2019-07-15 15:09:28 +00:00
export-global.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
export-identity.js [wasm] Add test of function identity on re-export. 2019-07-03 16:43:27 +00:00
export-mutable-global.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
export-table.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
expose-wasm.js
ffi-error.js [wasm] Check that sync and async errors match 2019-02-07 16:41:47 +00:00
ffi.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
float-constant-folding.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
function-names.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
function-prototype.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
futex.js [wasm] Rename Atomics Wake operator to Notify. 2019-03-09 01:46:44 +00:00
gc-buffer.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
gc-frame.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
gc-memory.js Reland x5 [arraybuffer] Rearchitect backing store ownership 2019-08-29 16:40:18 +00:00
gc-stress.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
globals.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
graceful_shutdown_during_tierup.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
graceful_shutdown.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
grow-memory-detaching.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
grow-memory-in-branch.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
grow-memory-in-call.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
grow-memory-in-loop.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
grow-memory.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
grow-shared-memory.js Reland "[wasm] Add off-by-default runtime flag for growing shared memory" 2019-04-16 00:29:57 +00:00
huge-memory.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
import-function.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
import-memory.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
import-mutable-global.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
import-table.js [wasm][test] Get rid of the imported parameter in addElementSegments 2019-05-21 10:03:55 +00:00
incrementer.wasm
indirect-call-non-zero-table-interpreter.js [wasm][interpreter] Support indirect function calls through all tables 2019-07-09 11:51:28 +00:00
indirect-call-non-zero-table.js [wasm][test] Get rid of the imported parameter in addElementSegments 2019-05-21 10:03:55 +00:00
indirect-calls.js [wasm] Allow multi-table initialization in the wasm-module-builder 2019-03-13 10:39:41 +00:00
indirect-sig-mismatch.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
indirect-tables.js [wasm][test] Do not add table in addElementSegment 2019-05-21 11:05:18 +00:00
instance-gc.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
instance-memory-gc-stress.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
instantiate-module-basic.js [test] Introduce assertThrowsAsync 2019-02-06 15:35:04 +00:00
instantiate-run-basic.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
interpreter-mixed.js [wasm] use standard WebAssembly stack trace format 2019-06-11 18:03:24 +00:00
interpreter.js [wasm] use standard WebAssembly stack trace format 2019-06-11 18:03:24 +00:00
js-api.js [wasm] Refactor WasmTableObject::Grow 2019-04-30 11:38:26 +00:00
large-offset.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
lazy-compilation.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
liftoff-trap-handler.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
liftoff.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
loop-rotation.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
many-parameters.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
memory_1gb_oob.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
memory_2gb_oob.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
memory_4gb_oob.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
memory-external-call.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
memory-instance-validation.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
memory-size.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
memory.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
module-memory.js [wasm] Remove trap handler fallback 2019-04-17 11:55:36 +00:00
multi-table-element-section.js [wasm] Allow initialization of anyref tables 2019-05-24 11:39:56 +00:00
multi-value.js [wasm] Support multi-return WASM function calls from JS 2019-08-07 10:15:39 +00:00
mutable-globals.js [wasm] Don't allow anyref globals when anyref is not enabled 2019-03-19 18:10:26 +00:00
names.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
origin-trial-flags.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
OWNERS Reduce wasm OWNERS to current team members 2018-10-15 14:47:49 +00:00
parallel_compilation.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
params.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
print-code.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
receiver.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
return-calls.js [wasm][test] Do not add table in addElementSegment 2019-05-21 11:05:18 +00:00
serialize-lazy-module.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
shared-memory-gc-stress.js Reland x5 [arraybuffer] Rearchitect backing store ownership 2019-08-29 16:40:18 +00:00
shared-memory-worker-explicit-gc-stress.js [mjsunit] Add more tests for shared array buffers / memories 2019-07-17 14:08:38 +00:00
shared-memory-worker-gc-stress.js [mjsunit] Add more tests for shared array buffers / memories 2019-07-17 14:08:38 +00:00
shared-memory-worker-gc.js Reland x5 [arraybuffer] Rearchitect backing store ownership 2019-08-29 16:40:18 +00:00
shared-memory-worker-stress.js [mjsunit] Nerf shared-memory-worker-stress a little 2019-07-18 13:08:22 +00:00
shared-memory.js [wasm] change test name 2019-02-21 12:02:47 +00:00
stack.js [wasm] use standard WebAssembly stack trace format 2019-06-11 18:03:24 +00:00
stackwalk.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
start-function.js [test] Introduce assertThrowsAsync 2019-02-06 15:35:04 +00:00
streaming-api.js [wasm] Use new names for instructions 2019-05-21 18:33:21 +00:00
streaming-compile.js [wasm][test] Remove default --wasm-async-compilation flag 2018-11-09 17:29:17 +00:00
streaming-error-position.js [wasm] Speed up WasmModuleBuilder 2019-03-07 14:51:52 +00:00
streaming-trap-location.js [wasm][test] Remove default --wasm-async-compilation flag 2018-11-09 17:29:17 +00:00
table-access-interpreter.js [wasm] Implement table.get and table.set in the interpreter 2019-07-08 13:48:56 +00:00
table-access.js [wasm] Rename (Get|Set)Table to Table(Get|Set) 2019-07-08 12:55:14 +00:00
table-copy-anyref.js [wasm][bulk-memory] Adjust table.copy to recent spec changes 2019-07-18 08:07:37 +00:00
table-copy.js [wasm] Implement bulk memory table.copy in interpreter 2019-03-21 16:26:20 +00:00
table-fill-interpreter.js [wasm] Support table.fill in the interpreter 2019-07-11 14:00:09 +00:00
table-fill.js [wasm] Rename (Get|Set)Table to Table(Get|Set) 2019-07-08 12:55:14 +00:00
table-get.js [wasm][test] Get rid of the imported parameter in addElementSegments 2019-05-21 10:03:55 +00:00
table-grow-from-wasm-interpreter.js [wasm] Implement table.grow and table.size in the interpreter 2019-07-09 12:21:08 +00:00
table-grow-from-wasm.js [wasm] Rename (Get|Set)Table to Table(Get|Set) 2019-07-08 12:55:14 +00:00
table-grow.js [wasm][test] Get rid of the imported parameter in addElementSegments 2019-05-21 10:03:55 +00:00
table-limits.js [wasm] correct Table limit 2019-03-05 15:22:20 +00:00
table.js [wasm] correct Table limit 2019-03-05 15:22:20 +00:00
test-wasm-module-builder.js [wasm][test] Add method to create signed LEB values 2019-07-30 14:18:52 +00:00
tier-up-testing-flag.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
trap-location.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
type-reflection-with-anyref.js [wasm] Extend type reflection to 'exnref' types. 2019-08-27 14:31:37 +00:00
type-reflection-with-exnref.js [wasm] Extend type reflection to 'exnref' types. 2019-08-27 14:31:37 +00:00
type-reflection.js [wasm] Preserve identity on {WasmJSFunction} re-export. 2019-08-22 15:00:22 +00:00
unicode-validation.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
unicode.js [wasm] Make error messages deterministic 2019-03-14 15:05:18 +00:00
unreachable-validation.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
unreachable.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
user-properties-common.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
user-properties-constructed.js [wasm/test] Split test/mjsunit/wasm/user-properties.js into smaller tests. 2017-10-27 10:37:55 +00:00
user-properties-exported.js [wasm/test] Split test/mjsunit/wasm/user-properties.js into smaller tests. 2017-10-27 10:37:55 +00:00
user-properties-module.js [wasm/test] Split test/mjsunit/wasm/user-properties.js into smaller tests. 2017-10-27 10:37:55 +00:00
user-properties-reexport.js [wasm/test] Split test/mjsunit/wasm/user-properties.js into smaller tests. 2017-10-27 10:37:55 +00:00
verify-module-basic-errors.js
wasm-api-overloading.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
wasm-default.js
wasm-math-intrinsic.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
wasm-module-builder.js [wasm][test] Add method to create signed LEB values 2019-07-30 14:18:52 +00:00
wasm-object-api.js
worker-interpreter.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00
worker-memory.js [d8] Update new Worker API to match the Web API 2018-09-20 00:10:28 +00:00
worker-module.js [wasm] merge js constants file in module-builder 2019-01-30 22:10:34 +00:00