summaryrefslogtreecommitdiff
path: root/deps/v8/src/ic/handler-configuration-inl.h
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/ic/handler-configuration-inl.h')
-rw-r--r--deps/v8/src/ic/handler-configuration-inl.h36
1 files changed, 17 insertions, 19 deletions
diff --git a/deps/v8/src/ic/handler-configuration-inl.h b/deps/v8/src/ic/handler-configuration-inl.h
index c0ff8a4c9b..95ef353277 100644
--- a/deps/v8/src/ic/handler-configuration-inl.h
+++ b/deps/v8/src/ic/handler-configuration-inl.h
@@ -43,6 +43,11 @@ Handle<Smi> LoadHandler::LoadInterceptor(Isolate* isolate) {
return handle(Smi::FromInt(config), isolate);
}
+Handle<Smi> LoadHandler::LoadSlow(Isolate* isolate) {
+ int config = KindBits::encode(kSlow);
+ return handle(Smi::FromInt(config), isolate);
+}
+
Handle<Smi> LoadHandler::LoadField(Isolate* isolate, FieldIndex field_index) {
int config = KindBits::encode(kField) |
IsInobjectBits::encode(field_index.is_inobject()) |
@@ -127,6 +132,16 @@ Handle<Smi> StoreHandler::StoreNormal(Isolate* isolate) {
return handle(Smi::FromInt(config), isolate);
}
+Handle<Smi> StoreHandler::StoreInterceptor(Isolate* isolate) {
+ int config = KindBits::encode(kInterceptor);
+ return handle(Smi::FromInt(config), isolate);
+}
+
+Handle<Smi> StoreHandler::StoreSlow(Isolate* isolate) {
+ int config = KindBits::encode(kSlow);
+ return handle(Smi::FromInt(config), isolate);
+}
+
Handle<Smi> StoreHandler::StoreProxy(Isolate* isolate) {
int config = KindBits::encode(kProxy);
return handle(Smi::FromInt(config), isolate);
@@ -135,29 +150,12 @@ Handle<Smi> StoreHandler::StoreProxy(Isolate* isolate) {
Handle<Smi> StoreHandler::StoreField(Isolate* isolate, Kind kind,
int descriptor, FieldIndex field_index,
Representation representation) {
- FieldRepresentation field_rep;
- switch (representation.kind()) {
- case Representation::kSmi:
- field_rep = kSmi;
- break;
- case Representation::kDouble:
- field_rep = kDouble;
- break;
- case Representation::kHeapObject:
- field_rep = kHeapObject;
- break;
- case Representation::kTagged:
- field_rep = kTagged;
- break;
- default:
- UNREACHABLE();
- }
-
+ DCHECK(!representation.IsNone());
DCHECK(kind == kField || kind == kConstField);
int config = KindBits::encode(kind) |
IsInobjectBits::encode(field_index.is_inobject()) |
- FieldRepresentationBits::encode(field_rep) |
+ RepresentationBits::encode(representation.kind()) |
DescriptorBits::encode(descriptor) |
FieldIndexBits::encode(field_index.index());
return handle(Smi::FromInt(config), isolate);