| Index: src/type-info.cc
|
| diff --git a/src/type-info.cc b/src/type-info.cc
|
| index 3cdcf8e436a69765c942db553a257b85dd61e22e..7f1d3b5ea304a21c0b892b3056a9e4be623d8659 100644
|
| --- a/src/type-info.cc
|
| +++ b/src/type-info.cc
|
| @@ -283,6 +283,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()) {
|
| @@ -292,6 +293,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);
|
| @@ -303,6 +305,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();
|
| + }
|
| }
|
|
|
|
|
|
|