| Index: sdk/lib/html/dartium/html_dartium.dart
|
| diff --git a/sdk/lib/html/dartium/html_dartium.dart b/sdk/lib/html/dartium/html_dartium.dart
|
| index c31f5887f883949f57b992f7d37e546214870ba2..139e4e3173f8165bf8b2fc69873928b550b5e4a7 100644
|
| --- a/sdk/lib/html/dartium/html_dartium.dart
|
| +++ b/sdk/lib/html/dartium/html_dartium.dart
|
| @@ -30806,10 +30806,16 @@ final _forwardingPrintClosure = _Utils.forwardingPrint;
|
|
|
| class _Timer implements Timer {
|
| final canceller;
|
| + bool _isDone = false;
|
|
|
| _Timer(this.canceller);
|
|
|
| - void cancel() { canceller(); }
|
| + void cancel() {
|
| + _isDone = true;
|
| + canceller();
|
| + }
|
| +
|
| + bool get isActive => !_isDone;
|
| }
|
|
|
| get _timerFactoryClosure => (int milliSeconds, void callback(Timer timer), bool repeating) {
|
| @@ -30829,6 +30835,7 @@ get _timerFactoryClosure => (int milliSeconds, void callback(Timer timer), bool
|
| };
|
|
|
| class _PureIsolateTimer implements Timer {
|
| + bool _isDone = false;
|
| final ReceivePort _port = new ReceivePort();
|
| SendPort _sendPort; // Effectively final.
|
|
|
| @@ -30838,6 +30845,7 @@ class _PureIsolateTimer implements Timer {
|
| _sendPort = _port.toSendPort();
|
| _port.receive((msg, replyTo) {
|
| assert(msg == _TIMER_PING);
|
| + _isDone = !repeating;
|
| callback(this);
|
| if (!repeating) _cancel();
|
| });
|
| @@ -30851,12 +30859,15 @@ class _PureIsolateTimer implements Timer {
|
| }
|
|
|
| void _cancel() {
|
| + _isDone = true;
|
| _port.close();
|
| }
|
|
|
| _send(msg) {
|
| _sendToHelperIsolate(msg, _sendPort);
|
| }
|
| +
|
| + bool get isActive => !_isDone;
|
| }
|
|
|
| get _pureIsolateTimerFactoryClosure =>
|
|
|