| // 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; | |
| }; |