v8/test/cctest
Michael Lippautz 55d00c95b0 [heap] Fix ArrayBufferTracker accessing already swept byte length
The tracker needs to maintain the byte length as there is no order guarantee
when sweeping pages and the byte length may be a HeapNumber that is stored on a
different page.

The abstraction for ArrayBuffers is left untouched. We distinguish between the
following cases:
1. Regular AB (backing_store and bye_length should be used)
2. AB allocated using kReservation but not part of wasm
3. AB allocated using kReservation and part of wasm

In practice, 2. does not exist, but we still maintain "allocation_base" and
"allocation_length" which fall back to backing_store and byte_length in this
case. The problematic part is that they look like innocent getters on the
object but actually refer to different data structures or on-heap objects.

Since 2. does not exist, and 3. looks up the bounds in its own tracker, it is
fine for ArrayBufferTracker to pass backing_store and tracked byte_length.

Bug: v8:7701
Change-Id: Ib89d5fe94fce5cef8e5d8343a5415a3b9ad0deba
Reviewed-on: https://chromium-review.googlesource.com/1039385
Reviewed-by: Ben Titzer <titzer@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52923}
2018-05-02 18:16:18 +00:00
..
compiler [arm64] Use direct calls where possible. 2018-04-30 15:02:27 +00:00
heap Reland: [builtins] Patch self-references in constants table 2018-05-02 12:33:06 +00:00
interpreter Revert "[parser] Slice the source string where possible" 2018-05-02 15:32:13 +00:00
libplatform [tracing] allow embedders to provide own tracing timestamps 2018-01-10 19:36:23 +00:00
libsampler Include only stuff you need, part 6: Fix cctest.h. 2016-09-01 12:02:16 +00:00
parsing Reland: [cleanup] Refactor the Factory 2018-04-09 19:52:22 +00:00
wasm [heap] Fix ArrayBufferTracker accessing already swept byte length 2018-05-02 18:16:18 +00:00
assembler-helper-arm.cc Replace CALL_GENERATED_CODE by GeneratedCode wrapper 2018-01-09 10:33:36 +00:00
assembler-helper-arm.h Replace CALL_GENERATED_CODE by GeneratedCode wrapper 2018-01-09 10:33:36 +00:00
BUILD.gn [heap] Do eager unmapping in CollectAllAvailableGarbage. 2018-04-19 16:13:04 +00:00
cctest.cc [wasm] Add new API for enabling trap handler 2018-03-20 18:06:38 +00:00
cctest.h [V8 Platform] Better WorkerThreads APIs. 2018-04-30 19:05:40 +00:00
cctest.status [test] Skip flaky tests 2018-04-27 09:18:07 +00:00
DEPS Add DEPS files and run checkdeps in presubmit check 2014-06-03 13:39:42 +00:00
expression-type-collector-macros.h [cleanup] Fix remaining (D)CHECK macro usages 2017-10-18 10:12:31 +00:00
gay-fixed.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
gay-fixed.h [presubmit] Enable readability/namespace linter checking. 2015-09-30 13:47:11 +00:00
gay-precision.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
gay-precision.h [presubmit] Enable readability/namespace linter checking. 2015-09-30 13:47:11 +00:00
gay-shortest.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
gay-shortest.h [presubmit] Enable readability/namespace linter checking. 2015-09-30 13:47:11 +00:00
log-eq-of-logging-and-traversal.js Reland "[logging] Use OFStream for log events" 2017-10-20 22:47:01 +00:00
OWNERS [MIPS] Add Sreten Kovacevic as owner of MIPS files 2018-02-09 15:35:49 +00:00
print-extension.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
print-extension.h [iwyu] More iwyu fixes (date, execution etc.) 2018-02-26 08:59:59 +00:00
profiler-extension.cc Replace CHECK(false) by UNREACHABLE() 2017-12-19 18:58:07 +00:00
profiler-extension.h Introduce v8::CpuProfiler::New and v8::CpuProfiler::Dispose API. 2016-07-08 15:01:10 +00:00
scope-test-helper.h [reland] [parser] Skipping inner funcs: Use less memory for variables. 2017-10-25 08:49:37 +00:00
setup-isolate-for-tests.cc [heap] remove heap init from shipping binary. 2017-09-07 05:24:49 +00:00
setup-isolate-for-tests.h [heap] remove heap init from shipping binary. 2017-09-07 05:24:49 +00:00
test-access-checks.cc Replace CHECK(false) by UNREACHABLE() 2017-12-19 18:58:07 +00:00
test-accessor-assembler.cc Remove ComputeFlags, simply pass in Code::Kind instead of Code::Flags 2017-09-29 15:37:27 +00:00
test-accessors.cc [ubsan] Change Address typedef to uintptr_t 2018-04-14 01:25:28 +00:00
test-allocation.cc Fix [Memory] Add OnCriticalMemoryPressure overload to v8::Platform. 2017-12-26 10:55:07 +00:00
test-api-accessors.cc [debug] expose SideEffectType when setting template accessors 2018-04-24 22:52:48 +00:00
test-api-interceptors.cc [debug] expose SideEffectType for whitelisting embedder callbacks 2018-04-04 20:08:00 +00:00
test-api.cc [promises] Correctly run before/after hooks for await. 2018-05-02 10:51:34 +00:00
test-api.h Start preparing test/cctest for jumbo compilation 2017-08-14 20:58:10 +00:00
test-array-list.cc Reland: [cleanup] Refactor the Factory 2018-04-09 19:52:22 +00:00
test-assembler-arm64.cc [arm64] Use direct calls where possible. 2018-04-30 15:02:27 +00:00
test-assembler-arm.cc Reland: [builtins] Patch self-references in constants table 2018-05-02 12:33:06 +00:00
test-assembler-ia32.cc [ubsan] Change Address typedef to uintptr_t 2018-04-14 01:25:28 +00:00
test-assembler-mips64.cc Reland: [cleanup] Refactor the Factory 2018-04-09 19:52:22 +00:00
test-assembler-mips.cc Reland: [cleanup] Refactor the Factory 2018-04-09 19:52:22 +00:00
test-assembler-ppc.cc Reland: [cleanup] Refactor the Factory 2018-04-09 19:52:22 +00:00
test-assembler-s390.cc Reland: [cleanup] Refactor the Factory 2018-04-09 19:52:22 +00:00
test-assembler-x64.cc [ubsan] Change Address typedef to uintptr_t 2018-04-14 01:25:28 +00:00
test-atomicops.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-bignum-dtoa.cc [jumbo] add test namespaces for cctest 2017-09-21 08:46:16 +00:00
test-bignum.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-bit-vector.cc Start preparing test/cctest for jumbo compilation 2017-08-14 20:58:10 +00:00
test-circular-queue.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-code-layout.cc [ubsan] Change Address typedef to uintptr_t 2018-04-14 01:25:28 +00:00
test-code-stub-assembler.cc Reland: [refactoring] Remove the isolate from signatures of ExternalReferences 2018-04-25 09:47:30 +00:00
test-code-stubs-arm64.cc [arm64] Use direct calls where possible. 2018-04-30 15:02:27 +00:00
test-code-stubs-arm.cc [ubsan] Change Address typedef to uintptr_t 2018-04-14 01:25:28 +00:00
test-code-stubs-ia32.cc [ubsan] Change Address typedef to uintptr_t 2018-04-14 01:25:28 +00:00
test-code-stubs-mips64.cc [ubsan] Change Address typedef to uintptr_t 2018-04-14 01:25:28 +00:00
test-code-stubs-mips.cc [ubsan] Change Address typedef to uintptr_t 2018-04-14 01:25:28 +00:00
test-code-stubs-x64.cc [ubsan] Change Address typedef to uintptr_t 2018-04-14 01:25:28 +00:00
test-code-stubs.cc [ubsan] Fix many static_cast<int32_t> with undefined behavior 2018-04-17 02:02:18 +00:00
test-code-stubs.h [cctest] Avoid disallowed "using namespace" directive. 2017-09-01 08:28:36 +00:00
test-compiler.cc Reland: [cleanup] Refactor the Factory 2018-04-09 19:52:22 +00:00
test-constantpool.cc Start preparing test/cctest for jumbo compilation 2017-08-14 20:58:10 +00:00
test-conversions.cc Reland: [cleanup] Refactor the Factory 2018-04-09 19:52:22 +00:00
test-cpu-profiler.cc [test] Fix inlining test for CpuProfiler. 2018-04-26 12:19:51 +00:00
test-date.cc Reland "Implement a new spec for timezone offset calculation" 2018-04-04 22:42:30 +00:00
test-debug.cc Report late-bound scripts to the debugger 2018-04-17 18:27:36 +00:00
test-decls.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
test-deoptimization.cc Pass Isolate pointer to String::Utf8Value/Value constructors 2017-08-28 18:17:08 +00:00
test-dictionary.cc Reland: [cleanup] Refactor the Factory 2018-04-09 19:52:22 +00:00
test-disasm-arm64.cc [arm64] Support CSDB instruction 2018-02-21 10:33:32 +00:00
test-disasm-arm.cc [arm] Fix SplitAddImmediate test on Armv6. 2018-04-23 17:00:36 +00:00
test-disasm-ia32.cc [ia32][wasm] Add AnyTrue and AllTrue. 2018-04-19 13:24:01 +00:00
test-disasm-mips64.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-disasm-mips.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-disasm-ppc.cc [cctest] Avoid disallowed "using namespace" directive. 2017-09-01 08:28:36 +00:00
test-disasm-s390.cc [cctest] Avoid disallowed "using namespace" directive. 2017-09-01 08:28:36 +00:00
test-disasm-x64.cc [ubsan] Change Address typedef to uintptr_t 2018-04-14 01:25:28 +00:00
test-diy-fp.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-double.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-dtoa.cc [jumbo] add test namespaces for cctest 2017-09-21 08:46:16 +00:00
test-elements-kind.cc Reland: [cleanup] Refactor the Factory 2018-04-09 19:52:22 +00:00
test-experimental-extra.js Add experimental, non-snapshotted V8 extras 2015-08-20 00:01:14 +00:00
test-extra.js [turbofan] Properly optimize calls to promise extras. 2018-02-16 19:46:30 +00:00
test-fast-dtoa.cc [jumbo] add test namespaces for cctest 2017-09-21 08:46:16 +00:00
test-feedback-vector.cc Reland: [cleanup] Refactor the Factory 2018-04-09 19:52:22 +00:00
test-feedback-vector.h [objects] Merge SFI outer_scope_info and feedback_metadata 2018-04-06 15:06:04 +00:00
test-field-type-tracking.cc Reland: [cleanup] Refactor the Factory 2018-04-09 19:52:22 +00:00
test-fixed-dtoa.cc Start preparing test/cctest for jumbo compilation 2017-08-14 20:58:10 +00:00
test-flags.cc Start preparing test/cctest for jumbo compilation 2017-08-14 20:58:10 +00:00
test-func-name-inference.cc [cctest] Add FuncNameInferrer coverage for arrow functions 2017-12-14 21:34:39 +00:00
test-fuzz-arm64.cc [cctest] Avoid disallowed "using namespace" directive. 2017-09-01 08:28:36 +00:00
test-global-handles.cc Reland: [cleanup] Refactor the Factory 2018-04-09 19:52:22 +00:00
test-global-object.cc Pass Isolate pointer to String::Utf8Value/Value constructors 2017-08-28 18:17:08 +00:00
test-hashcode.cc [runtime] Make GetHash and GetOrCreateHash member functions 2017-08-22 00:35:31 +00:00
test-hashmap.cc [cleanup] Fix remaining (D)CHECK macro usages 2017-10-18 10:12:31 +00:00
test-heap-profiler.cc Revert "[parser] Slice the source string where possible" 2018-05-02 15:32:13 +00:00
test-identity-map.cc Change IdentityMap::Delete signature 2018-04-20 11:27:59 +00:00
test-inobject-slack-tracking.cc Reland "[bigint] Add BigInt64Array, BigUint64Array" 2018-02-19 10:23:18 +00:00
test-intl.cc [intl] Implement Intl.NumberFormat.prototype.formatToParts 2017-06-30 20:14:18 +00:00
test-isolate-independent-builtins.cc Reland "[builtins] Introduce further constant & external reference indirections" 2018-04-26 15:27:22 +00:00
test-javascript-arm64.cc [jumbo] arm64 cctest fixes 2017-09-30 17:17:23 +00:00
test-js-arm64-variables.cc [jumbo] arm64 cctest fixes 2017-09-30 17:17:23 +00:00
test-liveedit.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
test-lockers.cc [jumbo] add test namespaces for cctest 2017-09-21 08:46:16 +00:00
test-log-stack-tracer.cc [ubsan] Change Address typedef to uintptr_t 2018-04-14 01:25:28 +00:00
test-log.cc Reland "[profiler] Ensure there's a single ProfilerListener per isolate." 2018-04-18 21:37:12 +00:00
test-macro-assembler-arm.cc Replace CALL_GENERATED_CODE by GeneratedCode wrapper 2018-01-09 10:33:36 +00:00
test-macro-assembler-mips64.cc MIPS[64]: Rewrite overflow instructions 2018-03-16 10:47:20 +00:00
test-macro-assembler-mips.cc MIPS[64]: Rewrite overflow instructions 2018-03-16 10:47:20 +00:00
test-macro-assembler-x64.cc [ubsan] Change Address typedef to uintptr_t 2018-04-14 01:25:28 +00:00
test-managed.cc [wasm] Implement Managed<T> with std::shared_ptr<T> 2018-04-26 15:53:42 +00:00
test-mementos.cc Reland: [cleanup] Refactor the Factory 2018-04-09 19:52:22 +00:00
test-modules.cc [api,modules] Allow GetModuleNamespace on unevaluated modules. 2018-01-08 09:01:25 +00:00
test-object.cc Reland: [cleanup] Refactor the Factory 2018-04-09 19:52:22 +00:00
test-orderedhashtable.cc [jumbo] add test namespaces for cctest 2017-09-21 08:46:16 +00:00
test-parsing.cc Revert "[parser] Slice the source string where possible" 2018-05-02 15:32:13 +00:00
test-platform.cc [Memory] Create memory management API in v8::internal. 2017-12-15 18:49:47 +00:00
test-profile-generator.cc [ubsan] Change Address typedef to uintptr_t 2018-04-14 01:25:28 +00:00
test-random-number-generator.cc [cleanup] Fix remaining (D)CHECK macro usages 2017-10-18 10:12:31 +00:00
test-regexp.cc [ubsan] Change Address typedef to uintptr_t 2018-04-14 01:25:28 +00:00
test-representation.cc Start preparing test/cctest for jumbo compilation 2017-08-14 20:58:10 +00:00
test-sampler-api.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
test-serialize.cc Revert "[parser] Slice the source string where possible" 2018-05-02 15:32:13 +00:00
test-strings.cc Revert "[parser] Slice the source string where possible" 2018-05-02 15:32:13 +00:00
test-strtod.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-symbols.cc Reland: [cleanup] Refactor the Factory 2018-04-09 19:52:22 +00:00
test-sync-primitives-arm64.cc Reland: [cleanup] Refactor the Factory 2018-04-09 19:52:22 +00:00
test-sync-primitives-arm.cc Reland: [cleanup] Refactor the Factory 2018-04-09 19:52:22 +00:00
test-thread-termination.cc Reland "[inspector] added timeout for Debugger.evaluateOnCallFrame method" 2018-04-26 15:08:52 +00:00
test-threads.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
test-trace-event.cc [tracing] add INTERNAL_TRACE_EVENT_ADD_WITH_ID_TID_AND_TIMESTAMP 2018-05-02 17:44:54 +00:00
test-traced-value.cc Avoid octal escape sequences 2017-12-01 15:08:14 +00:00
test-transitions.cc Reland: [cleanup] Refactor the Factory 2018-04-09 19:52:22 +00:00
test-transitions.h [reland] [in-place weak refs] Replace the WeakCell potentially in Map::raw_transitions_. 2018-04-05 16:24:06 +00:00
test-typedarrays.cc Reland "[builtins] Separate species protectors for Array, TypedArray, Promise" 2018-04-23 17:52:50 +00:00
test-types.cc [turbofan] Remove the hacky Type::operator-> overload 2018-04-30 09:39:12 +00:00
test-unbound-queue.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-unboxed-doubles.cc [objects.h splitting] Move classes related to api callbacks. 2018-05-02 10:24:44 +00:00
test-unscopables-hidden-prototype.cc Disable soon to be deprecated APIs per default for v8 2015-12-09 10:35:04 +00:00
test-usecounters.cc [parser] Remove incorrect UseCounter code for LabeledExpressionStatement 2018-01-06 00:17:43 +00:00
test-utils-arm64.cc [arm64] Remove remaining instances of csp 2018-01-18 18:07:18 +00:00
test-utils-arm64.h [arm64] Remove remaining instances of csp 2018-01-18 18:07:18 +00:00
test-utils.cc Replace CHECK(false) by UNREACHABLE() 2017-12-19 18:58:07 +00:00
test-version.cc [build] Introduce an embedder version string 2017-10-05 07:17:45 +00:00
test-weakmaps.cc Reland: [cleanup] Refactor the Factory 2018-04-09 19:52:22 +00:00
test-weaksets.cc Reland: [cleanup] Refactor the Factory 2018-04-09 19:52:22 +00:00
testcfg.py [test] Remove context usage from test processors 2018-02-01 10:35:02 +00:00
trace-extension.cc [ubsan] Change Address typedef to uintptr_t 2018-04-14 01:25:28 +00:00
trace-extension.h [iwyu] More iwyu fixes (date, execution etc.) 2018-02-26 08:59:59 +00:00
types-fuzz.h [turbofan] Remove the hacky Type::operator-> overload 2018-04-30 09:39:12 +00:00
unicode-helpers.h Implement DFA Unicode Decoder 2017-12-11 21:36:13 +00:00