GitHub

Original file line numberDiff line numberDiff line change

@@ -26,7 +26,7 @@

2626

"cheerio": "0.20.0",

2727

"color-logger": "0.0.3",

2828

"escape-html": "1.0.3",

29-

"babylon": "6.11.2",

29+

"babylon": "6.14.1",

3030

"babel-generator": "6.11.4",

3131

"babel-traverse": "6.12.0",

3232

"fs-extra": "0.30.0",

Original file line numberDiff line numberDiff line change

@@ -69,6 +69,7 @@ export default class ESParser {

6969

if (experimental.asyncGenerators) option.plugins.push('asyncGenerators');

7070

if (experimental.decorators) option.plugins.push('decorators');

7171

if (experimental.exportExtensions) option.plugins.push('exportExtensions');

72+

if (experimental.dynamicImport) option.plugins.push('dynamicImport');

7273

}

7374
7475

return option;

Original file line numberDiff line numberDiff line change

@@ -37,6 +37,7 @@

3737

* @property {boolean} experimentalProposal.asyncGenerators

3838

* @property {boolean} experimentalProposal.decorators

3939

* @property {boolean} experimentalProposal.exportExtensions

40+

* @property {boolean} experimentalProposal.dynamicImport

4041

* @see https://esdoc.org/config.html

4142

*/

4243
Original file line numberDiff line numberDiff line change

@@ -0,0 +1,5 @@

1+

for (let i = 0; i < 10; i++) {

2+

import(`mod${$i}.js`)

3+

.then(module => console.log(module))

4+

.catch(err => console.log(err));

5+

}

Original file line numberDiff line numberDiff line change

@@ -27,4 +27,9 @@ describe('ESParser', ()=>{

2727

const ast = ESParser.parse({experimentalProposal: {exportExtensions: true}}, './test/fixture/syntax/ExportExtensions.js');

2828

assert(ast.program.sourceType === 'module');

2929

});

30+
31+

it('can parse "dynamic import"', ()=>{

32+

const ast = ESParser.parse({experimentalProposal: {dynamicImport: true}}, './test/fixture/syntax/DynamicImport.js');

33+

assert(ast.program.sourceType === 'module');

34+

});

3035

});

Read the original on github.com ↗