Version 0.6.15.3 .

svn merge -c 25821 https://dart.googlecode.com/svn/branches/bleeding_edge trunk

git-svn-id: http://dart.googlecode.com/svn/trunk@25822 260f80e4-7a28-3924-810f-c04153c831b5
diff --git a/runtime/vm/debugger.cc b/runtime/vm/debugger.cc
index 0c9b53a..c67d3e8 100644
--- a/runtime/vm/debugger.cc
+++ b/runtime/vm/debugger.cc
@@ -949,10 +949,6 @@
       code = frame->LookupDartCode();
       ActivationFrame* activation =
           new ActivationFrame(frame->pc(), frame->fp(), frame->sp(), code);
-      // Check if frame is a debuggable function.
-      if (!IsDebuggable(activation->function())) {
-        continue;
-      }
       // If this activation frame called a closure, the function has
       // saved its context before the call.
       if ((callee_activation != NULL) &&
@@ -972,16 +968,19 @@
               callee.ToFullyQualifiedCString(),
               line, col);
         }
-        ASSERT(!ctx.IsNull());
       }
       if (optimized_frame_found || code.is_optimized()) {
         // Set context to null, to avoid returning bad context variable values.
         activation->SetContext(Context::Handle());
         optimized_frame_found = true;
       } else {
+        ASSERT(!ctx.IsNull());
         activation->SetContext(ctx);
       }
-      stack_trace->AddActivation(activation);
+      // Check if frame is a debuggable function.
+      if (IsDebuggable(activation->function())) {
+        stack_trace->AddActivation(activation);
+      }
       callee_activation = activation;
       // Get caller's context if this function saved it on entry.
       ctx = activation->GetSavedEntryContext(ctx);
diff --git a/tools/VERSION b/tools/VERSION
index b7a25eb..b81bbdd 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -1,4 +1,4 @@
 MAJOR 0
 MINOR 6
 BUILD 15
-PATCH 2
+PATCH 3