Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(86)

Side by Side Diff: test/codegen/expect/BenchmarkBase.js

Issue 1138793002: Tag closures with their types (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: Address jmesserly's comments Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 var BenchmarkBase = dart.defineLibrary(BenchmarkBase, {}); 1 var BenchmarkBase = dart.defineLibrary(BenchmarkBase, {});
2 var core = dart.import(core); 2 var core = dart.import(core);
3 (function(exports, core) { 3 (function(exports, core) {
4 'use strict'; 4 'use strict';
5 class Expect extends core.Object { 5 class Expect extends core.Object {
6 static equals(expected, actual) { 6 static equals(expected, actual) {
7 if (!dart.equals(expected, actual)) { 7 if (!dart.equals(expected, actual)) {
8 throw `Values not equal: ${expected} vs ${actual}`; 8 throw `Values not equal: ${expected} vs ${actual}`;
9 } 9 }
10 } 10 }
11 static listEquals(expected, actual) { 11 static listEquals(expected, actual) {
12 if (expected[core.$length] != actual[core.$length]) { 12 if (expected[core.$length] != actual[core.$length]) {
13 throw `Lists have different lengths: ${expected[core.$length]} vs ${actu al[core.$length]}`; 13 throw `Lists have different lengths: ${expected[core.$length]} vs ${actu al[core.$length]}`;
14 } 14 }
15 for (let i = 0; dart.notNull(i) < dart.notNull(actual[core.$length]); i = dart.notNull(i) + 1) { 15 for (let i = 0; dart.notNull(i) < dart.notNull(actual[core.$length]); i = dart.notNull(i) + 1) {
16 Expect.equals(expected[core.$get](i), actual[core.$get](i)); 16 Expect.equals(expected[core.$get](i), actual[core.$get](i));
17 } 17 }
18 } 18 }
19 fail(message) { 19 fail(message) {
20 throw message; 20 throw message;
21 } 21 }
22 } 22 }
23 dart.setSignature(Expect, {
24 methods: () => ({fail: dart.functionType(dart.dynamic, [dart.dynamic])}),
25 statics: () => ({
26 equals: dart.functionType(dart.void, [dart.dynamic, dart.dynamic]),
27 listEquals: dart.functionType(dart.void, [core.List, core.List])
28 }),
29 names: ['equals', 'listEquals']
30 });
23 class BenchmarkBase extends core.Object { 31 class BenchmarkBase extends core.Object {
24 BenchmarkBase(name) { 32 BenchmarkBase(name) {
25 this.name = name; 33 this.name = name;
26 } 34 }
27 run() {} 35 run() {}
28 warmup() { 36 warmup() {
29 this.run(); 37 this.run();
30 } 38 }
31 exercise() { 39 exercise() {
32 for (let i = 0; dart.notNull(i) < 10; i = dart.notNull(i) + 1) { 40 for (let i = 0; dart.notNull(i) < 10; i = dart.notNull(i) + 1) {
(...skipping 10 matching lines...) Expand all
43 let elapsed = 0; 51 let elapsed = 0;
44 while (dart.notNull(elapsed) < dart.notNull(timeMinimum)) { 52 while (dart.notNull(elapsed) < dart.notNull(timeMinimum)) {
45 dart.dcall(f); 53 dart.dcall(f);
46 elapsed = watch.elapsedMilliseconds; 54 elapsed = watch.elapsedMilliseconds;
47 iter = dart.notNull(iter) + 1; 55 iter = dart.notNull(iter) + 1;
48 } 56 }
49 return 1000.0 * dart.notNull(elapsed) / dart.notNull(iter); 57 return 1000.0 * dart.notNull(elapsed) / dart.notNull(iter);
50 } 58 }
51 measure() { 59 measure() {
52 this.setup(); 60 this.setup();
53 BenchmarkBase.measureFor((() => { 61 BenchmarkBase.measureFor(dart.fn((() => {
54 this.warmup(); 62 this.warmup();
55 }).bind(this), 100); 63 }).bind(this)), 100);
56 let result = BenchmarkBase.measureFor((() => { 64 let result = BenchmarkBase.measureFor(dart.fn((() => {
57 this.exercise(); 65 this.exercise();
58 }).bind(this), 2000); 66 }).bind(this)), 2000);
59 this.teardown(); 67 this.teardown();
60 return result; 68 return result;
61 } 69 }
62 report() { 70 report() {
63 let score = this.measure(); 71 let score = this.measure();
64 core.print(`${this.name}(RunTime): ${score} us.`); 72 core.print(`${this.name}(RunTime): ${score} us.`);
65 } 73 }
66 } 74 }
75 dart.setSignature(BenchmarkBase, {
76 methods: () => ({
77 run: dart.functionType(dart.void, []),
78 warmup: dart.functionType(dart.void, []),
79 exercise: dart.functionType(dart.void, []),
80 setup: dart.functionType(dart.void, []),
81 teardown: dart.functionType(dart.void, []),
82 measure: dart.functionType(core.double, []),
83 report: dart.functionType(dart.void, [])
84 }),
85 statics: () => ({measureFor: dart.functionType(core.double, [core.Function, core.int])}),
86 names: ['measureFor']
87 });
67 // Exports: 88 // Exports:
68 exports.Expect = Expect; 89 exports.Expect = Expect;
69 exports.BenchmarkBase = BenchmarkBase; 90 exports.BenchmarkBase = BenchmarkBase;
70 })(BenchmarkBase, core); 91 })(BenchmarkBase, core);
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698