parent
							
								
									61002733bc
								
							
						
					
					
						commit
						c377e80670
					
				| @ -13,15 +13,14 @@ describe('ng2 naive infinite scroll benchmark', function() { | |||||||
|         url: URL, |         url: URL, | ||||||
|         id: 'ng2.naive_infinite_scroll', |         id: 'ng2.naive_infinite_scroll', | ||||||
|         work: function() { |         work: function() { | ||||||
|           browser.wait(protractor.until.elementLocated(protractor.By.css('body /deep/ #scrollDiv')), |           browser.wait( | ||||||
|                        5000); |               protractor.until.elementLocated(protractor.By.css('body /deep/ #scrollDiv')), 5000); | ||||||
|           $('#reset-btn').click(); |           $('#reset-btn').click(); | ||||||
|           $('#run-btn').click(); |           $('#run-btn').click(); | ||||||
|           browser.wait(protractor.until.elementLocated(protractor.By.css('#done')), 10000); |           browser.wait(protractor.until.elementLocated(protractor.By.css('#done')), 10000); | ||||||
|         }, |         }, | ||||||
|         params: [ |         params: [ | ||||||
|           {name: 'appSize', value: appSize}, |           {name: 'appSize', value: appSize}, {name: 'iterationCount', value: 20, scale: 'linear'}, | ||||||
|           {name: 'iterationCount', value: 20, scale: 'linear'}, |  | ||||||
|           {name: 'scrollIncrement', value: 40} |           {name: 'scrollIncrement', value: 40} | ||||||
|         ] |         ] | ||||||
|       }).then(done, done.fail); |       }).then(done, done.fail); | ||||||
|  | |||||||
| @ -16,7 +16,8 @@ describe('ng2 naive infinite scroll benchmark', function() { | |||||||
|     var stageButtons = `${ allScrollItems } .row stage-buttons button`; |     var stageButtons = `${ allScrollItems } .row stage-buttons button`; | ||||||
| 
 | 
 | ||||||
|     var count = function(selector) { |     var count = function(selector) { | ||||||
|       return browser.executeScript(`return ` + |       return browser.executeScript( | ||||||
|  |           `return ` + | ||||||
|           `document.querySelectorAll("${ selector }").length;`); |           `document.querySelectorAll("${ selector }").length;`); | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
| @ -25,7 +26,8 @@ describe('ng2 naive infinite scroll benchmark', function() { | |||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     var firstTextOf = function(selector) { |     var firstTextOf = function(selector) { | ||||||
|       return browser.executeScript(`return ` + |       return browser.executeScript( | ||||||
|  |           `return ` + | ||||||
|           `document.querySelector("${ selector }").innerText;`); |           `document.querySelector("${ selector }").innerText;`); | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
| @ -36,18 +38,17 @@ describe('ng2 naive infinite scroll benchmark', function() { | |||||||
|     count(cells).then(function(c) { expect(c).toEqual(expectedRowCount * expectedCellsPerRow); }); |     count(cells).then(function(c) { expect(c).toEqual(expectedRowCount * expectedCellsPerRow); }); | ||||||
| 
 | 
 | ||||||
|     // Click on first enabled button and verify stage changes
 |     // Click on first enabled button and verify stage changes
 | ||||||
|     firstTextOf(`${ stageButtons }:enabled`) |     firstTextOf(`${ stageButtons }:enabled`).then(function(text) { | ||||||
|         .then(function(text) { |  | ||||||
|       expect(text).toEqual('Pitched'); |       expect(text).toEqual('Pitched'); | ||||||
|           clickFirstOf(`${ stageButtons }:enabled`) |       clickFirstOf(`${ stageButtons }:enabled`).then(function() { | ||||||
|               .then(function() { |         firstTextOf(`${ stageButtons }:enabled`).then(function(text) { | ||||||
|                 firstTextOf(`${ stageButtons }:enabled`) |           expect(text).toEqual('Won'); | ||||||
|                     .then(function(text) { expect(text).toEqual('Won'); }) |         }) | ||||||
|       }); |       }); | ||||||
|     }); |     }); | ||||||
| 
 | 
 | ||||||
|     $("#reset-btn").click(); |     $('#reset-btn').click(); | ||||||
|     $("#run-btn").click(); |     $('#run-btn').click(); | ||||||
|     browser.wait(() => { |     browser.wait(() => { | ||||||
|       return $('#done').getText().then(function() { return true; }, function() { return false; }); |       return $('#done').getText().then(function() { return true; }, function() { return false; }); | ||||||
|     }, 10000); |     }, 10000); | ||||||
|  | |||||||
| @ -9,15 +9,15 @@ describe('ng2 largetable benchmark', function() { | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|   it('should log the load time', function(done) { |   it('should log the load time', function(done) { | ||||||
|     runner.sample({ |     runner | ||||||
|  |         .sample({ | ||||||
|           id: 'loadTime', |           id: 'loadTime', | ||||||
|           prepare: null, |           prepare: null, | ||||||
|           microMetrics: null, |           microMetrics: null, | ||||||
|           userMetrics: |           userMetrics: | ||||||
|               {loadTime: 'The time in milliseconds to bootstrap', someConstant: 'Some constant'}, |               {loadTime: 'The time in milliseconds to bootstrap', someConstant: 'Some constant'}, | ||||||
|           bindings: [ |           bindings: [ | ||||||
|               benchpress.bind(benchpress.SizeValidator.SAMPLE_SIZE) |             benchpress.bind(benchpress.SizeValidator.SAMPLE_SIZE).toValue(2), | ||||||
|                   .toValue(2), |  | ||||||
|             benchpress.bind(benchpress.RegressionSlopeValidator.SAMPLE_SIZE).toValue(2), |             benchpress.bind(benchpress.RegressionSlopeValidator.SAMPLE_SIZE).toValue(2), | ||||||
|             benchpress.bind(benchpress.RegressionSlopeValidator.METRIC).toValue('someConstant') |             benchpress.bind(benchpress.RegressionSlopeValidator.METRIC).toValue('someConstant') | ||||||
|           ], |           ], | ||||||
|  | |||||||
| @ -1,16 +1,11 @@ | |||||||
|  | import {PromiseWrapper} from '@angular/facade/src/async'; | ||||||
|  | import {ListWrapper, Map, MapWrapper} from '@angular/facade/src/collection'; | ||||||
|  | import {DateWrapper, Type, isPresent, print} from '@angular/facade/src/lang'; | ||||||
| import {bootstrap} from '@angular/platform-browser'; | import {bootstrap} from '@angular/platform-browser'; | ||||||
| import {BrowserDomAdapter} from '@angular/platform-browser/src/browser/browser_adapter'; | import {BrowserDomAdapter} from '@angular/platform-browser/src/browser/browser_adapter'; | ||||||
| import {DOM} from '@angular/platform-browser/src/dom/dom_adapter'; | import {DOM} from '@angular/platform-browser/src/dom/dom_adapter'; | ||||||
| import {PromiseWrapper} from '@angular/facade/src/async'; |  | ||||||
| import {ListWrapper, Map, MapWrapper} from '@angular/facade/src/collection'; |  | ||||||
| import {DateWrapper, Type, print, isPresent} from '@angular/facade/src/lang'; |  | ||||||
| 
 | 
 | ||||||
| import { | import {ComponentResolver, Component, Directive, ViewContainerRef,} from '@angular/core'; | ||||||
|   ComponentResolver, |  | ||||||
|   Component, |  | ||||||
|   Directive, |  | ||||||
|   ViewContainerRef, |  | ||||||
| } from '@angular/core'; |  | ||||||
| 
 | 
 | ||||||
| import {ViewMetadata} from '@angular/core/src/metadata/view'; | import {ViewMetadata} from '@angular/core/src/metadata/view'; | ||||||
| 
 | 
 | ||||||
| @ -23,26 +18,27 @@ function _createBindings(): any[] { | |||||||
|   return [ |   return [ | ||||||
|     { |     { | ||||||
|       provide: DirectiveResolver, |       provide: DirectiveResolver, | ||||||
|       useFactory: () => new MultiplyDirectiveResolver( |       useFactory: | ||||||
|                               multiplyTemplatesBy, |           () => new MultiplyDirectiveResolver( | ||||||
|                               [BenchmarkComponentNoBindings, BenchmarkComponentWithBindings]), |               multiplyTemplatesBy, [BenchmarkComponentNoBindings, BenchmarkComponentWithBindings]), | ||||||
|       deps: [] |       deps: [] | ||||||
|     }, |     }, | ||||||
|     // Use interpretative mode as Dart does not support JIT and
 |     // Use interpretative mode as Dart does not support JIT and
 | ||||||
|     // we want to be able to compare the numbers between JS and Dart
 |     // we want to be able to compare the numbers between JS and Dart
 | ||||||
|     {provide: CompilerConfig, useValue: new CompilerConfig({genDebugInfo: false, useJit: false, logBindingUpdate: false})} |     { | ||||||
|  |       provide: CompilerConfig, | ||||||
|  |       useValue: new CompilerConfig({genDebugInfo: false, useJit: false, logBindingUpdate: false}) | ||||||
|  |     } | ||||||
|   ]; |   ]; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| export function main() { | export function main() { | ||||||
|   BrowserDomAdapter.makeCurrent(); |   BrowserDomAdapter.makeCurrent(); | ||||||
|   bootstrap(CompilerAppComponent, _createBindings()) |   bootstrap(CompilerAppComponent, _createBindings()).then((ref) => { | ||||||
|       .then((ref) => { |  | ||||||
|     var app = ref.instance; |     var app = ref.instance; | ||||||
|         bindAction('#compileNoBindings', |     bindAction('#compileNoBindings', measureWrapper(() => app.compileNoBindings(), 'No Bindings')); | ||||||
|                    measureWrapper(() => app.compileNoBindings(), 'No Bindings')); |     bindAction( | ||||||
|         bindAction('#compileWithBindings', |         '#compileWithBindings', measureWrapper(() => app.compileWithBindings(), 'With Bindings')); | ||||||
|                    measureWrapper(() => app.compileWithBindings(), 'With Bindings')); |  | ||||||
|   }); |   }); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,8 +1,8 @@ | |||||||
| import {SelectorMatcher} from '@angular/compiler/src/selector'; | import {SelectorMatcher} from '@angular/compiler/src/selector'; | ||||||
| import {CssSelector} from '@angular/compiler/src/selector'; | import {CssSelector} from '@angular/compiler/src/selector'; | ||||||
| import {StringWrapper, Math} from '@angular/facade/lang'; | import {Math, StringWrapper} from '@angular/facade/lang'; | ||||||
| import {getIntParameter, bindAction} from '@angular/testing/src/benchmark_util'; |  | ||||||
| import {BrowserDomAdapter} from '@angular/platform-browser/src/browser/browser_adapter'; | import {BrowserDomAdapter} from '@angular/platform-browser/src/browser/browser_adapter'; | ||||||
|  | import {bindAction, getIntParameter} from '@angular/testing/src/benchmark_util'; | ||||||
| 
 | 
 | ||||||
| export function main() { | export function main() { | ||||||
|   BrowserDomAdapter.makeCurrent(); |   BrowserDomAdapter.makeCurrent(); | ||||||
|  | |||||||
| @ -1,11 +1,11 @@ | |||||||
| import {bootstrap} from '@angular/platform-browser'; | import {NgFor, NgIf} from '@angular/common'; | ||||||
| import {Component, Directive, DynamicComponentLoader, ViewContainerRef} from '@angular/core'; | import {Component, Directive, DynamicComponentLoader, ViewContainerRef} from '@angular/core'; | ||||||
| import {NgIf, NgFor} from '@angular/common'; |  | ||||||
| import {ApplicationRef} from '@angular/core/src/application_ref'; | import {ApplicationRef} from '@angular/core/src/application_ref'; | ||||||
| import {ListWrapper} from '@angular/facade/src/lang'; | import {ListWrapper} from '@angular/facade/src/lang'; | ||||||
| import {getIntParameter, bindAction} from '@angular/testing/src/benchmark_util'; | import {bootstrap} from '@angular/platform-browser'; | ||||||
| import {BrowserModule} from '@angular/platform-browser'; | import {BrowserModule} from '@angular/platform-browser'; | ||||||
| import {platformBrowserDynamic} from '@angular/platform-browser-dynamic'; | import {platformBrowserDynamic} from '@angular/platform-browser-dynamic'; | ||||||
|  | import {bindAction, getIntParameter} from '@angular/testing/src/benchmark_util'; | ||||||
| 
 | 
 | ||||||
| var testList = null; | var testList = null; | ||||||
| 
 | 
 | ||||||
| @ -13,8 +13,7 @@ export function main() { | |||||||
|   var size = getIntParameter('size'); |   var size = getIntParameter('size'); | ||||||
|   testList = ListWrapper.createFixedSize(size); |   testList = ListWrapper.createFixedSize(size); | ||||||
| 
 | 
 | ||||||
|   platformBrowserDynamic().bootstrapModule(AppModule) |   platformBrowserDynamic().bootstrapModule(AppModule).then((ref) => { | ||||||
|       .then((ref) => { |  | ||||||
|     var injector = ref.injector; |     var injector = ref.injector; | ||||||
|     var app: AppComponent = ref.instance; |     var app: AppComponent = ref.instance; | ||||||
|     var appRef = injector.get(ApplicationRef); |     var appRef = injector.get(ApplicationRef); | ||||||
| @ -110,9 +109,6 @@ class AppComponent { | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| @NgModule({ | @NgModule({imports: [BrowserModule], bootstrap: [AppComponent]}) | ||||||
|   imports: [BrowserModule], |  | ||||||
|   bootstrap: [AppComponent] |  | ||||||
| }) |  | ||||||
| class AppModule { | class AppModule { | ||||||
| } | } | ||||||
| @ -1,8 +1,8 @@ | |||||||
| import {Injectable, ReflectiveInjector, ReflectiveKey} from '@angular/core'; | import {Injectable, ReflectiveInjector, ReflectiveKey} from '@angular/core'; | ||||||
| import {reflector} from '@angular/core/src/reflection/reflection'; | import {reflector} from '@angular/core/src/reflection/reflection'; | ||||||
| import {ReflectionCapabilities} from '@angular/core/src/reflection/reflection_capabilities'; | import {ReflectionCapabilities} from '@angular/core/src/reflection/reflection_capabilities'; | ||||||
| import {getIntParameter, bindAction, microBenchmark} from '@angular/testing/src/benchmark_util'; |  | ||||||
| import {BrowserDomAdapter} from '@angular/platform-browser/src/browser/browser_adapter'; | import {BrowserDomAdapter} from '@angular/platform-browser/src/browser/browser_adapter'; | ||||||
|  | import {bindAction, getIntParameter, microBenchmark} from '@angular/testing/src/benchmark_util'; | ||||||
| 
 | 
 | ||||||
| var count = 0; | var count = 0; | ||||||
| 
 | 
 | ||||||
| @ -81,7 +81,8 @@ export function main() { | |||||||
|   bindAction('#getChild', () => microBenchmark('injectAvg', iterations, getChild)); |   bindAction('#getChild', () => microBenchmark('injectAvg', iterations, getChild)); | ||||||
|   bindAction('#instantiate', () => microBenchmark('injectAvg', iterations, instantiate)); |   bindAction('#instantiate', () => microBenchmark('injectAvg', iterations, instantiate)); | ||||||
|   bindAction('#createVariety', () => microBenchmark('injectAvg', iterations, createVariety)); |   bindAction('#createVariety', () => microBenchmark('injectAvg', iterations, createVariety)); | ||||||
|   bindAction('#createVarietyResolved', |   bindAction( | ||||||
|  |       '#createVarietyResolved', | ||||||
|       () => microBenchmark('injectAvg', iterations, createVarietyResolved)); |       () => microBenchmark('injectAvg', iterations, createVarietyResolved)); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,22 +1,14 @@ | |||||||
| import {DOM} from '@angular/platform-browser/src/dom/dom_adapter'; |  | ||||||
| import {window, document, gc} from '@angular/facade/src/browser'; |  | ||||||
| import { |  | ||||||
|   getIntParameter, |  | ||||||
|   getStringParameter, |  | ||||||
|   bindAction, |  | ||||||
|   windowProfile, |  | ||||||
|   windowProfileEnd |  | ||||||
| } from '@angular/testing/src/benchmark_util'; |  | ||||||
| import {bootstrap} from '@angular/platform-browser'; |  | ||||||
| import {Component} from '@angular/core'; |  | ||||||
| import {NgFor, NgSwitch, NgSwitchCase, NgSwitchDefault} from '@angular/common'; | import {NgFor, NgSwitch, NgSwitchCase, NgSwitchDefault} from '@angular/common'; | ||||||
|  | import {Component} from '@angular/core'; | ||||||
| import {ApplicationRef} from '@angular/core/src/application_ref'; | import {ApplicationRef} from '@angular/core/src/application_ref'; | ||||||
| import {BrowserDomAdapter} from '@angular/platform-browser/src/browser/browser_adapter'; |  | ||||||
| 
 |  | ||||||
| import {ListWrapper} from '@angular/facade/src/collection'; |  | ||||||
| 
 |  | ||||||
| import {Inject} from '@angular/core/src/di/decorators'; | import {Inject} from '@angular/core/src/di/decorators'; | ||||||
| import {reflector} from '@angular/core/src/reflection/reflection'; | import {reflector} from '@angular/core/src/reflection/reflection'; | ||||||
|  | import {document, gc, window} from '@angular/facade/src/browser'; | ||||||
|  | import {ListWrapper} from '@angular/facade/src/collection'; | ||||||
|  | import {bootstrap} from '@angular/platform-browser'; | ||||||
|  | import {BrowserDomAdapter} from '@angular/platform-browser/src/browser/browser_adapter'; | ||||||
|  | import {DOM} from '@angular/platform-browser/src/dom/dom_adapter'; | ||||||
|  | import {bindAction, getIntParameter, getStringParameter, windowProfile, windowProfileEnd} from '@angular/testing/src/benchmark_util'; | ||||||
| 
 | 
 | ||||||
| export const BENCHMARK_TYPE = 'LargetableComponent.benchmarkType'; | export const BENCHMARK_TYPE = 'LargetableComponent.benchmarkType'; | ||||||
| export const LARGETABLE_ROWS = 'LargetableComponent.rows'; | export const LARGETABLE_ROWS = 'LargetableComponent.rows'; | ||||||
| @ -110,8 +102,7 @@ export function main() { | |||||||
|   function noop() {} |   function noop() {} | ||||||
| 
 | 
 | ||||||
|   function initNg2() { |   function initNg2() { | ||||||
|     bootstrap(AppComponent, _createBindings()) |     bootstrap(AppComponent, _createBindings()).then((ref) => { | ||||||
|         .then((ref) => { |  | ||||||
|       var injector = ref.injector; |       var injector = ref.injector; | ||||||
|       app = ref.instance; |       app = ref.instance; | ||||||
|       appRef = injector.get(ApplicationRef); |       appRef = injector.get(ApplicationRef); | ||||||
| @ -138,7 +129,8 @@ export function main() { | |||||||
|     bindAction('#baselineCreateDom', baselineCreateDom); |     bindAction('#baselineCreateDom', baselineCreateDom); | ||||||
| 
 | 
 | ||||||
|     bindAction('#baselineUpdateDomProfile', profile(baselineCreateDom, noop, 'baseline-update')); |     bindAction('#baselineUpdateDomProfile', profile(baselineCreateDom, noop, 'baseline-update')); | ||||||
|     bindAction('#baselineCreateDomProfile', |     bindAction( | ||||||
|  |         '#baselineCreateDomProfile', | ||||||
|         profile(baselineCreateDom, baselineDestroyDom, 'baseline-create')); |         profile(baselineCreateDom, baselineDestroyDom, 'baseline-create')); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
| @ -248,7 +240,8 @@ class LargetableComponent { | |||||||
|   benchmarkType: string; |   benchmarkType: string; | ||||||
|   rows: number; |   rows: number; | ||||||
|   columns: number; |   columns: number; | ||||||
|   constructor(@Inject(BENCHMARK_TYPE) benchmarkType, @Inject(LARGETABLE_ROWS) rows, |   constructor( | ||||||
|  |       @Inject(BENCHMARK_TYPE) benchmarkType, @Inject(LARGETABLE_ROWS) rows, | ||||||
|       @Inject(LARGETABLE_COLS) columns) { |       @Inject(LARGETABLE_COLS) columns) { | ||||||
|     this.benchmarkType = benchmarkType; |     this.benchmarkType = benchmarkType; | ||||||
|     this.rows = rows; |     this.rows = rows; | ||||||
|  | |||||||
| @ -1,12 +1,12 @@ | |||||||
| import {isPresent} from '@angular/facade/src/lang'; | import {NgFor, NgIf} from '@angular/common'; | ||||||
| import {getIntParameter, bindAction} from '@angular/testing/src/benchmark_util'; |  | ||||||
| import {TimerWrapper} from '@angular/facade/src/async'; |  | ||||||
| import {ScrollAreaComponent} from './scroll_area'; |  | ||||||
| import {NgIf, NgFor} from '@angular/common'; |  | ||||||
| import {DOM} from '@angular/platform-browser/src/dom/dom_adapter'; |  | ||||||
| import {document} from '@angular/facade/src/browser'; |  | ||||||
| 
 |  | ||||||
| import {Component, Directive} from '@angular/core'; | import {Component, Directive} from '@angular/core'; | ||||||
|  | import {TimerWrapper} from '@angular/facade/src/async'; | ||||||
|  | import {document} from '@angular/facade/src/browser'; | ||||||
|  | import {isPresent} from '@angular/facade/src/lang'; | ||||||
|  | import {DOM} from '@angular/platform-browser/src/dom/dom_adapter'; | ||||||
|  | import {bindAction, getIntParameter} from '@angular/testing/src/benchmark_util'; | ||||||
|  | 
 | ||||||
|  | import {ScrollAreaComponent} from './scroll_area'; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| @Component({ | @Component({ | ||||||
|  | |||||||
| @ -1,8 +1,8 @@ | |||||||
| import {ListWrapper, Map} from '@angular/facade/src/collection'; |  | ||||||
| import {Company, Opportunity, Offering, Account, CustomDate, STATUS_LIST} from './common'; |  | ||||||
| import {NgFor} from '@angular/common'; | import {NgFor} from '@angular/common'; | ||||||
| 
 |  | ||||||
| import {Component, Directive} from '@angular/core'; | import {Component, Directive} from '@angular/core'; | ||||||
|  | import {ListWrapper, Map} from '@angular/facade/src/collection'; | ||||||
|  | 
 | ||||||
|  | import {Account, Company, CustomDate, Offering, Opportunity, STATUS_LIST} from './common'; | ||||||
| 
 | 
 | ||||||
| export class HasStyle { | export class HasStyle { | ||||||
|   cellWidth: number; |   cellWidth: number; | ||||||
|  | |||||||
| @ -1,6 +1,6 @@ | |||||||
| import {Math} from '@angular/facade/src/math'; |  | ||||||
| import {StringWrapper} from '@angular/facade/src/lang'; |  | ||||||
| import {ListWrapper, Map, MapWrapper} from '@angular/facade/src/collection'; | import {ListWrapper, Map, MapWrapper} from '@angular/facade/src/collection'; | ||||||
|  | import {StringWrapper} from '@angular/facade/src/lang'; | ||||||
|  | import {Math} from '@angular/facade/src/math'; | ||||||
| 
 | 
 | ||||||
| export var ITEMS = 1000; | export var ITEMS = 1000; | ||||||
| export var ITEM_HEIGHT = 40; | export var ITEM_HEIGHT = 40; | ||||||
| @ -21,9 +21,8 @@ export var DUE_DATE_WIDTH = 100; | |||||||
| export var END_DATE_WIDTH = 100; | export var END_DATE_WIDTH = 100; | ||||||
| export var AAT_STATUS_WIDTH = 100; | export var AAT_STATUS_WIDTH = 100; | ||||||
| export var ROW_WIDTH = COMPANY_NAME_WIDTH + OPPORTUNITY_NAME_WIDTH + OFFERING_NAME_WIDTH + | export var ROW_WIDTH = COMPANY_NAME_WIDTH + OPPORTUNITY_NAME_WIDTH + OFFERING_NAME_WIDTH + | ||||||
|                        ACCOUNT_CELL_WIDTH + BASE_POINTS_WIDTH + KICKER_POINTS_WIDTH + |     ACCOUNT_CELL_WIDTH + BASE_POINTS_WIDTH + KICKER_POINTS_WIDTH + STAGE_BUTTONS_WIDTH + | ||||||
|                        STAGE_BUTTONS_WIDTH + BUNDLES_WIDTH + DUE_DATE_WIDTH + END_DATE_WIDTH + |     BUNDLES_WIDTH + DUE_DATE_WIDTH + END_DATE_WIDTH + AAT_STATUS_WIDTH; | ||||||
|                        AAT_STATUS_WIDTH; |  | ||||||
| 
 | 
 | ||||||
| export var STATUS_LIST = ['Planned', 'Pitched', 'Won', 'Lost']; | export var STATUS_LIST = ['Planned', 'Pitched', 'Won', 'Lost']; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,15 +1,10 @@ | |||||||
|  | import {NgModule} from '@angular/core'; | ||||||
| import {BrowserModule} from '@angular/platform-browser'; | import {BrowserModule} from '@angular/platform-browser'; | ||||||
| import {platformBrowserDynamic} from '@angular/platform-browser-dynamic'; | import {platformBrowserDynamic} from '@angular/platform-browser-dynamic'; | ||||||
| import { |  | ||||||
|   NgModule |  | ||||||
| } from '@angular/core'; |  | ||||||
| 
 | 
 | ||||||
| import {App} from './app'; | import {App} from './app'; | ||||||
| 
 | 
 | ||||||
| @NgModule({ | @NgModule({imports: [BrowserModule], bootstrap: [App]}) | ||||||
|   imports: [BrowserModule], |  | ||||||
|   bootstrap: [App] |  | ||||||
| }) |  | ||||||
| class AppModule { | class AppModule { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,13 +1,6 @@ | |||||||
| import {StringWrapper} from '@angular/facade/src/lang'; | import {StringWrapper} from '@angular/facade/src/lang'; | ||||||
| import { | 
 | ||||||
|   CustomDate, | import {AAT_STATUS_LIST, Account, Company, CustomDate, Offering, Opportunity, STATUS_LIST} from './common'; | ||||||
|   Offering, |  | ||||||
|   Company, |  | ||||||
|   Opportunity, |  | ||||||
|   Account, |  | ||||||
|   STATUS_LIST, |  | ||||||
|   AAT_STATUS_LIST |  | ||||||
| } from './common'; |  | ||||||
| 
 | 
 | ||||||
| export function generateOfferings(count: number): Offering[] { | export function generateOfferings(count: number): Offering[] { | ||||||
|   var res = []; |   var res = []; | ||||||
| @ -52,18 +45,7 @@ export function generateAccount(seed: number): Account { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| var names = [ | var names = [ | ||||||
|   'Foo', |   'Foo', 'Bar', 'Baz', 'Qux', 'Quux', 'Garply', 'Waldo', 'Fred', 'Plugh', 'Xyzzy', 'Thud', 'Cruft', | ||||||
|   'Bar', |  | ||||||
|   'Baz', |  | ||||||
|   'Qux', |  | ||||||
|   'Quux', |  | ||||||
|   'Garply', |  | ||||||
|   'Waldo', |  | ||||||
|   'Fred', |  | ||||||
|   'Plugh', |  | ||||||
|   'Xyzzy', |  | ||||||
|   'Thud', |  | ||||||
|   'Cruft', |  | ||||||
|   'Stuff' |   'Stuff' | ||||||
| ]; | ]; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,20 +1,11 @@ | |||||||
|  | import {NgFor} from '@angular/common'; | ||||||
|  | import {Component, Directive} from '@angular/core'; | ||||||
| import {ListWrapper} from '@angular/facade/src/collection'; | import {ListWrapper} from '@angular/facade/src/collection'; | ||||||
| import {Math} from '@angular/facade/src/math'; | import {Math} from '@angular/facade/src/math'; | ||||||
| 
 | 
 | ||||||
| import {Component, Directive} from '@angular/core'; | import {HEIGHT, ITEMS, ITEM_HEIGHT, Offering, ROW_WIDTH, VIEW_PORT_HEIGHT, VISIBLE_ITEMS} from './common'; | ||||||
| 
 |  | ||||||
| import { |  | ||||||
|   Offering, |  | ||||||
|   ITEMS, |  | ||||||
|   ITEM_HEIGHT, |  | ||||||
|   VISIBLE_ITEMS, |  | ||||||
|   VIEW_PORT_HEIGHT, |  | ||||||
|   ROW_WIDTH, |  | ||||||
|   HEIGHT |  | ||||||
| } from './common'; |  | ||||||
| import {generateOfferings} from './random_data'; | import {generateOfferings} from './random_data'; | ||||||
| import {ScrollItemComponent} from './scroll_item'; | import {ScrollItemComponent} from './scroll_item'; | ||||||
| import {NgFor} from '@angular/common'; |  | ||||||
| 
 | 
 | ||||||
| @Component({ | @Component({ | ||||||
|   selector: 'scroll-area', |   selector: 'scroll-area', | ||||||
|  | |||||||
| @ -1,40 +1,14 @@ | |||||||
| import { |  | ||||||
|   CompanyNameComponent, |  | ||||||
|   OpportunityNameComponent, |  | ||||||
|   OfferingNameComponent, |  | ||||||
|   StageButtonsComponent, |  | ||||||
|   AccountCellComponent, |  | ||||||
|   FormattedCellComponent |  | ||||||
| } from './cells'; |  | ||||||
| 
 |  | ||||||
| import {Component, Directive} from '@angular/core'; | import {Component, Directive} from '@angular/core'; | ||||||
| 
 | 
 | ||||||
| import { | import {AccountCellComponent, CompanyNameComponent, FormattedCellComponent, OfferingNameComponent, OpportunityNameComponent, StageButtonsComponent} from './cells'; | ||||||
|   Offering, | import {AAT_STATUS_WIDTH, ACCOUNT_CELL_WIDTH, BASE_POINTS_WIDTH, BUNDLES_WIDTH, COMPANY_NAME_WIDTH, DUE_DATE_WIDTH, END_DATE_WIDTH, ITEM_HEIGHT, KICKER_POINTS_WIDTH, OFFERING_NAME_WIDTH, OPPORTUNITY_NAME_WIDTH, Offering, STAGE_BUTTONS_WIDTH} from './common'; | ||||||
|   ITEM_HEIGHT, |  | ||||||
|   COMPANY_NAME_WIDTH, |  | ||||||
|   OPPORTUNITY_NAME_WIDTH, |  | ||||||
|   OFFERING_NAME_WIDTH, |  | ||||||
|   ACCOUNT_CELL_WIDTH, |  | ||||||
|   BASE_POINTS_WIDTH, |  | ||||||
|   KICKER_POINTS_WIDTH, |  | ||||||
|   STAGE_BUTTONS_WIDTH, |  | ||||||
|   BUNDLES_WIDTH, |  | ||||||
|   DUE_DATE_WIDTH, |  | ||||||
|   END_DATE_WIDTH, |  | ||||||
|   AAT_STATUS_WIDTH |  | ||||||
| } from './common'; |  | ||||||
| 
 | 
 | ||||||
| @Component({ | @Component({ | ||||||
|   selector: 'scroll-item', |   selector: 'scroll-item', | ||||||
|   inputs: ['offering'], |   inputs: ['offering'], | ||||||
|   directives: [ |   directives: [ | ||||||
|     CompanyNameComponent, |     CompanyNameComponent, OpportunityNameComponent, OfferingNameComponent, StageButtonsComponent, | ||||||
|     OpportunityNameComponent, |     AccountCellComponent, FormattedCellComponent | ||||||
|     OfferingNameComponent, |  | ||||||
|     StageButtonsComponent, |  | ||||||
|     AccountCellComponent, |  | ||||||
|     FormattedCellComponent |  | ||||||
|   ], |   ], | ||||||
|   template: ` |   template: ` | ||||||
|     <div class="row" |     <div class="row" | ||||||
|  | |||||||
| @ -1,6 +1,6 @@ | |||||||
| import {Component, NgModule} from 'angular2/core'; |  | ||||||
| import {BrowserModule} from '@angular/platform-browser'; | import {BrowserModule} from '@angular/platform-browser'; | ||||||
| import {platformBrowserDynamic} from '@angular/platform-browser-dynamic'; | import {platformBrowserDynamic} from '@angular/platform-browser-dynamic'; | ||||||
|  | import {Component, NgModule} from 'angular2/core'; | ||||||
| 
 | 
 | ||||||
| @Component({selector: 'app', template: '<h1>Page Load Time</h1>'}) | @Component({selector: 'app', template: '<h1>Page Load Time</h1>'}) | ||||||
| class App { | class App { | ||||||
|  | |||||||
| @ -3,18 +3,12 @@ import {Component, NgModule} from '@angular/core'; | |||||||
| import {ApplicationRef} from '@angular/core/src/application_ref'; | import {ApplicationRef} from '@angular/core/src/application_ref'; | ||||||
| import {reflector} from '@angular/core/src/reflection/reflection'; | import {reflector} from '@angular/core/src/reflection/reflection'; | ||||||
| import {ReflectionCapabilities} from '@angular/core/src/reflection/reflection_capabilities'; | import {ReflectionCapabilities} from '@angular/core/src/reflection/reflection_capabilities'; | ||||||
| import {DOM} from '@angular/platform-browser/src/dom/dom_adapter'; | import {document, gc, window} from '@angular/facade/src/browser'; | ||||||
| import {window, document, gc} from '@angular/facade/src/browser'; |  | ||||||
| import { |  | ||||||
|   getIntParameter, |  | ||||||
|   getStringParameter, |  | ||||||
|   bindAction, |  | ||||||
|   windowProfile, |  | ||||||
|   windowProfileEnd |  | ||||||
| } from '@angular/testing/src/benchmark_util'; |  | ||||||
| import {BrowserDomAdapter} from '@angular/platform-browser/src/browser/browser_adapter'; |  | ||||||
| import {platformBrowserDynamic} from '@angular/platform-browser-dynamic'; |  | ||||||
| import {BrowserModule} from '@angular/platform-browser'; | import {BrowserModule} from '@angular/platform-browser'; | ||||||
|  | import {platformBrowserDynamic} from '@angular/platform-browser-dynamic'; | ||||||
|  | import {BrowserDomAdapter} from '@angular/platform-browser/src/browser/browser_adapter'; | ||||||
|  | import {DOM} from '@angular/platform-browser/src/dom/dom_adapter'; | ||||||
|  | import {bindAction, getIntParameter, getStringParameter, windowProfile, windowProfileEnd} from '@angular/testing/src/benchmark_util'; | ||||||
| 
 | 
 | ||||||
| function createBindings(): any[] { | function createBindings(): any[] { | ||||||
|   return []; |   return []; | ||||||
| @ -92,8 +86,7 @@ export function main() { | |||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   function initNg2() { |   function initNg2() { | ||||||
|     platformBrowserDynamic().bootstrapModule(AppModule) |     platformBrowserDynamic().bootstrapModule(AppModule).then((ref) => { | ||||||
|         .then((ref) => { |  | ||||||
|       var injector = ref.injector; |       var injector = ref.injector; | ||||||
|       appRef = injector.get(ApplicationRef); |       appRef = injector.get(ApplicationRef); | ||||||
| 
 | 
 | ||||||
| @ -118,7 +111,8 @@ export function main() { | |||||||
|     bindAction('#baselineCreateDom', baselineCreateDom); |     bindAction('#baselineCreateDom', baselineCreateDom); | ||||||
| 
 | 
 | ||||||
|     bindAction('#baselineUpdateDomProfile', profile(baselineCreateDom, noop, 'baseline-update')); |     bindAction('#baselineUpdateDomProfile', profile(baselineCreateDom, noop, 'baseline-update')); | ||||||
|     bindAction('#baselineCreateDomProfile', |     bindAction( | ||||||
|  |         '#baselineCreateDomProfile', | ||||||
|         profile(baselineCreateDom, baselineDestroyDom, 'baseline-create')); |         profile(baselineCreateDom, baselineDestroyDom, 'baseline-create')); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
| @ -139,7 +133,8 @@ class TreeNode { | |||||||
| 
 | 
 | ||||||
| function buildTree(maxDepth, values, curDepth) { | function buildTree(maxDepth, values, curDepth) { | ||||||
|   if (maxDepth === curDepth) return new TreeNode('', null, null); |   if (maxDepth === curDepth) return new TreeNode('', null, null); | ||||||
|   return new TreeNode(values[curDepth], buildTree(maxDepth, values, curDepth + 1), |   return new TreeNode( | ||||||
|  |       values[curDepth], buildTree(maxDepth, values, curDepth + 1), | ||||||
|       buildTree(maxDepth, values, curDepth + 1)); |       buildTree(maxDepth, values, curDepth + 1)); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -233,7 +228,8 @@ class StaticTreeComponent0 extends StaticTreeComponentBase { | |||||||
|   selector: 'tree', |   selector: 'tree', | ||||||
|   inputs: ['data'], |   inputs: ['data'], | ||||||
|   directives: [StaticTreeComponent0], |   directives: [StaticTreeComponent0], | ||||||
|   template: `<span> {{data.value}} <tree [data]='data.right'></tree><tree [data]='data.left'></tree></span>` |   template: | ||||||
|  |       `<span> {{data.value}} <tree [data]='data.right'></tree><tree [data]='data.left'></tree></span>` | ||||||
| }) | }) | ||||||
| class StaticTreeComponent1 extends StaticTreeComponentBase { | class StaticTreeComponent1 extends StaticTreeComponentBase { | ||||||
| } | } | ||||||
| @ -242,7 +238,8 @@ class StaticTreeComponent1 extends StaticTreeComponentBase { | |||||||
|   selector: 'tree', |   selector: 'tree', | ||||||
|   inputs: ['data'], |   inputs: ['data'], | ||||||
|   directives: [StaticTreeComponent1], |   directives: [StaticTreeComponent1], | ||||||
|   template: `<span> {{data.value}} <tree [data]='data.right'></tree><tree [data]='data.left'></tree></span>` |   template: | ||||||
|  |       `<span> {{data.value}} <tree [data]='data.right'></tree><tree [data]='data.left'></tree></span>` | ||||||
| }) | }) | ||||||
| class StaticTreeComponent2 extends StaticTreeComponentBase { | class StaticTreeComponent2 extends StaticTreeComponentBase { | ||||||
|   data: TreeNode; |   data: TreeNode; | ||||||
| @ -252,7 +249,8 @@ class StaticTreeComponent2 extends StaticTreeComponentBase { | |||||||
|   selector: 'tree', |   selector: 'tree', | ||||||
|   inputs: ['data'], |   inputs: ['data'], | ||||||
|   directives: [StaticTreeComponent2], |   directives: [StaticTreeComponent2], | ||||||
|   template: `<span> {{data.value}} <tree [data]='data.right'></tree><tree [data]='data.left'></tree></span>` |   template: | ||||||
|  |       `<span> {{data.value}} <tree [data]='data.right'></tree><tree [data]='data.left'></tree></span>` | ||||||
| }) | }) | ||||||
| class StaticTreeComponent3 extends StaticTreeComponentBase { | class StaticTreeComponent3 extends StaticTreeComponentBase { | ||||||
| } | } | ||||||
| @ -261,7 +259,8 @@ class StaticTreeComponent3 extends StaticTreeComponentBase { | |||||||
|   selector: 'tree', |   selector: 'tree', | ||||||
|   inputs: ['data'], |   inputs: ['data'], | ||||||
|   directives: [StaticTreeComponent3], |   directives: [StaticTreeComponent3], | ||||||
|   template: `<span> {{data.value}} <tree [data]='data.right'></tree><tree [data]='data.left'></tree></span>` |   template: | ||||||
|  |       `<span> {{data.value}} <tree [data]='data.right'></tree><tree [data]='data.left'></tree></span>` | ||||||
| }) | }) | ||||||
| class StaticTreeComponent4 extends StaticTreeComponentBase { | class StaticTreeComponent4 extends StaticTreeComponentBase { | ||||||
| } | } | ||||||
| @ -270,7 +269,8 @@ class StaticTreeComponent4 extends StaticTreeComponentBase { | |||||||
|   selector: 'tree', |   selector: 'tree', | ||||||
|   inputs: ['data'], |   inputs: ['data'], | ||||||
|   directives: [StaticTreeComponent4], |   directives: [StaticTreeComponent4], | ||||||
|   template: `<span> {{data.value}} <tree [data]='data.right'></tree><tree [data]='data.left'></tree></span>` |   template: | ||||||
|  |       `<span> {{data.value}} <tree [data]='data.right'></tree><tree [data]='data.left'></tree></span>` | ||||||
| }) | }) | ||||||
| class StaticTreeComponent5 extends StaticTreeComponentBase { | class StaticTreeComponent5 extends StaticTreeComponentBase { | ||||||
| } | } | ||||||
| @ -279,7 +279,8 @@ class StaticTreeComponent5 extends StaticTreeComponentBase { | |||||||
|   selector: 'tree', |   selector: 'tree', | ||||||
|   inputs: ['data'], |   inputs: ['data'], | ||||||
|   directives: [StaticTreeComponent5], |   directives: [StaticTreeComponent5], | ||||||
|   template: `<span> {{data.value}} <tree [data]='data.right'></tree><tree [data]='data.left'></tree></span>` |   template: | ||||||
|  |       `<span> {{data.value}} <tree [data]='data.right'></tree><tree [data]='data.left'></tree></span>` | ||||||
| }) | }) | ||||||
| class StaticTreeComponent6 extends StaticTreeComponentBase { | class StaticTreeComponent6 extends StaticTreeComponentBase { | ||||||
| } | } | ||||||
| @ -288,7 +289,8 @@ class StaticTreeComponent6 extends StaticTreeComponentBase { | |||||||
|   selector: 'tree', |   selector: 'tree', | ||||||
|   inputs: ['data'], |   inputs: ['data'], | ||||||
|   directives: [StaticTreeComponent6], |   directives: [StaticTreeComponent6], | ||||||
|   template: `<span> {{data.value}} <tree [data]='data.right'></tree><tree [data]='data.left'></tree></span>` |   template: | ||||||
|  |       `<span> {{data.value}} <tree [data]='data.right'></tree><tree [data]='data.left'></tree></span>` | ||||||
| }) | }) | ||||||
| class StaticTreeComponent7 extends StaticTreeComponentBase { | class StaticTreeComponent7 extends StaticTreeComponentBase { | ||||||
| } | } | ||||||
| @ -297,7 +299,8 @@ class StaticTreeComponent7 extends StaticTreeComponentBase { | |||||||
|   selector: 'tree', |   selector: 'tree', | ||||||
|   inputs: ['data'], |   inputs: ['data'], | ||||||
|   directives: [StaticTreeComponent7], |   directives: [StaticTreeComponent7], | ||||||
|   template: `<span> {{data.value}} <tree [data]='data.right'></tree><tree [data]='data.left'></tree></span>` |   template: | ||||||
|  |       `<span> {{data.value}} <tree [data]='data.right'></tree><tree [data]='data.left'></tree></span>` | ||||||
| }) | }) | ||||||
| class StaticTreeComponent8 extends StaticTreeComponentBase { | class StaticTreeComponent8 extends StaticTreeComponentBase { | ||||||
| } | } | ||||||
| @ -306,7 +309,8 @@ class StaticTreeComponent8 extends StaticTreeComponentBase { | |||||||
|   selector: 'tree', |   selector: 'tree', | ||||||
|   inputs: ['data'], |   inputs: ['data'], | ||||||
|   directives: [StaticTreeComponent8], |   directives: [StaticTreeComponent8], | ||||||
|   template: `<span> {{data.value}} <tree [data]='data.right'></tree><tree [data]='data.left'></tree></span>` |   template: | ||||||
|  |       `<span> {{data.value}} <tree [data]='data.right'></tree><tree [data]='data.left'></tree></span>` | ||||||
| }) | }) | ||||||
| class StaticTreeComponent9 extends StaticTreeComponentBase { | class StaticTreeComponent9 extends StaticTreeComponentBase { | ||||||
| } | } | ||||||
|  | |||||||
| @ -1,12 +1,7 @@ | |||||||
| import { | import {getIntParameter, windowProfile, windowProfileEnd} from '@angular/platform-browser/testing/benchmark_util'; | ||||||
|   getIntParameter, |  | ||||||
|   windowProfile, |  | ||||||
|   windowProfileEnd |  | ||||||
| } from '@angular/platform-browser/testing/benchmark_util'; |  | ||||||
| 
 | 
 | ||||||
| export class TreeNode { | export class TreeNode { | ||||||
|   constructor(public value: string, public left: TreeNode, public right: TreeNode) { |   constructor(public value: string, public left: TreeNode, public right: TreeNode) {} | ||||||
|   } |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| let treeCreateCount: number; | let treeCreateCount: number; | ||||||
| @ -29,8 +24,8 @@ function init() { | |||||||
| 
 | 
 | ||||||
| function _buildTree(values: string[], curDepth: number = 0): TreeNode { | function _buildTree(values: string[], curDepth: number = 0): TreeNode { | ||||||
|   if (maxDepth === curDepth) return new TreeNode('', null, null); |   if (maxDepth === curDepth) return new TreeNode('', null, null); | ||||||
|   return new TreeNode(values[curDepth], _buildTree(values, curDepth + 1), |   return new TreeNode( | ||||||
|                       _buildTree(values, curDepth + 1)); |       values[curDepth], _buildTree(values, curDepth + 1), _buildTree(values, curDepth + 1)); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| export function emptyTree(): TreeNode { | export function emptyTree(): TreeNode { | ||||||
|  | |||||||
| @ -4,7 +4,8 @@ import {TreeNode} from '../../app/util'; | |||||||
| // http://jsperf.com/nextsibling-vs-childnodes
 | // http://jsperf.com/nextsibling-vs-childnodes
 | ||||||
| 
 | 
 | ||||||
| const BASELINE_TREE_TEMPLATE = document.createElement('template'); | const BASELINE_TREE_TEMPLATE = document.createElement('template'); | ||||||
| BASELINE_TREE_TEMPLATE.innerHTML = '<span>_<template class="ng-provider"></template><template class="ng-provider"></template></span>'; | BASELINE_TREE_TEMPLATE.innerHTML = | ||||||
|  |     '<span>_<template class="ng-provider"></template><template class="ng-provider"></template></span>'; | ||||||
| const BASELINE_IF_TEMPLATE = document.createElement('template'); | const BASELINE_IF_TEMPLATE = document.createElement('template'); | ||||||
| BASELINE_IF_TEMPLATE.innerHTML = '<span template="if"><tree></tree></span>'; | BASELINE_IF_TEMPLATE.innerHTML = '<span template="if"><tree></tree></span>'; | ||||||
| 
 | 
 | ||||||
| @ -32,9 +33,7 @@ export class BaseLineTreeComponent { | |||||||
| 
 | 
 | ||||||
| export class BaseLineInterpolation { | export class BaseLineInterpolation { | ||||||
|   value: string; |   value: string; | ||||||
|   constructor(public textNode: Node) { |   constructor(public textNode: Node) { this.value = null; } | ||||||
|     this.value = null; |  | ||||||
|   } |  | ||||||
|   update(value: string) { |   update(value: string) { | ||||||
|     if (this.value !== value) { |     if (this.value !== value) { | ||||||
|       this.value = value; |       this.value = value; | ||||||
|  | |||||||
| @ -1,19 +1,16 @@ | |||||||
| import { | import {BrowserDomAdapter} from '@angular/platform-browser/src/browser/browser_adapter'; | ||||||
|   bindAction | import {bindAction} from '@angular/platform-browser/testing/benchmark_util'; | ||||||
| } from '@angular/platform-browser/testing/benchmark_util'; | 
 | ||||||
|  | import {TreeNode, buildTree, emptyTree, profile} from '../app/util'; | ||||||
| 
 | 
 | ||||||
| import {BaseLineTreeComponent} from './app/tree'; | import {BaseLineTreeComponent} from './app/tree'; | ||||||
| import {TreeNode, buildTree, emptyTree, profile} from '../app/util'; |  | ||||||
| import {BrowserDomAdapter} from '@angular/platform-browser/src/browser/browser_adapter'; |  | ||||||
| 
 | 
 | ||||||
| export function main() { | export function main() { | ||||||
|   var app: BaseLineTreeComponent; |   var app: BaseLineTreeComponent; | ||||||
| 
 | 
 | ||||||
|   function destroyDom() { app.update(emptyTree()); } |   function destroyDom() { app.update(emptyTree()); } | ||||||
| 
 | 
 | ||||||
|   function createDom() { |   function createDom() { app.update(buildTree()); } | ||||||
|     app.update(buildTree()); |  | ||||||
|   } |  | ||||||
| 
 | 
 | ||||||
|   function noop() {} |   function noop() {} | ||||||
| 
 | 
 | ||||||
| @ -27,8 +24,7 @@ export function main() { | |||||||
|     bindAction('#createDom', createDom); |     bindAction('#createDom', createDom); | ||||||
| 
 | 
 | ||||||
|     bindAction('#updateDomProfile', profile(createDom, noop, 'baseline-update')); |     bindAction('#updateDomProfile', profile(createDom, noop, 'baseline-update')); | ||||||
|     bindAction('#createDomProfile', |     bindAction('#createDomProfile', profile(createDom, destroyDom, 'baseline-create')); | ||||||
|                profile(createDom, destroyDom, 'baseline-create')); |  | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   init(); |   init(); | ||||||
|  | |||||||
| @ -1,7 +1,4 @@ | |||||||
| import { | import {Component, NgModule} from '@angular/core'; | ||||||
|   Component, |  | ||||||
|   NgModule |  | ||||||
| } from '@angular/core'; |  | ||||||
| import {BrowserModule} from '@angular/platform-browser'; | import {BrowserModule} from '@angular/platform-browser'; | ||||||
| 
 | 
 | ||||||
| import {TreeNode, emptyTree} from '../../app/util'; | import {TreeNode, emptyTree} from '../../app/util'; | ||||||
| @ -16,13 +13,10 @@ class TreeComponent { | |||||||
|   data: TreeNode; |   data: TreeNode; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @Component( | @Component({selector: 'app', template: `<tree [data]='initData'></tree>`}) | ||||||
|     {selector: 'app', template: `<tree [data]='initData'></tree>`}) |  | ||||||
| export class AppComponent { | export class AppComponent { | ||||||
|   initData: TreeNode; |   initData: TreeNode; | ||||||
|   constructor() { |   constructor() { this.initData = emptyTree(); } | ||||||
|     this.initData = emptyTree(); |  | ||||||
|   } |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @NgModule({ | @NgModule({ | ||||||
| @ -30,4 +24,5 @@ export class AppComponent { | |||||||
|   bootstrap: [AppComponent], |   bootstrap: [AppComponent], | ||||||
|   declarations: [TreeComponent, AppComponent] |   declarations: [TreeComponent, AppComponent] | ||||||
| }) | }) | ||||||
| export class AppModule {} | export class AppModule { | ||||||
|  | } | ||||||
|  | |||||||
| @ -1,18 +1,11 @@ | |||||||
| import { | import {NgModule, enableProdMode} from '@angular/core'; | ||||||
|   NgModule, |  | ||||||
|   enableProdMode |  | ||||||
| } from '@angular/core'; |  | ||||||
| 
 |  | ||||||
| import {ApplicationRef} from '@angular/core/src/application_ref'; | import {ApplicationRef} from '@angular/core/src/application_ref'; | ||||||
| import { |  | ||||||
|   bindAction, |  | ||||||
|   windowProfile, |  | ||||||
|   windowProfileEnd |  | ||||||
| } from '@angular/platform-browser/testing/benchmark_util'; |  | ||||||
| import {platformBrowserDynamic} from '@angular/platform-browser-dynamic'; | import {platformBrowserDynamic} from '@angular/platform-browser-dynamic'; | ||||||
|  | import {bindAction, windowProfile, windowProfileEnd} from '@angular/platform-browser/testing/benchmark_util'; | ||||||
|  | 
 | ||||||
|  | import {TreeNode, buildTree, emptyTree, profile} from '../app/util'; | ||||||
| 
 | 
 | ||||||
| import {AppComponent, AppModule} from './app/tree'; | import {AppComponent, AppModule} from './app/tree'; | ||||||
| import {TreeNode, buildTree, emptyTree, profile} from '../app/util'; |  | ||||||
| 
 | 
 | ||||||
| export function main() { | export function main() { | ||||||
|   var app: AppComponent; |   var app: AppComponent; | ||||||
| @ -32,8 +25,7 @@ export function main() { | |||||||
| 
 | 
 | ||||||
|   function init() { |   function init() { | ||||||
|     enableProdMode(); |     enableProdMode(); | ||||||
|     platformBrowserDynamic().bootstrapModule(AppModule) |     platformBrowserDynamic().bootstrapModule(AppModule).then((ref) => { | ||||||
|         .then((ref) => { |  | ||||||
|       var injector = ref.injector; |       var injector = ref.injector; | ||||||
|       appRef = injector.get(ApplicationRef); |       appRef = injector.get(ApplicationRef); | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -11,7 +11,6 @@ | |||||||
|       </template> |       </template> | ||||||
|     </span> |     </span> | ||||||
|   </template> |   </template> | ||||||
| </dom-module> |  | ||||||
|   <script> |   <script> | ||||||
|     Polymer({ |     Polymer({ | ||||||
|       is: 'binary-tree', |       is: 'binary-tree', | ||||||
| @ -22,3 +21,4 @@ | |||||||
|       rightTree: null |       rightTree: null | ||||||
|     }); |     }); | ||||||
|   </script> |   </script> | ||||||
|  | </dom-module> | ||||||
|  | |||||||
| @ -1,7 +1,6 @@ | |||||||
|  | import {bindAction} from '@angular/platform-browser/testing/benchmark_util'; | ||||||
|  | 
 | ||||||
| import {buildTree, emptyTree} from '../app/util'; | import {buildTree, emptyTree} from '../app/util'; | ||||||
| import { |  | ||||||
|   bindAction |  | ||||||
| } from '@angular/platform-browser/testing/benchmark_util'; |  | ||||||
| 
 | 
 | ||||||
| declare var Polymer: any; | declare var Polymer: any; | ||||||
| 
 | 
 | ||||||
| @ -9,13 +8,9 @@ export function main() { | |||||||
|   const rootEl: any = document.querySelector('binary-tree'); |   const rootEl: any = document.querySelector('binary-tree'); | ||||||
|   rootEl.data = emptyTree(); |   rootEl.data = emptyTree(); | ||||||
| 
 | 
 | ||||||
|   function destroyDom() { |   function destroyDom() { rootEl.data = emptyTree(); } | ||||||
|     rootEl.data = emptyTree(); |  | ||||||
|   } |  | ||||||
| 
 | 
 | ||||||
|   function createDom() { |   function createDom() { rootEl.data = buildTree(); } | ||||||
|     rootEl.data = buildTree(); |  | ||||||
|   } |  | ||||||
| 
 | 
 | ||||||
|   bindAction('#destroyDom', destroyDom); |   bindAction('#destroyDom', destroyDom); | ||||||
|   bindAction('#createDom', createDom); |   bindAction('#createDom', createDom); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user