78 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
| library angular2.benchmark.transform.directive_linker.simple;
 | |
| 
 | |
| import 'dart:async';
 | |
| import 'package:angular2/src/transform/common/options.dart';
 | |
| import 'package:angular2/src/transform/directive_linker/transformer.dart';
 | |
| import 'package:barback/barback.dart';
 | |
| import 'package:code_transformers/benchmarks.dart';
 | |
| import 'package:unittest/unittest.dart';
 | |
| 
 | |
| Future main() => runBenchmark();
 | |
| 
 | |
| allTests() {
 | |
|   test('Directive Linker Benchmark Runs', runBenchmark);
 | |
| }
 | |
| 
 | |
| Future<double> runBenchmark() async {
 | |
|   var files = {
 | |
|     new AssetId('a', 'a.ng_deps.dart'): aContents,
 | |
|     new AssetId('a', 'b.ng_deps.dart'): bContents,
 | |
|     new AssetId('a', 'c.ng_deps.dart'): cContents,
 | |
|   };
 | |
|   return new TransformerBenchmark([[new DirectiveLinker()]], files).measure();
 | |
| }
 | |
| 
 | |
| const aContents = '''
 | |
| library a.ng_deps.dart;
 | |
| 
 | |
| import 'package:angular2/src/core/application.dart';
 | |
| import 'package:angular2/src/reflection/reflection_capabilities.dart';
 | |
| import 'b.dart';
 | |
| 
 | |
| bool _visited = false;
 | |
| void initReflector(reflector) {
 | |
|   if (_visited) return;
 | |
|   _visited = true;
 | |
| }''';
 | |
| 
 | |
| const bContents = '''
 | |
| library b.ng_deps.dart;
 | |
| 
 | |
| import 'b.dart';
 | |
| import 'package:angular2/src/core/annotations/annotations.dart';
 | |
| 
 | |
| bool _visited = false;
 | |
| void initReflector(reflector) {
 | |
|   if (_visited) return;
 | |
|   _visited = true;
 | |
|   reflector
 | |
|     ..registerType(DependencyComponent, {
 | |
|       'factory': () => new DependencyComponent(),
 | |
|       'parameters': const [],
 | |
|       'annotations': const [const Component(selector: '[salad]')]
 | |
|     });
 | |
| }
 | |
| ''';
 | |
| 
 | |
| const cContents = '''
 | |
| library c.ng_deps.dart;
 | |
| 
 | |
| import 'c.dart';
 | |
| import 'package:angular2/src/core/annotations/annotations.dart';
 | |
| import 'b.dart' as dep;
 | |
| 
 | |
| bool _visited = false;
 | |
| void initReflector(reflector) {
 | |
|   if (_visited) return;
 | |
|   _visited = true;
 | |
|   reflector
 | |
|     ..registerType(MyComponent, {
 | |
|       'factory': () => new MyComponent(),
 | |
|       'parameters': const [],
 | |
|       'annotations': const [
 | |
|         const Component(
 | |
|             selector: '[soup]', services: const [dep.DependencyComponent])
 | |
|       ]
 | |
|     });
 | |
| }''';
 |