define(['dart_sdk'], function(dart_sdk) { 'use strict'; const core = dart_sdk.core; const dart = dart_sdk.dart; const dartx = dart_sdk.dartx; const _root = Object.create(null); const BenchmarkBase$ = Object.create(_root); const $length = dartx.length; const $_get = dartx._get; let VoidToNull = () => (VoidToNull = dart.constFn(dart.fnType(core.Null, [])))(); BenchmarkBase$.Expect = class Expect extends core.Object { static equals(expected, actual) { if (!dart.equals(expected, actual)) { dart.throw(dart.str`Values not equal: ${expected} vs ${actual}`); } } static listEquals(expected, actual) { if (expected[$length] != actual[$length]) { dart.throw(dart.str`Lists have different lengths: ${expected[$length]} vs ${actual[$length]}`); } for (let i = 0; i < dart.notNull(actual[$length]); i++) { BenchmarkBase$.Expect.equals(expected[$_get](i), actual[$_get](i)); } } fail(message) { dart.throw(message); } }; (BenchmarkBase$.Expect.new = function() { }).prototype = BenchmarkBase$.Expect.prototype; dart.addTypeTests(BenchmarkBase$.Expect); dart.setMethodSignature(BenchmarkBase$.Expect, () => ({ __proto__: dart.getMethods(BenchmarkBase$.Expect.__proto__), fail: dart.fnType(dart.dynamic, [dart.dynamic]) })); dart.setStaticMethodSignature(BenchmarkBase$.Expect, () => ({ equals: dart.fnType(dart.void, [dart.dynamic, dart.dynamic]), listEquals: dart.fnType(dart.void, [core.List, core.List]) })); BenchmarkBase$.BenchmarkBase = class BenchmarkBase extends core.Object { get name() { return this[name$]; } set name(value) { super.name = value; } run() {} warmup() { this.run(); } exercise() { for (let i = 0; i < 10; i++) { this.run(); } } setup() {} teardown() {} static measureFor(f, timeMinimum) { let time = 0; let iter = 0; let watch = new core.Stopwatch.new(); watch.start(); let elapsed = 0; while (dart.notNull(elapsed) < dart.notNull(timeMinimum)) { dart.dcall(f); elapsed = watch.elapsedMilliseconds; iter++; } return 1000.0 * dart.notNull(elapsed) / iter; } measure() { this.setup(); BenchmarkBase$.BenchmarkBase.measureFor(dart.fn(() => { this.warmup(); }, VoidToNull()), 100); let result = BenchmarkBase$.BenchmarkBase.measureFor(dart.fn(() => { this.exercise(); }, VoidToNull()), 2000); this.teardown(); return result; } report() { let score = this.measure(); core.print(dart.str`${this.name}(RunTime): ${score} us.`); } }; (BenchmarkBase$.BenchmarkBase.new = function(name) { this[name$] = name; }).prototype = BenchmarkBase$.BenchmarkBase.prototype; dart.addTypeTests(BenchmarkBase$.BenchmarkBase); const name$ = Symbol("BenchmarkBase.name"); dart.setMethodSignature(BenchmarkBase$.BenchmarkBase, () => ({ __proto__: dart.getMethods(BenchmarkBase$.BenchmarkBase.__proto__), run: dart.fnType(dart.void, []), warmup: dart.fnType(dart.void, []), exercise: dart.fnType(dart.void, []), setup: dart.fnType(dart.void, []), teardown: dart.fnType(dart.void, []), measure: dart.fnType(core.double, []), report: dart.fnType(dart.void, []) })); dart.setStaticMethodSignature(BenchmarkBase$.BenchmarkBase, () => ({measureFor: dart.fnType(core.double, [core.Function, core.int])})); dart.setFieldSignature(BenchmarkBase$.BenchmarkBase, () => ({ __proto__: dart.getFields(BenchmarkBase$.BenchmarkBase.__proto__), name: dart.finalFieldType(core.String) })); dart.trackLibraries("BenchmarkBase", { "BenchmarkBase.dart": BenchmarkBase$ }, null); // Exports: return { BenchmarkBase: BenchmarkBase$ }; });