| Index: src/type-info.cc
|
| diff --git a/src/type-info.cc b/src/type-info.cc
|
| index 4ad66f85573e78786bb0716be81550146bdd627a..f50949508c156b3f2f642ffe12cf4a16dde113e9 100644
|
| --- a/src/type-info.cc
|
| +++ b/src/type-info.cc
|
| @@ -142,6 +142,22 @@ bool TypeFeedbackOracle::CallIsMonomorphic(FeedbackVectorICSlot slot) {
|
| }
|
|
|
|
|
| +bool TypeFeedbackOracle::CallIsBuiltinWithMinusZeroResult(
|
| + FeedbackVectorICSlot slot) {
|
| + Handle<Object> value = GetInfo(slot);
|
| + if (!value->IsJSFunction()) return false;
|
| + Handle<JSFunction> maybe_round(Handle<JSFunction>::cast(value));
|
| + if (!maybe_round->shared()->HasBuiltinFunctionId()) return false;
|
| + if (maybe_round->shared()->builtin_function_id() != kMathRound &&
|
| + maybe_round->shared()->builtin_function_id() != kMathFloor &&
|
| + maybe_round->shared()->builtin_function_id() != kMathCeil) {
|
| + return false;
|
| + }
|
| + return feedback_vector_->get(feedback_vector_->GetIndex(slot) + 1) ==
|
| + Smi::FromInt(CallICStub::kHasReturnedMinusZeroSentinel);
|
| +}
|
| +
|
| +
|
| bool TypeFeedbackOracle::CallNewIsMonomorphic(FeedbackVectorSlot slot) {
|
| Handle<Object> info = GetInfo(slot);
|
| return FLAG_pretenuring_call_new
|
|
|