• Benedikt Meurer's avatar
    [typedarray] Make JSTypedArray::length authoritative. · ad44c258
    Benedikt Meurer authored
    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: 's avatarPeter Marshall <petermarshall@chromium.org>
    Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
    Reviewed-by: 's avatarBen Titzer <titzer@chromium.org>
    Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#60648}
    ad44c258
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...