From 58f9f26bb2180b3fcb74710b41a49b2e9005c6c0 Mon Sep 17 00:00:00 2001 From: Rich-Harris Date: Thu, 22 Dec 2016 11:10:55 -0500 Subject: [PATCH] support async functions (#492) --- src/Module.js | 2 +- test/form/async-function-unused/_config.js | 3 +++ test/form/async-function-unused/_expected/amd.js | 9 +++++++++ test/form/async-function-unused/_expected/cjs.js | 7 +++++++ test/form/async-function-unused/_expected/es.js | 5 +++++ test/form/async-function-unused/_expected/iife.js | 10 ++++++++++ test/form/async-function-unused/_expected/umd.js | 13 +++++++++++++ test/form/async-function-unused/main.js | 3 +++ test/form/async-function-unused/utils.js | 7 +++++++ 9 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 test/form/async-function-unused/_config.js create mode 100644 test/form/async-function-unused/_expected/amd.js create mode 100644 test/form/async-function-unused/_expected/cjs.js create mode 100644 test/form/async-function-unused/_expected/es.js create mode 100644 test/form/async-function-unused/_expected/iife.js create mode 100644 test/form/async-function-unused/_expected/umd.js create mode 100644 test/form/async-function-unused/main.js create mode 100644 test/form/async-function-unused/utils.js diff --git a/src/Module.js b/src/Module.js index bae304f..71db738 100644 --- a/src/Module.js +++ b/src/Module.js @@ -16,7 +16,7 @@ import ModuleScope from './ast/scopes/ModuleScope.js'; function tryParse ( code, comments, acornOptions, id ) { try { return parse( code, assign({ - ecmaVersion: 7, + ecmaVersion: 8, sourceType: 'module', onComment: ( block, text, start, end ) => comments.push({ block, text, start, end }), preserveParens: false diff --git a/test/form/async-function-unused/_config.js b/test/form/async-function-unused/_config.js new file mode 100644 index 0000000..7a2ae9d --- /dev/null +++ b/test/form/async-function-unused/_config.js @@ -0,0 +1,3 @@ +module.exports = { + description: 'treeshakes async functions (#492)' +}; diff --git a/test/form/async-function-unused/_expected/amd.js b/test/form/async-function-unused/_expected/amd.js new file mode 100644 index 0000000..2726053 --- /dev/null +++ b/test/form/async-function-unused/_expected/amd.js @@ -0,0 +1,9 @@ +define(function () { 'use strict'; + + async function foo () { + return 'foo'; + } + + foo().then( value => console.log( value ) ); + +}); diff --git a/test/form/async-function-unused/_expected/cjs.js b/test/form/async-function-unused/_expected/cjs.js new file mode 100644 index 0000000..7da9247 --- /dev/null +++ b/test/form/async-function-unused/_expected/cjs.js @@ -0,0 +1,7 @@ +'use strict'; + +async function foo () { + return 'foo'; +} + +foo().then( value => console.log( value ) ); diff --git a/test/form/async-function-unused/_expected/es.js b/test/form/async-function-unused/_expected/es.js new file mode 100644 index 0000000..f8107f9 --- /dev/null +++ b/test/form/async-function-unused/_expected/es.js @@ -0,0 +1,5 @@ +async function foo () { + return 'foo'; +} + +foo().then( value => console.log( value ) ); diff --git a/test/form/async-function-unused/_expected/iife.js b/test/form/async-function-unused/_expected/iife.js new file mode 100644 index 0000000..c61e87e --- /dev/null +++ b/test/form/async-function-unused/_expected/iife.js @@ -0,0 +1,10 @@ +(function () { + 'use strict'; + + async function foo () { + return 'foo'; + } + + foo().then( value => console.log( value ) ); + +}()); diff --git a/test/form/async-function-unused/_expected/umd.js b/test/form/async-function-unused/_expected/umd.js new file mode 100644 index 0000000..0be18ef --- /dev/null +++ b/test/form/async-function-unused/_expected/umd.js @@ -0,0 +1,13 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory() : + typeof define === 'function' && define.amd ? define(factory) : + (factory()); +}(this, (function () { 'use strict'; + + async function foo () { + return 'foo'; + } + + foo().then( value => console.log( value ) ); + +}))); diff --git a/test/form/async-function-unused/main.js b/test/form/async-function-unused/main.js new file mode 100644 index 0000000..e9c0b0a --- /dev/null +++ b/test/form/async-function-unused/main.js @@ -0,0 +1,3 @@ +import { foo } from './utils.js'; + +foo().then( value => console.log( value ) ); diff --git a/test/form/async-function-unused/utils.js b/test/form/async-function-unused/utils.js new file mode 100644 index 0000000..5f2ecc7 --- /dev/null +++ b/test/form/async-function-unused/utils.js @@ -0,0 +1,7 @@ +export async function foo () { + return 'foo'; +} + +export async function bar () { + return 'bar'; +}