| Index: src/type-info.cc
|
| diff --git a/src/type-info.cc b/src/type-info.cc
|
| index 08f5cabaa2d194b79533771f7bad844c6b02614c..5f794bdef4eec702f6953e1cd7a0eae357062e76 100644
|
| --- a/src/type-info.cc
|
| +++ b/src/type-info.cc
|
| @@ -58,9 +58,6 @@ TypeInfo TypeInfo::TypeFromValue(Handle<Object> value) {
|
| }
|
|
|
|
|
| -STATIC_ASSERT(DEFAULT_STRING_STUB == Code::kNoExtraICState);
|
| -
|
| -
|
| TypeFeedbackOracle::TypeFeedbackOracle(Handle<Code> code,
|
| Handle<Context> global_context) {
|
| global_context_ = global_context;
|
| @@ -147,15 +144,18 @@ ZoneMapList* TypeFeedbackOracle::StoreReceiverTypes(Assignment* expr,
|
|
|
|
|
| ZoneMapList* TypeFeedbackOracle::CallReceiverTypes(Call* expr,
|
| - Handle<String> name) {
|
| + Handle<String> name,
|
| + CallKind call_kind) {
|
| int arity = expr->arguments()->length();
|
| - // Note: these flags won't let us get maps from stubs with
|
| - // non-default extra ic state in the megamorphic case. In the more
|
| - // important monomorphic case the map is obtained directly, so it's
|
| - // not a problem until we decide to emit more polymorphic code.
|
| +
|
| + // Note: Currently we do not take string extra ic data into account
|
| + // here.
|
| + Code::ExtraICState extra_ic_state =
|
| + CallIC::Contextual::encode(call_kind == CALL_AS_FUNCTION);
|
| +
|
| Code::Flags flags = Code::ComputeMonomorphicFlags(Code::CALL_IC,
|
| NORMAL,
|
| - Code::kNoExtraICState,
|
| + extra_ic_state,
|
| OWN_MAP,
|
| NOT_IN_LOOP,
|
| arity);
|
|
|