@@ -6,26 +6,21 @@ import {ReactNativeWrapperImpl} from "./../wrapper/wrapper_impl";
6
6
//Dependencies
7
7
import "reflect-metadata" ;
8
8
9
- //Zone.js, patching RN's polyfill of XMLHttpRequest is needed to make it compatible with Zone.js
10
- var onreadystatechangeGetter = function ( ) { return this . _onreadystatechange ; } ;
11
- var onreadystatechangeSetter = function ( v : any ) { this . _onreadystatechange = v ; } ;
12
- Object . defineProperty ( XMLHttpRequest . prototype , 'onreadystatechange' , {
13
- get : onreadystatechangeGetter ,
14
- set : onreadystatechangeSetter ,
15
- configurable : true
16
- } ) ;
9
+ //Zone.js, working around some patches
10
+ if ( ! global . hasOwnProperty ) {
11
+ global . hasOwnProperty = ( ) => false ;
12
+ }
13
+ var oldSend = XMLHttpRequest . prototype . send ;
17
14
require ( "zone.js/dist/zone.js" ) ;
18
- Object . defineProperty ( XMLHttpRequest . prototype , 'onreadystatechange' , {
19
- get : onreadystatechangeGetter ,
20
- } ) ;
15
+ require ( "zone.js/dist/long-stack-trace-zone.js" )
16
+ XMLHttpRequest . prototype . send = oldSend ;
21
17
22
18
// Finally, define the bootstrap
23
- import { RootRenderer , NgZone , enableProdMode , NgModuleRef , Sanitizer , ErrorHandler } from "@angular/core" ;
19
+ import { RendererFactory2 , NgZone , enableProdMode , NgModuleRef , Sanitizer , ErrorHandler } from "@angular/core" ;
24
20
import { platformBrowser } from '@angular/platform-browser' ;
25
- import { ElementSchemaRegistry } from "@angular/compiler" ;
21
+ import { DomElementSchemaRegistry } from "@angular/compiler" ;
26
22
import {
27
23
ReactNativeRootRenderer ,
28
- ReactNativeRootRenderer_ ,
29
24
ReactNativeElementSchemaRegistry ,
30
25
ReactNativeSanitizer ,
31
26
REACT_NATIVE_WRAPPER
@@ -39,19 +34,19 @@ export function bootstrapReactNativeAOT(appName:string, factory: any, customProv
39
34
[ ReactNativeWrapperImpl ] ,
40
35
{ provide : REACT_NATIVE_WRAPPER , useExisting : ReactNativeWrapperImpl } ,
41
36
[ ReactNativeElementSchemaRegistry ] ,
42
- { provide : ElementSchemaRegistry , useExisting : ReactNativeElementSchemaRegistry } ,
37
+ { provide : DomElementSchemaRegistry , useExisting : ReactNativeElementSchemaRegistry } ,
43
38
ReactNativeSanitizer ,
44
39
{ provide : Sanitizer , useExisting : ReactNativeSanitizer } ,
45
- { provide : ReactNativeRootRenderer , useClass : ReactNativeRootRenderer_ } ,
46
- { provide : RootRenderer , useExisting : ReactNativeRootRenderer }
40
+ [ ReactNativeRootRenderer ] ,
41
+ { provide : RendererFactory2 , useExisting : ReactNativeRootRenderer }
47
42
] . concat ( customProviders || [ ] ) ) .
48
43
bootstrapModuleFactory ( factory ) .
49
44
then ( ( ngModuleRef : NgModuleRef < any > ) => {
50
45
var zone : NgZone = ngModuleRef . injector . get ( NgZone ) ;
51
- var rootRenderer = ngModuleRef . injector . get ( RootRenderer ) ;
52
- rootRenderer . zone = zone ;
53
- rootRenderer . executeCommands ( ) ;
54
- zone . onStable . subscribe ( ( ) => { rootRenderer . executeCommands ( ) ; } ) ;
46
+ var rendererFactory = ngModuleRef . injector . get ( RendererFactory2 ) ;
47
+ rendererFactory . zone = zone ;
48
+ rendererFactory . executeCommands ( ) ;
49
+ zone . onStable . subscribe ( ( ) => { rendererFactory . executeCommands ( ) ; } ) ;
55
50
ngModuleRef . injector . get ( ReactNativeWrapperImpl ) . patchReactNativeWithZone ( zone ) ;
56
51
} ) ;
57
52
} ) ;
0 commit comments