| Index: src/ic/ic.cc
|
| diff --git a/src/ic/ic.cc b/src/ic/ic.cc
|
| index a9ad1c9df254db4a9ae2f857058342a1f2887ffe..f0d571bed644a1ab494470233ae5bd8eadc32d29 100644
|
| --- a/src/ic/ic.cc
|
| +++ b/src/ic/ic.cc
|
| @@ -2372,13 +2372,14 @@ RUNTIME_FUNCTION(Runtime_LoadIC_Miss) {
|
| // A monomorphic or polymorphic KeyedLoadIC with a string key can call the
|
| // LoadIC miss handler if the handler misses. Since the vector Nexus is
|
| // set up outside the IC, handle that here.
|
| - if (vector->GetKind(vector_slot) == Code::LOAD_IC) {
|
| + if (vector->GetKind(vector_slot) == FeedbackVectorSlotKind::LOAD_IC) {
|
| LoadICNexus nexus(vector, vector_slot);
|
| LoadIC ic(IC::NO_EXTRA_FRAME, isolate, &nexus);
|
| ic.UpdateState(receiver, key);
|
| ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result, ic.Load(receiver, key));
|
| } else {
|
| - DCHECK(vector->GetKind(vector_slot) == Code::KEYED_LOAD_IC);
|
| + DCHECK_EQ(FeedbackVectorSlotKind::KEYED_LOAD_IC,
|
| + vector->GetKind(vector_slot));
|
| KeyedLoadICNexus nexus(vector, vector_slot);
|
| KeyedLoadIC ic(IC::NO_EXTRA_FRAME, isolate, &nexus);
|
| ic.UpdateState(receiver, key);
|
| @@ -2442,14 +2443,15 @@ RUNTIME_FUNCTION(Runtime_StoreIC_Miss) {
|
| Handle<Smi> slot = args.at<Smi>(3);
|
| Handle<TypeFeedbackVector> vector = args.at<TypeFeedbackVector>(4);
|
| FeedbackVectorICSlot vector_slot = vector->ToICSlot(slot->value());
|
| - if (vector->GetKind(vector_slot) == Code::STORE_IC) {
|
| + if (vector->GetKind(vector_slot) == FeedbackVectorSlotKind::STORE_IC) {
|
| StoreICNexus nexus(vector, vector_slot);
|
| StoreIC ic(IC::NO_EXTRA_FRAME, isolate, &nexus);
|
| ic.UpdateState(receiver, key);
|
| ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result,
|
| ic.Store(receiver, key, value));
|
| } else {
|
| - DCHECK(vector->GetKind(vector_slot) == Code::KEYED_STORE_IC);
|
| + DCHECK_EQ(FeedbackVectorSlotKind::KEYED_STORE_IC,
|
| + vector->GetKind(vector_slot));
|
| KeyedStoreICNexus nexus(vector, vector_slot);
|
| KeyedStoreIC ic(IC::NO_EXTRA_FRAME, isolate, &nexus);
|
| ic.UpdateState(receiver, key);
|
| @@ -2480,14 +2482,15 @@ RUNTIME_FUNCTION(Runtime_StoreIC_MissFromStubFailure) {
|
| Handle<Smi> slot = args.at<Smi>(3);
|
| Handle<TypeFeedbackVector> vector = args.at<TypeFeedbackVector>(4);
|
| FeedbackVectorICSlot vector_slot = vector->ToICSlot(slot->value());
|
| - if (vector->GetKind(vector_slot) == Code::STORE_IC) {
|
| + if (vector->GetKind(vector_slot) == FeedbackVectorSlotKind::STORE_IC) {
|
| StoreICNexus nexus(vector, vector_slot);
|
| StoreIC ic(IC::EXTRA_CALL_FRAME, isolate, &nexus);
|
| ic.UpdateState(receiver, key);
|
| ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result,
|
| ic.Store(receiver, key, value));
|
| } else {
|
| - DCHECK(vector->GetKind(vector_slot) == Code::KEYED_STORE_IC);
|
| + DCHECK_EQ(FeedbackVectorSlotKind::KEYED_STORE_IC,
|
| + vector->GetKind(vector_slot));
|
| KeyedStoreICNexus nexus(vector, vector_slot);
|
| KeyedStoreIC ic(IC::EXTRA_CALL_FRAME, isolate, &nexus);
|
| ic.UpdateState(receiver, key);
|
| @@ -3110,13 +3113,14 @@ RUNTIME_FUNCTION(Runtime_LoadIC_MissFromStubFailure) {
|
| // A monomorphic or polymorphic KeyedLoadIC with a string key can call the
|
| // LoadIC miss handler if the handler misses. Since the vector Nexus is
|
| // set up outside the IC, handle that here.
|
| - if (vector->GetKind(vector_slot) == Code::LOAD_IC) {
|
| + if (vector->GetKind(vector_slot) == FeedbackVectorSlotKind::LOAD_IC) {
|
| LoadICNexus nexus(vector, vector_slot);
|
| LoadIC ic(IC::EXTRA_CALL_FRAME, isolate, &nexus);
|
| ic.UpdateState(receiver, key);
|
| ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result, ic.Load(receiver, key));
|
| } else {
|
| - DCHECK(vector->GetKind(vector_slot) == Code::KEYED_LOAD_IC);
|
| + DCHECK_EQ(FeedbackVectorSlotKind::KEYED_LOAD_IC,
|
| + vector->GetKind(vector_slot));
|
| KeyedLoadICNexus nexus(vector, vector_slot);
|
| KeyedLoadIC ic(IC::EXTRA_CALL_FRAME, isolate, &nexus);
|
| ic.UpdateState(receiver, key);
|
|
|