| Index: src/ic/handler-configuration.h
|
| diff --git a/src/ic/handler-configuration.h b/src/ic/handler-configuration.h
|
| index 756cb312acef97ac506586550890778d25fdcc11..7ffe192c1af673486da517324f7f888eb19d3a03 100644
|
| --- a/src/ic/handler-configuration.h
|
| +++ b/src/ic/handler-configuration.h
|
| @@ -19,11 +19,17 @@ class LoadHandler {
|
| enum Kind { kForElements, kForFields, kForConstants, kForNonExistent };
|
| class KindBits : public BitField<Kind, 0, 2> {};
|
|
|
| + // Defines whether access rights check should be done on receiver object.
|
| + // Applicable to kForFields, kForConstants and kForNonExistent kinds only when
|
| + // loading value from prototype chain. Ignored when loading from holder.
|
| + class DoAccessCheckOnReceiverBits
|
| + : public BitField<bool, KindBits::kNext, 1> {};
|
| +
|
| // Defines whether negative lookup check should be done on receiver object.
|
| // Applicable to kForFields, kForConstants and kForNonExistent kinds only when
|
| // loading value from prototype chain. Ignored when loading from holder.
|
| class DoNegativeLookupOnReceiverBits
|
| - : public BitField<bool, KindBits::kNext, 1> {};
|
| + : public BitField<bool, DoAccessCheckOnReceiverBits::kNext, 1> {};
|
|
|
| //
|
| // Encoding when KindBits contains kForConstants.
|
| @@ -81,6 +87,11 @@ class LoadHandler {
|
| // Creates a Smi-handler for loading a constant from fast object.
|
| static inline Handle<Object> LoadConstant(Isolate* isolate, int descriptor);
|
|
|
| + // Sets DoAccessCheckOnReceiverBits in given Smi-handler. The receiver
|
| + // check is a part of a prototype chain check.
|
| + static inline Handle<Object> EnableAccessCheckOnReceiver(
|
| + Isolate* isolate, Handle<Object> smi_handler);
|
| +
|
| // Sets DoNegativeLookupOnReceiverBits in given Smi-handler. The receiver
|
| // check is a part of a prototype chain check.
|
| static inline Handle<Object> EnableNegativeLookupOnReceiver(
|
|
|