| Index: runtime/vm/object.cc
 | 
| diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc
 | 
| index 0bd36a0199cd97ddfc3270eabbfb256b16355a30..026030e42722f1d0a9b16b015008cb50742f8e6c 100644
 | 
| --- a/runtime/vm/object.cc
 | 
| +++ b/runtime/vm/object.cc
 | 
| @@ -43,6 +43,7 @@
 | 
|  #include "vm/symbols.h"
 | 
|  #include "vm/tags.h"
 | 
|  #include "vm/timer.h"
 | 
| +#include "vm/trace_buffer.h"
 | 
|  #include "vm/unicode.h"
 | 
|  
 | 
|  namespace dart {
 | 
| @@ -5889,6 +5890,7 @@ RawFunction* Function::New(const String& name,
 | 
|    result.set_is_optimizable(is_native ? false : true);
 | 
|    result.set_is_inlinable(true);
 | 
|    result.set_allows_hoisting_check_class(true);
 | 
| +  result.set_log(new TraceBuffer());
 | 
|    if (kind == RawFunction::kClosureFunction) {
 | 
|      const ClosureData& data = ClosureData::Handle(ClosureData::New());
 | 
|      result.set_data(data);
 | 
| @@ -5917,6 +5919,7 @@ RawFunction* Function::Clone(const Class& new_owner) const {
 | 
|    clone.set_deoptimization_counter(0);
 | 
|    clone.set_optimized_instruction_count(0);
 | 
|    clone.set_optimized_call_site_count(0);
 | 
| +  clone.set_log(new TraceBuffer());
 | 
|    return clone.raw();
 | 
|  }
 | 
|  
 | 
| @@ -6450,10 +6453,12 @@ void Function::PrintToJSONStream(JSONStream* stream, bool ref) const {
 | 
|    jsobj.AddProperty("is_const", is_const());
 | 
|    jsobj.AddProperty("is_optimizable", is_optimizable());
 | 
|    jsobj.AddProperty("is_inlinable", IsInlineable());
 | 
| -  jsobj.AddProperty("unoptimized_code", Object::Handle(unoptimized_code()));
 | 
| +  jsobj.AddProperty("code", Object::Handle(unoptimized_code()));
 | 
| +  if (HasOptimizedCode()) {
 | 
| +    jsobj.AddProperty("optimizedCode", Object::Handle(CurrentCode()));
 | 
| +  }
 | 
|    jsobj.AddProperty("usage_counter", usage_counter());
 | 
|    jsobj.AddProperty("optimized_call_site_count", optimized_call_site_count());
 | 
| -  jsobj.AddProperty("code", Object::Handle(CurrentCode()));
 | 
|    jsobj.AddProperty("deoptimizations",
 | 
|                      static_cast<intptr_t>(deoptimization_counter()));
 | 
|  
 | 
| @@ -6463,6 +6468,10 @@ void Function::PrintToJSONStream(JSONStream* stream, bool ref) const {
 | 
|      jsobj.AddProperty("tokenPos", token_pos());
 | 
|      jsobj.AddProperty("endTokenPos", end_token_pos());
 | 
|    }
 | 
| +  if (log() != NULL) {
 | 
| +    JSONObject l(&jsobj, "log");
 | 
| +    log()->PrintToJSONObject(&l);
 | 
| +  }
 | 
|  }
 | 
|  
 | 
|  
 | 
| 
 |