| Index: src/objects.cc | 
| diff --git a/src/objects.cc b/src/objects.cc | 
| index 32b67b93f05c00fd5fb8dfa4804d79198b3d0211..d3ccb6d6a8c311c18f6651ddfa3b419d626abeef 100644 | 
| --- a/src/objects.cc | 
| +++ b/src/objects.cc | 
| @@ -12205,6 +12205,9 @@ void JSFunction::MarkForBaseline() { | 
| set_code_no_write_barrier( | 
| isolate->builtins()->builtin(Builtins::kCompileBaseline)); | 
| // No write barrier required, since the builtin is part of the root set. | 
| +  if (FLAG_mark_shared_functions_for_tier_up) { | 
| +    shared()->set_marked_for_tier_up(true); | 
| +  } | 
| } | 
|  | 
| void JSFunction::MarkForOptimization() { | 
| @@ -12215,16 +12218,13 @@ void JSFunction::MarkForOptimization() { | 
| set_code_no_write_barrier( | 
| isolate->builtins()->builtin(Builtins::kCompileOptimized)); | 
| // No write barrier required, since the builtin is part of the root set. | 
| +  if (FLAG_mark_shared_functions_for_tier_up) { | 
| +    shared()->set_marked_for_tier_up(true); | 
| +  } | 
| } | 
|  | 
|  | 
| void JSFunction::AttemptConcurrentOptimization() { | 
| -  if (FLAG_optimize_shared_functions) { | 
| -    // Mark the shared function for optimization regardless of whether the | 
| -    // optimization is concurrent or not. | 
| -    shared()->set_was_marked_for_optimization(true); | 
| -  } | 
| - | 
| Isolate* isolate = GetIsolate(); | 
| if (!isolate->concurrent_recompilation_enabled() || | 
| isolate->bootstrapper()->IsActive()) { | 
| @@ -12245,6 +12245,11 @@ void JSFunction::AttemptConcurrentOptimization() { | 
| set_code_no_write_barrier( | 
| isolate->builtins()->builtin(Builtins::kCompileOptimizedConcurrent)); | 
| // No write barrier required, since the builtin is part of the root set. | 
| +  if (FLAG_mark_shared_functions_for_tier_up) { | 
| +    // TODO(leszeks): The compilation isn't concurrent if we trigger it using | 
| +    // this bit. | 
| +    shared()->set_marked_for_tier_up(true); | 
| +  } | 
| } | 
|  | 
| // static | 
|  |