| Index: src/objects-inl.h
|
| diff --git a/src/objects-inl.h b/src/objects-inl.h
|
| index fc43120019280f4dd8cda4cea7db2c4883e278ec..6480596fba2068fde02811f53f2b5d12d8b2413d 100644
|
| --- a/src/objects-inl.h
|
| +++ b/src/objects-inl.h
|
| @@ -843,8 +843,24 @@ bool Object::IsBoolean() const {
|
|
|
|
|
| TYPE_CHECKER(JSArray, JS_ARRAY_TYPE)
|
| -TYPE_CHECKER(JSArrayBuffer, JS_ARRAY_BUFFER_TYPE)
|
| -TYPE_CHECKER(JSTypedArray, JS_TYPED_ARRAY_TYPE)
|
| +
|
| +
|
| +bool Object::IsJSArrayBuffer() const {
|
| + if (!IsHeapObject()) return false;
|
| +
|
| + InstanceType type = HeapObject::cast(this)->map()->instance_type();
|
| + return type == JS_ARRAY_BUFFER_TYPE || type == JS_SHARED_ARRAY_BUFFER_TYPE;
|
| +}
|
| +
|
| +
|
| +bool Object::IsJSTypedArray() const {
|
| + if (!IsHeapObject()) return false;
|
| +
|
| + InstanceType type = HeapObject::cast(this)->map()->instance_type();
|
| + return type == JS_TYPED_ARRAY_TYPE || type == JS_SHARED_TYPED_ARRAY_TYPE;
|
| +}
|
| +
|
| +
|
| TYPE_CHECKER(JSDataView, JS_DATA_VIEW_TYPE)
|
|
|
|
|
| @@ -1967,8 +1983,10 @@ int JSObject::GetHeaderSize() {
|
| case JS_ARRAY_TYPE:
|
| return JSArray::kSize;
|
| case JS_ARRAY_BUFFER_TYPE:
|
| + case JS_SHARED_ARRAY_BUFFER_TYPE:
|
| return JSArrayBuffer::kSize;
|
| case JS_TYPED_ARRAY_TYPE:
|
| + case JS_SHARED_TYPED_ARRAY_TYPE:
|
| return JSTypedArray::kSize;
|
| case JS_DATA_VIEW_TYPE:
|
| return JSDataView::kSize;
|
| @@ -6484,6 +6502,11 @@ void JSArrayBuffer::set_was_neutered(bool value) {
|
| }
|
|
|
|
|
| +bool JSArrayBuffer::is_shared() {
|
| + return map()->instance_type() == JS_SHARED_ARRAY_BUFFER_TYPE;
|
| +}
|
| +
|
| +
|
| Object* JSArrayBufferView::byte_offset() const {
|
| if (WasNeutered()) return Smi::FromInt(0);
|
| return Object::cast(READ_FIELD(this, kByteOffsetOffset));
|
| @@ -6520,6 +6543,11 @@ bool JSArrayBufferView::WasNeutered() const {
|
| }
|
|
|
|
|
| +bool JSArrayBufferView::is_shared() const {
|
| + return map()->instance_type() == JS_SHARED_TYPED_ARRAY_TYPE;
|
| +}
|
| +
|
| +
|
| Object* JSTypedArray::length() const {
|
| if (WasNeutered()) return Smi::FromInt(0);
|
| return Object::cast(READ_FIELD(this, kLengthOffset));
|
|
|