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])
 | 
						|
      ]
 | 
						|
    });
 | 
						|
}''';
 |