Index: src/compiler/js-native-context-specialization.cc |
diff --git a/src/compiler/js-native-context-specialization.cc b/src/compiler/js-native-context-specialization.cc |
index a2fe6c182957661110134a04f28acd06f5df7fab..fb8e53b034878cc5ec9d203f2832ad98ae3b9db8 100644 |
--- a/src/compiler/js-native-context-specialization.cc |
+++ b/src/compiler/js-native-context-specialization.cc |
@@ -573,7 +573,6 @@ |
Object* maybe_constructor = receiver_map->GetConstructor(); |
// Detached global proxies have |null| as their constructor. |
if (maybe_constructor->IsJSFunction() && |
- JSFunction::cast(maybe_constructor)->has_context() && |
JSFunction::cast(maybe_constructor)->native_context() == |
*native_context()) { |
return ReduceGlobalAccess(node, receiver, value, name, access_mode, |
@@ -798,6 +797,17 @@ |
// Optimize accesses to the current native contexts' global proxy. |
return ReduceGlobalAccess(node, nullptr, value, name, access_mode); |
} |
+ } |
+ |
+ // Check if the {nexus} reports type feedback for the IC. |
+ if (nexus.IsUninitialized()) { |
+ if ((flags() & kDeoptimizationEnabled) && |
+ (flags() & kBailoutOnUninitialized)) { |
+ return ReduceSoftDeoptimize( |
+ node, |
+ DeoptimizeReason::kInsufficientTypeFeedbackForGenericNamedAccess); |
+ } |
+ return NoChange(); |
} |
// Extract receiver maps from the IC using the {nexus}. |
@@ -1184,6 +1194,17 @@ |
} |
} |
+ // Check if the {nexus} reports type feedback for the IC. |
+ if (nexus.IsUninitialized()) { |
+ if ((flags() & kDeoptimizationEnabled) && |
+ (flags() & kBailoutOnUninitialized)) { |
+ return ReduceSoftDeoptimize( |
+ node, |
+ DeoptimizeReason::kInsufficientTypeFeedbackForGenericKeyedAccess); |
+ } |
+ return NoChange(); |
+ } |
+ |
// Extract receiver maps from the {nexus}. |
MapHandleList receiver_maps; |
if (!ExtractReceiverMaps(receiver, effect, nexus, &receiver_maps)) { |
@@ -2229,10 +2250,7 @@ |
} |
return true; |
} |
- // Check if the {nexus} actually reports feedback for the IC. We return |
- // true if the IC is still uninitialized, which translates to a SOFT |
- // deoptimization exit in the callers. |
- return nexus.IsUninitialized(); |
+ return false; |
} |
bool JSNativeContextSpecialization::InferReceiverMaps( |