| 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 "package:expect/expect.dart"; |   5 import "package:expect/expect.dart"; | 
|   6 import 'dart:async'; |   6 import 'dart:async'; | 
|   7 import 'package:async_helper/async_helper.dart'; |   7 import 'package:async_helper/async_helper.dart'; | 
|   8  |   8  | 
|   9 main() { |   9 main() { | 
|  10   asyncStart(); |  10   asyncStart(); | 
|  11   // Ensure that `runZoned`'s onError handles synchronous errors but delegates |  11   // Ensure that `runZoned`'s onError handles synchronous errors, and throwing | 
|  12   // to the top-level when the handler returns false. |  12   // in the error handler at that point (when it is a synchronous error) yields | 
 |  13   // a synchronous error. | 
|  13   try { |  14   try { | 
|  14     runZoned(() { |  15     runZoned(() { | 
|  15       throw 0; |  16       throw 0; | 
|  16     }, onError: (e) { |  17     }, onError: (e) { | 
|  17       Expect.equals(0, e); |  18       Expect.equals(0, e); | 
|  18                if (false) //# 01: runtime error |  19       throw e;  //#01 : ok | 
|  19       asyncEnd(); |  20       asyncEnd(); | 
|  20                throw e; //# 01: runtime error |  | 
|  21     }); |  21     }); | 
|  22   } catch (e) { |  22   } catch (e) { | 
|  23     // We should never see an error here. |  23     asyncEnd(); return;  //# 01: continued | 
|  24     if (false) //# 01: continued |  | 
|  25     rethrow; |  24     rethrow; | 
|  26   } |  25   } | 
|  27 } |  26 } | 
| OLD | NEW |