| 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;
|
| }
|
|
|
|
|
|
|