Index: src/ast.cc |
diff --git a/src/ast.cc b/src/ast.cc |
index 8c0351c0168064835f6bbd173818e6aac08d23ad..2b457d0e0520031d3633963797ad034e41fc7c50 100644 |
--- a/src/ast.cc |
+++ b/src/ast.cc |
@@ -655,17 +655,15 @@ void Call::RecordTypeFeedback(TypeFeedbackOracle* oracle, |
void CallNew::RecordTypeFeedback(TypeFeedbackOracle* oracle) { |
+ allocation_info_cell_ = oracle->GetCallNewAllocationInfoCell(this); |
is_monomorphic_ = oracle->CallNewIsMonomorphic(this); |
if (is_monomorphic_) { |
target_ = oracle->GetCallNewTarget(this); |
- elements_kind_ = oracle->GetCallNewElementsKind(this); |
+ Object* value = allocation_info_cell_->value(); |
+ if (value->IsSmi()) { |
rossberg
2013/06/06 09:24:19
I'm not sure how this can ever be true, given that
rossberg
2013/06/06 10:36:49
Never mind, I was overlooking the value method...
|
+ elements_kind_ = static_cast<ElementsKind>(Smi::cast(value)->value()); |
+ } |
} |
- Handle<Object> alloc_elements_kind = oracle->GetInfo(CallNewFeedbackId()); |
-// if (alloc_elements_kind->IsSmi()) |
-// alloc_elements_kind_ = Handle<Smi>::cast(alloc_elements_kind); |
- alloc_elements_kind_ = alloc_elements_kind->IsSmi() |
- ? Handle<Smi>::cast(alloc_elements_kind) |
- : handle(Smi::FromInt(GetInitialFastElementsKind()), oracle->isolate()); |
} |