@@ -16,11 +16,24 @@ export "package:angular2/src/platform/browser_common.dart"
1616 DOCUMENT,
1717 enableDebugTools,
1818 disableDebugTools;
19- import "package:angular2/src/facade/lang.dart" show Type, isPresent;
19+ import "package:angular2/src/facade/lang.dart" show Type, isPresent, isBlank ;
2020import "package:angular2/src/platform/browser_common.dart"
21- show BROWSER_PROVIDERS, BROWSER_APP_COMMON_PROVIDERS;
21+ show
22+ BROWSER_PROVIDERS,
23+ BROWSER_APP_COMMON_PROVIDERS,
24+ BROWSER_PLATFORM_MARKER;
2225import "package:angular2/compiler.dart" show COMPILER_PROVIDERS;
23- import "package:angular2/core.dart" show ComponentRef, platform, reflector;
26+ import "package:angular2/core.dart"
27+ show
28+ ComponentRef,
29+ coreLoadAndBootstrap,
30+ reflector,
31+ ReflectiveInjector,
32+ PlatformRef,
33+ OpaqueToken,
34+ getPlatform,
35+ createPlatform,
36+ assertPlatform;
2437import "package:angular2/src/core/reflection/reflection_capabilities.dart"
2538 show ReflectionCapabilities;
2639import "package:angular2/src/platform/browser/xhr_impl.dart" show XHRImpl;
@@ -35,6 +48,13 @@ const List<dynamic> BROWSER_APP_PROVIDERS = const [
3548 COMPILER_PROVIDERS ,
3649 const Provider (XHR , useClass: XHRImpl )
3750];
51+ PlatformRef browserPlatform () {
52+ if (isBlank (getPlatform ())) {
53+ createPlatform (ReflectiveInjector .resolveAndCreate (BROWSER_PROVIDERS ));
54+ }
55+ return assertPlatform (BROWSER_PLATFORM_MARKER );
56+ }
57+
3858/**
3959 * Bootstrapping for Angular applications.
4060 *
@@ -106,10 +126,9 @@ const List<dynamic> BROWSER_APP_PROVIDERS = const [
106126Future <ComponentRef > bootstrap (Type appComponentType,
107127 [List <dynamic > customProviders]) {
108128 reflector.reflectionCapabilities = new ReflectionCapabilities ();
109- var appProviders = isPresent (customProviders)
110- ? [BROWSER_APP_PROVIDERS , customProviders]
111- : BROWSER_APP_PROVIDERS ;
112- return platform (BROWSER_PROVIDERS )
113- .application (appProviders)
114- .bootstrap (appComponentType);
129+ var appInjector = ReflectiveInjector .resolveAndCreate ([
130+ BROWSER_APP_PROVIDERS ,
131+ isPresent (customProviders) ? customProviders : []
132+ ], browserPlatform ().injector);
133+ return coreLoadAndBootstrap (appInjector, appComponentType);
115134}
0 commit comments