Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(42)

Side by Side Diff: lib/src/stack_zone_specification.dart

Issue 1576853003: Deprecate the ChainHandler typedef. (Closed) Base URL: git@github.com:dart-lang/stack_trace@master
Patch Set: . Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « lib/src/chain.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 library stack_trace.stack_zone_specification; 5 library stack_trace.stack_zone_specification;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 8
9 import 'trace.dart'; 9 import 'trace.dart';
10 import 'chain.dart'; 10 import 'chain.dart';
11 11
12 /// A function that handles errors in the zone wrapped by [Chain.capture].
13 typedef void _ChainHandler(error, Chain chain);
14
12 /// A class encapsulating the zone specification for a [Chain.capture] zone. 15 /// A class encapsulating the zone specification for a [Chain.capture] zone.
13 /// 16 ///
14 /// Until they're materialized and exposed to the user, stack chains are tracked 17 /// Until they're materialized and exposed to the user, stack chains are tracked
15 /// as linked lists of [Trace]s using the [_Node] class. These nodes are stored 18 /// as linked lists of [Trace]s using the [_Node] class. These nodes are stored
16 /// in three distinct ways: 19 /// in three distinct ways:
17 /// 20 ///
18 /// * When a callback is registered, a node is created and stored as a captured 21 /// * When a callback is registered, a node is created and stored as a captured
19 /// local variable until the callback is run. 22 /// local variable until the callback is run.
20 /// 23 ///
21 /// * When a callback is run, its captured node is set as the [_currentNode] so 24 /// * When a callback is run, its captured node is set as the [_currentNode] so
(...skipping 14 matching lines...) Expand all
36 /// used with expandos. 39 /// used with expandos.
37 /// 40 ///
38 /// The chain associated with a given stack trace doesn't contain a node for 41 /// The chain associated with a given stack trace doesn't contain a node for
39 /// that stack trace. 42 /// that stack trace.
40 final _chains = new Expando<_Node>("stack chains"); 43 final _chains = new Expando<_Node>("stack chains");
41 44
42 /// The error handler for the zone. 45 /// The error handler for the zone.
43 /// 46 ///
44 /// If this is null, that indicates that any unhandled errors should be passed 47 /// If this is null, that indicates that any unhandled errors should be passed
45 /// to the parent zone. 48 /// to the parent zone.
46 final ChainHandler _onError; 49 final _ChainHandler _onError;
47 50
48 /// The most recent node of the current stack chain. 51 /// The most recent node of the current stack chain.
49 _Node _currentNode; 52 _Node _currentNode;
50 53
51 StackZoneSpecification([this._onError]); 54 StackZoneSpecification([this._onError]);
52 55
53 /// Converts [this] to a real [ZoneSpecification]. 56 /// Converts [this] to a real [ZoneSpecification].
54 ZoneSpecification toSpec() { 57 ZoneSpecification toSpec() {
55 return new ZoneSpecification( 58 return new ZoneSpecification(
56 handleUncaughtError: handleUncaughtError, 59 handleUncaughtError: handleUncaughtError,
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after
227 Chain toChain() { 230 Chain toChain() {
228 var nodes = <Trace>[]; 231 var nodes = <Trace>[];
229 var node = this; 232 var node = this;
230 while (node != null) { 233 while (node != null) {
231 nodes.add(node.trace); 234 nodes.add(node.trace);
232 node = node.previous; 235 node = node.previous;
233 } 236 }
234 return new Chain(nodes); 237 return new Chain(nodes);
235 } 238 }
236 } 239 }
OLDNEW
« no previous file with comments | « lib/src/chain.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698