| Index: pkg/observe/lib/src/microtask.dart
|
| diff --git a/pkg/observe/lib/src/microtask.dart b/pkg/observe/lib/src/microtask.dart
|
| deleted file mode 100644
|
| index e4ed2d9bee2ece141ea523cd58adcf8c60657228..0000000000000000000000000000000000000000
|
| --- a/pkg/observe/lib/src/microtask.dart
|
| +++ /dev/null
|
| @@ -1,72 +0,0 @@
|
| -// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
|
| -// for details. All rights reserved. Use of this source code is governed by a
|
| -// BSD-style license that can be found in the LICENSE file.
|
| -
|
| -/**
|
| - * *Warning*: this library is **internal**, and APIs are subject to change.
|
| - *
|
| - * Wraps a callback using [wrapMicrotask] and provides the ability to pump all
|
| - * observable objects and [scheduleMicrotask] calls via
|
| - * [performMicrotaskCheckpoint].
|
| - */
|
| -library observe.src.microtask;
|
| -
|
| -import 'dart:async' show Completer, runZoned, ZoneSpecification;
|
| -import 'dart:collection';
|
| -import 'package:observe/observe.dart' show Observable;
|
| -
|
| -// TODO(jmesserly): remove "microtask" from these names and instead import
|
| -// the library "as microtask"?
|
| -
|
| -/**
|
| - * This change pumps events relevant to observers and data-binding tests.
|
| - * This must be used inside an [observeTest].
|
| - *
|
| - * Executes all pending [scheduleMicrotask] calls on the event loop, as well as
|
| - * performing [Observable.dirtyCheck], until there are no more pending events.
|
| - * It will always dirty check at least once.
|
| - */
|
| -// TODO(jmesserly): do we want to support nested microtasks similar to nested
|
| -// zones? Instead of a single pending list we'd need one per wrapMicrotask,
|
| -// and [performMicrotaskCheckpoint] would only run pending callbacks
|
| -// corresponding to the innermost wrapMicrotask body.
|
| -void performMicrotaskCheckpoint() {
|
| - Observable.dirtyCheck();
|
| -
|
| - while (_pending.isNotEmpty) {
|
| -
|
| - for (int len = _pending.length; len > 0 && _pending.isNotEmpty; len--) {
|
| - final callback = _pending.removeFirst();
|
| - try {
|
| - callback();
|
| - } catch (e, s) {
|
| - new Completer().completeError(e, s);
|
| - }
|
| - }
|
| -
|
| - Observable.dirtyCheck();
|
| - }
|
| -}
|
| -
|
| -final Queue<Function> _pending = new Queue<Function>();
|
| -
|
| -/**
|
| - * Wraps the [body] in a zone that supports [performMicrotaskCheckpoint],
|
| - * and returns the body.
|
| - */
|
| -// TODO(jmesserly): deprecate? this doesn't add much over runMicrotask.
|
| -wrapMicrotask(body()) => () => runMicrotask(body);
|
| -
|
| -/**
|
| - * Runs the [body] in a zone that supports [performMicrotaskCheckpoint],
|
| - * and returns the result.
|
| - */
|
| -runMicrotask(body()) => runZoned(() {
|
| - try {
|
| - return body();
|
| - } finally {
|
| - performMicrotaskCheckpoint();
|
| - }
|
| -}, zoneSpecification: new ZoneSpecification(
|
| - scheduleMicrotask: (self, parent, zone, callback) => _pending.add(callback))
|
| -);
|
|
|