• Peter Marshall's avatar
    Reland "[typedarray] Make JSTypedArray::length authoritative." · 330e5ba2
    Peter Marshall authored
    This is a reland of ad44c258
    
    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/+/1594435Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
    Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
    Commit-Queue: Peter Marshall <petermarshall@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#61275}
    330e5ba2
Name
Last commit
Last update
..
arm Loading commit data...
arm64 Loading commit data...
ia32 Loading commit data...
mips Loading commit data...
mips64 Loading commit data...
ppc Loading commit data...
s390 Loading commit data...
x64 Loading commit data...
arguments.tq Loading commit data...
array-copywithin.tq Loading commit data...
array-every.tq Loading commit data...
array-filter.tq Loading commit data...
array-find.tq Loading commit data...
array-findindex.tq Loading commit data...
array-foreach.tq Loading commit data...
array-join.tq Loading commit data...
array-lastindexof.tq Loading commit data...
array-map.tq Loading commit data...
array-of.tq Loading commit data...
array-reduce-right.tq Loading commit data...
array-reduce.tq Loading commit data...
array-reverse.tq Loading commit data...
array-shift.tq Loading commit data...
array-slice.tq Loading commit data...
array-some.tq Loading commit data...
array-splice.tq Loading commit data...
array-unshift.tq Loading commit data...
array.tq Loading commit data...
base.tq Loading commit data...
builtins-api.cc Loading commit data...
builtins-arguments-gen.cc Loading commit data...
builtins-arguments-gen.h Loading commit data...
builtins-array-gen.cc Loading commit data...
builtins-array-gen.h Loading commit data...
builtins-array.cc Loading commit data...
builtins-arraybuffer.cc Loading commit data...
builtins-async-function-gen.cc Loading commit data...
builtins-async-gen.cc Loading commit data...
builtins-async-gen.h Loading commit data...
builtins-async-generator-gen.cc Loading commit data...
builtins-async-iterator-gen.cc Loading commit data...
builtins-bigint-gen.cc Loading commit data...
builtins-bigint.cc Loading commit data...
builtins-boolean-gen.cc Loading commit data...
builtins-boolean.cc Loading commit data...
builtins-call-gen.cc Loading commit data...
builtins-call-gen.h Loading commit data...
builtins-call.cc Loading commit data...
builtins-callsite.cc Loading commit data...
builtins-collections-gen.cc Loading commit data...
builtins-collections-gen.h Loading commit data...
builtins-collections.cc Loading commit data...
builtins-console-gen.cc Loading commit data...
builtins-console.cc Loading commit data...
builtins-constructor-gen.cc Loading commit data...
builtins-constructor-gen.h Loading commit data...
builtins-constructor.h Loading commit data...
builtins-conversion-gen.cc Loading commit data...
builtins-data-view-gen.h Loading commit data...
builtins-dataview.cc Loading commit data...
builtins-date-gen.cc Loading commit data...
builtins-date.cc Loading commit data...
builtins-debug-gen.cc Loading commit data...
builtins-definitions.h Loading commit data...
builtins-descriptors.h Loading commit data...
builtins-error.cc Loading commit data...
builtins-extras-utils.cc Loading commit data...
builtins-function-gen.cc Loading commit data...
builtins-function.cc Loading commit data...
builtins-generator-gen.cc Loading commit data...
builtins-global-gen.cc Loading commit data...
builtins-global.cc Loading commit data...
builtins-handler-gen.cc Loading commit data...
builtins-ic-gen.cc Loading commit data...
builtins-internal-gen.cc Loading commit data...
builtins-internal.cc Loading commit data...
builtins-interpreter-gen.cc Loading commit data...
builtins-intl-gen.cc Loading commit data...
builtins-intl.cc Loading commit data...
builtins-iterator-gen.cc Loading commit data...
builtins-iterator-gen.h Loading commit data...
builtins-json.cc Loading commit data...
builtins-lazy-gen.cc Loading commit data...
builtins-lazy-gen.h Loading commit data...
builtins-math-gen.cc Loading commit data...
builtins-math-gen.h Loading commit data...
builtins-math.cc Loading commit data...
builtins-microtask-queue-gen.cc Loading commit data...
builtins-number-gen.cc Loading commit data...
builtins-number.cc Loading commit data...
builtins-object-gen.cc Loading commit data...
builtins-object-gen.h Loading commit data...
builtins-object.cc Loading commit data...
builtins-promise-gen.cc Loading commit data...
builtins-promise-gen.h Loading commit data...
builtins-promise.cc Loading commit data...
builtins-promise.h Loading commit data...
builtins-proxy-gen.cc Loading commit data...
builtins-proxy-gen.h Loading commit data...
builtins-reflect-gen.cc Loading commit data...
builtins-reflect.cc Loading commit data...
builtins-regexp-gen.cc Loading commit data...
builtins-regexp-gen.h Loading commit data...
builtins-regexp.cc Loading commit data...
builtins-sharedarraybuffer-gen.cc Loading commit data...
builtins-sharedarraybuffer.cc Loading commit data...
builtins-string-gen.cc Loading commit data...
builtins-string-gen.h Loading commit data...
builtins-string.cc Loading commit data...
builtins-symbol-gen.cc Loading commit data...
builtins-symbol.cc Loading commit data...
builtins-trace.cc Loading commit data...
builtins-typed-array-gen.cc Loading commit data...
builtins-typed-array-gen.h Loading commit data...
builtins-typed-array.cc Loading commit data...
builtins-utils-gen.h Loading commit data...
builtins-utils-inl.h Loading commit data...
builtins-utils.h Loading commit data...
builtins-wasm-gen.cc Loading commit data...
builtins-weak-refs.cc Loading commit data...
builtins.cc Loading commit data...
builtins.h Loading commit data...
collections.tq Loading commit data...
constants-table-builder.cc Loading commit data...
constants-table-builder.h Loading commit data...
data-view.tq Loading commit data...
extras-utils.tq Loading commit data...
frames.tq Loading commit data...
generate-bytecodes-builtins-list.cc Loading commit data...
growable-fixed-array-gen.cc Loading commit data...
growable-fixed-array-gen.h Loading commit data...
growable-fixed-array.tq Loading commit data...
internal-coverage.tq Loading commit data...
iterator.tq Loading commit data...
math.tq Loading commit data...
object-fromentries.tq Loading commit data...
proxy-constructor.tq Loading commit data...
proxy-get-property.tq Loading commit data...
proxy-revocable.tq Loading commit data...
proxy-revoke.tq Loading commit data...
proxy.tq Loading commit data...
regexp-replace.tq Loading commit data...
regexp.tq Loading commit data...
setup-builtins-internal.cc Loading commit data...
string-endswith.tq Loading commit data...
string-html.tq Loading commit data...
string-iterator.tq Loading commit data...
string-repeat.tq Loading commit data...
string-startswith.tq Loading commit data...
string.tq Loading commit data...
typed-array-createtypedarray.tq Loading commit data...
typed-array-every.tq Loading commit data...
typed-array-filter.tq Loading commit data...
typed-array-find.tq Loading commit data...
typed-array-findindex.tq Loading commit data...
typed-array-foreach.tq Loading commit data...
typed-array-reduce.tq Loading commit data...
typed-array-reduceright.tq Loading commit data...
typed-array-slice.tq Loading commit data...
typed-array-some.tq Loading commit data...
typed-array-subarray.tq Loading commit data...
typed-array.tq Loading commit data...