// 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. // part of "async_patch.dart"; @patch class _AsyncRun { @patch static void _scheduleImmediate(void callback()) { if (_ScheduleImmediate._closure == null) { throw new UnsupportedError("Microtasks are not supported"); } _ScheduleImmediate._closure(callback); } } typedef void _ScheduleImmediateClosure(void callback()); class _ScheduleImmediate { static _ScheduleImmediateClosure _closure; } @pragma("vm:entry-point", "call") void _setScheduleImmediateClosure(_ScheduleImmediateClosure closure) { _ScheduleImmediate._closure = closure; } @pragma("vm:entry-point", "call") void _ensureScheduleImmediate() { _AsyncRun._scheduleImmediate(_startMicrotaskLoop); }