| // Copyright (c) 2012, 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. |
| |
| // TODO(antonm): support not DOM isolates too. |
| class _Timer implements Timer { |
| final canceller; |
| |
| _Timer(this.canceller); |
| |
| void cancel() { canceller(); } |
| } |
| |
| get _timerFactoryClosure => (int milliSeconds, void callback(Timer timer), bool repeating) { |
| var maker; |
| var canceller; |
| if (repeating) { |
| maker = window.setInterval; |
| canceller = window.clearInterval; |
| } else { |
| maker = window.setTimeout; |
| canceller = window.clearTimeout; |
| } |
| Timer timer; |
| final int id = maker(() { callback(timer); }, milliSeconds); |
| timer = new _Timer(() { canceller(id); }); |
| return timer; |
| }; |