Index: src/type-info.cc |
diff --git a/src/type-info.cc b/src/type-info.cc |
index 6e3a4f6b7a483bda6ebb38f08a62e59703060592..405d57666a2de37021b8c7961d4bd5945596dd97 100644 |
--- a/src/type-info.cc |
+++ b/src/type-info.cc |
@@ -408,6 +408,7 @@ void TypeFeedbackOracle::BinaryType(TypeFeedbackId id, |
Handle<Type>* right, |
Handle<Type>* result, |
Maybe<int>* fixed_right_arg, |
+ Handle<AllocationSite>* allocation_site, |
Token::Value op) { |
Handle<Object> object = GetInfo(id); |
if (!object->IsCode()) { |
@@ -417,6 +418,7 @@ void TypeFeedbackOracle::BinaryType(TypeFeedbackId id, |
op > BinaryOpIC::State::LAST_TOKEN); |
*left = *right = *result = handle(Type::None(), isolate_); |
*fixed_right_arg = Maybe<int>(); |
+ *allocation_site = Handle<AllocationSite>::null(); |
return; |
} |
Handle<Code> code = Handle<Code>::cast(object); |
@@ -428,6 +430,13 @@ void TypeFeedbackOracle::BinaryType(TypeFeedbackId id, |
*right = state.GetRightType(isolate()); |
*result = state.GetResultType(isolate()); |
*fixed_right_arg = state.fixed_right_arg(); |
+ |
+ AllocationSite* first_allocation_site = code->FindFirstAllocationSite(); |
+ if (first_allocation_site != NULL) { |
+ *allocation_site = handle(first_allocation_site); |
+ } else { |
+ *allocation_site = Handle<AllocationSite>::null(); |
+ } |
} |