68
68
library angular.app;
69
69
70
70
import 'dart:html' as dom;
71
+ import 'dart:js' show context;
71
72
72
73
import 'package:intl/date_symbol_data_local.dart' ;
73
74
import 'package:di/di.dart' ;
@@ -76,12 +77,12 @@ import 'package:angular/perf/module.dart';
76
77
import 'package:angular/cache/module.dart' ;
77
78
import 'package:angular/cache/js_cache_register.dart' ;
78
79
import 'package:angular/core/module_internal.dart' ;
79
- import 'package:angular/core/registry.dart' ;
80
80
import 'package:angular/core_dom/module_internal.dart' ;
81
81
import 'package:angular/directive/module.dart' ;
82
82
import 'package:angular/formatter/module_internal.dart' ;
83
83
import 'package:angular/routing/module.dart' ;
84
84
import 'package:angular/introspection.dart' ;
85
+ import 'package:angular/wtf.dart' ;
85
86
86
87
import 'package:angular/core_dom/static_keys.dart' ;
87
88
import 'package:angular/core_dom/directive_injector.dart' ;
@@ -129,6 +130,7 @@ class AngularModule extends Module {
129
130
* applicationFactory to bootstrap your Angular application.
130
131
*
131
132
*/
133
+ var _Application_run = traceCreateScope ('Application#run()' );
132
134
abstract class Application {
133
135
static _find (String selector, [dom.Element defaultElement]) {
134
136
var element = dom.document.querySelector (selector);
@@ -150,6 +152,7 @@ abstract class Application {
150
152
dom.Element selector (String selector) => element = _find (selector);
151
153
152
154
Application (): element = _find ('[ng-app]' , dom.window.document.documentElement) {
155
+ traceInit (context);
153
156
modules.add (ngModule);
154
157
ngModule..bind (VmTurnZone , toValue: zone)
155
158
..bind (Application , toValue: this )
@@ -172,26 +175,31 @@ abstract class Application {
172
175
}
173
176
174
177
Injector run () {
175
- publishToJavaScript ();
176
- return zone.run (() {
177
- var rootElements = [element];
178
- Injector injector = createInjector ();
179
- ExceptionHandler exceptionHandler = injector.getByKey (EXCEPTION_HANDLER_KEY );
180
- // Publish cache register interface
181
- injector.getByKey (JS_CACHE_REGISTER_KEY );
182
- initializeDateFormatting (null , null ).then ((_) {
183
- try {
184
- Compiler compiler = injector.getByKey (COMPILER_KEY );
185
- DirectiveMap directiveMap = injector.getByKey (DIRECTIVE_MAP_KEY );
186
- RootScope rootScope = injector.getByKey (ROOT_SCOPE_KEY );
187
- ViewFactory viewFactory = compiler (rootElements, directiveMap);
188
- viewFactory (rootScope, injector.get (DirectiveInjector ), rootElements);
189
- } catch (e, s) {
190
- exceptionHandler (e, s);
191
- }
178
+ var scope = traceEnter (_Application_run );
179
+ try {
180
+ publishToJavaScript ();
181
+ return zone.run (() {
182
+ var rootElements = [element];
183
+ Injector injector = createInjector ();
184
+ ExceptionHandler exceptionHandler = injector.getByKey (EXCEPTION_HANDLER_KEY );
185
+ // Publish cache register interface
186
+ injector.getByKey (JS_CACHE_REGISTER_KEY );
187
+ initializeDateFormatting (null , null ).then ((_) {
188
+ try {
189
+ Compiler compiler = injector.getByKey (COMPILER_KEY );
190
+ DirectiveMap directiveMap = injector.getByKey (DIRECTIVE_MAP_KEY );
191
+ RootScope rootScope = injector.getByKey (ROOT_SCOPE_KEY );
192
+ ViewFactory viewFactory = compiler (rootElements, directiveMap);
193
+ viewFactory (rootScope, injector.get (DirectiveInjector ), rootElements);
194
+ } catch (e, s) {
195
+ exceptionHandler (e, s);
196
+ }
197
+ });
198
+ return injector;
192
199
});
193
- return injector;
194
- });
200
+ } finally {
201
+ traceLeave (scope);
202
+ }
195
203
}
196
204
197
205
/**
0 commit comments