Index: src/ic/ic.cc |
diff --git a/src/ic/ic.cc b/src/ic/ic.cc |
index c86b932d83c414f3dd7ee4ce35b2fe4ac37c52c0..964f1d876d5ec9671e7f1e37a48e6f37f33e114a 100644 |
--- a/src/ic/ic.cc |
+++ b/src/ic/ic.cc |
@@ -2310,6 +2310,12 @@ void CallIC::HandleMiss(Handle<Object> function) { |
if (array_function.is_identical_to(js_function)) { |
// Alter the slot. |
nexus->ConfigureMonomorphicArray(); |
+ } else if (js_function->context()->native_context() != |
+ *isolate()->native_context()) { |
+ // Don't collect cross-native context feedback for the CallIC. |
+ // TODO(bmeurer): We should collect the SharedFunctionInfo as |
+ // feedback in this case instead. |
+ nexus->ConfigureMegamorphic(); |
} else { |
nexus->ConfigureMonomorphic(js_function); |
} |