• 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
..
benchmarks Loading commit data...
cctest Loading commit data...
common Loading commit data...
debugger Loading commit data...
fuzzer Loading commit data...
inspector Loading commit data...
intl Loading commit data...
js-perf-test Loading commit data...
memory Loading commit data...
message Loading commit data...
mjsunit Loading commit data...
mkgrokdump Loading commit data...
mozilla Loading commit data...
preparser Loading commit data...
test262 Loading commit data...
torque Loading commit data...
unittests Loading commit data...
wasm-js Loading commit data...
wasm-spec-tests Loading commit data...
webkit Loading commit data...
BUILD.gn Loading commit data...
OWNERS Loading commit data...