Chromium Code Reviews| 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) { |
|
Anders Johnsen
2012/12/11 18:59:24
Maybe check if we are still using this function.
ngeoffray
2012/12/12 08:31:12
Yes we do, in runtime/bin/dartutils.cc.
|
| + _TimerFactory._factory = closure; |
| +} |