Index: src/compiler/access-info.h |
diff --git a/src/compiler/access-info.h b/src/compiler/access-info.h |
index 1556e0ee3838482ddcca8f07d4deaeefa3df7a9f..cae119140a5775c149205ea8aeb18ed8b50cdbc2 100644 |
--- a/src/compiler/access-info.h |
+++ b/src/compiler/access-info.h |
@@ -53,6 +53,16 @@ class ElementAccessInfo final { |
}; |
+// Additional checks that need to be perform for data field accesses. |
+enum class FieldCheck : uint8_t { |
+ // No additional checking needed. |
+ kNone, |
+ // Check that the [[ViewedArrayBuffer]] of {JSArrayBufferView}s |
+ // was not neutered. |
+ kJSArrayBufferViewBufferNotNeutered, |
+}; |
+ |
+ |
// This class encapsulates all information required to access a certain |
// object property, either on the object itself or on the prototype chain. |
class PropertyAccessInfo final { |
@@ -66,6 +76,7 @@ class PropertyAccessInfo final { |
MaybeHandle<JSObject> holder); |
static PropertyAccessInfo DataField( |
Type* receiver_type, FieldIndex field_index, Type* field_type, |
+ FieldCheck field_check = FieldCheck::kNone, |
MaybeHandle<JSObject> holder = MaybeHandle<JSObject>(), |
MaybeHandle<Map> transition_map = MaybeHandle<Map>()); |
@@ -81,6 +92,7 @@ class PropertyAccessInfo final { |
MaybeHandle<JSObject> holder() const { return holder_; } |
MaybeHandle<Map> transition_map() const { return transition_map_; } |
Handle<Object> constant() const { return constant_; } |
+ FieldCheck field_check() const { return field_check_; } |
FieldIndex field_index() const { return field_index_; } |
Type* field_type() const { return field_type_; } |
Type* receiver_type() const { return receiver_type_; } |
@@ -91,7 +103,8 @@ class PropertyAccessInfo final { |
Type* receiver_type); |
PropertyAccessInfo(MaybeHandle<JSObject> holder, |
MaybeHandle<Map> transition_map, FieldIndex field_index, |
- Type* field_type, Type* receiver_type); |
+ FieldCheck field_check, Type* field_type, |
+ Type* receiver_type); |
Kind kind_; |
Type* receiver_type_; |
@@ -99,6 +112,7 @@ class PropertyAccessInfo final { |
MaybeHandle<Map> transition_map_; |
MaybeHandle<JSObject> holder_; |
FieldIndex field_index_; |
+ FieldCheck field_check_; |
Type* field_type_; |
}; |