| 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 'package:async_helper/async_helper.dart'; | 6 import 'package:async_helper/async_helper.dart'; | 
| 7 import 'dart:async'; | 7 import 'dart:async'; | 
| 8 | 8 | 
| 9 main() { | 9 main() { | 
| 10   Completer done = new Completer(); | 10   Completer done = new Completer(); | 
| 11   List events = []; | 11   List events = []; | 
| 12 | 12 | 
| 13   bool shouldForward = true; | 13   bool shouldForward = true; | 
| 14   Expect.identical(Zone.ROOT, Zone.current); | 14   Expect.identical(Zone.ROOT, Zone.current); | 
| 15   Zone forked = Zone.current.fork(specification: new ZoneSpecification( | 15   Zone forked = Zone.current.fork(specification: new ZoneSpecification( | 
| 16       run: (Zone self, ZoneDelegate parent, Zone origin, f()) { | 16       run: <R>(Zone self, ZoneDelegate parent, Zone origin, R f()) { | 
| 17     // The zone is still the same as when origin.run was invoked, which | 17     // The zone is still the same as when origin.run was invoked, which | 
| 18     // is the root zone. (The origin zone hasn't been set yet). | 18     // is the root zone. (The origin zone hasn't been set yet). | 
| 19     Expect.identical(Zone.ROOT, Zone.current); | 19     Expect.identical(Zone.ROOT, Zone.current); | 
| 20     events.add("forked.run"); | 20     events.add("forked.run"); | 
| 21     if (shouldForward) return parent.run(origin, f); | 21     if (shouldForward) return parent.run(origin, f); | 
| 22     return 42; | 22     return 42 as R; | 
| 23   })); | 23   })); | 
| 24 | 24 | 
| 25   events.add("zone forked"); | 25   events.add("zone forked"); | 
| 26   Zone expectedZone = forked; | 26   Zone expectedZone = forked; | 
| 27   var result = forked.run(() { | 27   var result = forked.run(() { | 
| 28     Expect.identical(expectedZone, Zone.current); | 28     Expect.identical(expectedZone, Zone.current); | 
| 29     events.add("run closure"); | 29     events.add("run closure"); | 
| 30     return 499; | 30     return 499; | 
| 31   }); | 31   }); | 
| 32   Expect.equals(499, result); | 32   Expect.equals(499, result); | 
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 85       }); | 85       }); | 
| 86     }); | 86     }); | 
| 87     zone3.run(() { | 87     zone3.run(() { | 
| 88       future.then((_) { | 88       future.then((_) { | 
| 89         Expect.identical(zone3, Zone.current); | 89         Expect.identical(zone3, Zone.current); | 
| 90         asyncEnd(); | 90         asyncEnd(); | 
| 91       }); | 91       }); | 
| 92     }); | 92     }); | 
| 93   }); | 93   }); | 
| 94 } | 94 } | 
| OLD | NEW | 
|---|