Index: src/objects-inl.h |
diff --git a/src/objects-inl.h b/src/objects-inl.h |
index 6c1ecbb322ea00211813ba6c9584fcbf8a227b5b..cac959dce2ba2f37797612b46b6e17833b2985d5 100644 |
--- a/src/objects-inl.h |
+++ b/src/objects-inl.h |
@@ -4453,6 +4453,7 @@ ACCESSORS(Box, value, Object, kValueOffset) |
ACCESSORS(AccessorPair, getter, Object, kGetterOffset) |
ACCESSORS(AccessorPair, setter, Object, kSetterOffset) |
+ACCESSORS_TO_SMI(AccessorPair, access_flags, kAccessFlagsOffset) |
ACCESSORS(AccessCheckInfo, named_callback, Object, kNamedCallbackOffset) |
ACCESSORS(AccessCheckInfo, indexed_callback, Object, kIndexedCallbackOffset) |
@@ -5849,6 +5850,36 @@ bool AccessorInfo::IsCompatibleReceiver(Object* receiver) { |
} |
+void AccessorPair::set_access_flags(v8::AccessControl access_control) { |
+ int current = access_flags()->value(); |
+ current = BooleanBit::set(current, |
+ kProhibitsOverwritingBit, |
+ access_control & PROHIBITS_OVERWRITING); |
+ current = BooleanBit::set(current, |
+ kAllCanReadBit, |
+ access_control & ALL_CAN_READ); |
+ current = BooleanBit::set(current, |
+ kAllCanWriteBit, |
+ access_control & ALL_CAN_WRITE); |
+ set_access_flags(Smi::FromInt(current)); |
+} |
+ |
+ |
+bool AccessorPair::all_can_read() { |
+ return BooleanBit::get(access_flags(), kAllCanReadBit); |
+} |
+ |
+ |
+bool AccessorPair::all_can_write() { |
+ return BooleanBit::get(access_flags(), kAllCanWriteBit); |
+} |
+ |
+ |
+bool AccessorPair::prohibits_overwriting() { |
+ return BooleanBit::get(access_flags(), kProhibitsOverwritingBit); |
+} |
+ |
+ |
template<typename Shape, typename Key> |
void Dictionary<Shape, Key>::SetEntry(int entry, |
Object* key, |