v8/test/cctest
Peter Marshall 330e5ba26f Reland "[typedarray] Make JSTypedArray::length authoritative."
This is a reland of ad44c258d7

Patchset 2 is the original CL
Patchset 3 fixes some misuses of FixedArrayBase::length() and adds some
DCHECKS to flush out any more misuses.
Patchset 4 adds the PPC/S390 port by miladfar@ca.ibm.com.

Original change's description:
> [typedarray] Make JSTypedArray::length authoritative.
>
> This is the first step towards full huge typed array support in V8.
> Before this change, the JSTypedArray::length and the elements backing
> store length (FixedTypedArrayBase::length) were used more or less
> interchangeably to determine the number of elements in a JSTypedArray.
>
> With this change we disentangle these two lengths, and instead make
> JSTypedArray::length authoritative. For on-heap typed arrays, the
> FixedTypedArrayBase::length will remain the number of elements in the
> backing store, but for the off-heap typed arrays, this length will be
> set to 0 (matching the fact that the FixedTypedArrayBase instance does
> not contain any elements itself).
>
> This also unifies the JSTypedArray::set_/length() and length_value()
> methods to only have JSTypedArray::set_/length() which returns/takes
> size_t values. Currently this still requires the values to be in Smi
> range, but later we will extend this to allow arbitrary size_t values
> (in the safe integer range).
>
> Bug: v8:4153, v8:7881
> Change-Id: Iff9089130bb31fa9e08e0cf913e7ab52c3dbf107
> Cq-Include-Trybots: luci.chromium.try:linux-blink-rel
> Doc: http://doc/1Z-wM2qwvAuxH46e9ivtkYvKzzwYZg8ymm0x0wJaomow
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1543729
> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
> Reviewed-by: Peter Marshall <petermarshall@chromium.org>
> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
> Reviewed-by: Ben Titzer <titzer@chromium.org>
> Reviewed-by: Hannes Payer <hpayer@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#60648}

Bug: v8:4153, v8:7881, v8:9105
Change-Id: Ic38f833071a723642ebc6f82a4012dbc0878ef98
Cq-Include-Trybots: luci.chromium.try:linux-blink-rel
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1594435
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61275}
2019-05-07 11:46:06 +00:00
..
compiler [cleanup] Removing GraphBuilderTester class 2019-05-07 09:54:51 +00:00
heap Revert "[heap] Set read-only space's and its pages' heap_ to null." 2019-05-03 17:48:42 +00:00
interpreter Revert "[compiler] Don't collect source positions for the top frame" 2019-05-07 11:34:52 +00:00
libplatform [tracing] Fix test TraceWriter to expect uninitialized TraceObjects 2019-05-07 09:25:29 +00:00
libsampler [cpu-profiler] Only record SIGPROF-based samples for samplers that request samples 2019-02-13 09:29:38 +00:00
parsing [class] Remove flags for class fields 2019-05-01 02:02:51 +00:00
torque [torque] add references to HeapObject fields. 2019-04-11 14:11:18 +00:00
wasm Revert "[compiler] Don't collect source positions for the top frame" 2019-05-07 11:34:52 +00:00
assembler-helper-arm.cc [cleanup] Switch to CodeBuilder everywhere 2019-04-29 16:48:39 +00:00
assembler-helper-arm.h [arm, arm64] Setup arguments to RecordWriteStub using mov. 2019-03-05 11:07:00 +00:00
BUILD.gn [cctest] Move cctest.cc from cctest_sources to cctest target 2019-05-03 14:24:01 +00:00
cctest.cc Reland "[heap] Skip ro-space from heap iterators, add CombinedHeapIterator." 2019-05-02 17:35:18 +00:00
cctest.h Reland "[heap] Skip ro-space from heap iterators, add CombinedHeapIterator." 2019-05-02 17:35:18 +00:00
cctest.status [test] Stress wasm code gc in "stress_background_compile" 2019-05-02 09:56:05 +00:00
DEPS [torque]: Add the ability to test Torque functionality with cctest 2018-05-13 10:58:56 +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 [log] Improve log parsing 2018-06-20 13:40:22 +00:00
OWNERS [MIPS] Set Yu Yin as owner of MIPS files. 2019-03-06 11:46:22 +00:00
print-extension.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
print-extension.h [cleanup] Mark test/ methods in subclasses with override. 2018-09-17 07:40:00 +00:00
profiler-extension.cc Reland "[Compile] Ensure we don't access the native context during bytecode finalization." 2018-10-26 22:33:56 +00:00
profiler-extension.h [cleanup] Mark test/ methods in subclasses with override. 2018-09-17 07:40:00 +00:00
scope-test-helper.h [parser] Various Scope and Context speedups 2019-01-28 13:06:03 +00:00
setup-isolate-for-tests.cc [interpreter] Always put bytecode handlers in builtins table 2018-09-20 09:58:15 +00:00
setup-isolate-for-tests.h [interpreter] Always put bytecode handlers in builtins table 2018-09-20 09:58:15 +00:00
test-access-checks.cc Replace CHECK(false) by UNREACHABLE() 2017-12-19 18:58:07 +00:00
test-accessor-assembler.cc [ubsan] Port Map to the new design 2018-11-13 06:59:12 +00:00
test-accessors.cc [Test] Add PrepareForOptimization to cctests 2019-04-30 15:49:02 +00:00
test-allocation.cc [zone] Fix peak memory accounting 2019-03-28 13:39:11 +00:00
test-api-accessors.cc [Test] Add PrepareForOptimization to cctests 2019-04-30 15:49:02 +00:00
test-api-interceptors.cc [Test] Add PrepareForOptimization to cctests 2019-04-30 15:49:02 +00:00
test-api.cc Reland "[typedarray] Make JSTypedArray::length authoritative." 2019-05-07 11:46:06 +00:00
test-api.h [ubsan] Replace a few more Object** with alternatives 2018-12-17 14:17:22 +00:00
test-array-list.cc [explicit isolates] Remove GetIsolate from objects.cc 2018-07-13 12:42:14 +00:00
test-assembler-arm64.cc Touch guard pages when allocating stack frames 2019-05-02 17:46:18 +00:00
test-assembler-arm.cc [cleanup] Switch to CodeBuilder everywhere 2019-04-29 16:48:39 +00:00
test-assembler-ia32.cc Touch guard pages when allocating stack frames 2019-05-02 17:46:18 +00:00
test-assembler-mips64.cc [mips] Fix build error after switch to CodeBuilder. 2019-04-30 13:50:03 +00:00
test-assembler-mips.cc [mips] Fix build error after switch to CodeBuilder. 2019-04-30 13:50:03 +00:00
test-assembler-ppc.cc [cleanup] Switch to CodeBuilder everywhere 2019-04-29 16:48:39 +00:00
test-assembler-s390.cc [cleanup] Switch to CodeBuilder everywhere 2019-04-29 16:48:39 +00:00
test-assembler-x64.cc Touch guard pages when allocating stack frames 2019-05-02 17:46:18 +00:00
test-atomicops.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-bignum-dtoa.cc [cleanup] Remove {StrLength} function 2019-04-29 15:55:46 +00:00
test-bignum.cc [cleanup] Remove {StrLength} function 2019-04-29 15:55:46 +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 [cleanup] Mark test/ methods in subclasses with override. 2018-09-17 07:40:00 +00:00
test-code-layout.cc [cleanup] Switch to CodeBuilder everywhere 2019-04-29 16:48:39 +00:00
test-code-stub-assembler.cc [cleanup] Use Vector::begin instead of Vector::start 2019-04-29 12:43:16 +00:00
test-compiler.cc Revert "[Test] Update tests to work with lazy feedback allocation." 2019-05-03 15:54:53 +00:00
test-constantpool.cc [assembler] Move ConstantPools out of src/assembler.h 2018-10-19 11:38:39 +00:00
test-conversions.cc [objects.h splitting] Move HeapNumber to heap-number.h 2018-12-17 17:58:09 +00:00
test-cpu-profiler.cc [Test] Add PrepareForOptimization to cctests 2019-04-30 15:49:02 +00:00
test-date.cc [Intl] Move cachedOrNewService to C++ w/o caching 2018-11-02 07:08:26 +00:00
test-debug.cc [class] Remove flags for class fields 2019-05-01 02:02:51 +00:00
test-decls.cc [Test] Add PrepareForOptimization to cctests 2019-04-30 15:49:02 +00:00
test-deoptimization.cc [cleanup] Use Vector::begin instead of Vector::start 2019-04-29 12:43:16 +00:00
test-dictionary.cc Switch RehashBasedOnMap to use ReadOnlyRoots 2019-02-25 12:28:26 +00:00
test-disasm-arm64.cc Explicitly store the code layout in CodeDesc 2019-01-30 13:17:38 +00:00
test-disasm-arm.cc [cleanup] Use Vector::begin instead of Vector::start 2019-04-29 12:43:16 +00:00
test-disasm-ia32.cc [cleanup] Switch to CodeBuilder everywhere 2019-04-29 16:48:39 +00:00
test-disasm-mips64.cc [cleanup] Use Vector::begin instead of Vector::start 2019-04-29 12:43:16 +00:00
test-disasm-mips.cc [cleanup] Use Vector::begin instead of Vector::start 2019-04-29 12:43:16 +00:00
test-disasm-ppc.cc PPC/s390: [cleanup] Use Vector::begin instead of Vector::start 2019-04-29 21:36:34 +00:00
test-disasm-s390.cc PPC/s390: [cleanup] Use Vector::begin instead of Vector::start 2019-04-29 21:36:34 +00:00
test-disasm-x64.cc [cleanup] Switch to CodeBuilder everywhere 2019-04-29 16:48:39 +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 [cleanup] Remove {StrLength} function 2019-04-29 15:55:46 +00:00
test-elements-kind.cc [cleanup] Use Vector::begin instead of Vector::start 2019-04-29 12:43:16 +00:00
test-extra.js [js] Remove CORE JS Natives (prologue.js), port extra utils to C++/Torque 2019-01-07 11:57:46 +00:00
test-factory.cc [heap] Fix allocation types in CodeBuilder 2019-05-03 14:48:11 +00:00
test-fast-dtoa.cc [cleanup] Remove {StrLength} function 2019-04-29 15:55:46 +00:00
test-feedback-vector.cc [lite] Allocate feedback vectors lazily 2019-03-25 16:02:38 +00:00
test-feedback-vector.h [lite] Allocate feedback vectors lazily 2019-03-25 16:02:38 +00:00
test-field-type-tracking.cc [cleanup] Switch to CodeBuilder everywhere 2019-04-29 16:48:39 +00:00
test-fixed-dtoa.cc [cleanup] Use Vector::begin instead of Vector::start 2019-04-29 12:43:16 +00:00
test-flags.cc [flags] Receive length as size_t 2019-04-24 10:43:17 +00:00
test-func-name-inference.cc [fni] Mark computed props as computed, not anonymous function 2019-03-01 20:52:03 +00:00
test-fuzz-arm64.cc Reland "Add Windows ARM64 ABI support to V8" 2018-10-24 19:46:36 +00:00
test-global-handles.cc Reland "[api,heap] Remove deprecated Persistent APIs" 2019-04-24 09:34:27 +00:00
test-global-object.cc [iwyu] api.h iwyu 2018-07-20 11:49:02 +00:00
test-hashcode.cc [cleanup] Free 400 targets from the draconic reign of.. 2019-03-26 10:56:21 +00:00
test-hashmap.cc [ubsan] Fix various cases of undefined behavior 2019-01-10 13:52:04 +00:00
test-heap-profiler.cc [Test] Add PrepareForOptimization to cctests 2019-04-30 15:49:02 +00:00
test-icache.cc PPC: removed AIX function descriptors in tests 2019-03-06 12:55:45 +00:00
test-identity-map.cc [objects.h splitting] Move HeapNumber to heap-number.h 2018-12-17 17:58:09 +00:00
test-inobject-slack-tracking.cc Tweak how v8 preallocates instance fields 2019-04-16 18:07:00 +00:00
test-inspector.cc [cleanup] Refactor inspector to use default members. 2018-09-18 09:13:59 +00:00
test-intl.cc Defer inferring language mode as far as possible 2019-01-25 11:53:19 +00:00
test-javascript-arm64.cc [deprecation] Deprecate ToBoolean(Local<Context>) 2018-09-24 12:02:09 +00:00
test-js-arm64-variables.cc [jumbo] arm64 cctest fixes 2017-09-30 17:17:23 +00:00
test-js-weak-refs.cc [js weak refs] Expand WeakCell::WeakCellVerify + minor fix 2019-01-31 16:50:20 +00:00
test-liveedit.cc [Test] Add PrepareForOptimization to cctests 2019-04-30 15:49:02 +00:00
test-lockers.cc [Test] Add PrepareForOptimization to cctests 2019-04-30 15:49:02 +00:00
test-log-stack-tracer.cc [cleanup] Use Vector::begin instead of Vector::start 2019-04-29 12:43:16 +00:00
test-log.cc [Test] Add PrepareForOptimization to cctests 2019-04-30 15:49:02 +00:00
test-macro-assembler-arm.cc [cleanup] Switch to CodeBuilder everywhere 2019-04-29 16:48:39 +00:00
test-macro-assembler-mips64.cc [mips] Fix build error in debug mode. 2019-05-07 01:24:41 +00:00
test-macro-assembler-mips.cc [mips] Fix build error in debug mode. 2019-05-07 01:24:41 +00:00
test-macro-assembler-x64.cc Touch guard pages when allocating stack frames 2019-05-02 17:46:18 +00:00
test-managed.cc Add size estimate to Managed<T> 2018-05-30 10:26:21 +00:00
test-mementos.cc [cleanup] #include heap-inl.h less often 2019-02-15 06:22:53 +00:00
test-modules.cc [api,modules] Allow GetModuleNamespace on unevaluated modules. 2018-01-08 09:01:25 +00:00
test-object.cc [runtime] Simplify/unify utf8 handling 2019-04-26 15:44:31 +00:00
test-orderedhashtable.cc [dict] Add more useful methods 2019-01-07 19:39:34 +00:00
test-parsing.cc [class] Remove flags for class fields 2019-05-01 02:02:51 +00:00
test-platform.cc s390: Edited Generate_CEntry to correctly return buffer when built with clang 2018-09-05 07:01:16 +00:00
test-poison-disasm-arm.cc [Test] Add PrepareForOptimization to cctests 2019-04-30 15:49:02 +00:00
test-profile-generator.cc [Test] Add PrepareForOptimization to cctests 2019-04-30 15:49:02 +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 Remove sorting methods from Vector 2019-04-30 10:18:06 +00:00
test-representation.cc [cleanup] Remove obsolete representations. 2019-02-21 06:07:06 +00:00
test-roots.cc [cleanup] #include heap-inl.h less often 2019-02-15 06:22:53 +00:00
test-sampler-api.cc PPC/s390: [Profiler] Ensure ticks in frameless bytecode handlers are interpreted frames. 2019-05-02 14:22:13 +00:00
test-serialize.cc [perf] Refactor the Memory benchmark to use d8 2019-05-06 15:10:57 +00:00
test-smi-lexicographic-compare.cc [ubsan] Port Smi to the new design 2018-11-05 20:52:51 +00:00
test-stack-unwinding-x64.cc [Test] Add PrepareForOptimization to cctests 2019-04-30 15:49:02 +00:00
test-strings.cc [cleanup] Remove {StrLength} function 2019-04-29 15:55:46 +00:00
test-strtod.cc [cleanup] Remove {StrLength} function 2019-04-29 15:55:46 +00:00
test-symbols.cc [cleanup] Remove Isolate parameter from object print 2018-07-12 11:31:57 +00:00
test-sync-primitives-arm64.cc [cleanup] Switch to CodeBuilder everywhere 2019-04-29 16:48:39 +00:00
test-sync-primitives-arm.cc [base] Introduce MutexGuard as typedef for LockGuard<Mutex> 2018-10-12 15:44:51 +00:00
test-thread-termination.cc [regexp] Implement interrupt support in the interpreter 2019-03-12 13:44:12 +00:00
test-threads.cc Clean up ThreadId 2019-03-11 10:37:05 +00:00
test-trace-event.cc [cleanup] Clean up trace event tests by removing macros 2019-03-25 13:46:58 +00:00
test-traced-value.cc [tracing] Improve tracing signals for compilation/optimization. 2019-03-25 14:49:08 +00:00
test-transitions.cc [cleanup] Use Vector::begin instead of Vector::start 2019-04-29 12:43:16 +00:00
test-transitions.h [ubsan] Port Map to the new design 2018-11-13 06:59:12 +00:00
test-typedarrays.cc Remove always-true --harmony-bigint runtime flag 2018-10-01 11:31:13 +00:00
test-types.cc Add target for common test headers 2019-02-12 09:30:01 +00:00
test-unboxed-doubles.cc [cleanup] Use Vector::begin instead of Vector::start 2019-04-29 12:43:16 +00:00
test-unscopables-hidden-prototype.cc [api] Mark SetHiddenPrototype as DEPRECATED 2019-02-08 14:49:30 +00:00
test-unwinder.cc [Test] Add PrepareForOptimization to cctests 2019-04-30 15:49:02 +00:00
test-usecounters.cc [counters] remove "override mistake" use counters 2019-01-18 19:27:29 +00:00
test-utils-arm64.cc Reland "[arm64] Cleanup TODO around handling of x18" 2019-04-29 12:31:16 +00:00
test-utils-arm64.h Reland "[arm64] Cleanup TODO around handling of x18" 2019-04-29 12:31:16 +00:00
test-utils.cc [cleanup] Remove {StrLength} function 2019-04-29 15:55:46 +00:00
test-version.cc [cleanup] Use Vector::begin instead of Vector::start 2019-04-29 12:43:16 +00:00
test-weakmaps.cc Reland "[heap] Clean-up keys of oldspace weakmaps during scavenge" 2019-04-01 13:59:56 +00:00
test-weaksets.cc Retire PretenureFlag and use AllocationType everywhere. 2019-03-12 08:10:44 +00:00
testcfg.py Reland "Preparing v8 to use with python3 /test" 2019-03-20 09:56:06 +00:00
trace-extension.cc [ubsan] Port Smi to the new design 2018-11-05 20:52:51 +00:00
trace-extension.h [cleanup] Mark test/ methods in subclasses with override. 2018-09-17 07:40:00 +00:00
unicode-helpers.cc Fix & reland "[utf8] Rewrite NewStringFromUtf8 using Utf8::ValueOfIncremental" 2019-02-06 13:11:11 +00:00
unicode-helpers.h [Parser] Add support for Zone allocated ConsumedPreParsingScopeData. 2018-09-07 10:28:40 +00:00