@@ -20,35 +20,39 @@ let segmentLoaders = new Map();
20
20
* its module. We cache load promises so as to avoid calling `fetchSegment` twice
21
21
* for the same bundle. We assume that once a segment is fetched/loaded, it is
22
22
* never gettting removed during this instance of the JavaScript VM.
23
+ *
24
+ * We don't use async/await syntax to avoid depending on `regeneratorRuntime`.
23
25
*/
24
- async function loadForModule ( moduleID : number ) : Promise < void > {
25
- const { segmentId} = ( require : $FlowFixMe ) . unpackModuleId ( moduleID ) ;
26
- if ( segmentId === 0 ) {
27
- return;
28
- }
29
- let segmentLoader = segmentLoaders . get ( segmentId ) ;
30
- if ( segmentLoader != null ) {
31
- return await segmentLoader;
32
- }
26
+ function loadForModule ( moduleID : number ) : Promise < void > {
27
+ return Promise . resolve ( ) . then ( ( ) => {
28
+ const { segmentId} = ( require : $FlowFixMe ) . unpackModuleId ( moduleID ) ;
29
+ if ( segmentId === 0 ) {
30
+ return ;
31
+ }
32
+ let segmentLoader = segmentLoaders . get ( segmentId ) ;
33
+ if ( segmentLoader != null ) {
34
+ return segmentLoader ;
35
+ }
33
36
34
- const { fetchSegment } = global ;
35
- if ( fetchSegment == null ) {
36
- throw new Error (
37
- 'When bundle splitting is enabled, the `global.fetchSegment` function ' +
38
- 'must be provided to be able to load particular bundle segments.' ,
39
- ) ;
40
- }
41
- segmentLoader = new Promise ( ( resolve , reject ) => {
42
- fetchSegment ( segmentId , error => {
43
- if ( error != null ) {
44
- reject ( error ) ;
45
- return ;
46
- }
47
- resolve ( ) ;
37
+ const { fetchSegment} = global ;
38
+ if ( fetchSegment == null ) {
39
+ throw new Error (
40
+ 'When bundle splitting is enabled, the `global.fetchSegment` function ' +
41
+ 'must be provided to be able to load particular bundle segments.' ,
42
+ ) ;
43
+ }
44
+ segmentLoader = new Promise ( ( resolve , reject ) => {
45
+ fetchSegment ( segmentId , error => {
46
+ if ( error != null ) {
47
+ reject ( error ) ;
48
+ return ;
49
+ }
50
+ resolve ( ) ;
51
+ } ) ;
48
52
} ) ;
53
+ segmentLoaders . set ( segmentId , segmentLoader ) ;
54
+ return segmentLoader ;
49
55
} ) ;
50
- segmentLoaders . set ( segmentId , segmentLoader ) ;
51
- return await segmentLoader ;
52
56
}
53
57
54
58
module . exports = { loadForModule} ;
0 commit comments