| Index: sdk/lib/async/broadcast_stream_controller.dart
|
| diff --git a/sdk/lib/async/broadcast_stream_controller.dart b/sdk/lib/async/broadcast_stream_controller.dart
|
| index a9879e0e20d28b9a9f1c764ee4aef9b0bbbe6da7..cda7c0f960c7ce16effca089b555da257c8c7bc8 100644
|
| --- a/sdk/lib/async/broadcast_stream_controller.dart
|
| +++ b/sdk/lib/async/broadcast_stream_controller.dart
|
| @@ -239,6 +239,11 @@ abstract class _BroadcastStreamController<T>
|
|
|
| void addError(Object error, [StackTrace stackTrace]) {
|
| if (!_mayAddEvent) throw _addEventError();
|
| + AsyncError replacement = Zone.current.errorCallback(error, stackTrace);
|
| + if (replacement != null) {
|
| + error = replacement.error;
|
| + stackTrace = replacement.stackTrace;
|
| + }
|
| _sendError(error, stackTrace);
|
| }
|
|
|
| @@ -269,7 +274,6 @@ abstract class _BroadcastStreamController<T>
|
| }
|
|
|
| void _addError(Object error, StackTrace stackTrace) {
|
| - assert(_isAddingStream);
|
| _sendError(error, stackTrace);
|
| }
|
|
|
| @@ -459,7 +463,8 @@ class _AsBroadcastStreamController<T>
|
| _addPendingEvent(new _DelayedError(error, stackTrace));
|
| return;
|
| }
|
| - super.addError(error, stackTrace);
|
| + if (!_mayAddEvent) throw _addEventError();
|
| + _sendError(error, stackTrace);
|
| while (_hasPending) {
|
| _pending.handleNext(this);
|
| }
|
|
|