| Index: runtime/lib/isolate_patch.dart
|
| ===================================================================
|
| --- runtime/lib/isolate_patch.dart (revision 15985)
|
| +++ runtime/lib/isolate_patch.dart (working copy)
|
| @@ -127,3 +127,37 @@
|
|
|
| patch spawnUri(String uri) native "isolate_spawnUri";
|
|
|
| +patch class Timer {
|
| + /* patch */ factory Timer(int milliSeconds, void callback(Timer timer)) {
|
| + if (_TimerFactory._factory == null) {
|
| + throw new UnsupportedError("Timer interface not supported.");
|
| + }
|
| + return _TimerFactory._factory(milliSeconds, callback, false);
|
| + }
|
| +
|
| + /**
|
| + * Creates a new repeating timer. The [callback] is invoked every
|
| + * [milliSeconds] millisecond until cancelled.
|
| + */
|
| + /* patch */ factory Timer.repeating(int milliSeconds,
|
| + void callback(Timer timer)) {
|
| + if (_TimerFactory._factory == null) {
|
| + throw new UnsupportedError("Timer interface not supported.");
|
| + }
|
| + return _TimerFactory._factory(milliSeconds, callback, true);
|
| + }
|
| +}
|
| +
|
| +typedef Timer _TimerFactoryClosure(int milliSeconds,
|
| + void callback(Timer timer),
|
| + bool repeating);
|
| +
|
| +class _TimerFactory {
|
| + static _TimerFactoryClosure _factory;
|
| +}
|
| +
|
| +// TODO(ahe): Warning: this is NOT called by Dartium. Instead, it sets
|
| +// [_TimerFactory._factory] directly.
|
| +void _setTimerFactoryClosure(_TimerFactoryClosure closure) {
|
| + _TimerFactory._factory = closure;
|
| +}
|
|
|