| Index: runtime/vm/code_generator.cc | 
| diff --git a/runtime/vm/code_generator.cc b/runtime/vm/code_generator.cc | 
| index 47d215c5936f9cd919edee13ceaa25c8f8c21447..b0af85d5962a7a5b43e7d499790085b2b964f203 100644 | 
| --- a/runtime/vm/code_generator.cc | 
| +++ b/runtime/vm/code_generator.cc | 
| @@ -65,6 +65,8 @@ DEFINE_FLAG(bool, trace_type_checks, false, "Trace runtime type checks."); | 
| DECLARE_FLAG(int, max_deoptimization_counter_threshold); | 
| DECLARE_FLAG(bool, enable_inlining_annotations); | 
| DECLARE_FLAG(bool, trace_compiler); | 
| +DECLARE_FLAG(bool, trace_field_guards); | 
| +DECLARE_FLAG(bool, trace_optimization); | 
| DECLARE_FLAG(bool, trace_optimizing_compiler); | 
| DECLARE_FLAG(bool, warn_on_javascript_compatibility); | 
| DECLARE_FLAG(int, max_polymorphic_checks); | 
| @@ -1494,6 +1496,18 @@ DEFINE_RUNTIME_ENTRY(OptimizeInvokedFunction, 1) { | 
| ASSERT(function.HasCode()); | 
|  | 
| if (CanOptimizeFunction(function, thread)) { | 
| +    if (FLAG_background_compilation) { | 
| +      Field& field = Field::Handle(zone, isolate->GetDeoptimizingBoxedField()); | 
| +      while (!field.IsNull()) { | 
| +        if (FLAG_trace_optimization || FLAG_trace_field_guards) { | 
| +          THR_Print("Lazy disabling unboxing of %s\n", field.ToCString()); | 
| +        } | 
| +        field.set_is_unboxing_candidate(false); | 
| +        field.DeoptimizeDependentCode(); | 
| +        // Get next field. | 
| +        field = isolate->GetDeoptimizingBoxedField(); | 
| +      } | 
| +    } | 
| // TODO(srdjan): Fix background compilation of regular expressions. | 
| if (FLAG_background_compilation && | 
| (!function.IsIrregexpFunction() || FLAG_regexp_opt_in_background)) { | 
|  |