| Index: sdk/lib/_internal/lib/async_patch.dart
|
| diff --git a/sdk/lib/_internal/lib/async_patch.dart b/sdk/lib/_internal/lib/async_patch.dart
|
| index 004f433b54f36d8ebc6bc1758b8b371c9583a3e6..0203e4dabf2f50192698dbe11615de80fea08ef8 100644
|
| --- a/sdk/lib/_internal/lib/async_patch.dart
|
| +++ b/sdk/lib/_internal/lib/async_patch.dart
|
| @@ -8,8 +8,7 @@ import 'dart:_js_helper' show
|
| patch,
|
| Primitives,
|
| convertDartClosureToJS,
|
| - loadDeferredLibrary,
|
| - requiresPreamble;
|
| + loadDeferredLibrary;
|
| import 'dart:_isolate_helper' show
|
| IsolateNatives,
|
| TimerImpl,
|
| @@ -31,44 +30,11 @@ class _AsyncRun {
|
| _initializeScheduleImmediate();
|
|
|
| static Function _initializeScheduleImmediate() {
|
| - requiresPreamble();
|
| if (JS('', 'self.scheduleImmediate') != null) {
|
| return _scheduleImmediateJsOverride;
|
| }
|
| - if (JS('', 'self.MutationObserver') != null &&
|
| - JS('', 'self.document') != null) {
|
| - // Use mutationObservers.
|
| - var div = JS('', 'self.document.createElement("div")');
|
| - var span = JS('', 'self.document.createElement("span")');
|
| - var storedCallback;
|
| -
|
| - internalCallback(_) {
|
| - leaveJsAsync();
|
| - var f = storedCallback;
|
| - storedCallback = null;
|
| - f();
|
| - };
|
| -
|
| - var observer = JS('', 'new self.MutationObserver(#)',
|
| - convertDartClosureToJS(internalCallback, 1));
|
| - JS('', '#.observe(#, { childList: true })',
|
| - observer, div);
|
| -
|
| - return (void callback()) {
|
| - assert(storedCallback == null);
|
| - enterJsAsync();
|
| - storedCallback = callback;
|
| - // Because of a broken shadow-dom polyfill we have to change the
|
| - // children instead a cheap property.
|
| - // See https://github.com/Polymer/ShadowDOM/issues/468
|
| - JS('', '#.firstChild ? #.removeChild(#): #.appendChild(#)',
|
| - div, div, span, div, span);
|
| - };
|
| -
|
| - }
|
| // TODO(9002): don't use the Timer to enqueue the immediate callback.
|
| - // Also check for other JS options like setImmediate.
|
| - // TODO(20055): We should use DOM promises when available.
|
| + // Also check for other JS options like mutation observer or runImmediate.
|
| return _scheduleImmediateWithTimer;
|
| }
|
|
|
|
|