| Index: src/ic.cc
|
| diff --git a/src/ic.cc b/src/ic.cc
|
| index 01d4ca0869a6507d87b5c5769112bc8303af8809..382b438a0b58cacfb01bc6ae2f12cf831f1f819f 100644
|
| --- a/src/ic.cc
|
| +++ b/src/ic.cc
|
| @@ -2131,6 +2131,7 @@ const char* TRBinaryOpIC::GetName(TypeInfo type_info) {
|
| case SMI: return "SMI";
|
| case INT32: return "Int32s";
|
| case HEAP_NUMBER: return "HeapNumbers";
|
| + case ODDBALL: return "Oddball";
|
| case STRING: return "Strings";
|
| case GENERIC: return "Generic";
|
| default: return "Invalid";
|
| @@ -2145,6 +2146,7 @@ TRBinaryOpIC::State TRBinaryOpIC::ToState(TypeInfo type_info) {
|
| case SMI:
|
| case INT32:
|
| case HEAP_NUMBER:
|
| + case ODDBALL:
|
| case STRING:
|
| return MONOMORPHIC;
|
| case GENERIC:
|
| @@ -2192,6 +2194,10 @@ TRBinaryOpIC::TypeInfo TRBinaryOpIC::GetTypeInfo(Handle<Object> left,
|
| return STRING;
|
| }
|
|
|
| + // Check for oddball objects.
|
| + if (left->IsUndefined() && right->IsNumber()) return ODDBALL;
|
| + if (left->IsNumber() && right->IsUndefined()) return ODDBALL;
|
| +
|
| return GENERIC;
|
| }
|
|
|
|
|