| Index: src/ic/handler-configuration.h
|
| diff --git a/src/ic/handler-configuration.h b/src/ic/handler-configuration.h
|
| index bf7c4770b91d04ef2849aeb1029079023635b36e..b9c35e433d14c208011323461af38efbc41d68fd 100644
|
| --- a/src/ic/handler-configuration.h
|
| +++ b/src/ic/handler-configuration.h
|
| @@ -6,6 +6,7 @@
|
| #define V8_IC_HANDLER_CONFIGURATION_H_
|
|
|
| #include "src/elements-kind.h"
|
| +#include "src/field-index.h"
|
| #include "src/globals.h"
|
| #include "src/utils.h"
|
|
|
| @@ -17,7 +18,7 @@ enum LoadHandlerType {
|
| kLoadICHandlerForProperties = 1
|
| };
|
|
|
| -class LoadHandlerTypeBit : public BitField<bool, 0, 1> {};
|
| +class LoadHandlerTypeBit : public BitField<LoadHandlerType, 0, 1> {};
|
|
|
| // Encoding for configuration Smis for property loads:
|
| class FieldOffsetIsInobject
|
| @@ -39,6 +40,18 @@ class KeyedLoadElementsKind
|
| // Make sure we don't overflow into the sign bit.
|
| STATIC_ASSERT(KeyedLoadElementsKind::kNext <= kSmiValueSize - 1);
|
|
|
| +// This class is a collection of factory methods for various Smi-encoded
|
| +// IC handlers consumed by respective IC dispatchers.
|
| +class SmiHandler {
|
| + public:
|
| + static inline Handle<Object> MakeLoadFieldHandler(Isolate* isolate,
|
| + FieldIndex field_index);
|
| +
|
| + static inline Handle<Object> MakeKeyedLoadHandler(
|
| + Isolate* isolate, ElementsKind elements_kind,
|
| + bool convert_hole_to_undefined, bool is_js_array);
|
| +};
|
| +
|
| } // namespace internal
|
| } // namespace v8
|
|
|
|
|