diff options
Diffstat (limited to 'deps/v8/src/objects/js-array-buffer-inl.h')
-rw-r--r-- | deps/v8/src/objects/js-array-buffer-inl.h | 88 |
1 files changed, 34 insertions, 54 deletions
diff --git a/deps/v8/src/objects/js-array-buffer-inl.h b/deps/v8/src/objects/js-array-buffer-inl.h index 43bc294d04..7bc01a8b8a 100644 --- a/deps/v8/src/objects/js-array-buffer-inl.h +++ b/deps/v8/src/objects/js-array-buffer-inl.h @@ -20,6 +20,14 @@ CAST_ACCESSOR(JSArrayBuffer) CAST_ACCESSOR(JSArrayBufferView) CAST_ACCESSOR(JSTypedArray) +size_t JSArrayBuffer::byte_length() const { + return READ_UINTPTR_FIELD(this, kByteLengthOffset); +} + +void JSArrayBuffer::set_byte_length(size_t value) { + WRITE_UINTPTR_FIELD(this, kByteLengthOffset, value); +} + void* JSArrayBuffer::backing_store() const { intptr_t ptr = READ_INTPTR_FIELD(this, kBackingStoreOffset); return reinterpret_cast<void*>(ptr); @@ -30,8 +38,6 @@ void JSArrayBuffer::set_backing_store(void* value, WriteBarrierMode mode) { WRITE_INTPTR_FIELD(this, kBackingStoreOffset, ptr); } -ACCESSORS(JSArrayBuffer, byte_length, Object, kByteLengthOffset) - size_t JSArrayBuffer::allocation_length() const { if (backing_store() == nullptr) { return 0; @@ -44,7 +50,7 @@ size_t JSArrayBuffer::allocation_length() const { DCHECK_NOT_NULL(data); return data->allocation_length; } - return byte_length()->Number(); + return byte_length(); } void* JSArrayBuffer::allocation_base() const { @@ -63,13 +69,17 @@ void* JSArrayBuffer::allocation_base() const { } bool JSArrayBuffer::is_wasm_memory() const { - bool const is_wasm_memory = IsWasmMemory::decode(bit_field()); + bool const is_wasm_memory = IsWasmMemoryBit::decode(bit_field()); DCHECK_EQ(is_wasm_memory, GetIsolate()->wasm_engine()->memory_tracker()->IsWasmMemory( backing_store())); return is_wasm_memory; } +void JSArrayBuffer::set_is_wasm_memory(bool is_wasm_memory) { + set_bit_field(IsWasmMemoryBit::update(bit_field(), is_wasm_memory)); +} + void JSArrayBuffer::set_bit_field(uint32_t bits) { if (kInt32Size != kPointerSize) { #if V8_TARGET_LITTLE_ENDIAN @@ -85,76 +95,46 @@ uint32_t JSArrayBuffer::bit_field() const { return READ_UINT32_FIELD(this, kBitFieldOffset); } -bool JSArrayBuffer::is_external() { return IsExternal::decode(bit_field()); } - -void JSArrayBuffer::set_is_external(bool value) { - set_bit_field(IsExternal::update(bit_field(), value)); -} - -bool JSArrayBuffer::is_neuterable() { - return IsNeuterable::decode(bit_field()); -} - -void JSArrayBuffer::set_is_neuterable(bool value) { - set_bit_field(IsNeuterable::update(bit_field(), value)); -} - -bool JSArrayBuffer::was_neutered() { return WasNeutered::decode(bit_field()); } - -void JSArrayBuffer::set_was_neutered(bool value) { - set_bit_field(WasNeutered::update(bit_field(), value)); -} - -bool JSArrayBuffer::is_shared() { return IsShared::decode(bit_field()); } - -void JSArrayBuffer::set_is_shared(bool value) { - set_bit_field(IsShared::update(bit_field(), value)); -} - -bool JSArrayBuffer::is_growable() { return IsGrowable::decode(bit_field()); } - -void JSArrayBuffer::set_is_growable(bool value) { - set_bit_field(IsGrowable::update(bit_field(), value)); -} +// |bit_field| fields. +BIT_FIELD_ACCESSORS(JSArrayBuffer, bit_field, is_external, + JSArrayBuffer::IsExternalBit) +BIT_FIELD_ACCESSORS(JSArrayBuffer, bit_field, is_neuterable, + JSArrayBuffer::IsNeuterableBit) +BIT_FIELD_ACCESSORS(JSArrayBuffer, bit_field, was_neutered, + JSArrayBuffer::WasNeuteredBit) +BIT_FIELD_ACCESSORS(JSArrayBuffer, bit_field, is_shared, + JSArrayBuffer::IsSharedBit) +BIT_FIELD_ACCESSORS(JSArrayBuffer, bit_field, is_growable, + JSArrayBuffer::IsGrowableBit) -Object* JSArrayBufferView::byte_offset() const { - if (WasNeutered()) return Smi::kZero; - return Object::cast(READ_FIELD(this, kByteOffsetOffset)); +size_t JSArrayBufferView::byte_offset() const { + return READ_UINTPTR_FIELD(this, kByteOffsetOffset); } -void JSArrayBufferView::set_byte_offset(Object* value, WriteBarrierMode mode) { - WRITE_FIELD(this, kByteOffsetOffset, value); - CONDITIONAL_WRITE_BARRIER(this, kByteOffsetOffset, value, mode); +void JSArrayBufferView::set_byte_offset(size_t value) { + WRITE_UINTPTR_FIELD(this, kByteOffsetOffset, value); } -Object* JSArrayBufferView::byte_length() const { - if (WasNeutered()) return Smi::kZero; - return Object::cast(READ_FIELD(this, kByteLengthOffset)); +size_t JSArrayBufferView::byte_length() const { + return READ_UINTPTR_FIELD(this, kByteLengthOffset); } -void JSArrayBufferView::set_byte_length(Object* value, WriteBarrierMode mode) { - WRITE_FIELD(this, kByteLengthOffset, value); - CONDITIONAL_WRITE_BARRIER(this, kByteLengthOffset, value, mode); +void JSArrayBufferView::set_byte_length(size_t value) { + WRITE_UINTPTR_FIELD(this, kByteLengthOffset, value); } ACCESSORS(JSArrayBufferView, buffer, Object, kBufferOffset) -#ifdef VERIFY_HEAP -ACCESSORS(JSArrayBufferView, raw_byte_offset, Object, kByteOffsetOffset) -ACCESSORS(JSArrayBufferView, raw_byte_length, Object, kByteLengthOffset) -#endif bool JSArrayBufferView::WasNeutered() const { return JSArrayBuffer::cast(buffer())->was_neutered(); } Object* JSTypedArray::length() const { - if (WasNeutered()) return Smi::kZero; return Object::cast(READ_FIELD(this, kLengthOffset)); } size_t JSTypedArray::length_value() const { - if (WasNeutered()) return 0; - double val = Object::cast(READ_FIELD(this, kLengthOffset))->Number(); + double val = length()->Number(); DCHECK_LE(val, kMaxSafeInteger); // 2^53-1 DCHECK_GE(val, -kMaxSafeInteger); // -2^53+1 DCHECK_LE(val, std::numeric_limits<size_t>::max()); |