Index: src/type-info.cc |
diff --git a/src/type-info.cc b/src/type-info.cc |
index 35beb1808a6a8d4319237d3a31f66aa034b03466..6282ef68f90acc6f6e3b74aab049704dc6f42699 100644 |
--- a/src/type-info.cc |
+++ b/src/type-info.cc |
@@ -43,16 +43,12 @@ namespace internal { |
TypeFeedbackOracle::TypeFeedbackOracle(Handle<Code> code, |
+ Handle<FixedArray> feedback_vector, |
Handle<Context> native_context, |
Zone* zone) |
: native_context_(native_context), |
- zone_(zone) { |
- Object* raw_info = code->type_feedback_info(); |
- if (raw_info->IsTypeFeedbackInfo()) { |
- feedback_vector_ = Handle<FixedArray>(TypeFeedbackInfo::cast(raw_info)-> |
- feedback_vector()); |
- } |
- |
+ zone_(zone), |
+ feedback_vector_(feedback_vector) { |
BuildDictionary(code); |
ASSERT(dictionary_->IsDictionary()); |
} |
@@ -132,9 +128,9 @@ bool TypeFeedbackOracle::CallNewIsMonomorphic(int slot) { |
byte TypeFeedbackOracle::ForInType(int feedback_vector_slot) { |
Handle<Object> value = GetInfo(feedback_vector_slot); |
- return value->IsSmi() && |
- Smi::cast(*value)->value() == TypeFeedbackInfo::kForInFastCaseMarker |
- ? ForInStatement::FAST_FOR_IN : ForInStatement::SLOW_FOR_IN; |
+ return value.is_identical_to( |
+ TypeFeedbackInfo::UninitializedSentinel(isolate())) |
+ ? ForInStatement::FAST_FOR_IN : ForInStatement::SLOW_FOR_IN; |
} |