mirror of
https://github.com/swc-project/swc.git
synced 2024-11-23 17:54:15 +03:00
feat(es/compat): Implement loose mode for async_to_generator
(#3870)
This commit is contained in:
parent
18658fd501
commit
c7f2bdb813
@ -229,7 +229,12 @@ impl<'a, 'b, P: swc_ecma_visit::Fold> PassBuilder<'a, 'b, P> {
|
||||
should_enable(self.target, EsVersion::Es2018)
|
||||
),
|
||||
Optional::new(
|
||||
compat::es2017(),
|
||||
compat::es2017(compat::es2017::Config {
|
||||
async_to_generator: compat::es2017::async_to_generator::Config {
|
||||
ignore_function_name: assumptions.ignore_function_name,
|
||||
ignore_function_length: assumptions.ignore_function_length
|
||||
}
|
||||
}),
|
||||
should_enable(self.target, EsVersion::Es2017)
|
||||
),
|
||||
Optional::new(
|
||||
|
@ -8,23 +8,18 @@ var _regeneratorRuntime = swcHelpers.interopRequireDefault(require("regenerator-
|
||||
var _react = swcHelpers.interopRequireDefault(require("react"));
|
||||
function Foo() {
|
||||
return(/*#__PURE__*/ _react.default.createElement("div", {
|
||||
onClick: function() {
|
||||
var _ref = swcHelpers.asyncToGenerator(_regeneratorRuntime.default.mark(function _callee(e) {
|
||||
return _regeneratorRuntime.default.wrap(function _callee$(_ctx) {
|
||||
while(1)switch(_ctx.prev = _ctx.next){
|
||||
case 0:
|
||||
_ctx.next = 2;
|
||||
return doSomething();
|
||||
case 2:
|
||||
case "end":
|
||||
return _ctx.stop();
|
||||
}
|
||||
}, _callee);
|
||||
}));
|
||||
return function(e) {
|
||||
return _ref.apply(this, arguments);
|
||||
};
|
||||
}()
|
||||
onClick: swcHelpers.asyncToGenerator(_regeneratorRuntime.default.mark(function _callee(e) {
|
||||
return _regeneratorRuntime.default.wrap(function _callee$(_ctx) {
|
||||
while(1)switch(_ctx.prev = _ctx.next){
|
||||
case 0:
|
||||
_ctx.next = 2;
|
||||
return doSomething();
|
||||
case 2:
|
||||
case "end":
|
||||
return _ctx.stop();
|
||||
}
|
||||
}, _callee);
|
||||
}))
|
||||
}));
|
||||
}
|
||||
Foo.displayName = "Foo";
|
||||
|
@ -7,14 +7,9 @@ var swcHelpers = require("@swc/helpers");
|
||||
var _react = swcHelpers.interopRequireDefault(require("react"));
|
||||
function Foo() {
|
||||
return(/*#__PURE__*/ _react.default.createElement("div", {
|
||||
onClick: function() {
|
||||
var _ref = swcHelpers.asyncToGenerator(function*(e) {
|
||||
yield doSomething();
|
||||
});
|
||||
return function(e) {
|
||||
return _ref.apply(this, arguments);
|
||||
};
|
||||
}()
|
||||
onClick: swcHelpers.asyncToGenerator(function*(e) {
|
||||
yield doSomething();
|
||||
})
|
||||
}));
|
||||
}
|
||||
Foo.displayName = "Foo";
|
||||
|
@ -7,14 +7,9 @@ var swcHelpers = require("@swc/helpers");
|
||||
var _react = swcHelpers.interopRequireDefault(require("react"));
|
||||
function Foo() {
|
||||
return(/*#__PURE__*/ _react.default.createElement("div", {
|
||||
onClick: function() {
|
||||
var _ref = swcHelpers.asyncToGenerator(function*(e) {
|
||||
yield doSomething();
|
||||
});
|
||||
return function(e) {
|
||||
return _ref.apply(this, arguments);
|
||||
};
|
||||
}()
|
||||
onClick: swcHelpers.asyncToGenerator(function*(e) {
|
||||
yield doSomething();
|
||||
})
|
||||
}));
|
||||
}
|
||||
Foo.displayName = "Foo";
|
||||
|
@ -7,22 +7,17 @@ var swcHelpers = require("@swc/helpers");
|
||||
var _regeneratorRuntime = swcHelpers.interopRequireDefault(require("regenerator-runtime"));
|
||||
var _react = swcHelpers.interopRequireDefault(require("react"));
|
||||
function Foo() {
|
||||
return call(function() {
|
||||
var _ref = swcHelpers.asyncToGenerator(_regeneratorRuntime.default.mark(function _callee(e) {
|
||||
return _regeneratorRuntime.default.wrap(function _callee$(_ctx) {
|
||||
while(1)switch(_ctx.prev = _ctx.next){
|
||||
case 0:
|
||||
_ctx.next = 2;
|
||||
return doSomething();
|
||||
case 2:
|
||||
case "end":
|
||||
return _ctx.stop();
|
||||
}
|
||||
}, _callee);
|
||||
}));
|
||||
return function(e) {
|
||||
return _ref.apply(this, arguments);
|
||||
};
|
||||
}());
|
||||
return call(swcHelpers.asyncToGenerator(_regeneratorRuntime.default.mark(function _callee(e) {
|
||||
return _regeneratorRuntime.default.wrap(function _callee$(_ctx) {
|
||||
while(1)switch(_ctx.prev = _ctx.next){
|
||||
case 0:
|
||||
_ctx.next = 2;
|
||||
return doSomething();
|
||||
case 2:
|
||||
case "end":
|
||||
return _ctx.stop();
|
||||
}
|
||||
}, _callee);
|
||||
})));
|
||||
}
|
||||
Foo.displayName = "Foo";
|
||||
|
@ -148,7 +148,14 @@ where
|
||||
);
|
||||
|
||||
// ES2017
|
||||
let pass = add!(pass, AsyncToGenerator, es2017::async_to_generator());
|
||||
let pass = add!(
|
||||
pass,
|
||||
AsyncToGenerator,
|
||||
es2017::async_to_generator(es2017::async_to_generator::Config {
|
||||
ignore_function_name: loose || assumptions.ignore_function_name,
|
||||
ignore_function_length: loose || assumptions.ignore_function_length,
|
||||
})
|
||||
);
|
||||
|
||||
// ES2016
|
||||
let pass = add!(pass, ExponentiationOperator, es2016::exponentation());
|
||||
|
@ -29,6 +29,9 @@ pub struct Assumptions {
|
||||
#[serde(default)]
|
||||
pub ignore_function_length: bool,
|
||||
|
||||
#[serde(default)]
|
||||
pub ignore_function_name: bool,
|
||||
|
||||
/// https://babeljs.io/docs/en/assumptions#ignoretoprimitivehint
|
||||
#[serde(default)]
|
||||
pub ignore_to_primitive_hint: bool,
|
||||
@ -105,6 +108,7 @@ impl Assumptions {
|
||||
constant_super: true,
|
||||
enumerable_module_meta: true,
|
||||
ignore_function_length: true,
|
||||
ignore_function_name: true,
|
||||
ignore_to_primitive_hint: true,
|
||||
iterable_is_array: true,
|
||||
mutable_template_object: true,
|
||||
|
@ -1,5 +1,6 @@
|
||||
use std::iter;
|
||||
|
||||
use serde::Deserialize;
|
||||
use swc_common::{util::take::Take, Spanned, DUMMY_SP};
|
||||
use swc_ecma_ast::*;
|
||||
use swc_ecma_transforms_base::{helper, perf::Check};
|
||||
@ -35,14 +36,27 @@ use swc_trace_macro::swc_trace;
|
||||
/// });
|
||||
/// ```
|
||||
#[tracing::instrument(level = "trace", skip_all)]
|
||||
pub fn async_to_generator() -> impl Fold + VisitMut {
|
||||
as_folder(AsyncToGenerator)
|
||||
pub fn async_to_generator(c: Config) -> impl Fold + VisitMut {
|
||||
as_folder(AsyncToGenerator { c })
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Copy, Default, Deserialize)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct Config {
|
||||
#[serde(default)]
|
||||
pub ignore_function_name: bool,
|
||||
#[serde(default)]
|
||||
pub ignore_function_length: bool,
|
||||
}
|
||||
|
||||
#[derive(Default, Clone)]
|
||||
struct AsyncToGenerator;
|
||||
struct AsyncToGenerator {
|
||||
c: Config,
|
||||
}
|
||||
|
||||
struct Actual {
|
||||
c: Config,
|
||||
|
||||
extra_stmts: Vec<Stmt>,
|
||||
hoist_stmts: Vec<Stmt>,
|
||||
}
|
||||
@ -72,6 +86,7 @@ impl AsyncToGenerator {
|
||||
|
||||
for mut stmt in stmts.drain(..) {
|
||||
let mut actual = Actual {
|
||||
c: self.c,
|
||||
extra_stmts: vec![],
|
||||
hoist_stmts: vec![],
|
||||
};
|
||||
@ -149,6 +164,8 @@ impl VisitMut for Actual {
|
||||
}
|
||||
|
||||
let mut wrapper = FunctionWrapper::from(f.take());
|
||||
wrapper.ignore_function_name = self.c.ignore_function_name;
|
||||
wrapper.ignore_function_length = self.c.ignore_function_length;
|
||||
|
||||
let fn_expr = wrapper.function.fn_expr().unwrap();
|
||||
|
||||
@ -166,6 +183,8 @@ impl VisitMut for Actual {
|
||||
if let DefaultDecl::Fn(expr) = &mut export_default.decl {
|
||||
if expr.function.is_async {
|
||||
let mut wrapper = FunctionWrapper::from(expr.take());
|
||||
wrapper.ignore_function_name = self.c.ignore_function_name;
|
||||
wrapper.ignore_function_length = self.c.ignore_function_length;
|
||||
|
||||
let fn_expr = wrapper.function.fn_expr().unwrap();
|
||||
|
||||
@ -295,6 +314,8 @@ impl Actual {
|
||||
self.hoist_stmts.extend(state.to_stmt());
|
||||
|
||||
let mut wrapper = FunctionWrapper::from(arrow_expr.take());
|
||||
wrapper.ignore_function_name = self.c.ignore_function_name;
|
||||
wrapper.ignore_function_length = self.c.ignore_function_length;
|
||||
wrapper.binding_ident = binding_ident;
|
||||
|
||||
let fn_expr = wrapper.function.expect_fn_expr();
|
||||
@ -310,6 +331,8 @@ impl Actual {
|
||||
},
|
||||
) => {
|
||||
let mut wrapper = FunctionWrapper::from(fn_expr.take());
|
||||
wrapper.ignore_function_name = self.c.ignore_function_name;
|
||||
wrapper.ignore_function_length = self.c.ignore_function_length;
|
||||
wrapper.binding_ident = binding_ident;
|
||||
|
||||
let fn_expr = wrapper.function.expect_fn_expr();
|
||||
|
@ -1,10 +1,17 @@
|
||||
use serde::Deserialize;
|
||||
use swc_ecma_visit::Fold;
|
||||
|
||||
pub use self::async_to_generator::async_to_generator;
|
||||
|
||||
mod async_to_generator;
|
||||
pub mod async_to_generator;
|
||||
|
||||
#[tracing::instrument(level = "trace", skip_all)]
|
||||
pub fn es2017() -> impl Fold {
|
||||
async_to_generator()
|
||||
pub fn es2017(c: Config) -> impl Fold {
|
||||
async_to_generator(c.async_to_generator)
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Copy, Default, Deserialize)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct Config {
|
||||
pub async_to_generator: async_to_generator::Config,
|
||||
}
|
||||
|
@ -495,7 +495,7 @@ test!(
|
||||
|Tester { comments, .. }| {
|
||||
let mark = Mark::fresh(Mark::root());
|
||||
chain!(
|
||||
async_to_generator(),
|
||||
async_to_generator(Default::default()),
|
||||
es2015::es2015(
|
||||
mark,
|
||||
Some(comments.clone()),
|
||||
@ -570,7 +570,7 @@ test_exec!(
|
||||
|Tester { comments, .. }| {
|
||||
let mark = Mark::fresh(Mark::root());
|
||||
chain!(
|
||||
async_to_generator(),
|
||||
async_to_generator(Default::default()),
|
||||
es2015::es2015(
|
||||
mark,
|
||||
Some(comments.clone()),
|
||||
|
@ -6551,7 +6551,7 @@ test!(
|
||||
chain!(
|
||||
es2022::es2022(Default::default()),
|
||||
es2018::es2018(Default::default()),
|
||||
es2017::es2017(),
|
||||
es2017::es2017(Default::default()),
|
||||
es2016::es2016(),
|
||||
es2015::es2015(
|
||||
global_mark,
|
||||
|
@ -1554,7 +1554,7 @@ test!(
|
||||
ignore,
|
||||
syntax(),
|
||||
|_| chain!(
|
||||
async_to_generator(),
|
||||
async_to_generator(Default::default()),
|
||||
arrow(),
|
||||
parameters(Default::default()),
|
||||
),
|
||||
@ -1585,7 +1585,7 @@ test!(
|
||||
ignore,
|
||||
syntax(),
|
||||
|_| chain!(
|
||||
async_to_generator(),
|
||||
async_to_generator(Default::default()),
|
||||
arrow(),
|
||||
parameters(Default::default()),
|
||||
),
|
||||
|
@ -930,7 +930,7 @@ expect(v.next()).toEqual({ done: true });
|
||||
test_exec!(
|
||||
syntax(),
|
||||
|t| chain!(
|
||||
es2017(),
|
||||
es2017(Default::default()),
|
||||
es2016(),
|
||||
es2015(
|
||||
Mark::fresh(Mark::root()),
|
||||
@ -949,7 +949,7 @@ test_exec!(
|
||||
test_exec!(
|
||||
syntax(),
|
||||
|_| chain!(
|
||||
async_to_generator(),
|
||||
async_to_generator(Default::default()),
|
||||
es2015::for_of(Default::default()),
|
||||
es2015::regenerator(Default::default(), Mark::fresh(Mark::root())),
|
||||
),
|
||||
@ -1074,7 +1074,7 @@ expect(v.next()).toEqual({ done: false, value: 'Error'});
|
||||
|
||||
test_exec!(
|
||||
Syntax::default(),
|
||||
|_| chain!(async_to_generator(), tr(())),
|
||||
|_| chain!(async_to_generator(Default::default()), tr(())),
|
||||
issue_1036_1,
|
||||
"
|
||||
const x = async function() {
|
||||
@ -1157,7 +1157,7 @@ test_exec!(
|
||||
|
||||
test_exec!(
|
||||
Syntax::default(),
|
||||
|_| chain!(async_to_generator(), tr(())),
|
||||
|_| chain!(async_to_generator(Default::default()), tr(())),
|
||||
issue_1125_1,
|
||||
"
|
||||
async function test() {
|
||||
@ -1205,7 +1205,7 @@ function foo() {
|
||||
|
||||
test_exec!(
|
||||
Syntax::default(),
|
||||
|_| chain!(async_to_generator(), tr(())),
|
||||
|_| chain!(async_to_generator(Default::default()), tr(())),
|
||||
hoist_function_in_async_issue_2556_2,
|
||||
"
|
||||
async function foo() {
|
||||
@ -1231,7 +1231,7 @@ return foo()
|
||||
|
||||
test!(
|
||||
Syntax::default(),
|
||||
|_| chain!(async_to_generator(), tr(())),
|
||||
|_| chain!(async_to_generator(Default::default()), tr(())),
|
||||
hoist_function_in_async_issue_2556_4,
|
||||
r#"
|
||||
function requester() {
|
||||
@ -1299,7 +1299,7 @@ function requester() {
|
||||
|
||||
test_exec!(
|
||||
Syntax::default(),
|
||||
|_| chain!(async_to_generator(), tr(())),
|
||||
|_| chain!(async_to_generator(Default::default()), tr(())),
|
||||
hoist_function_in_async_issue_2556_5,
|
||||
r#"
|
||||
function requester() {
|
||||
@ -1321,7 +1321,7 @@ function requester() {
|
||||
|
||||
test_exec!(
|
||||
Syntax::default(),
|
||||
|_| chain!(async_to_generator(), tr(())),
|
||||
|_| chain!(async_to_generator(Default::default()), tr(())),
|
||||
issue_2620,
|
||||
r#"
|
||||
async function main() {
|
||||
@ -1377,7 +1377,7 @@ return main().then((results) => {
|
||||
|
||||
test!(
|
||||
Syntax::default(),
|
||||
|_| chain!(async_to_generator(), tr(())),
|
||||
|_| chain!(async_to_generator(Default::default()), tr(())),
|
||||
hoist_function_in_async_issue_2556_6,
|
||||
r#"
|
||||
async function foo(a) {
|
||||
@ -1451,7 +1451,7 @@ foo(1)
|
||||
|
||||
test_exec!(
|
||||
Syntax::default(),
|
||||
|_| chain!(async_to_generator(), tr(())),
|
||||
|_| chain!(async_to_generator(Default::default()), tr(())),
|
||||
hoist_function_in_async_issue_2556_7,
|
||||
r#"
|
||||
async function foo(a) {
|
||||
@ -1472,7 +1472,7 @@ return foo(1)
|
||||
|
||||
test!(
|
||||
Syntax::default(),
|
||||
|_| chain!(async_to_generator(), tr(())),
|
||||
|_| chain!(async_to_generator(Default::default()), tr(())),
|
||||
hoist_function_in_async_issue_2556_8,
|
||||
r#"
|
||||
var fib = function fib() {
|
||||
@ -1709,7 +1709,7 @@ test!(
|
||||
|
||||
test!(
|
||||
Syntax::default(),
|
||||
|_| chain!(async_to_generator(), tr(())),
|
||||
|_| chain!(async_to_generator(Default::default()), tr(())),
|
||||
issue_1799_1,
|
||||
"
|
||||
export default function Foo() {
|
||||
@ -1745,7 +1745,7 @@ test!(
|
||||
|_| {
|
||||
let mark = Mark::fresh(Mark::root());
|
||||
chain!(
|
||||
async_to_generator(),
|
||||
async_to_generator(Default::default()),
|
||||
es2015::<SingleThreadedComments>(mark, None, Default::default())
|
||||
)
|
||||
},
|
||||
@ -1784,7 +1784,7 @@ test!(
|
||||
|_| {
|
||||
let mark = Mark::fresh(Mark::root());
|
||||
chain!(
|
||||
async_to_generator(),
|
||||
async_to_generator(Default::default()),
|
||||
es2016(),
|
||||
es2015::<SingleThreadedComments>(mark, None, Default::default()),
|
||||
)
|
||||
@ -1827,7 +1827,7 @@ test!(
|
||||
es2022(Default::default()),
|
||||
es2021(),
|
||||
es2018(Default::default()),
|
||||
es2017(),
|
||||
es2017(Default::default()),
|
||||
es2016(),
|
||||
es2015::<SingleThreadedComments>(mark, None, Default::default()),
|
||||
)
|
||||
@ -2087,7 +2087,7 @@ test_exec!(
|
||||
|_| {
|
||||
let mark = Mark::fresh(Mark::root());
|
||||
chain!(
|
||||
async_to_generator(),
|
||||
async_to_generator(Default::default()),
|
||||
es2015::for_of(Default::default()),
|
||||
regenerator(Default::default(), mark)
|
||||
)
|
||||
|
@ -45,7 +45,7 @@ fn tr() -> impl Fold {
|
||||
parameters(Default::default()),
|
||||
destructuring(destructuring::Config { loose: false }),
|
||||
function_name(),
|
||||
async_to_generator(),
|
||||
async_to_generator(Default::default()),
|
||||
fixer(None)
|
||||
)
|
||||
}
|
||||
@ -688,7 +688,7 @@ return (new B(20)).print().then(() => console.log('Done'));"
|
||||
|
||||
test_exec!(
|
||||
syntax(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
issue_400_2,
|
||||
"class A {
|
||||
constructor() {
|
||||
@ -719,7 +719,7 @@ return (new B(20)).print().then(() => console.log('Done'));"
|
||||
test_exec!(
|
||||
syntax(),
|
||||
|t| chain!(
|
||||
async_to_generator(),
|
||||
async_to_generator(Default::default()),
|
||||
es2015(
|
||||
Mark::fresh(Mark::root()),
|
||||
Some(t.comments.clone()),
|
||||
@ -743,8 +743,8 @@ return (new A()).print();"
|
||||
//// regression_7178
|
||||
//test!(
|
||||
// syntax(),
|
||||
// |_| chain!(jsx(), jsc_constant_elements(), async_to_generator(),),
|
||||
// regression_7178,
|
||||
// |_| chain!(jsx(), jsc_constant_elements(),
|
||||
// async_to_generator(Default::default()),), regression_7178,
|
||||
// r#"
|
||||
//const title = "Neem contact op";
|
||||
//
|
||||
@ -780,7 +780,7 @@ return (new A()).print();"
|
||||
test!(
|
||||
ignore,
|
||||
syntax(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
bluebird_coroutines_named_expression,
|
||||
r#"
|
||||
var foo = async function bar() {
|
||||
@ -813,7 +813,7 @@ test!(
|
||||
// TODO: Enable this test after implementing es6 module pass.
|
||||
ignore,
|
||||
syntax(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
export_async_lone_export,
|
||||
r#"
|
||||
export async function foo () { }
|
||||
@ -843,7 +843,7 @@ function _foo() {
|
||||
test!(
|
||||
ignore,
|
||||
syntax(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
bluebird_coroutines_arrow_function,
|
||||
r#"
|
||||
(async () => { await foo(); })()
|
||||
@ -866,7 +866,7 @@ test!(
|
||||
// Optimization
|
||||
ignore,
|
||||
syntax(),
|
||||
|_| chain!(async_to_generator(), arrow()),
|
||||
|_| chain!(async_to_generator(Default::default()), arrow()),
|
||||
regression_t7194,
|
||||
r#"
|
||||
function f() {
|
||||
@ -916,7 +916,7 @@ test!(
|
||||
// TODO: Unignore this
|
||||
ignore,
|
||||
syntax(),
|
||||
|_| chain!(resolver(), async_to_generator()),
|
||||
|_| chain!(resolver(), async_to_generator(Default::default())),
|
||||
async_to_generator_shadowed_promise,
|
||||
r#"
|
||||
let Promise;
|
||||
@ -947,7 +947,7 @@ function foo() {
|
||||
// async_to_generator_object_method_with_arrows
|
||||
test!(
|
||||
syntax(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
async_to_generator_object_method_with_arrows,
|
||||
r#"
|
||||
class Class {
|
||||
@ -1013,7 +1013,7 @@ class Class {
|
||||
// async_to_generator_object_method
|
||||
test!(
|
||||
syntax(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
async_to_generator_object_method,
|
||||
r#"
|
||||
let obj = {
|
||||
@ -1043,7 +1043,7 @@ let obj = {
|
||||
test!(
|
||||
ignore,
|
||||
syntax(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
bluebird_coroutines_class,
|
||||
r#"
|
||||
class Foo {
|
||||
@ -1073,7 +1073,7 @@ test!(
|
||||
ignore,
|
||||
syntax(),
|
||||
|_| chain!(
|
||||
async_to_generator(),
|
||||
async_to_generator(Default::default()),
|
||||
//regenerator(),
|
||||
arrow(),
|
||||
),
|
||||
@ -1233,7 +1233,7 @@ regeneratorRuntime.mark(function _callee4() {
|
||||
// async_to_generator_named_expression
|
||||
test!(
|
||||
syntax(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
async_to_generator_named_expression,
|
||||
r#"
|
||||
var foo = async function bar() {
|
||||
@ -1262,8 +1262,8 @@ function () {
|
||||
//// async_to_generator_async_iife_with_regenerator_spec
|
||||
//test!(
|
||||
// syntax(),
|
||||
// |_| chain!(async_to_generator(), arrow(), regenerator(),),
|
||||
// async_to_generator_async_iife_with_regenerator_spec,
|
||||
// |_| chain!(async_to_generator(Default::default()), arrow(),
|
||||
// regenerator(),), async_to_generator_async_iife_with_regenerator_spec,
|
||||
// r#"
|
||||
//(async function() { await 'ok' })();
|
||||
//(async () => { await 'ok' })();
|
||||
@ -1355,7 +1355,7 @@ function () {
|
||||
// async_to_generator_async_arrow_in_method
|
||||
test!(
|
||||
syntax(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
async_to_generator_async_arrow_in_method,
|
||||
r#"
|
||||
let TestClass = {
|
||||
@ -1394,7 +1394,7 @@ let TestClass = {
|
||||
test!(
|
||||
ignore,
|
||||
syntax(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
bluebird_coroutines_statement,
|
||||
r#"
|
||||
async function foo() {
|
||||
@ -1422,7 +1422,7 @@ function foo() {
|
||||
test!(
|
||||
syntax(),
|
||||
|_| chain!(
|
||||
async_to_generator(),
|
||||
async_to_generator(Default::default()),
|
||||
parameters(Default::default()),
|
||||
destructuring(destructuring::Config { loose: false }),
|
||||
),
|
||||
@ -1468,7 +1468,7 @@ test!(
|
||||
// TODO: Enable this test after implementing es6 module pass.
|
||||
ignore,
|
||||
syntax(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
export_async_default_arrow_export,
|
||||
r#"
|
||||
export default async () => { return await foo(); }
|
||||
@ -1496,7 +1496,7 @@ exports.default = _default;
|
||||
// async_to_generator_function_arity
|
||||
test!(
|
||||
syntax(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
async_to_generator_function_arity,
|
||||
r#"
|
||||
async function one(a, b = 1) {}
|
||||
@ -1567,7 +1567,7 @@ function _six() {
|
||||
test!(
|
||||
ignore,
|
||||
syntax(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
async_to_generator_object_method_with_super_caching,
|
||||
r#"
|
||||
class Foo extends class {} {
|
||||
@ -1602,7 +1602,7 @@ test!(
|
||||
// TODO: Enable this test after implementing es6 module pass.
|
||||
ignore,
|
||||
syntax(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
export_async_default_export,
|
||||
r#"
|
||||
export default async function myFunc() {}
|
||||
@ -1631,7 +1631,7 @@ function _myFunc() {
|
||||
// async_to_generator_async
|
||||
test!(
|
||||
syntax(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
async_to_generator_async,
|
||||
r#"
|
||||
class Foo {
|
||||
@ -1657,7 +1657,7 @@ class Foo {
|
||||
// regression_8783
|
||||
test!(
|
||||
syntax(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
regression_8783,
|
||||
r#"
|
||||
(async function poll() {
|
||||
@ -1685,7 +1685,7 @@ test!(
|
||||
// async_to_generator_deeply_nested_asyncs
|
||||
test!(
|
||||
syntax(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
async_to_generator_deeply_nested_asyncs,
|
||||
r#"
|
||||
async function s(x, ...args) {
|
||||
@ -1750,7 +1750,7 @@ test!(
|
||||
// TODO: Enable this test after implementing es6 module pass.
|
||||
ignore,
|
||||
syntax(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
export_async_import_and_export,
|
||||
r#"
|
||||
import bar from 'bar';
|
||||
@ -1785,7 +1785,7 @@ test!(
|
||||
// TODO: Unignore this
|
||||
ignore,
|
||||
syntax(),
|
||||
|_| chain!(resolver(), async_to_generator()),
|
||||
|_| chain!(resolver(), async_to_generator(Default::default())),
|
||||
async_to_generator_shadowed_promise_nested,
|
||||
r#"
|
||||
let Promise;
|
||||
@ -1837,7 +1837,7 @@ function foo() {
|
||||
// regression_4599
|
||||
test!(
|
||||
syntax(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
regression_4599,
|
||||
r#"
|
||||
async () => await promise
|
||||
@ -1862,7 +1862,7 @@ _asyncToGenerator(function* () {
|
||||
// regression_4943_exec
|
||||
test_exec!(
|
||||
syntax(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
regression_4943_exec,
|
||||
r#"
|
||||
"use strict";
|
||||
@ -1885,7 +1885,7 @@ return foo().then(() => {
|
||||
// regression_8783_exec
|
||||
test_exec!(
|
||||
syntax(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
regression_8783_exec,
|
||||
r#"
|
||||
let log = [];
|
||||
@ -1910,7 +1910,7 @@ return main.then(() => {
|
||||
test!(
|
||||
ignore,
|
||||
syntax(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
bluebird_coroutines_expression,
|
||||
r#"
|
||||
var foo = async function () {
|
||||
@ -1939,7 +1939,7 @@ function () {
|
||||
// async_to_generator_expression
|
||||
test!(
|
||||
syntax(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
async_to_generator_expression,
|
||||
r#"
|
||||
var foo = async function () {
|
||||
@ -1996,7 +1996,7 @@ function () {
|
||||
// async_to_generator_statement
|
||||
test!(
|
||||
syntax(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
async_to_generator_statement,
|
||||
r#"
|
||||
async function foo() {
|
||||
@ -2022,7 +2022,7 @@ test!(
|
||||
// TODO: Unignore this
|
||||
ignore,
|
||||
syntax(),
|
||||
|_| chain!(resolver(), async_to_generator()),
|
||||
|_| chain!(resolver(), async_to_generator(Default::default())),
|
||||
async_to_generator_shadowed_promise_import,
|
||||
r#"
|
||||
import Promise from 'somewhere';
|
||||
@ -2052,7 +2052,7 @@ function foo() {
|
||||
// async_to_generator_parameters
|
||||
test!(
|
||||
syntax(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
async_to_generator_parameters,
|
||||
r#"
|
||||
async function foo(bar) {
|
||||
@ -2076,7 +2076,7 @@ function _foo() {
|
||||
// regression_t6882_exec
|
||||
test_exec!(
|
||||
syntax(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
regression_t6882_exec,
|
||||
r#"
|
||||
foo();
|
||||
@ -2089,7 +2089,7 @@ async function foo() {}
|
||||
// async_to_generator_parameters
|
||||
test!(
|
||||
syntax(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
issue_600,
|
||||
r#"
|
||||
async function foo() {
|
||||
@ -2112,7 +2112,7 @@ function _foo() {
|
||||
|
||||
test!(
|
||||
syntax(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
issue_1036_1,
|
||||
"
|
||||
const x = async function() {
|
||||
@ -2155,7 +2155,7 @@ test!(
|
||||
|
||||
test_exec!(
|
||||
syntax(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
issue_1036_2,
|
||||
"
|
||||
const x = async function() {
|
||||
@ -2171,7 +2171,7 @@ test_exec!(
|
||||
|
||||
test!(
|
||||
syntax(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
issue_1216_1,
|
||||
"
|
||||
const source = Math.random() < 2 ? 'matilda' : 'fred';
|
||||
@ -2218,7 +2218,7 @@ test!(
|
||||
|
||||
test!(
|
||||
Syntax::default(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
issue_1125_1,
|
||||
"
|
||||
async function test() {
|
||||
@ -2251,7 +2251,7 @@ test()
|
||||
|
||||
test!(
|
||||
Syntax::default(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
issue_1341_1,
|
||||
"
|
||||
class A {
|
||||
@ -2291,7 +2291,10 @@ test!(
|
||||
|
||||
test_exec!(
|
||||
Syntax::default(),
|
||||
|_| chain!(class_properties(Default::default()), async_to_generator()),
|
||||
|_| chain!(
|
||||
class_properties(Default::default()),
|
||||
async_to_generator(Default::default())
|
||||
),
|
||||
issue_1341_1_exec,
|
||||
"
|
||||
class A {
|
||||
@ -2312,7 +2315,7 @@ test_exec!(
|
||||
|
||||
test!(
|
||||
Syntax::default(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
issue_1341_2,
|
||||
"
|
||||
class A {
|
||||
@ -2344,7 +2347,10 @@ test!(
|
||||
|
||||
test_exec!(
|
||||
Syntax::default(),
|
||||
|_| chain!(class_properties(Default::default()), async_to_generator()),
|
||||
|_| chain!(
|
||||
class_properties(Default::default()),
|
||||
async_to_generator(Default::default())
|
||||
),
|
||||
issue_1341_2_exec,
|
||||
"
|
||||
class A {
|
||||
@ -2361,7 +2367,7 @@ test_exec!(
|
||||
|
||||
test!(
|
||||
Syntax::default(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
issue_1455_1,
|
||||
"
|
||||
const obj = {
|
||||
@ -2404,7 +2410,7 @@ test!(
|
||||
|
||||
test_exec!(
|
||||
Syntax::default(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
issue_1575_1,
|
||||
"
|
||||
const obj = {
|
||||
@ -2421,7 +2427,10 @@ test_exec!(
|
||||
Syntax::default(),
|
||||
|_| {
|
||||
let mark = Mark::fresh(Mark::root());
|
||||
chain!(async_to_generator(), regenerator(Default::default(), mark))
|
||||
chain!(
|
||||
async_to_generator(Default::default()),
|
||||
regenerator(Default::default(), mark)
|
||||
)
|
||||
},
|
||||
issue_1575_2,
|
||||
"
|
||||
@ -2437,7 +2446,7 @@ test_exec!(
|
||||
|
||||
test!(
|
||||
Syntax::default(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
issue_1722_1,
|
||||
"
|
||||
(async function main() {
|
||||
@ -2461,7 +2470,7 @@ test!(
|
||||
|
||||
test!(
|
||||
Syntax::default(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
issue_1721_1,
|
||||
"
|
||||
async function main() {
|
||||
@ -2508,7 +2517,7 @@ test!(
|
||||
|
||||
test!(
|
||||
Syntax::default(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
issue_1721_2_async_generator,
|
||||
"
|
||||
async function* lol() {
|
||||
@ -2532,7 +2541,7 @@ test!(
|
||||
|
||||
test!(
|
||||
Syntax::default(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
issue_1684_1,
|
||||
"
|
||||
const cache = {}
|
||||
@ -2571,7 +2580,7 @@ test!(
|
||||
|_| {
|
||||
let top_level_mark = Mark::fresh(Mark::root());
|
||||
chain!(
|
||||
async_to_generator(),
|
||||
async_to_generator(Default::default()),
|
||||
regenerator(Default::default(), top_level_mark)
|
||||
)
|
||||
},
|
||||
@ -2630,7 +2639,7 @@ test!(
|
||||
|
||||
test_exec!(
|
||||
syntax(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
issue_1752_1,
|
||||
"
|
||||
async function* generate() {
|
||||
@ -2658,7 +2667,7 @@ test_exec!(
|
||||
|
||||
test_exec!(
|
||||
Syntax::default(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
issue_1918_1,
|
||||
"
|
||||
let counter = 0;
|
||||
@ -2698,7 +2707,7 @@ test_exec!(
|
||||
|
||||
test_exec!(
|
||||
Syntax::default(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
issue_2402_1,
|
||||
"
|
||||
function MyClass(item) {
|
||||
@ -2722,7 +2731,7 @@ test!(
|
||||
|_| {
|
||||
let top_level_mark = Mark::fresh(Mark::root());
|
||||
chain!(
|
||||
async_to_generator(),
|
||||
async_to_generator(Default::default()),
|
||||
regenerator(Default::default(), top_level_mark)
|
||||
)
|
||||
},
|
||||
@ -2779,7 +2788,7 @@ tmp.fun().then((res)=>{
|
||||
|
||||
test_exec!(
|
||||
Syntax::default(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
issue_2305_1,
|
||||
"
|
||||
function MyClass () {}
|
||||
@ -2814,7 +2823,7 @@ test!(
|
||||
|_| {
|
||||
let top_level_mark = Mark::fresh(Mark::root());
|
||||
chain!(
|
||||
async_to_generator(),
|
||||
async_to_generator(Default::default()),
|
||||
regenerator(Default::default(), top_level_mark)
|
||||
)
|
||||
},
|
||||
@ -2889,7 +2898,7 @@ test!(
|
||||
|_| {
|
||||
let top_level_mark = Mark::fresh(Mark::root());
|
||||
chain!(
|
||||
async_to_generator(),
|
||||
async_to_generator(Default::default()),
|
||||
regenerator(Default::default(), top_level_mark)
|
||||
)
|
||||
},
|
||||
@ -2967,7 +2976,7 @@ test!(
|
||||
|_| {
|
||||
let top_level_mark = Mark::fresh(Mark::root());
|
||||
chain!(
|
||||
async_to_generator(),
|
||||
async_to_generator(Default::default()),
|
||||
regenerator(Default::default(), top_level_mark)
|
||||
)
|
||||
},
|
||||
@ -3020,7 +3029,7 @@ export default async function() {
|
||||
|
||||
test_exec!(
|
||||
Syntax::default(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
function_parameters,
|
||||
"
|
||||
class A {
|
||||
@ -3043,7 +3052,7 @@ expect(a.doTest()).resolves.toEqual(3);
|
||||
|
||||
test!(
|
||||
Syntax::default(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
function_length_issue_3135_1,
|
||||
r#"
|
||||
async function foo(x, y, ...z) {
|
||||
@ -3065,7 +3074,7 @@ function _foo() {
|
||||
|
||||
test!(
|
||||
Syntax::default(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
function_length_issue_3135_2,
|
||||
r#"
|
||||
async function* foo(x, y, ...z) {
|
||||
@ -3087,7 +3096,7 @@ function _foo() {
|
||||
|
||||
test!(
|
||||
Syntax::default(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
function_length_issue_3135_3,
|
||||
r#"
|
||||
const foo = async function (x, y, ...z) {
|
||||
@ -3108,7 +3117,7 @@ const foo = /*#__PURE__*/ function () {
|
||||
|
||||
test!(
|
||||
Syntax::default(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
function_length_issue_3135_4,
|
||||
r#"
|
||||
const foo = async function* (x, y, ...z) {
|
||||
@ -3129,7 +3138,7 @@ const foo = /*#__PURE__*/ function () {
|
||||
|
||||
test!(
|
||||
Syntax::default(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
function_length_issue_3135_5,
|
||||
r#"
|
||||
const foo = async function foo(x, y, ...z) {
|
||||
@ -3157,7 +3166,7 @@ const foo = function () {
|
||||
|
||||
test!(
|
||||
Syntax::default(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
function_length_issue_3135_6,
|
||||
r#"
|
||||
const foo = async function* foo(x, y, ...z) {
|
||||
@ -3185,7 +3194,7 @@ const foo = function () {
|
||||
|
||||
test!(
|
||||
Syntax::default(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
function_length_issue_3135_7,
|
||||
r#"
|
||||
const foo = async (x, y, ...z) => {
|
||||
@ -3210,7 +3219,7 @@ test!(
|
||||
// TODO: resolve bind issue
|
||||
ignore,
|
||||
Syntax::default(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
async_wrap_this,
|
||||
r#"
|
||||
const foo = async (x, y, ...z) => {
|
||||
@ -3234,7 +3243,7 @@ test!(
|
||||
// TODO: arguments
|
||||
ignore,
|
||||
Syntax::default(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
async_wrap_arguments,
|
||||
r#"
|
||||
function foo() {
|
||||
@ -3264,7 +3273,7 @@ test!(
|
||||
// TODO: super and new.target
|
||||
ignore,
|
||||
Syntax::default(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
async_wrap_super_and_new_target,
|
||||
r#"
|
||||
class Foo {
|
||||
@ -3317,7 +3326,7 @@ class Foo {
|
||||
|
||||
test!(
|
||||
Syntax::default(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
export_default_async_nested_1,
|
||||
"
|
||||
export default async function foo(x) {
|
||||
@ -3349,7 +3358,7 @@ function _foo() {
|
||||
|
||||
test!(
|
||||
Syntax::default(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
export_default_async_nested_2,
|
||||
"
|
||||
export default async function (x) {
|
||||
@ -3388,7 +3397,7 @@ function _ref() {
|
||||
|
||||
test!(
|
||||
Syntax::default(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
async_with_optional_params,
|
||||
"
|
||||
(async function (a = 10, ...rest) {})();
|
||||
@ -3402,7 +3411,7 @@ _asyncToGenerator(function*(a = 10, ...rest) {})();
|
||||
|
||||
test!(
|
||||
Syntax::default(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
issue_2895,
|
||||
"
|
||||
export class Quirk {
|
||||
@ -3432,7 +3441,7 @@ export class Quirk {
|
||||
|
||||
test!(
|
||||
Syntax::default(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
super_field_update,
|
||||
"
|
||||
class Foo {
|
||||
@ -3462,7 +3471,7 @@ class Foo {
|
||||
|
||||
test!(
|
||||
Syntax::default(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
microbundle_835,
|
||||
"
|
||||
class A extends B {
|
||||
@ -3487,7 +3496,7 @@ class A extends B {
|
||||
|
||||
test!(
|
||||
Syntax::default(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
super_update,
|
||||
"
|
||||
class A extends B {
|
||||
@ -3527,7 +3536,7 @@ class A extends B {
|
||||
|
||||
test!(
|
||||
Syntax::default(),
|
||||
|_| async_to_generator(),
|
||||
|_| async_to_generator(Default::default()),
|
||||
async_with_optional_params_2,
|
||||
"
|
||||
const Z = (f) => ((x) => f((y) => x(x)(y)))((x) => f((y) => x(x)(y)));
|
||||
@ -3557,7 +3566,7 @@ fn exec(input: PathBuf) {
|
||||
chain!(
|
||||
resolver(),
|
||||
class_properties(Default::default()),
|
||||
async_to_generator()
|
||||
async_to_generator(Default::default())
|
||||
)
|
||||
},
|
||||
&input,
|
||||
@ -3575,7 +3584,7 @@ fn exec_regenerator(input: PathBuf) {
|
||||
chain!(
|
||||
resolver(),
|
||||
class_properties(Default::default()),
|
||||
async_to_generator(),
|
||||
async_to_generator(Default::default()),
|
||||
es2015::for_of(Default::default()),
|
||||
regenerator(Default::default(), top_level_mark)
|
||||
)
|
||||
|
@ -2877,7 +2877,10 @@ _defineProperty(foo, 'MODE', MODE);"
|
||||
// public_regression_t7364
|
||||
test!(
|
||||
syntax(),
|
||||
|_| chain!(class_properties(Default::default()), async_to_generator()),
|
||||
|_| chain!(
|
||||
class_properties(Default::default()),
|
||||
async_to_generator(Default::default())
|
||||
),
|
||||
public_regression_t7364,
|
||||
r#"
|
||||
class MyClass {
|
||||
@ -3383,7 +3386,7 @@ test!(
|
||||
syntax(),
|
||||
|_| chain!(
|
||||
class_properties(Default::default()),
|
||||
async_to_generator(),
|
||||
async_to_generator(Default::default()),
|
||||
block_scoping()
|
||||
),
|
||||
private_regression_t7364,
|
||||
@ -5368,7 +5371,10 @@ function set_b(x) {}
|
||||
|
||||
test!(
|
||||
syntax(),
|
||||
|_| chain!(class_properties(Default::default()), async_to_generator()),
|
||||
|_| chain!(
|
||||
class_properties(Default::default()),
|
||||
async_to_generator(Default::default())
|
||||
),
|
||||
issue_1694_1,
|
||||
"
|
||||
class MyClass {
|
||||
@ -5396,7 +5402,10 @@ test!(
|
||||
|
||||
test!(
|
||||
syntax(),
|
||||
|_| chain!(class_properties(Default::default()), async_to_generator()),
|
||||
|_| chain!(
|
||||
class_properties(Default::default()),
|
||||
async_to_generator(Default::default())
|
||||
),
|
||||
issue_1694_2,
|
||||
"
|
||||
class MyClass {
|
||||
@ -5422,7 +5431,10 @@ class MyClass {
|
||||
|
||||
test!(
|
||||
syntax(),
|
||||
|_| chain!(class_properties(Default::default()), async_to_generator()),
|
||||
|_| chain!(
|
||||
class_properties(Default::default()),
|
||||
async_to_generator(Default::default())
|
||||
),
|
||||
issue_1702_1,
|
||||
"
|
||||
class Foo {
|
||||
|
@ -555,7 +555,7 @@ test!(
|
||||
class_properties(Default::default()),
|
||||
simplifier(Default::default()),
|
||||
es2018(Default::default()),
|
||||
es2017(),
|
||||
es2017(Default::default()),
|
||||
es2016(),
|
||||
es2015(
|
||||
Mark::fresh(Mark::root()),
|
||||
|
@ -145,13 +145,13 @@ fn es2019_optional_catch_binding(b: &mut Bencher) {
|
||||
|
||||
#[bench]
|
||||
fn es2017(b: &mut Bencher) {
|
||||
run(b, swc_ecma_transforms_compat::es2017);
|
||||
run(b, || swc_ecma_transforms_compat::es2017(Default::default()));
|
||||
}
|
||||
|
||||
#[bench]
|
||||
fn es2017_async_to_generator(b: &mut Bencher) {
|
||||
run(b, || {
|
||||
swc_ecma_transforms_compat::es2017::async_to_generator()
|
||||
swc_ecma_transforms_compat::es2017::async_to_generator(Default::default())
|
||||
});
|
||||
}
|
||||
|
||||
@ -284,7 +284,7 @@ fn full_es2016(b: &mut Bencher) {
|
||||
swc_ecma_transforms_compat::es2022(Default::default()),
|
||||
swc_ecma_transforms_compat::es2019(),
|
||||
swc_ecma_transforms_compat::es2018(Default::default()),
|
||||
swc_ecma_transforms_compat::es2017(),
|
||||
swc_ecma_transforms_compat::es2017(Default::default()),
|
||||
swc_ecma_transforms_compat::es2016(),
|
||||
)
|
||||
});
|
||||
@ -297,7 +297,7 @@ fn full_es2017(b: &mut Bencher) {
|
||||
swc_ecma_transforms_compat::es2022(Default::default()),
|
||||
swc_ecma_transforms_compat::es2019(),
|
||||
swc_ecma_transforms_compat::es2018(Default::default()),
|
||||
swc_ecma_transforms_compat::es2017(),
|
||||
swc_ecma_transforms_compat::es2017(Default::default()),
|
||||
)
|
||||
});
|
||||
}
|
||||
|
@ -3247,7 +3247,7 @@ test!(
|
||||
Syntax::Typescript(TsConfig {
|
||||
..Default::default()
|
||||
}),
|
||||
|_| chain!(tr(), async_to_generator()),
|
||||
|_| chain!(tr(), async_to_generator(Default::default())),
|
||||
issue_1235_1,
|
||||
"
|
||||
class Service {
|
||||
|
@ -9,6 +9,9 @@ pub struct FunctionWrapper<T> {
|
||||
pub binding_ident: Option<Ident>,
|
||||
pub function: Expr,
|
||||
|
||||
pub ignore_function_name: bool,
|
||||
pub ignore_function_length: bool,
|
||||
|
||||
function_ident: Option<Ident>,
|
||||
params: Vec<Param>,
|
||||
|
||||
@ -273,6 +276,8 @@ impl From<FnExpr> for FunctionWrapper<Expr> {
|
||||
binding_ident: None,
|
||||
function_ident,
|
||||
params,
|
||||
ignore_function_name: false,
|
||||
ignore_function_length: false,
|
||||
function: fn_expr.into(),
|
||||
_type: Default::default(),
|
||||
}
|
||||
@ -320,6 +325,8 @@ impl From<ArrowExpr> for FunctionWrapper<Expr> {
|
||||
Self {
|
||||
binding_ident: None,
|
||||
function_ident: None,
|
||||
ignore_function_name: false,
|
||||
ignore_function_length: false,
|
||||
params: Self::get_params(fn_expr.function.params.iter()),
|
||||
function: fn_expr.into(),
|
||||
_type: Default::default(),
|
||||
@ -344,7 +351,9 @@ impl Into<Expr> for FunctionWrapper<Expr> {
|
||||
fn into(mut self) -> Expr {
|
||||
if let Some(name_ident) = self.function_ident.as_ref().cloned() {
|
||||
self.build_named_expression_wrapper(name_ident)
|
||||
} else if self.binding_ident.is_some() || !self.params.is_empty() {
|
||||
} else if (!self.ignore_function_name && self.binding_ident.is_some())
|
||||
|| (!self.ignore_function_length && !self.params.is_empty())
|
||||
{
|
||||
self.build_anonymous_expression_wrapper()
|
||||
} else {
|
||||
self.function
|
||||
@ -360,6 +369,8 @@ impl From<FnDecl> for FunctionWrapper<FnDecl> {
|
||||
binding_ident: None,
|
||||
function_ident,
|
||||
params,
|
||||
ignore_function_name: false,
|
||||
ignore_function_length: false,
|
||||
function: FnExpr {
|
||||
ident: None,
|
||||
function: fn_decl.function,
|
||||
|
Loading…
Reference in New Issue
Block a user