summaryrefslogtreecommitdiff
path: root/deps/v8/src/ic/handler-configuration.h
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/ic/handler-configuration.h')
-rw-r--r--deps/v8/src/ic/handler-configuration.h18
1 files changed, 14 insertions, 4 deletions
diff --git a/deps/v8/src/ic/handler-configuration.h b/deps/v8/src/ic/handler-configuration.h
index 80d19d73ec..fd0cee2920 100644
--- a/deps/v8/src/ic/handler-configuration.h
+++ b/deps/v8/src/ic/handler-configuration.h
@@ -43,6 +43,7 @@ class LoadHandler final : public DataHandler {
kApiGetter,
kApiGetterHolderIsPrototype,
kInterceptor,
+ kSlow,
kProxy,
kNonExistent,
kModuleExport
@@ -113,6 +114,9 @@ class LoadHandler final : public DataHandler {
// interceptor.
static inline Handle<Smi> LoadInterceptor(Isolate* isolate);
+ // Creates a Smi-handler for loading a property from a object.
+ static inline Handle<Smi> LoadSlow(Isolate* isolate);
+
// Creates a Smi-handler for loading a field from fast object.
static inline Handle<Smi> LoadField(Isolate* isolate, FieldIndex field_index);
@@ -197,13 +201,13 @@ class StoreHandler final : public DataHandler {
kApiSetterHolderIsPrototype,
kGlobalProxy,
kNormal,
+ kInterceptor,
+ kSlow,
kProxy,
kKindsNumber // Keep last
};
using KindBits = BitField<Kind, 0, 4>;
- enum FieldRepresentation { kSmi, kDouble, kHeapObject, kTagged };
-
// Applicable to kGlobalProxy, kProxy kinds.
// Defines whether access rights check should be done on receiver object.
@@ -231,10 +235,10 @@ class StoreHandler final : public DataHandler {
// Encoding when KindBits contains kField or kTransitionToField.
//
using IsInobjectBits = DescriptorBits::Next<bool, 1>;
- using FieldRepresentationBits = IsInobjectBits::Next<FieldRepresentation, 2>;
+ using RepresentationBits = IsInobjectBits::Next<Representation::Kind, 3>;
// +1 here is to cover all possible JSObject header sizes.
using FieldIndexBits =
- FieldRepresentationBits::Next<unsigned, kDescriptorIndexBitCount + 1>;
+ RepresentationBits::Next<unsigned, kDescriptorIndexBitCount + 1>;
// Make sure we don't overflow the smi.
STATIC_ASSERT(FieldIndexBits::kLastUsedBit < kSmiValueSize);
@@ -283,6 +287,12 @@ class StoreHandler final : public DataHandler {
// Creates a Smi-handler for storing a property to a slow object.
static inline Handle<Smi> StoreNormal(Isolate* isolate);
+ // Creates a Smi-handler for storing a property to an interceptor.
+ static inline Handle<Smi> StoreInterceptor(Isolate* isolate);
+
+ // Creates a Smi-handler for storing a property.
+ static inline Handle<Smi> StoreSlow(Isolate* isolate);
+
// Creates a Smi-handler for storing a property on a proxy.
static inline Handle<Smi> StoreProxy(Isolate* isolate);