Chromium Code Reviews| 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, |