| Index: runtime/lib/stacktrace.cc | 
| diff --git a/runtime/lib/stacktrace.cc b/runtime/lib/stacktrace.cc | 
| index 3e02ca997d1a2174fe926b782a009079d3866189..6c40ecc58870e8d22bbbea2a8a629c80eeb63206 100644 | 
| --- a/runtime/lib/stacktrace.cc | 
| +++ b/runtime/lib/stacktrace.cc | 
| @@ -38,17 +38,13 @@ static void IterateFrames(const GrowableObjectArray& code_list, | 
| ASSERT(frame != NULL);  // We expect to find a dart invocation frame. | 
| Code& code = Code::Handle(); | 
| Smi& offset = Smi::Handle(); | 
| -  bool catch_frame_skipped = false;  // Tracks if catch frame has been skipped. | 
| +  intptr_t frames_to_skip = 2;  // _setupFullStackTrace and the catch frame. | 
| while (frame != NULL) { | 
| if (frame->IsDartFrame()) { | 
| code = frame->LookupDartCode(); | 
| offset = Smi::New(frame->pc() - code.EntryPoint()); | 
| -      if (!catch_frame_skipped) { | 
| -        const Function& func = Function::Handle(code.function()); | 
| -        // Skip over hidden native, and mark first visible frame as catch frame. | 
| -        if (func.is_visible()) { | 
| -          catch_frame_skipped = true; | 
| -        } | 
| +      if (frames_to_skip > 0) { | 
| +        frames_to_skip--; | 
| } else { | 
| code_list.Add(code); | 
| pc_offset_list.Add(offset); | 
|  |