| OLD | NEW | 
|    1 // Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file |    1 // Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file | 
|    2 // for details. All rights reserved. Use of this source code is governed by a |    2 // for details. All rights reserved. Use of this source code is governed by a | 
|    3 // BSD-style license that can be found in the LICENSE file. |    3 // BSD-style license that can be found in the LICENSE file. | 
|    4  |    4  | 
|    5 import 'dart:async'; |    5 import 'dart:async'; | 
|    6 import 'dart:convert'; |    6 import 'dart:convert'; | 
|    7 import 'dart:math' as math; |    7 import 'dart:math' as math; | 
|    8  |    8  | 
|    9 import 'package:async/async.dart' hide StreamQueue; |    9 import 'package:async/async.dart' hide StreamQueue; | 
|   10 import 'package:crypto/crypto.dart'; |   10 import 'package:crypto/crypto.dart'; | 
| (...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  170     new RegExp(r"/test_[A-Za-z0-9]{6}/runInIsolate\.dart$"); |  170     new RegExp(r"/test_[A-Za-z0-9]{6}/runInIsolate\.dart$"); | 
|  171  |  171  | 
|  172 /// Returns [stackTrace] converted to a [Chain] with all irrelevant frames |  172 /// Returns [stackTrace] converted to a [Chain] with all irrelevant frames | 
|  173 /// folded together. |  173 /// folded together. | 
|  174 /// |  174 /// | 
|  175 /// If [verbose] is `true`, returns the chain for [stackTrace] unmodified. |  175 /// If [verbose] is `true`, returns the chain for [stackTrace] unmodified. | 
|  176 Chain terseChain(StackTrace stackTrace, {bool verbose: false}) { |  176 Chain terseChain(StackTrace stackTrace, {bool verbose: false}) { | 
|  177   if (verbose) return new Chain.forTrace(stackTrace); |  177   if (verbose) return new Chain.forTrace(stackTrace); | 
|  178   return new Chain.forTrace(stackTrace).foldFrames((frame) { |  178   return new Chain.forTrace(stackTrace).foldFrames((frame) { | 
|  179     if (frame.package == 'test') return true; |  179     if (frame.package == 'test') return true; | 
 |  180     if (frame.package == 'stream_channel') return true; | 
|  180  |  181  | 
|  181     // Filter out frames from our isolate bootstrap as well. |  182     // Filter out frames from our isolate bootstrap as well. | 
|  182     if (frame.uri.scheme != 'file') return false; |  183     if (frame.uri.scheme != 'file') return false; | 
|  183     return frame.uri.path.contains(_isolatePath); |  184     return frame.uri.path.contains(_isolatePath); | 
|  184   }, terse: true); |  185   }, terse: true); | 
|  185 } |  186 } | 
|  186  |  187  | 
|  187 /// Flattens nested [Iterable]s inside an [Iterable] into a single [List] |  188 /// Flattens nested [Iterable]s inside an [Iterable] into a single [List] | 
|  188 /// containing only non-[Iterable] elements. |  189 /// containing only non-[Iterable] elements. | 
|  189 List flatten(Iterable nested) { |  190 List flatten(Iterable nested) { | 
| (...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  416       urlSafe: urlSafe, addLineSeparator: addLineSeparator); |  417       urlSafe: urlSafe, addLineSeparator: addLineSeparator); | 
|  417 } |  418 } | 
|  418  |  419  | 
|  419 /// Returns middleware that nests all requests beneath the URL prefix [beneath]. |  420 /// Returns middleware that nests all requests beneath the URL prefix [beneath]. | 
|  420 shelf.Middleware nestingMiddleware(String beneath) { |  421 shelf.Middleware nestingMiddleware(String beneath) { | 
|  421   return (handler) { |  422   return (handler) { | 
|  422     var pathHandler = new PathHandler()..add(beneath, handler); |  423     var pathHandler = new PathHandler()..add(beneath, handler); | 
|  423     return pathHandler.handler; |  424     return pathHandler.handler; | 
|  424   }; |  425   }; | 
|  425 } |  426 } | 
| OLD | NEW |