Index: src/objects-inl.h |
diff --git a/src/objects-inl.h b/src/objects-inl.h |
index 169475791d05ff9672dfff163ba14dde0506bea5..b0defdf2995ef50075276e3046a8f0a71cfb012c 100644 |
--- a/src/objects-inl.h |
+++ b/src/objects-inl.h |
@@ -4440,6 +4440,7 @@ ACCESSORS(Box, value, Object, kValueOffset) |
ACCESSORS(AccessorPair, getter, Object, kGetterOffset) |
ACCESSORS(AccessorPair, setter, Object, kSetterOffset) |
+ACCESSORS_TO_SMI(AccessorPair, flag, kFlagOffset) |
Sven Panne
2013/08/21 10:46:25
Can we rename this from plain "flag" to something
dcarney
2013/08/21 10:59:33
okay, but all the flag fields everywhere else are
|
ACCESSORS(AccessCheckInfo, named_callback, Object, kNamedCallbackOffset) |
ACCESSORS(AccessCheckInfo, indexed_callback, Object, kIndexedCallbackOffset) |
@@ -5836,6 +5837,36 @@ bool AccessorInfo::IsCompatibleReceiver(Object* receiver) { |
} |
+void AccessorPair::set_access_flags(v8::AccessControl access_control) { |
+ int current = flag()->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_flag(Smi::FromInt(current)); |
+} |
+ |
+ |
+bool AccessorPair::all_can_read() { |
+ return BooleanBit::get(flag(), kAllCanReadBit); |
+} |
+ |
+ |
+bool AccessorPair::all_can_write() { |
+ return BooleanBit::get(flag(), kAllCanWriteBit); |
+} |
+ |
+ |
+bool AccessorPair::prohibits_overwriting() { |
+ return BooleanBit::get(flag(), kProhibitsOverwritingBit); |
+} |
+ |
+ |
template<typename Shape, typename Key> |
void Dictionary<Shape, Key>::SetEntry(int entry, |
Object* key, |