| Index: src/objects-inl.h
|
| diff --git a/src/objects-inl.h b/src/objects-inl.h
|
| index 8d45d12b5457691dac0a49a4708bc9c91f852430..4590d73a0d60720b8bb483f1c3b9419e1f6a57b9 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)
|
|
|
|
|
| @@ -1965,8 +1981,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;
|
| @@ -6463,6 +6481,16 @@ void JSArrayBuffer::set_is_neuterable(bool value) {
|
| }
|
|
|
|
|
| +bool JSArrayBuffer::is_shared() {
|
| + return BooleanBit::get(flag(), kIsSharedBit);
|
| +}
|
| +
|
| +
|
| +void JSArrayBuffer::set_is_shared(bool value) {
|
| + set_flag(BooleanBit::set(flag(), kIsSharedBit, value));
|
| +}
|
| +
|
| +
|
| ACCESSORS(JSArrayBuffer, weak_next, Object, kWeakNextOffset)
|
| ACCESSORS(JSArrayBuffer, weak_first_view, Object, kWeakFirstViewOffset)
|
|
|
| @@ -6473,6 +6501,17 @@ ACCESSORS(JSArrayBufferView, byte_length, Object, kByteLengthOffset)
|
| ACCESSORS(JSArrayBufferView, weak_next, Object, kWeakNextOffset)
|
| ACCESSORS(JSTypedArray, length, Object, kLengthOffset)
|
|
|
| +
|
| +bool JSTypedArray::is_shared() const {
|
| + return Smi::cast(READ_FIELD(this, kIsSharedOffset))->value() != 0;
|
| +}
|
| +
|
| +
|
| +void JSTypedArray::set_is_shared(bool value) {
|
| + WRITE_FIELD(this, kIsSharedOffset, Smi::FromInt(value));
|
| +}
|
| +
|
| +
|
| ACCESSORS(JSRegExp, data, Object, kDataOffset)
|
|
|
|
|
|
|