| Index: src/ic.cc
|
| diff --git a/src/ic.cc b/src/ic.cc
|
| index ecf0e9a8d68eca7fb8e611118f2aefc7f58eeeed..86bef05e221120a5de4bc06d9c0dffd2990de96e 100644
|
| --- a/src/ic.cc
|
| +++ b/src/ic.cc
|
| @@ -680,7 +680,8 @@ bool IC::UpdatePolymorphicIC(Handle<HeapType> type,
|
|
|
| for (int i = 0; i < number_of_types; i++) {
|
| Handle<HeapType> current_type = types.at(i);
|
| - if (current_type->IsClass() && current_type->AsClass()->is_deprecated()) {
|
| + if (current_type->IsClass() &&
|
| + current_type->AsClass()->Map()->is_deprecated()) {
|
| // Filter out deprecated maps to ensure their instances get migrated.
|
| ++deprecated_types;
|
| } else if (type->NowIs(current_type)) {
|
| @@ -691,8 +692,8 @@ bool IC::UpdatePolymorphicIC(Handle<HeapType> type,
|
| } else if (handler_to_overwrite == -1 &&
|
| current_type->IsClass() &&
|
| type->IsClass() &&
|
| - IsTransitionOfMonomorphicTarget(*current_type->AsClass(),
|
| - *type->AsClass())) {
|
| + IsTransitionOfMonomorphicTarget(*current_type->AsClass()->Map(),
|
| + *type->AsClass()->Map())) {
|
| handler_to_overwrite = i;
|
| }
|
| }
|
| @@ -734,10 +735,11 @@ Handle<Map> IC::TypeToMap(HeapType* type, Isolate* isolate) {
|
| return isolate->factory()->heap_number_map();
|
| if (type->Is(HeapType::Boolean())) return isolate->factory()->boolean_map();
|
| if (type->IsConstant()) {
|
| - return handle(Handle<JSGlobalObject>::cast(type->AsConstant())->map());
|
| + return handle(
|
| + Handle<JSGlobalObject>::cast(type->AsConstant()->Value())->map());
|
| }
|
| ASSERT(type->IsClass());
|
| - return type->AsClass();
|
| + return type->AsClass()->Map();
|
| }
|
|
|
|
|
|
|