Skip to content

Commit 6ec5d5d

Browse files
committed
refactor(async): extract timer related functions into a TimerWrapper
1 parent 62b1a08 commit 6ec5d5d

File tree

8 files changed

+51
-51
lines changed

8 files changed

+51
-51
lines changed

modules/angular2/src/facade/async.dart

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,12 @@ class PromiseWrapper {
2929

3030
static CompleterWrapper completer() => new CompleterWrapper(new Completer());
3131

32-
// TODO(vic): create a TimerWrapper
32+
static bool isPromise(maybePromise) {
33+
return maybePromise is Future;
34+
}
35+
}
36+
37+
class TimerWrapper {
3338
static Timer setTimeout(fn(), int millis)
3439
=> new Timer(new Duration(milliseconds: millis), fn);
3540
static void clearTimeout(Timer timer) {
@@ -43,10 +48,6 @@ class PromiseWrapper {
4348
static void clearInterval(Timer timer) {
4449
timer.cancel();
4550
}
46-
47-
static bool isPromise(maybePromise) {
48-
return maybePromise is Future;
49-
}
5051
}
5152

5253
class ObservableWrapper {

modules/angular2/src/facade/async.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,18 +39,17 @@ export class PromiseWrapper {
3939

4040
return {promise: p, resolve: resolve, reject: reject};
4141
}
42+
static isPromise(maybePromise): boolean { return maybePromise instanceof Promise; }
43+
}
4244

43-
// TODO(vicb): create a TimerWrapper
45+
export class TimerWrapper {
4446
static setTimeout(fn: Function, millis: int): int { return global.setTimeout(fn, millis); }
4547
static clearTimeout(id: int): void { global.clearTimeout(id); }
4648

4749
static setInterval(fn: Function, millis: int): int { return global.setInterval(fn, millis); }
4850
static clearInterval(id: int): void { global.clearInterval(id); }
49-
50-
static isPromise(maybePromise): boolean { return maybePromise instanceof Promise; }
5151
}
5252

53-
5453
export class ObservableWrapper {
5554
static subscribe(emitter: Observable, onNext, onThrow = null, onReturn = null): Object {
5655
return emitter.observer({next: onNext, throw: onThrow, return: onReturn});

modules/angular2/test/change_detection/pipes/observable_pipe_spec.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import {IMPLEMENTS} from 'angular2/src/facade/lang';
55
import {WrappedValue} from 'angular2/src/change_detection/pipes/pipe';
66
import {ObservablePipe} from 'angular2/src/change_detection/pipes/observable_pipe';
77
import {ChangeDetectorRef} from 'angular2/src/change_detection/change_detector_ref';
8-
import {EventEmitter, Observable, ObservableWrapper, PromiseWrapper} from 'angular2/src/facade/async';
8+
import {EventEmitter, Observable, ObservableWrapper, TimerWrapper} from 'angular2/src/facade/async';
99

1010
export function main() {
1111
describe("ObservablePipe", () => {
@@ -41,7 +41,7 @@ export function main() {
4141

4242
ObservableWrapper.callNext(emitter, message);
4343

44-
PromiseWrapper.setTimeout(() => {
44+
TimerWrapper.setTimeout(() => {
4545
expect(pipe.transform(emitter)).toEqual(new WrappedValue(message));
4646
async.done();
4747
}, 0)
@@ -52,7 +52,7 @@ export function main() {
5252
pipe.transform(emitter);
5353
ObservableWrapper.callNext(emitter, message);
5454

55-
PromiseWrapper.setTimeout(() => {
55+
TimerWrapper.setTimeout(() => {
5656
pipe.transform(emitter);
5757
expect(pipe.transform(emitter)).toBe(message);
5858
async.done();
@@ -69,7 +69,7 @@ export function main() {
6969
// this should not affect the pipe
7070
ObservableWrapper.callNext(emitter, message);
7171

72-
PromiseWrapper.setTimeout(() => {
72+
TimerWrapper.setTimeout(() => {
7373
expect(pipe.transform(newEmitter)).toBe(null);
7474
async.done();
7575
}, 0)
@@ -80,7 +80,7 @@ export function main() {
8080
pipe.transform(emitter);
8181
ObservableWrapper.callNext(emitter, message);
8282

83-
PromiseWrapper.setTimeout(() => {
83+
TimerWrapper.setTimeout(() => {
8484
expect(ref.spy('requestCheck')).toHaveBeenCalled();
8585
async.done();
8686
}, 0)
@@ -98,7 +98,7 @@ export function main() {
9898

9999
ObservableWrapper.callNext(emitter, message);
100100

101-
PromiseWrapper.setTimeout(() => {
101+
TimerWrapper.setTimeout(() => {
102102
expect(pipe.transform(emitter)).toBe(null);
103103
async.done();
104104
}, 0)

modules/angular2/test/change_detection/pipes/promise_pipe_spec.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import {IMPLEMENTS} from 'angular2/src/facade/lang';
44
import {PromisePipe} from 'angular2/src/change_detection/pipes/promise_pipe';
55
import {WrappedValue} from 'angular2/src/change_detection/pipes/pipe';
66
import {ChangeDetectorRef} from 'angular2/src/change_detection/change_detector_ref';
7-
import {PromiseWrapper} from 'angular2/src/facade/async';
7+
import {PromiseWrapper, TimerWrapper} from 'angular2/src/facade/async';
88

99
export function main() {
1010
describe("PromisePipe", () => {
@@ -40,7 +40,7 @@ export function main() {
4040

4141
completer.resolve(message);
4242

43-
PromiseWrapper.setTimeout(() => {
43+
TimerWrapper.setTimeout(() => {
4444
expect(pipe.transform(completer.promise)).toEqual(new WrappedValue(message));
4545
async.done();
4646
}, 0)
@@ -51,7 +51,7 @@ export function main() {
5151
pipe.transform(completer.promise);
5252
completer.resolve(message);
5353

54-
PromiseWrapper.setTimeout(() => {
54+
TimerWrapper.setTimeout(() => {
5555
pipe.transform(completer.promise);
5656
expect(pipe.transform(completer.promise)).toBe(message);
5757
async.done();
@@ -68,7 +68,7 @@ export function main() {
6868
// this should not affect the pipe, so it should return WrappedValue
6969
completer.resolve(message);
7070

71-
PromiseWrapper.setTimeout(() => {
71+
TimerWrapper.setTimeout(() => {
7272
expect(pipe.transform(newCompleter.promise)).toBe(null);
7373
async.done();
7474
}, 0)
@@ -79,7 +79,7 @@ export function main() {
7979
pipe.transform(completer.promise);
8080
completer.resolve(message);
8181

82-
PromiseWrapper.setTimeout(() => {
82+
TimerWrapper.setTimeout(() => {
8383
expect(ref.spy('requestCheck')).toHaveBeenCalled();
8484
async.done();
8585
}, 0)

modules/angular2/test/core/zone/ng_zone_spec.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,15 @@ import {
1313
isInInnerZone
1414
} from 'angular2/test_lib';
1515

16-
import {PromiseWrapper} from 'angular2/src/facade/async';
16+
import {PromiseWrapper, TimerWrapper} from 'angular2/src/facade/async';
1717
import {ListWrapper} from 'angular2/src/facade/collection';
1818
import {BaseException} from 'angular2/src/facade/lang';
1919

2020
import {NgZone} from 'angular2/src/core/zone/ng_zone';
2121

2222
// Schedules a macrotask (using a timer)
2323
function macroTask(fn: Function): void {
24-
_zone.runOutsideAngular(() => PromiseWrapper.setTimeout(fn, 1));
24+
_zone.runOutsideAngular(() => TimerWrapper.setTimeout(fn, 1));
2525
}
2626

2727
// Schedules a microtasks (using a resolved promise .then())
@@ -71,8 +71,8 @@ export function main() {
7171
var c = PromiseWrapper.completer();
7272

7373
_zone.run(() => {
74-
PromiseWrapper.setTimeout(() => {
75-
PromiseWrapper.setTimeout(() => {
74+
TimerWrapper.setTimeout(() => {
75+
TimerWrapper.setTimeout(() => {
7676
c.resolve(null);
7777
throw new BaseException('ccc');
7878
}, 0);
@@ -124,8 +124,8 @@ export function main() {
124124
var c = PromiseWrapper.completer();
125125

126126
_zone.run(() => {
127-
PromiseWrapper.setTimeout(() => {
128-
PromiseWrapper.setTimeout(() => {
127+
TimerWrapper.setTimeout(() => {
128+
TimerWrapper.setTimeout(() => {
129129
c.resolve(null);
130130
throw new BaseException('ccc');
131131
}, 0);

modules/angular2/test/test_lib/fake_async_spec.js

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import {
1414
tick,
1515
xit
1616
} from 'angular2/test_lib';
17-
import {PromiseWrapper} from 'angular2/src/facade/async';
17+
import {TimerWrapper, PromiseWrapper} from 'angular2/src/facade/async';
1818
import {BaseException, global} from 'angular2/src/facade/lang';
1919
import {Parser} from 'angular2/change_detection';
2020

@@ -120,7 +120,7 @@ export function main() {
120120
describe('timers', () => {
121121
it('should run queued zero duration timer on zero tick', fakeAsync(() => {
122122
var ran = false;
123-
PromiseWrapper.setTimeout(() => { ran = true }, 0);
123+
TimerWrapper.setTimeout(() => { ran = true }, 0);
124124

125125
expect(ran).toEqual(false);
126126

@@ -131,7 +131,7 @@ export function main() {
131131

132132
it('should run queued timer after sufficient clock ticks', fakeAsync(() => {
133133
var ran = false;
134-
PromiseWrapper.setTimeout(() => { ran = true; }, 10);
134+
TimerWrapper.setTimeout(() => { ran = true; }, 10);
135135

136136
tick(6);
137137
expect(ran).toEqual(false);
@@ -142,7 +142,7 @@ export function main() {
142142

143143
it('should run queued timer only once', fakeAsync(() => {
144144
var cycles = 0;
145-
PromiseWrapper.setTimeout(() => { cycles++; }, 10);
145+
TimerWrapper.setTimeout(() => { cycles++; }, 10);
146146

147147
tick(10);
148148
expect(cycles).toEqual(1);
@@ -156,8 +156,8 @@ export function main() {
156156

157157
it('should not run cancelled timer', fakeAsync(() => {
158158
var ran = false;
159-
var id = PromiseWrapper.setTimeout(() => { ran = true; }, 10);
160-
PromiseWrapper.clearTimeout(id);
159+
var id = TimerWrapper.setTimeout(() => { ran = true; }, 10);
160+
TimerWrapper.clearTimeout(id);
161161

162162
tick(10);
163163
expect(ran).toEqual(false);
@@ -168,7 +168,7 @@ export function main() {
168168
if (IS_DARTIUM) return;
169169
expect(() => {
170170
fakeAsync(() => {
171-
PromiseWrapper.setTimeout(() => { }, 10);
171+
TimerWrapper.setTimeout(() => { }, 10);
172172
})();
173173
}).toThrowError('1 timer(s) still in the queue.');
174174
});
@@ -178,14 +178,14 @@ export function main() {
178178
if (IS_DARTIUM) return;
179179
expect(() => {
180180
fakeAsync(() => {
181-
PromiseWrapper.setInterval(() => { }, 10);
181+
TimerWrapper.setInterval(() => { }, 10);
182182
})();
183183
}).toThrowError('1 periodic timer(s) still in the queue.');
184184
});
185185

186186
it('should run periodic timers', fakeAsync(() => {
187187
var cycles = 0;
188-
var id = PromiseWrapper.setInterval(() => { cycles++; }, 10);
188+
var id = TimerWrapper.setInterval(() => { cycles++; }, 10);
189189

190190
tick(10);
191191
expect(cycles).toEqual(1);
@@ -196,13 +196,13 @@ export function main() {
196196
tick(10);
197197
expect(cycles).toEqual(3);
198198

199-
PromiseWrapper.clearInterval(id);
199+
TimerWrapper.clearInterval(id);
200200
}));
201201

202202
it('should not run cancelled periodic timer', fakeAsync(() => {
203203
var ran = false;
204-
var id = PromiseWrapper.setInterval(() => { ran = true; }, 10);
205-
PromiseWrapper.clearInterval(id);
204+
var id = TimerWrapper.setInterval(() => { ran = true; }, 10);
205+
TimerWrapper.clearInterval(id);
206206

207207
tick(10);
208208
expect(ran).toEqual(false);
@@ -218,9 +218,9 @@ export function main() {
218218
var cycles = 0;
219219
var id;
220220

221-
id = PromiseWrapper.setInterval(() => {
221+
id = TimerWrapper.setInterval(() => {
222222
cycles++;
223-
PromiseWrapper.clearInterval(id);
223+
TimerWrapper.clearInterval(id);
224224
}, 10);
225225

226226
tick(10);
@@ -235,29 +235,29 @@ export function main() {
235235

236236
PromiseWrapper.resolve(null).then((_) => log.add('microtask'));
237237

238-
PromiseWrapper.setTimeout(() => log.add('timer'), 9);
238+
TimerWrapper.setTimeout(() => log.add('timer'), 9);
239239

240-
var id = PromiseWrapper.setInterval(() => log.add('periodic timer'), 10);
240+
var id = TimerWrapper.setInterval(() => log.add('periodic timer'), 10);
241241

242242
expect(log.result()).toEqual('');
243243

244244
tick(10);
245245
expect(log.result()).toEqual('microtask; timer; periodic timer');
246246

247-
PromiseWrapper.clearInterval(id);
247+
TimerWrapper.clearInterval(id);
248248
}));
249249

250250
it('should process micro-tasks created in timers before next timers', fakeAsync(() => {
251251
var log = new Log();
252252

253253
PromiseWrapper.resolve(null).then((_) => log.add('microtask'));
254254

255-
PromiseWrapper.setTimeout(() => {
255+
TimerWrapper.setTimeout(() => {
256256
log.add('timer');
257257
PromiseWrapper.resolve(null).then((_) => log.add('t microtask'));
258258
}, 9);
259259

260-
var id = PromiseWrapper.setInterval(() => {
260+
var id = TimerWrapper.setInterval(() => {
261261
log.add('periodic timer');
262262
PromiseWrapper.resolve(null).then((_) => log.add('pt microtask'));
263263
}, 10);
@@ -268,7 +268,7 @@ export function main() {
268268
tick(10);
269269
expect(log.result()).toEqual('microtask; timer; t microtask; periodic timer; pt microtask; periodic timer; pt microtask');
270270

271-
PromiseWrapper.clearInterval(id);
271+
TimerWrapper.clearInterval(id);
272272
}));
273273
});
274274

modules/benchmarks/src/naive_infinite_scroll/app.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import {int, isPresent} from 'angular2/src/facade/lang';
22
import {getIntParameter, bindAction} from 'angular2/src/test_lib/benchmark_util';
3-
import {PromiseWrapper} from 'angular2/src/facade/async';
3+
import {TimerWrapper} from 'angular2/src/facade/async';
44
import {ListWrapper} from 'angular2/src/facade/collection';
55
import {ScrollAreaComponent} from './scroll_area';
66
import {NgIf, NgFor} from 'angular2/directives';
@@ -57,7 +57,7 @@ export class App {
5757
var n:int = this.iterationCount;
5858
var scheduleScroll;
5959
scheduleScroll = () => {
60-
PromiseWrapper.setTimeout(() => {
60+
TimerWrapper.setTimeout(() => {
6161
scrollDiv.scrollTop += this.scrollIncrement;
6262
n--;
6363
if (n > 0) {
@@ -77,7 +77,7 @@ export class App {
7777
// Nothing to do, the marker is already there
7878
return;
7979
}
80-
PromiseWrapper.setTimeout(() => {
80+
TimerWrapper.setTimeout(() => {
8181
var finishedDiv = DOM.createElement('div');
8282
finishedDiv.id = 'done';
8383
DOM.setInnerHTML(finishedDiv, 'Finished');

modules/benchpress/src/metric/perflog_metric.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { PromiseWrapper, Promise } from 'angular2/src/facade/async';
1+
import { PromiseWrapper, Promise, TimerWrapper } from 'angular2/src/facade/async';
22
import {
33
isPresent, isBlank, int, BaseException, StringWrapper, Math, RegExpWrapper, NumberWrapper
44
} from 'angular2/src/facade/lang';
@@ -248,5 +248,5 @@ var _BINDINGS = [
248248
new PerflogMetric(driverExtension, setTimeout, microMetrics, forceGc),
249249
[WebDriverExtension, _SET_TIMEOUT, Options.MICRO_METRICS, Options.FORCE_GC]
250250
),
251-
bind(_SET_TIMEOUT).toValue( (fn, millis) => PromiseWrapper.setTimeout(fn, millis) )
251+
bind(_SET_TIMEOUT).toValue( (fn, millis) => TimerWrapper.setTimeout(fn, millis) )
252252
];

0 commit comments

Comments
 (0)