diff --git a/Cargo.lock b/Cargo.lock
index 4460fc06cf9a..53b65d620619 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -4679,6 +4679,7 @@ dependencies = [
  "swc_ecma_transforms_base",
  "swc_ecma_transforms_compat",
  "swc_ecma_transforms_testing",
+ "swc_ecma_transforms_typescript",
  "swc_ecma_utils",
  "swc_ecma_visit",
  "testing",
@@ -4855,6 +4856,7 @@ dependencies = [
 name = "swc_ecma_visit"
 version = "0.101.0"
 dependencies = [
+ "new_debug_unreachable",
  "num-bigint",
  "serde",
  "swc_atoms",
diff --git a/crates/dbg-swc/src/util/minifier.rs b/crates/dbg-swc/src/util/minifier.rs
index 09d3874ba5ff..3df7f8714a77 100644
--- a/crates/dbg-swc/src/util/minifier.rs
+++ b/crates/dbg-swc/src/util/minifier.rs
@@ -9,7 +9,7 @@ use swc_common::{FileName, SourceMap};
 use swc_ecma_ast::*;
 use swc_ecma_minifier::option::{CompressOptions, MangleOptions, MinifyOptions};
 use swc_ecma_transforms_base::fixer::fixer;
-use swc_ecma_visit::{noop_visit_mut_type, VisitMut, VisitMutWith};
+use swc_ecma_visit::{standard_only_visit_mut, VisitMut, VisitMutWith};
 
 use super::{parse_js, print_js, wrap_task, ModuleRecord};
 
@@ -136,7 +136,7 @@ pub fn get_esbuild_output(file: &Path, mangle: bool) -> Result<String> {
 struct Normalizer {}
 
 impl VisitMut for Normalizer {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_prop(&mut self, p: &mut Prop) {
         p.visit_mut_children_with(self);
diff --git a/crates/swc/benches/typescript.rs b/crates/swc/benches/typescript.rs
index 353f434b77a0..14a6ca769f23 100644
--- a/crates/swc/benches/typescript.rs
+++ b/crates/swc/benches/typescript.rs
@@ -53,7 +53,7 @@ fn as_es(c: &swc::Compiler) -> Program {
 
     program
         .fold_with(&mut resolver(unresolved_mark, top_level_mark, true))
-        .fold_with(&mut typescript::strip(top_level_mark))
+        .fold_with(&mut typescript::strip(unresolved_mark, top_level_mark))
 }
 
 fn base_tr_group(c: &mut Criterion) {
diff --git a/crates/swc/src/builder.rs b/crates/swc/src/builder.rs
index b3564486d2b7..40944087a143 100644
--- a/crates/swc/src/builder.rs
+++ b/crates/swc/src/builder.rs
@@ -22,7 +22,7 @@ use swc_ecma_transforms::{
     pass::Optional,
     resolver, Assumptions,
 };
-use swc_ecma_visit::{as_folder, noop_visit_mut_type, VisitMut, VisitMutWith};
+use swc_ecma_visit::{as_folder, standard_only_visit_mut, VisitMut, VisitMutWith};
 
 use crate::config::{CompiledPaths, GlobalPassOption, JsMinifyOptions, ModuleConfig};
 
@@ -382,7 +382,7 @@ struct MinifierPass<'a> {
 }
 
 impl VisitMut for MinifierPass<'_> {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_module(&mut self, m: &mut Module) {
         if let Some(options) = &self.options {
diff --git a/crates/swc/src/config/mod.rs b/crates/swc/src/config/mod.rs
index f79927fa0fbd..feece772d8b4 100644
--- a/crates/swc/src/config/mod.rs
+++ b/crates/swc/src/config/mod.rs
@@ -732,6 +732,7 @@ impl Options {
                             ),
                         },
                         comments.map(|v| v as _),
+                        unresolved_mark,
                         top_level_mark
                     ),
                     syntax.typescript()
diff --git a/crates/swc/src/dropped_comments_preserver.rs b/crates/swc/src/dropped_comments_preserver.rs
index b0c15a55b131..1554a27ad166 100644
--- a/crates/swc/src/dropped_comments_preserver.rs
+++ b/crates/swc/src/dropped_comments_preserver.rs
@@ -3,7 +3,7 @@ use swc_common::{
     BytePos, Span, DUMMY_SP,
 };
 use swc_ecma_ast::{Module, Script};
-use swc_ecma_visit::{as_folder, noop_visit_mut_type, Fold, VisitMut, VisitMutWith};
+use swc_ecma_visit::{as_folder, standard_only_visit_mut, Fold, VisitMut, VisitMutWith};
 
 /// Preserves comments that would otherwise be dropped.
 ///
@@ -36,7 +36,7 @@ struct DroppedCommentsPreserver {
 type CommentEntries = Vec<(BytePos, Vec<Comment>)>;
 
 impl VisitMut for DroppedCommentsPreserver {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_module(&mut self, module: &mut Module) {
         module.visit_mut_children_with(self);
diff --git a/crates/swc/tests/rust_api.rs b/crates/swc/tests/rust_api.rs
index bbb7d8cca1e5..f876923b9902 100644
--- a/crates/swc/tests/rust_api.rs
+++ b/crates/swc/tests/rust_api.rs
@@ -6,12 +6,12 @@ use swc_common::{comments::SingleThreadedComments, FileName};
 use swc_ecma_ast::*;
 use swc_ecma_parser::{EsSyntax, Syntax, TsSyntax};
 use swc_ecma_transforms::pass::noop;
-use swc_ecma_visit::{as_folder, noop_visit_mut_type, VisitMut};
+use swc_ecma_visit::{as_folder, standard_only_visit_mut, VisitMut};
 
 struct PanicOnVisit;
 
 impl VisitMut for PanicOnVisit {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_number(&mut self, n: &mut Number) {
         panic!("Expected {:?}", n.value)
diff --git a/crates/swc_bundler/src/bundler/chunk/cjs.rs b/crates/swc_bundler/src/bundler/chunk/cjs.rs
index b0e315d64bae..04cbd0bbd708 100644
--- a/crates/swc_bundler/src/bundler/chunk/cjs.rs
+++ b/crates/swc_bundler/src/bundler/chunk/cjs.rs
@@ -4,7 +4,7 @@ use anyhow::Error;
 use swc_common::{collections::AHashMap, Span, SyntaxContext, DUMMY_SP};
 use swc_ecma_ast::*;
 use swc_ecma_utils::{quote_ident, ExprFactory};
-use swc_ecma_visit::{noop_visit_mut_type, VisitMut, VisitMutWith};
+use swc_ecma_visit::{standard_only_visit_mut, VisitMut, VisitMutWith};
 
 use crate::{
     bundler::{chunk::merge::Ctx, load::TransformedModule},
@@ -192,7 +192,7 @@ where
     L: Load,
     R: Resolve,
 {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_call_expr(&mut self, node: &mut CallExpr) {
         node.visit_mut_children_with(self);
@@ -350,7 +350,7 @@ struct DefaultHandler {
 }
 
 impl VisitMut for DefaultHandler {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_expr(&mut self, e: &mut Expr) {
         e.visit_mut_children_with(self);
@@ -375,7 +375,7 @@ struct Remapper {
 }
 
 impl VisitMut for Remapper {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_ident(&mut self, i: &mut Ident) {
         if let Some(v) = self.vars.get(&i.to_id()).copied() {
diff --git a/crates/swc_bundler/src/bundler/export.rs b/crates/swc_bundler/src/bundler/export.rs
index e397adceee82..de302120b318 100644
--- a/crates/swc_bundler/src/bundler/export.rs
+++ b/crates/swc_bundler/src/bundler/export.rs
@@ -3,7 +3,7 @@ use swc_atoms::JsWord;
 use swc_common::{collections::ARandomState, FileName, SyntaxContext};
 use swc_ecma_ast::*;
 use swc_ecma_utils::find_pat_ids;
-use swc_ecma_visit::{noop_visit_mut_type, VisitMut, VisitMutWith};
+use swc_ecma_visit::{standard_only_visit_mut, VisitMut, VisitMutWith};
 
 use super::{
     load::{Source, Specifier},
@@ -115,7 +115,7 @@ where
     L: Load,
     R: Resolve,
 {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_module_item(&mut self, item: &mut ModuleItem) {
         match item {
diff --git a/crates/swc_bundler/src/bundler/import/mod.rs b/crates/swc_bundler/src/bundler/import/mod.rs
index b3ff4db49d40..846ddb38386a 100644
--- a/crates/swc_bundler/src/bundler/import/mod.rs
+++ b/crates/swc_bundler/src/bundler/import/mod.rs
@@ -7,7 +7,7 @@ use swc_common::{
 };
 use swc_ecma_ast::*;
 use swc_ecma_utils::find_pat_ids;
-use swc_ecma_visit::{noop_visit_mut_type, VisitMut, VisitMutWith};
+use swc_ecma_visit::{standard_only_visit_mut, VisitMut, VisitMutWith};
 
 use super::Bundler;
 use crate::{load::Load, resolve::Resolve};
@@ -368,7 +368,7 @@ where
     L: Load,
     R: Resolve,
 {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_export_named_specifier(&mut self, s: &mut ExportNamedSpecifier) {
         let orig = match &s.orig {
diff --git a/crates/swc_bundler/src/bundler/keywords.rs b/crates/swc_bundler/src/bundler/keywords.rs
index b572a0f3dcdd..61af49e9d835 100644
--- a/crates/swc_bundler/src/bundler/keywords.rs
+++ b/crates/swc_bundler/src/bundler/keywords.rs
@@ -1,7 +1,7 @@
 use swc_common::{collections::AHashMap, util::take::Take};
 use swc_ecma_ast::*;
 use swc_ecma_utils::private_ident;
-use swc_ecma_visit::{noop_visit_mut_type, VisitMut, VisitMutWith};
+use swc_ecma_visit::{standard_only_visit_mut, VisitMut, VisitMutWith};
 
 use crate::id::Id;
 
@@ -31,7 +31,7 @@ impl KeywordRenamer {
 }
 
 impl VisitMut for KeywordRenamer {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_binding_ident(&mut self, n: &mut BindingIdent) {
         if let Some(new) = self.renamed(&n.id) {
diff --git a/crates/swc_bundler/src/bundler/load.rs b/crates/swc_bundler/src/bundler/load.rs
index adc8c8886dda..8fe3fd595ac6 100644
--- a/crates/swc_bundler/src/bundler/load.rs
+++ b/crates/swc_bundler/src/bundler/load.rs
@@ -11,7 +11,7 @@ use swc_ecma_ast::{
 };
 use swc_ecma_transforms_base::resolver;
 use swc_ecma_visit::{
-    noop_visit_mut_type, noop_visit_type, FoldWith, Visit, VisitMut, VisitMutWith, VisitWith,
+    noop_visit_type, standard_only_visit_mut, FoldWith, Visit, VisitMut, VisitMutWith, VisitWith,
 };
 
 use super::{export::Exports, helpers::Helpers, Bundler};
@@ -486,7 +486,7 @@ impl Visit for Es6ModuleDetector {
 #[derive(Clone, Copy)]
 struct ClearMark;
 impl VisitMut for ClearMark {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_ident(&mut self, ident: &mut Ident) {
         ident.span.ctxt = SyntaxContext::empty();
diff --git a/crates/swc_bundler/src/inline.rs b/crates/swc_bundler/src/inline.rs
index 84165f2c0ea1..309f2b47f1e5 100644
--- a/crates/swc_bundler/src/inline.rs
+++ b/crates/swc_bundler/src/inline.rs
@@ -1,7 +1,7 @@
 use swc_common::{collections::AHashMap, SyntaxContext, DUMMY_SP};
 use swc_ecma_ast::*;
 use swc_ecma_visit::{
-    noop_visit_mut_type, noop_visit_type, visit_mut_obj_and_computed, Visit, VisitMut,
+    noop_visit_type, standard_only_visit_mut, visit_mut_obj_and_computed, Visit, VisitMut,
     VisitMutWith, VisitWith,
 };
 
@@ -84,7 +84,7 @@ impl Visit for Analyzer<'_> {
 }
 
 impl VisitMut for Inliner {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     visit_mut_obj_and_computed!();
 
diff --git a/crates/swc_bundler/src/util.rs b/crates/swc_bundler/src/util.rs
index 752835a4c3e5..5ee86a60ba6c 100644
--- a/crates/swc_bundler/src/util.rs
+++ b/crates/swc_bundler/src/util.rs
@@ -5,7 +5,7 @@ use std::hash::Hash;
 use swc_common::{Span, SyntaxContext, DUMMY_SP};
 use swc_ecma_ast::*;
 use swc_ecma_utils::ident::IdentLike;
-use swc_ecma_visit::{noop_visit_mut_type, VisitMut};
+use swc_ecma_visit::{standard_only_visit_mut, VisitMut};
 
 #[cfg(feature = "concurrent")]
 pub(crate) type Readonly<T> = std::sync::Arc<T>;
@@ -147,7 +147,7 @@ where
 pub(crate) struct HygieneRemover;
 
 impl VisitMut for HygieneRemover {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_span(&mut self, s: &mut Span) {
         *s = s.with_ctxt(SyntaxContext::empty())
diff --git a/crates/swc_bundler/tests/common/mod.rs b/crates/swc_bundler/tests/common/mod.rs
index ef11846feeec..d5bae1a3996a 100644
--- a/crates/swc_bundler/tests/common/mod.rs
+++ b/crates/swc_bundler/tests/common/mod.rs
@@ -141,7 +141,7 @@ impl Load for Loader {
                     emit_metadata: Default::default(),
                     use_define_for_class_fields: false,
                 }))
-                .fold_with(&mut strip(top_level_mark))
+                .fold_with(&mut strip(unresolved_mark, top_level_mark))
                 .fold_with(&mut react::<SingleThreadedComments>(
                     self.cm.clone(),
                     None,
diff --git a/crates/swc_ecma_compat_bugfixes/src/async_arrows_in_class.rs b/crates/swc_ecma_compat_bugfixes/src/async_arrows_in_class.rs
index 45c7d5022d24..e2330ba84788 100644
--- a/crates/swc_ecma_compat_bugfixes/src/async_arrows_in_class.rs
+++ b/crates/swc_ecma_compat_bugfixes/src/async_arrows_in_class.rs
@@ -2,7 +2,7 @@ use swc_common::{util::take::Take, Mark, DUMMY_SP};
 use swc_ecma_ast::*;
 use swc_ecma_compat_es2015::arrow;
 use swc_ecma_utils::prepend_stmt;
-use swc_ecma_visit::{noop_fold_type, Fold, FoldWith, InjectVars};
+use swc_ecma_visit::{standard_only_fold, Fold, FoldWith, InjectVars};
 use swc_trace_macro::swc_trace;
 
 /// Safari 10.3 had an issue where async arrow function expressions within any
@@ -26,7 +26,7 @@ struct AsyncArrowsInClass {
 /// TODO: VisitMut
 #[swc_trace]
 impl Fold for AsyncArrowsInClass {
-    noop_fold_type!();
+    standard_only_fold!();
 
     fn fold_class_method(&mut self, n: ClassMethod) -> ClassMethod {
         self.in_class_method = true;
diff --git a/crates/swc_ecma_compat_bugfixes/src/edge_default_param.rs b/crates/swc_ecma_compat_bugfixes/src/edge_default_param.rs
index 3aff4c55f0cd..7e841a12e943 100644
--- a/crates/swc_ecma_compat_bugfixes/src/edge_default_param.rs
+++ b/crates/swc_ecma_compat_bugfixes/src/edge_default_param.rs
@@ -1,5 +1,5 @@
 use swc_ecma_ast::*;
-use swc_ecma_visit::{as_folder, noop_visit_mut_type, Fold, VisitMut, VisitMutWith};
+use swc_ecma_visit::{as_folder, standard_only_visit_mut, Fold, VisitMut, VisitMutWith};
 use swc_trace_macro::swc_trace;
 
 /// Converts destructured parameters with default values to non-shorthand
@@ -16,7 +16,7 @@ struct EdgeDefaultParam {
 
 #[swc_trace]
 impl VisitMut for EdgeDefaultParam {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_arrow_expr(&mut self, n: &mut ArrowExpr) {
         self.in_arrow = true;
diff --git a/crates/swc_ecma_compat_bugfixes/src/safari_id_destructuring_collision_in_function_expression.rs b/crates/swc_ecma_compat_bugfixes/src/safari_id_destructuring_collision_in_function_expression.rs
index e649fa2989cc..75a043951373 100644
--- a/crates/swc_ecma_compat_bugfixes/src/safari_id_destructuring_collision_in_function_expression.rs
+++ b/crates/swc_ecma_compat_bugfixes/src/safari_id_destructuring_collision_in_function_expression.rs
@@ -4,7 +4,7 @@ use swc_atoms::JsWord;
 use swc_common::{collections::AHashSet, Span};
 use swc_ecma_ast::*;
 use swc_ecma_transforms_base::hygiene::rename;
-use swc_ecma_visit::{as_folder, noop_visit_mut_type, Fold, VisitMut, VisitMutWith};
+use swc_ecma_visit::{as_folder, standard_only_visit_mut, Fold, VisitMut, VisitMutWith};
 use swc_trace_macro::swc_trace;
 
 pub fn safari_id_destructuring_collision_in_function_expression() -> impl Fold + VisitMut {
@@ -31,7 +31,7 @@ impl SafariIdDestructuringCollisionInFunctionExpression {
 
 #[swc_trace]
 impl VisitMut for SafariIdDestructuringCollisionInFunctionExpression {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_assign_pat_prop(&mut self, n: &mut AssignPatProp) {
         self.visit_mut_pat_id(&n.key);
diff --git a/crates/swc_ecma_compat_bugfixes/src/template_literal_caching.rs b/crates/swc_ecma_compat_bugfixes/src/template_literal_caching.rs
index 34f5fcb3f499..5a157ed4704b 100644
--- a/crates/swc_ecma_compat_bugfixes/src/template_literal_caching.rs
+++ b/crates/swc_ecma_compat_bugfixes/src/template_literal_caching.rs
@@ -1,7 +1,7 @@
 use swc_common::DUMMY_SP;
 use swc_ecma_ast::*;
 use swc_ecma_utils::{prepend_stmt, private_ident, ExprFactory};
-use swc_ecma_visit::{noop_fold_type, Fold, FoldWith};
+use swc_ecma_visit::{standard_only_fold, Fold, FoldWith};
 use swc_trace_macro::swc_trace;
 
 // Converts destructured parameters with default values to non-shorthand syntax.
@@ -55,7 +55,7 @@ impl TemplateLiteralCaching {
 /// TODO: VisitMut
 #[swc_trace]
 impl Fold for TemplateLiteralCaching {
-    noop_fold_type!();
+    standard_only_fold!();
 
     fn fold_expr(&mut self, n: Expr) -> Expr {
         let n = n.fold_children_with(self);
diff --git a/crates/swc_ecma_compat_common/src/regexp.rs b/crates/swc_ecma_compat_common/src/regexp.rs
index 7c24107baf05..001f4257ef57 100644
--- a/crates/swc_ecma_compat_common/src/regexp.rs
+++ b/crates/swc_ecma_compat_common/src/regexp.rs
@@ -1,7 +1,7 @@
 use swc_common::util::take::Take;
 use swc_ecma_ast::{CallExpr, Expr, Lit, Regex};
 use swc_ecma_utils::{quote_ident, ExprFactory};
-use swc_ecma_visit::{as_folder, noop_visit_mut_type, Fold, VisitMut, VisitMutWith};
+use swc_ecma_visit::{as_folder, standard_only_visit_mut, Fold, VisitMut, VisitMutWith};
 
 pub fn regexp(config: Config) -> impl Fold + VisitMut {
     as_folder(RegExp { config })
@@ -32,7 +32,7 @@ struct RegExp {
 }
 
 impl VisitMut for RegExp {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_expr(&mut self, expr: &mut Expr) {
         expr.visit_mut_children_with(self);
diff --git a/crates/swc_ecma_compat_es2015/src/arrow.rs b/crates/swc_ecma_compat_es2015/src/arrow.rs
index 8337405b6741..f3d36d6883a0 100644
--- a/crates/swc_ecma_compat_es2015/src/arrow.rs
+++ b/crates/swc_ecma_compat_es2015/src/arrow.rs
@@ -6,7 +6,9 @@ use swc_ecma_utils::{
     function::{init_this, FnEnvHoister},
     prepend_stmt,
 };
-use swc_ecma_visit::{as_folder, noop_visit_mut_type, Fold, InjectVars, VisitMut, VisitMutWith};
+use swc_ecma_visit::{
+    as_folder, standard_only_visit_mut, Fold, InjectVars, VisitMut, VisitMutWith,
+};
 use swc_trace_macro::swc_trace;
 
 /// Compile ES2015 arrow functions to ES5
@@ -72,7 +74,7 @@ struct Arrow {
 
 #[swc_trace]
 impl VisitMut for Arrow {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_class(&mut self, c: &mut Class) {
         if c.super_class.is_some() {
diff --git a/crates/swc_ecma_compat_es2015/src/block_scoped_fn.rs b/crates/swc_ecma_compat_es2015/src/block_scoped_fn.rs
index 3793bb353bc9..9e0edee55ad9 100644
--- a/crates/swc_ecma_compat_es2015/src/block_scoped_fn.rs
+++ b/crates/swc_ecma_compat_es2015/src/block_scoped_fn.rs
@@ -1,7 +1,7 @@
 use swc_common::{util::take::Take, DUMMY_SP};
 use swc_ecma_ast::*;
 use swc_ecma_utils::IdentUsageFinder;
-use swc_ecma_visit::{as_folder, noop_visit_mut_type, Fold, VisitMut, VisitMutWith};
+use swc_ecma_visit::{as_folder, standard_only_visit_mut, Fold, VisitMut, VisitMutWith};
 use swc_trace_macro::swc_trace;
 
 pub fn block_scoped_functions() -> impl Fold + VisitMut {
@@ -13,7 +13,7 @@ struct BlockScopedFns;
 
 #[swc_trace]
 impl VisitMut for BlockScopedFns {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_function(&mut self, n: &mut Function) {
         let Some(body) = &mut n.body else { return };
diff --git a/crates/swc_ecma_compat_es2015/src/block_scoping/mod.rs b/crates/swc_ecma_compat_es2015/src/block_scoping/mod.rs
index 0307eea8562f..2f9bae142ada 100644
--- a/crates/swc_ecma_compat_es2015/src/block_scoping/mod.rs
+++ b/crates/swc_ecma_compat_es2015/src/block_scoping/mod.rs
@@ -16,7 +16,7 @@ use swc_ecma_utils::{
     ExprFactory, StmtLike,
 };
 use swc_ecma_visit::{
-    as_folder, noop_visit_mut_type, visit_mut_obj_and_computed, Fold, VisitMut, VisitMutWith,
+    as_folder, standard_only_visit_mut, visit_mut_obj_and_computed, Fold, VisitMut, VisitMutWith,
 };
 use swc_trace_macro::swc_trace;
 
@@ -425,7 +425,7 @@ impl BlockScoping {
 
 #[swc_trace]
 impl VisitMut for BlockScoping {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_arrow_expr(&mut self, n: &mut ArrowExpr) {
         n.params.visit_mut_with(self);
@@ -674,7 +674,7 @@ impl<'a> FlowHelper<'a> {
 
 #[swc_trace]
 impl VisitMut for FlowHelper<'_> {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     /// noop
     fn visit_mut_arrow_expr(&mut self, _n: &mut ArrowExpr) {}
@@ -887,7 +887,7 @@ impl MutationHandler<'_> {
 
 #[swc_trace]
 impl VisitMut for MutationHandler<'_> {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     visit_mut_obj_and_computed!();
 
diff --git a/crates/swc_ecma_compat_es2015/src/block_scoping/vars.rs b/crates/swc_ecma_compat_es2015/src/block_scoping/vars.rs
index 75b4cc7f3a44..d5ffbf2123c3 100644
--- a/crates/swc_ecma_compat_es2015/src/block_scoping/vars.rs
+++ b/crates/swc_ecma_compat_es2015/src/block_scoping/vars.rs
@@ -6,7 +6,7 @@ use swc_common::{
 };
 use swc_ecma_ast::*;
 use swc_ecma_transforms_base::{rename::remap, scope::ScopeKind};
-use swc_ecma_visit::{noop_visit_mut_type, VisitMut, VisitMutWith};
+use swc_ecma_visit::{standard_only_visit_mut, VisitMut, VisitMutWith};
 use swc_trace_macro::swc_trace;
 
 pub(super) fn block_scoped_vars() -> impl VisitMut {
@@ -236,7 +236,7 @@ impl ParentScope<'_> {
 
 #[swc_trace]
 impl VisitMut for BlockScopedVars {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_arrow_expr(&mut self, n: &mut ArrowExpr) {
         self.with_scope(ScopeKind::Fn, |v| {
diff --git a/crates/swc_ecma_compat_es2015/src/classes/constructor.rs b/crates/swc_ecma_compat_es2015/src/classes/constructor.rs
index 354f6e6769d9..3619550daaa4 100644
--- a/crates/swc_ecma_compat_es2015/src/classes/constructor.rs
+++ b/crates/swc_ecma_compat_es2015/src/classes/constructor.rs
@@ -6,7 +6,7 @@ use swc_ecma_transforms_base::helper;
 use swc_ecma_transforms_classes::{get_prototype_of, visit_mut_only_key};
 use swc_ecma_utils::{quote_ident, ExprFactory};
 use swc_ecma_visit::{
-    noop_visit_mut_type, noop_visit_type, Visit, VisitMut, VisitMutWith, VisitWith,
+    standard_only_visit, standard_only_visit_mut, Visit, VisitMut, VisitMutWith, VisitWith,
 };
 use swc_trace_macro::swc_trace;
 
@@ -66,7 +66,7 @@ macro_rules! mark_as_complex {
 
 #[swc_trace]
 impl Visit for SuperCallFinder {
-    noop_visit_type!();
+    standard_only_visit!();
 
     mark_as_complex!(visit_arrow_expr, ArrowExpr);
 
@@ -176,7 +176,7 @@ pub(super) enum SuperFoldingMode {
 
 #[swc_trace]
 impl VisitMut for ConstructorFolder<'_> {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     visit_mut_only_key!();
 
@@ -460,7 +460,7 @@ pub(super) fn replace_this_in_constructor(mark: Mark, c: &mut Constructor) -> bo
     }
 
     impl VisitMut for Replacer {
-        noop_visit_mut_type!();
+        standard_only_visit_mut!();
 
         // let computed keys be visited
         fn visit_mut_constructor(&mut self, _: &mut Constructor) {}
diff --git a/crates/swc_ecma_compat_es2015/src/classes/mod.rs b/crates/swc_ecma_compat_es2015/src/classes/mod.rs
index 4b6d5850af17..2321109d2063 100644
--- a/crates/swc_ecma_compat_es2015/src/classes/mod.rs
+++ b/crates/swc_ecma_compat_es2015/src/classes/mod.rs
@@ -15,7 +15,8 @@ use swc_ecma_utils::{
     quote_str, replace_ident, ExprFactory, ModuleItemLike, StmtLike,
 };
 use swc_ecma_visit::{
-    as_folder, noop_visit_mut_type, noop_visit_type, Fold, Visit, VisitMut, VisitMutWith, VisitWith,
+    as_folder, standard_only_visit, standard_only_visit_mut, Fold, Visit, VisitMut, VisitMutWith,
+    VisitWith,
 };
 use swc_trace_macro::swc_trace;
 use tracing::debug;
@@ -220,7 +221,7 @@ impl<C> VisitMut for Classes<C>
 where
     C: Comments,
 {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_module_items(&mut self, items: &mut Vec<ModuleItem>) {
         self.visit_mut_stmt_like(items)
@@ -1229,7 +1230,7 @@ fn is_always_initialized(body: &[Stmt]) -> bool {
     }
 
     impl Visit for SuperFinder {
-        noop_visit_type!();
+        standard_only_visit!();
 
         fn visit_callee(&mut self, node: &Callee) {
             match *node {
@@ -1284,7 +1285,7 @@ struct ClassFinder {
 }
 
 impl Visit for ClassFinder {
-    noop_visit_type!();
+    standard_only_visit!();
 
     fn visit_class(&mut self, _: &Class) {
         self.found = true
diff --git a/crates/swc_ecma_compat_es2015/src/computed_props.rs b/crates/swc_ecma_compat_es2015/src/computed_props.rs
index ec9a5f61b414..f06fbe7f1ab2 100644
--- a/crates/swc_ecma_compat_es2015/src/computed_props.rs
+++ b/crates/swc_ecma_compat_es2015/src/computed_props.rs
@@ -4,7 +4,8 @@ use swc_ecma_ast::*;
 use swc_ecma_transforms_base::helper;
 use swc_ecma_utils::{quote_ident, ExprFactory, StmtLike};
 use swc_ecma_visit::{
-    as_folder, noop_visit_mut_type, noop_visit_type, Fold, Visit, VisitMut, VisitMutWith, VisitWith,
+    as_folder, standard_only_visit, standard_only_visit_mut, Fold, Visit, VisitMut, VisitMutWith,
+    VisitWith,
 };
 use swc_trace_macro::swc_trace;
 
@@ -62,7 +63,7 @@ struct ComputedProps {
 
 #[swc_trace]
 impl VisitMut for ComputedProps {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_expr(&mut self, expr: &mut Expr) {
         expr.visit_mut_children_with(self);
@@ -327,7 +328,7 @@ struct ComplexVisitor {
 }
 
 impl Visit for ComplexVisitor {
-    noop_visit_type!();
+    standard_only_visit!();
 
     fn visit_prop_name(&mut self, pn: &PropName) {
         if let PropName::Computed(..) = *pn {
@@ -414,7 +415,7 @@ struct ShouldWork {
 }
 
 impl Visit for ShouldWork {
-    noop_visit_type!();
+    standard_only_visit!();
 
     fn visit_prop_name(&mut self, node: &PropName) {
         if let PropName::Computed(_) = *node {
diff --git a/crates/swc_ecma_compat_es2015/src/destructuring.rs b/crates/swc_ecma_compat_es2015/src/destructuring.rs
index f348395ea6ce..dff3ebf3ee56 100644
--- a/crates/swc_ecma_compat_es2015/src/destructuring.rs
+++ b/crates/swc_ecma_compat_es2015/src/destructuring.rs
@@ -11,7 +11,8 @@ use swc_ecma_utils::{
     prop_name_to_expr, quote_ident, ExprFactory, StmtLike,
 };
 use swc_ecma_visit::{
-    as_folder, noop_visit_mut_type, noop_visit_type, Fold, Visit, VisitMut, VisitMutWith, VisitWith,
+    as_folder, standard_only_visit, standard_only_visit_mut, Fold, Visit, VisitMut, VisitMutWith,
+    VisitWith,
 };
 use swc_trace_macro::swc_trace;
 
@@ -462,7 +463,7 @@ impl AssignFolder {
 #[swc_trace]
 #[fast_path(DestructuringVisitor)]
 impl VisitMut for Destructuring {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     impl_for_for_stmt!(visit_mut_for_in_stmt, ForInStmt);
 
@@ -586,7 +587,7 @@ impl AssignFolder {
 #[swc_trace]
 #[fast_path(DestructuringVisitor)]
 impl VisitMut for AssignFolder {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_export_decl(&mut self, decl: &mut ExportDecl) {
         let old = self.exporting;
@@ -1246,7 +1247,7 @@ struct DestructuringVisitor {
 }
 
 impl Visit for DestructuringVisitor {
-    noop_visit_type!();
+    standard_only_visit!();
 
     fn visit_assign_target_pat(&mut self, _: &AssignTargetPat) {
         self.found = true;
diff --git a/crates/swc_ecma_compat_es2015/src/duplicate_keys.rs b/crates/swc_ecma_compat_es2015/src/duplicate_keys.rs
index d25e350979e1..9f99cde890c2 100644
--- a/crates/swc_ecma_compat_es2015/src/duplicate_keys.rs
+++ b/crates/swc_ecma_compat_es2015/src/duplicate_keys.rs
@@ -3,7 +3,7 @@ use swc_common::{collections::AHashSet, Spanned};
 use swc_ecma_ast::*;
 use swc_ecma_transforms_base::perf::Parallel;
 use swc_ecma_utils::quote_str;
-use swc_ecma_visit::{as_folder, noop_visit_mut_type, Fold, VisitMut, VisitMutWith};
+use swc_ecma_visit::{as_folder, standard_only_visit_mut, Fold, VisitMut, VisitMutWith};
 use swc_trace_macro::swc_trace;
 
 pub fn duplicate_keys() -> impl Fold + VisitMut {
@@ -22,7 +22,7 @@ impl Parallel for DuplicateKeys {
 
 #[swc_trace]
 impl VisitMut for DuplicateKeys {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_expr(&mut self, expr: &mut Expr) {
         expr.visit_mut_children_with(self);
@@ -42,7 +42,7 @@ struct PropFolder {
 
 #[swc_trace]
 impl VisitMut for PropFolder {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     /// Noop
     fn visit_mut_expr(&mut self, _: &mut Expr) {}
@@ -90,7 +90,7 @@ struct PropNameFolder<'a> {
 
 #[swc_trace]
 impl<'a> VisitMut for PropNameFolder<'a> {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_expr(&mut self, _: &mut Expr) {}
 
diff --git a/crates/swc_ecma_compat_es2015/src/for_of.rs b/crates/swc_ecma_compat_es2015/src/for_of.rs
index e59732b6e118..af66fa70fdf0 100644
--- a/crates/swc_ecma_compat_es2015/src/for_of.rs
+++ b/crates/swc_ecma_compat_es2015/src/for_of.rs
@@ -11,7 +11,7 @@ use swc_ecma_transforms_macros::parallel;
 use swc_ecma_utils::{
     alias_if_required, member_expr, prepend_stmt, private_ident, quote_ident, ExprFactory,
 };
-use swc_ecma_visit::{as_folder, noop_visit_mut_type, Fold, VisitMut, VisitMutWith};
+use swc_ecma_visit::{as_folder, standard_only_visit_mut, Fold, VisitMut, VisitMutWith};
 use swc_trace_macro::swc_trace;
 
 /// `@babel/plugin-transform-for-of`
@@ -656,7 +656,7 @@ impl ParExplode for ForOf {
 #[swc_trace]
 #[parallel(explode)]
 impl VisitMut for ForOf {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_stmt(&mut self, s: &mut Stmt) {
         match s {
diff --git a/crates/swc_ecma_compat_es2015/src/function_name.rs b/crates/swc_ecma_compat_es2015/src/function_name.rs
index 0ad7421deac0..61e061c547bf 100644
--- a/crates/swc_ecma_compat_es2015/src/function_name.rs
+++ b/crates/swc_ecma_compat_es2015/src/function_name.rs
@@ -2,7 +2,7 @@ use swc_common::{util::take::Take, DUMMY_SP};
 use swc_ecma_ast::*;
 use swc_ecma_transforms_base::perf::Parallel;
 use swc_ecma_utils::{private_ident, IdentUsageFinder};
-use swc_ecma_visit::{as_folder, noop_visit_mut_type, Fold, VisitMut, VisitMutWith};
+use swc_ecma_visit::{as_folder, standard_only_visit_mut, Fold, VisitMut, VisitMutWith};
 use swc_trace_macro::swc_trace;
 
 /// `@babel/plugin-transform-function-name`
@@ -52,7 +52,7 @@ fn prepare(i: Ident) -> Ident {
 
 #[swc_trace]
 impl VisitMut for FnName {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_assign_expr(&mut self, expr: &mut AssignExpr) {
         expr.visit_mut_children_with(self);
@@ -134,7 +134,7 @@ macro_rules! noop {
 }
 
 impl VisitMut for Rename {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     impl_for!(visit_mut_fn_expr, FnExpr);
 
diff --git a/crates/swc_ecma_compat_es2015/src/generator.rs b/crates/swc_ecma_compat_es2015/src/generator.rs
index 0840202238e2..a290969c09ed 100644
--- a/crates/swc_ecma_compat_es2015/src/generator.rs
+++ b/crates/swc_ecma_compat_es2015/src/generator.rs
@@ -17,7 +17,8 @@ use swc_ecma_utils::{
     function::FnEnvHoister, private_ident, prop_name_to_expr_value, quote_ident, ExprFactory,
 };
 use swc_ecma_visit::{
-    as_folder, noop_visit_mut_type, noop_visit_type, Fold, Visit, VisitMut, VisitMutWith, VisitWith,
+    as_folder, standard_only_visit, standard_only_visit_mut, Fold, Visit, VisitMut, VisitMutWith,
+    VisitWith,
 };
 use tracing::debug;
 
@@ -47,7 +48,7 @@ macro_rules! dev_span {
 }
 
 impl VisitMut for Wrapper {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_function(&mut self, f: &mut Function) {
         f.visit_mut_children_with(self);
@@ -391,7 +392,7 @@ impl Default for Generator {
 }
 
 impl VisitMut for Generator {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_arrow_expr(&mut self, e: &mut ArrowExpr) {
         e.params.visit_mut_with(self);
@@ -3505,7 +3506,7 @@ struct YieldFinder {
 }
 
 impl Visit for YieldFinder {
-    noop_visit_type!();
+    standard_only_visit!();
 
     fn visit_yield_expr(&mut self, _: &YieldExpr) {
         self.found = true;
@@ -3534,7 +3535,7 @@ struct InvalidToLit<'a> {
 }
 
 impl VisitMut for InvalidToLit<'_> {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_expr(&mut self, e: &mut Expr) {
         e.visit_mut_children_with(self);
diff --git a/crates/swc_ecma_compat_es2015/src/instanceof.rs b/crates/swc_ecma_compat_es2015/src/instanceof.rs
index 3a49332bf09d..459651492d00 100644
--- a/crates/swc_ecma_compat_es2015/src/instanceof.rs
+++ b/crates/swc_ecma_compat_es2015/src/instanceof.rs
@@ -2,7 +2,7 @@ use swc_common::{util::take::Take, Span, Spanned};
 use swc_ecma_ast::*;
 use swc_ecma_transforms_base::{helper, perf::Parallel};
 use swc_ecma_utils::ExprFactory;
-use swc_ecma_visit::{as_folder, noop_visit_mut_type, Fold, VisitMut, VisitMutWith};
+use swc_ecma_visit::{as_folder, standard_only_visit_mut, Fold, VisitMut, VisitMutWith};
 use swc_trace_macro::swc_trace;
 
 /// `@babel/plugin-transform-instanceof`
@@ -45,7 +45,7 @@ impl Parallel for InstanceOf {
 
 #[swc_trace]
 impl VisitMut for InstanceOf {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_expr(&mut self, expr: &mut Expr) {
         expr.visit_mut_children_with(self);
diff --git a/crates/swc_ecma_compat_es2015/src/new_target.rs b/crates/swc_ecma_compat_es2015/src/new_target.rs
index 5cb4a59b9f57..f27331a24f68 100644
--- a/crates/swc_ecma_compat_es2015/src/new_target.rs
+++ b/crates/swc_ecma_compat_es2015/src/new_target.rs
@@ -5,7 +5,7 @@ use swc_ecma_ast::*;
 use swc_ecma_transforms_base::perf::{should_work, Check};
 use swc_ecma_utils::{private_ident, quote_ident, ExprFactory};
 use swc_ecma_visit::{
-    as_folder, noop_visit_mut_type, noop_visit_type, Fold, Visit, VisitMut, VisitMutWith,
+    as_folder, standard_only_visit, standard_only_visit_mut, Fold, Visit, VisitMut, VisitMutWith,
 };
 use swc_trace_macro::swc_trace;
 
@@ -37,7 +37,7 @@ impl NewTarget {
 
 #[swc_trace]
 impl VisitMut for NewTarget {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_class_method(&mut self, c: &mut ClassMethod) {
         c.key.visit_mut_with(self);
@@ -147,7 +147,7 @@ struct ShouldWork {
 }
 
 impl Visit for ShouldWork {
-    noop_visit_type!();
+    standard_only_visit!();
 
     fn visit_meta_prop_expr(&mut self, n: &MetaPropExpr) {
         if let MetaPropExpr {
diff --git a/crates/swc_ecma_compat_es2015/src/object_super.rs b/crates/swc_ecma_compat_es2015/src/object_super.rs
index 26863ec8f75c..6fe6b93271cf 100644
--- a/crates/swc_ecma_compat_es2015/src/object_super.rs
+++ b/crates/swc_ecma_compat_es2015/src/object_super.rs
@@ -6,7 +6,7 @@ use swc_ecma_transforms_base::helper;
 use swc_ecma_utils::{
     alias_ident_for, is_rest_arguments, prepend_stmt, private_ident, quote_ident, ExprFactory,
 };
-use swc_ecma_visit::{as_folder, noop_visit_mut_type, Fold, VisitMut, VisitMutWith};
+use swc_ecma_visit::{as_folder, standard_only_visit_mut, Fold, VisitMut, VisitMutWith};
 use swc_trace_macro::swc_trace;
 
 struct ObjectSuper {
@@ -21,7 +21,7 @@ pub fn object_super() -> impl Fold + VisitMut {
 
 #[swc_trace]
 impl VisitMut for ObjectSuper {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_module_items(&mut self, n: &mut Vec<ModuleItem>) {
         n.visit_mut_children_with(self);
@@ -131,7 +131,7 @@ struct SuperReplacer {
 
 #[swc_trace]
 impl VisitMut for SuperReplacer {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_object_lit(&mut self, obj: &mut ObjectLit) {
         for prop_or_spread in obj.props.iter_mut() {
diff --git a/crates/swc_ecma_compat_es2015/src/parameters.rs b/crates/swc_ecma_compat_es2015/src/parameters.rs
index e2360384871d..bddded21b687 100644
--- a/crates/swc_ecma_compat_es2015/src/parameters.rs
+++ b/crates/swc_ecma_compat_es2015/src/parameters.rs
@@ -10,7 +10,7 @@ use swc_ecma_utils::{
     function::{init_this, FnEnvHoister},
     member_expr, prepend_stmt, prepend_stmts, private_ident, quote_ident, ExprFactory,
 };
-use swc_ecma_visit::{as_folder, noop_visit_mut_type, Fold, VisitMut, VisitMutWith};
+use swc_ecma_visit::{as_folder, standard_only_visit_mut, Fold, VisitMut, VisitMutWith};
 use swc_trace_macro::swc_trace;
 use tracing::trace;
 
@@ -423,7 +423,7 @@ impl Params {
 
 #[swc_trace]
 impl VisitMut for Params {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     // generally speaking, there won't be class field in here, but Safari 14.1
     // still has bugs in parameters
diff --git a/crates/swc_ecma_compat_es2015/src/shorthand_property.rs b/crates/swc_ecma_compat_es2015/src/shorthand_property.rs
index 1d3106aab5a5..1fe577d5d6dd 100644
--- a/crates/swc_ecma_compat_es2015/src/shorthand_property.rs
+++ b/crates/swc_ecma_compat_es2015/src/shorthand_property.rs
@@ -1,7 +1,7 @@
 use swc_common::util::take::Take;
 use swc_ecma_ast::*;
 use swc_ecma_transforms_base::perf::Parallel;
-use swc_ecma_visit::{as_folder, noop_visit_mut_type, Fold, VisitMut, VisitMutWith};
+use swc_ecma_visit::{as_folder, standard_only_visit_mut, Fold, VisitMut, VisitMutWith};
 use swc_trace_macro::swc_trace;
 
 /// Compile ES2015 shorthand properties to ES5
@@ -55,7 +55,7 @@ impl Parallel for Shorthand {
 
 #[swc_trace]
 impl VisitMut for Shorthand {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_prop(&mut self, prop: &mut Prop) {
         prop.visit_mut_children_with(self);
diff --git a/crates/swc_ecma_compat_es2015/src/spread.rs b/crates/swc_ecma_compat_es2015/src/spread.rs
index 391c5f722414..8196f4b7d293 100644
--- a/crates/swc_ecma_compat_es2015/src/spread.rs
+++ b/crates/swc_ecma_compat_es2015/src/spread.rs
@@ -9,7 +9,8 @@ use swc_ecma_utils::{
     alias_ident_for, member_expr, prepend_stmt, quote_ident, ExprFactory, StmtLike,
 };
 use swc_ecma_visit::{
-    as_folder, noop_visit_mut_type, noop_visit_type, Fold, Visit, VisitMut, VisitMutWith, VisitWith,
+    as_folder, standard_only_visit, standard_only_visit_mut, Fold, Visit, VisitMut, VisitMutWith,
+    VisitWith,
 };
 use swc_trace_macro::swc_trace;
 
@@ -36,7 +37,7 @@ struct Spread {
 #[swc_trace]
 #[fast_path(SpreadFinder)]
 impl VisitMut for Spread {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_module_items(&mut self, n: &mut Vec<ModuleItem>) {
         self.visit_mut_stmt_like(n);
@@ -488,7 +489,7 @@ struct SpreadFinder {
 }
 
 impl Visit for SpreadFinder {
-    noop_visit_type!();
+    standard_only_visit!();
 
     fn visit_expr_or_spread(&mut self, n: &ExprOrSpread) {
         n.visit_children_with(self);
diff --git a/crates/swc_ecma_compat_es2015/src/sticky_regex.rs b/crates/swc_ecma_compat_es2015/src/sticky_regex.rs
index 415e767c6f2f..49f41d859e16 100644
--- a/crates/swc_ecma_compat_es2015/src/sticky_regex.rs
+++ b/crates/swc_ecma_compat_es2015/src/sticky_regex.rs
@@ -1,7 +1,7 @@
 use swc_ecma_ast::*;
 use swc_ecma_transforms_base::perf::Parallel;
 use swc_ecma_utils::{quote_ident, ExprFactory};
-use swc_ecma_visit::{as_folder, noop_visit_mut_type, Fold, VisitMut, VisitMutWith};
+use swc_ecma_visit::{as_folder, standard_only_visit_mut, Fold, VisitMut, VisitMutWith};
 use swc_trace_macro::swc_trace;
 
 /// Compile ES2015 sticky regex to an ES5 RegExp constructor
@@ -34,7 +34,7 @@ impl Parallel for StickyRegex {
 
 #[swc_trace]
 impl VisitMut for StickyRegex {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_expr(&mut self, e: &mut Expr) {
         e.visit_mut_children_with(self);
diff --git a/crates/swc_ecma_compat_es2015/src/template_literal.rs b/crates/swc_ecma_compat_es2015/src/template_literal.rs
index 4fe627900f83..538600c8d1e3 100644
--- a/crates/swc_ecma_compat_es2015/src/template_literal.rs
+++ b/crates/swc_ecma_compat_es2015/src/template_literal.rs
@@ -8,7 +8,7 @@ use swc_ecma_transforms_base::{helper, perf::Parallel};
 use swc_ecma_utils::{
     is_literal, prepend_stmts, private_ident, quote_ident, ExprFactory, StmtLike,
 };
-use swc_ecma_visit::{as_folder, noop_visit_mut_type, Fold, VisitMut, VisitMutWith};
+use swc_ecma_visit::{as_folder, standard_only_visit_mut, Fold, VisitMut, VisitMutWith};
 use swc_trace_macro::swc_trace;
 
 pub fn template_literal(c: Config) -> impl Fold + VisitMut {
@@ -45,7 +45,7 @@ impl Parallel for TemplateLiteral {
 
 #[swc_trace]
 impl VisitMut for TemplateLiteral {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_expr(&mut self, e: &mut Expr) {
         e.visit_mut_children_with(self);
diff --git a/crates/swc_ecma_compat_es2015/src/typeof_symbol.rs b/crates/swc_ecma_compat_es2015/src/typeof_symbol.rs
index d103a569f726..e12cfa1cc72a 100644
--- a/crates/swc_ecma_compat_es2015/src/typeof_symbol.rs
+++ b/crates/swc_ecma_compat_es2015/src/typeof_symbol.rs
@@ -2,7 +2,7 @@ use swc_common::{util::take::Take, DUMMY_SP};
 use swc_ecma_ast::*;
 use swc_ecma_transforms_base::{helper, perf::Parallel};
 use swc_ecma_utils::{quote_str, ExprFactory};
-use swc_ecma_visit::{as_folder, noop_visit_mut_type, Fold, VisitMut, VisitMutWith};
+use swc_ecma_visit::{as_folder, standard_only_visit_mut, Fold, VisitMut, VisitMutWith};
 use swc_trace_macro::swc_trace;
 
 pub fn typeof_symbol() -> impl VisitMut + Fold {
@@ -23,7 +23,7 @@ impl Parallel for TypeOfSymbol {
 
 #[swc_trace]
 impl VisitMut for TypeOfSymbol {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_bin_expr(&mut self, expr: &mut BinExpr) {
         match expr.op {
diff --git a/crates/swc_ecma_compat_es2016/src/exponentiation.rs b/crates/swc_ecma_compat_es2016/src/exponentiation.rs
index 1101d55178e1..db0fd2c55b33 100644
--- a/crates/swc_ecma_compat_es2016/src/exponentiation.rs
+++ b/crates/swc_ecma_compat_es2016/src/exponentiation.rs
@@ -3,7 +3,7 @@ use swc_ecma_ast::*;
 use swc_ecma_transforms_base::perf::{ParExplode, Parallel};
 use swc_ecma_transforms_macros::parallel;
 use swc_ecma_utils::{member_expr, private_ident, ExprFactory};
-use swc_ecma_visit::{as_folder, noop_visit_mut_type, Fold, VisitMut, VisitMutWith};
+use swc_ecma_visit::{as_folder, standard_only_visit_mut, Fold, VisitMut, VisitMutWith};
 use swc_trace_macro::swc_trace;
 
 /// `@babel/plugin-transform-exponentiation-operator`
@@ -78,7 +78,7 @@ impl ParExplode for Exponentiation {
 #[swc_trace]
 #[parallel(explode)]
 impl VisitMut for Exponentiation {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_expr(&mut self, e: &mut Expr) {
         e.visit_mut_children_with(self);
diff --git a/crates/swc_ecma_compat_es2017/src/async_to_generator.rs b/crates/swc_ecma_compat_es2017/src/async_to_generator.rs
index 0a5058cad642..d19eb4301fcc 100644
--- a/crates/swc_ecma_compat_es2017/src/async_to_generator.rs
+++ b/crates/swc_ecma_compat_es2017/src/async_to_generator.rs
@@ -13,7 +13,8 @@ use swc_ecma_utils::{
     private_ident, quote_ident, ExprFactory, Remapper, StmtLike,
 };
 use swc_ecma_visit::{
-    as_folder, noop_visit_mut_type, noop_visit_type, Fold, Visit, VisitMut, VisitMutWith, VisitWith,
+    as_folder, standard_only_visit, standard_only_visit_mut, Fold, Visit, VisitMut, VisitMutWith,
+    VisitWith,
 };
 use swc_trace_macro::swc_trace;
 
@@ -77,7 +78,7 @@ struct Actual<C: Comments> {
 #[swc_trace]
 #[fast_path(ShouldWork)]
 impl<C: Comments + Clone> VisitMut for AsyncToGenerator<C> {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_module_items(&mut self, n: &mut Vec<ModuleItem>) {
         self.visit_mut_stmt_like(n);
@@ -120,7 +121,7 @@ impl<C: Comments + Clone> AsyncToGenerator<C> {
 #[swc_trace]
 #[fast_path(ShouldWork)]
 impl<C: Comments> VisitMut for Actual<C> {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_class_method(&mut self, m: &mut ClassMethod) {
         if m.function.body.is_none() {
@@ -452,7 +453,7 @@ macro_rules! noop {
 
 #[swc_trace]
 impl VisitMut for AsyncFnBodyHandler {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     noop!(visit_mut_fn_expr, FnExpr);
 
@@ -534,7 +535,7 @@ struct ShouldWork {
 
 #[swc_trace]
 impl Visit for ShouldWork {
-    noop_visit_type!();
+    standard_only_visit!();
 
     fn visit_function(&mut self, f: &Function) {
         if f.is_async {
diff --git a/crates/swc_ecma_compat_es2018/src/object_rest.rs b/crates/swc_ecma_compat_es2018/src/object_rest.rs
index 7c6a052f6f74..f48f537df8dc 100644
--- a/crates/swc_ecma_compat_es2018/src/object_rest.rs
+++ b/crates/swc_ecma_compat_es2018/src/object_rest.rs
@@ -13,7 +13,7 @@ use swc_ecma_utils::{
     var::VarCollector, ExprFactory, StmtLike,
 };
 use swc_ecma_visit::{
-    noop_visit_mut_type, noop_visit_type, Visit, VisitMut, VisitMutWith, VisitWith,
+    standard_only_visit, standard_only_visit_mut, Visit, VisitMut, VisitMutWith, VisitWith,
 };
 use swc_trace_macro::swc_trace;
 
@@ -164,7 +164,7 @@ struct RestVisitor {
 
 #[swc_trace]
 impl Visit for RestVisitor {
-    noop_visit_type!();
+    standard_only_visit!();
 
     fn visit_object_pat_prop(&mut self, prop: &ObjectPatProp) {
         match *prop {
@@ -192,7 +192,7 @@ where
 #[swc_trace]
 #[fast_path(RestVisitor)]
 impl VisitMut for ObjectRest {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     impl_for_for_stmt!(visit_mut_for_in_stmt, ForInStmt);
 
@@ -1006,7 +1006,7 @@ struct PatSimplifier;
 
 #[swc_trace]
 impl VisitMut for PatSimplifier {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_pat(&mut self, pat: &mut Pat) {
         pat.visit_mut_children_with(self);
diff --git a/crates/swc_ecma_compat_es2018/src/object_spread.rs b/crates/swc_ecma_compat_es2018/src/object_spread.rs
index 10e61c6dc3a0..dd8574a4df21 100644
--- a/crates/swc_ecma_compat_es2018/src/object_spread.rs
+++ b/crates/swc_ecma_compat_es2018/src/object_spread.rs
@@ -2,7 +2,7 @@ use swc_common::{util::take::Take, DUMMY_SP};
 use swc_ecma_ast::*;
 use swc_ecma_transforms_base::{helper, perf::Parallel};
 use swc_ecma_utils::ExprFactory;
-use swc_ecma_visit::{noop_visit_mut_type, VisitMut, VisitMutWith};
+use swc_ecma_visit::{standard_only_visit_mut, VisitMut, VisitMutWith};
 use swc_trace_macro::swc_trace;
 
 use super::object_rest_spread::Config;
@@ -24,7 +24,7 @@ impl Parallel for ObjectSpread {
 
 #[swc_trace]
 impl VisitMut for ObjectSpread {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_expr(&mut self, expr: &mut Expr) {
         expr.visit_mut_children_with(self);
diff --git a/crates/swc_ecma_compat_es2019/src/optional_catch_binding.rs b/crates/swc_ecma_compat_es2019/src/optional_catch_binding.rs
index e62aa7a3b213..bfb0f9cd6d46 100644
--- a/crates/swc_ecma_compat_es2019/src/optional_catch_binding.rs
+++ b/crates/swc_ecma_compat_es2019/src/optional_catch_binding.rs
@@ -1,6 +1,6 @@
 use swc_ecma_ast::*;
 use swc_ecma_utils::private_ident;
-use swc_ecma_visit::{as_folder, noop_visit_mut_type, Fold, VisitMut, VisitMutWith};
+use swc_ecma_visit::{as_folder, standard_only_visit_mut, Fold, VisitMut, VisitMutWith};
 use swc_trace_macro::swc_trace;
 
 struct OptionalCatchBinding;
@@ -11,7 +11,7 @@ pub fn optional_catch_binding() -> impl Fold + VisitMut {
 
 #[swc_trace]
 impl VisitMut for OptionalCatchBinding {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_catch_clause(&mut self, cc: &mut CatchClause) {
         cc.visit_mut_children_with(self);
diff --git a/crates/swc_ecma_compat_es2020/src/export_namespace_from.rs b/crates/swc_ecma_compat_es2020/src/export_namespace_from.rs
index 5cd22d3f4e04..e77bc5279e67 100644
--- a/crates/swc_ecma_compat_es2020/src/export_namespace_from.rs
+++ b/crates/swc_ecma_compat_es2020/src/export_namespace_from.rs
@@ -1,7 +1,7 @@
 use swc_atoms::JsWord;
 use swc_ecma_ast::*;
 use swc_ecma_utils::private_ident;
-use swc_ecma_visit::{as_folder, noop_visit_mut_type, Fold, VisitMut};
+use swc_ecma_visit::{as_folder, standard_only_visit_mut, Fold, VisitMut};
 use swc_trace_macro::swc_trace;
 
 pub fn export_namespace_from() -> impl Fold + VisitMut {
@@ -12,7 +12,7 @@ struct ExportNamespaceFrom;
 
 #[swc_trace]
 impl VisitMut for ExportNamespaceFrom {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_module_items(&mut self, items: &mut Vec<ModuleItem>) {
         let count = items
diff --git a/crates/swc_ecma_compat_es2020/src/nullish_coalescing.rs b/crates/swc_ecma_compat_es2020/src/nullish_coalescing.rs
index c4b14e5113e8..4b01a7b2716d 100644
--- a/crates/swc_ecma_compat_es2020/src/nullish_coalescing.rs
+++ b/crates/swc_ecma_compat_es2020/src/nullish_coalescing.rs
@@ -4,7 +4,7 @@ use serde::Deserialize;
 use swc_common::{util::take::Take, Span, DUMMY_SP};
 use swc_ecma_ast::*;
 use swc_ecma_utils::{alias_ident_for_simple_assign_tatget, alias_if_required, StmtLike};
-use swc_ecma_visit::{as_folder, noop_visit_mut_type, Fold, VisitMut, VisitMutWith};
+use swc_ecma_visit::{as_folder, standard_only_visit_mut, Fold, VisitMut, VisitMutWith};
 use swc_trace_macro::swc_trace;
 
 pub fn nullish_coalescing(c: Config) -> impl Fold + VisitMut + 'static {
@@ -59,7 +59,7 @@ impl NullishCoalescing {
 
 #[swc_trace]
 impl VisitMut for NullishCoalescing {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     /// Prevents #1123
     fn visit_mut_block_stmt(&mut self, s: &mut BlockStmt) {
diff --git a/crates/swc_ecma_compat_es2021/src/logical_assignments.rs b/crates/swc_ecma_compat_es2021/src/logical_assignments.rs
index b3cb93b69a1c..dfd99ff2e961 100644
--- a/crates/swc_ecma_compat_es2021/src/logical_assignments.rs
+++ b/crates/swc_ecma_compat_es2021/src/logical_assignments.rs
@@ -4,7 +4,7 @@ use swc_common::{util::take::Take, DUMMY_SP};
 use swc_ecma_ast::*;
 use swc_ecma_transforms_base::perf::Parallel;
 use swc_ecma_utils::{alias_ident_for, prepend_stmt};
-use swc_ecma_visit::{as_folder, noop_visit_mut_type, Fold, VisitMut, VisitMutWith};
+use swc_ecma_visit::{as_folder, standard_only_visit_mut, Fold, VisitMut, VisitMutWith};
 use swc_trace_macro::swc_trace;
 
 pub fn logical_assignments() -> impl Fold + VisitMut {
@@ -58,7 +58,7 @@ impl Parallel for Operators {
 
 #[swc_trace]
 impl VisitMut for Operators {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_expr(&mut self, e: &mut Expr) {
         e.visit_mut_children_with(self);
diff --git a/crates/swc_ecma_compat_es2022/src/class_properties/class_name_tdz.rs b/crates/swc_ecma_compat_es2022/src/class_properties/class_name_tdz.rs
index 98609fb28169..614236c91366 100644
--- a/crates/swc_ecma_compat_es2022/src/class_properties/class_name_tdz.rs
+++ b/crates/swc_ecma_compat_es2022/src/class_properties/class_name_tdz.rs
@@ -2,7 +2,7 @@ use swc_common::DUMMY_SP;
 use swc_ecma_ast::*;
 use swc_ecma_transforms_base::helper;
 use swc_ecma_utils::ExprFactory;
-use swc_ecma_visit::{noop_visit_mut_type, VisitMut, VisitMutWith};
+use swc_ecma_visit::{standard_only_visit_mut, VisitMut, VisitMutWith};
 use swc_trace_macro::swc_trace;
 
 pub(super) struct ClassNameTdzFolder<'a> {
@@ -11,7 +11,7 @@ pub(super) struct ClassNameTdzFolder<'a> {
 
 #[swc_trace]
 impl<'a> VisitMut for ClassNameTdzFolder<'a> {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_expr(&mut self, expr: &mut Expr) {
         match expr {
diff --git a/crates/swc_ecma_compat_es2022/src/class_properties/mod.rs b/crates/swc_ecma_compat_es2022/src/class_properties/mod.rs
index 796b0d709a6b..b198a6adf5f4 100644
--- a/crates/swc_ecma_compat_es2022/src/class_properties/mod.rs
+++ b/crates/swc_ecma_compat_es2022/src/class_properties/mod.rs
@@ -12,7 +12,8 @@ use swc_ecma_utils::{
     ModuleItemLike, StmtLike,
 };
 use swc_ecma_visit::{
-    as_folder, noop_visit_mut_type, noop_visit_type, Fold, Visit, VisitMut, VisitMutWith, VisitWith,
+    as_folder, standard_only_visit, standard_only_visit_mut, Fold, Visit, VisitMut, VisitMutWith,
+    VisitWith,
 };
 use swc_trace_macro::swc_trace;
 
@@ -164,7 +165,7 @@ impl Take for ClassExtra {
 #[swc_trace]
 #[fast_path(ShouldWork)]
 impl<C: Comments> VisitMut for ClassProperties<C> {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_module_items(&mut self, n: &mut Vec<ModuleItem>) {
         self.visit_mut_stmt_like(n);
@@ -1068,7 +1069,7 @@ struct ShouldWork {
 
 #[swc_trace]
 impl Visit for ShouldWork {
-    noop_visit_type!();
+    standard_only_visit!();
 
     fn visit_class_method(&mut self, _: &ClassMethod) {
         self.found = true;
@@ -1103,7 +1104,7 @@ struct SuperVisitor {
 }
 
 impl Visit for SuperVisitor {
-    noop_visit_type!();
+    standard_only_visit!();
 
     /// Don't recurse into constructor
     fn visit_constructor(&mut self, _: &Constructor) {}
diff --git a/crates/swc_ecma_compat_es2022/src/class_properties/private_field.rs b/crates/swc_ecma_compat_es2022/src/class_properties/private_field.rs
index 2f96a111ae04..8f89850aa8ad 100644
--- a/crates/swc_ecma_compat_es2022/src/class_properties/private_field.rs
+++ b/crates/swc_ecma_compat_es2022/src/class_properties/private_field.rs
@@ -8,7 +8,7 @@ use swc_common::{
 use swc_ecma_ast::*;
 use swc_ecma_transforms_base::helper;
 use swc_ecma_utils::{alias_ident_for, alias_if_required, prepend_stmt, quote_ident, ExprFactory};
-use swc_ecma_visit::{noop_visit_mut_type, VisitMut, VisitMutWith};
+use swc_ecma_visit::{standard_only_visit_mut, VisitMut, VisitMutWith};
 use swc_trace_macro::swc_trace;
 
 use super::Config;
@@ -86,7 +86,7 @@ pub(super) struct BrandCheckHandler<'a> {
 
 #[swc_trace]
 impl VisitMut for BrandCheckHandler<'_> {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_expr(&mut self, e: &mut Expr) {
         e.visit_mut_children_with(self);
@@ -198,7 +198,7 @@ macro_rules! take_vars {
 // super.#sdsa is invalid
 #[swc_trace]
 impl<'a> VisitMut for PrivateAccessVisitor<'a> {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     take_vars!(visit_mut_function, Function);
 
diff --git a/crates/swc_ecma_compat_es2022/src/class_properties/this_in_static.rs b/crates/swc_ecma_compat_es2022/src/class_properties/this_in_static.rs
index e4cc1885e654..57a7c5d6bdc7 100644
--- a/crates/swc_ecma_compat_es2022/src/class_properties/this_in_static.rs
+++ b/crates/swc_ecma_compat_es2022/src/class_properties/this_in_static.rs
@@ -1,5 +1,5 @@
 use swc_ecma_ast::*;
-use swc_ecma_visit::{noop_visit_mut_type, VisitMut, VisitMutWith};
+use swc_ecma_visit::{standard_only_visit_mut, VisitMut, VisitMutWith};
 use swc_trace_macro::swc_trace;
 
 pub(super) struct ThisInStaticFolder {
@@ -8,7 +8,7 @@ pub(super) struct ThisInStaticFolder {
 
 #[swc_trace]
 impl VisitMut for ThisInStaticFolder {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     // once again, for computed props
     fn visit_mut_constructor(&mut self, _: &mut Constructor) {}
@@ -28,7 +28,7 @@ pub(super) struct NewTargetInProp;
 
 #[swc_trace]
 impl VisitMut for NewTargetInProp {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     // once again, for computed props
     fn visit_mut_constructor(&mut self, _: &mut Constructor) {}
diff --git a/crates/swc_ecma_compat_es2022/src/class_properties/used_name.rs b/crates/swc_ecma_compat_es2022/src/class_properties/used_name.rs
index 2b8b24129958..4413093d9844 100644
--- a/crates/swc_ecma_compat_es2022/src/class_properties/used_name.rs
+++ b/crates/swc_ecma_compat_es2022/src/class_properties/used_name.rs
@@ -1,6 +1,6 @@
 use swc_atoms::JsWord;
 use swc_ecma_ast::*;
-use swc_ecma_visit::{noop_visit_type, Visit, VisitWith};
+use swc_ecma_visit::{standard_only_visit, Visit, VisitWith};
 use swc_trace_macro::swc_trace;
 
 pub(super) struct UsedNameCollector<'a> {
@@ -16,7 +16,7 @@ macro_rules! noop {
 
 #[swc_trace]
 impl<'a> Visit for UsedNameCollector<'a> {
-    noop_visit_type!();
+    standard_only_visit!();
 
     noop!(visit_arrow_expr, ArrowExpr);
 
diff --git a/crates/swc_ecma_compat_es2022/src/optional_chaining_impl.rs b/crates/swc_ecma_compat_es2022/src/optional_chaining_impl.rs
index 3b25de2ab060..7b5aedfaba7d 100644
--- a/crates/swc_ecma_compat_es2022/src/optional_chaining_impl.rs
+++ b/crates/swc_ecma_compat_es2022/src/optional_chaining_impl.rs
@@ -3,7 +3,7 @@ use std::mem;
 use swc_common::{util::take::Take, Mark, SyntaxContext, DUMMY_SP};
 use swc_ecma_ast::*;
 use swc_ecma_utils::{alias_ident_for, prepend_stmt, quote_ident, ExprFactory, StmtLike};
-use swc_ecma_visit::{noop_visit_mut_type, VisitMut, VisitMutWith};
+use swc_ecma_visit::{standard_only_visit_mut, VisitMut, VisitMutWith};
 
 /// Not a public API and may break any time. Don't use it directly.
 pub fn optional_chaining_impl(c: Config, unresolved_mark: Mark) -> OptionalChaining {
@@ -35,7 +35,7 @@ pub struct Config {
 }
 
 impl VisitMut for OptionalChaining {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_block_stmt_or_expr(&mut self, expr: &mut BlockStmtOrExpr) {
         if let BlockStmtOrExpr::Expr(e) = expr {
diff --git a/crates/swc_ecma_compat_es2022/src/private_in_object.rs b/crates/swc_ecma_compat_es2022/src/private_in_object.rs
index 4dcd8c744f28..7127f32972d2 100644
--- a/crates/swc_ecma_compat_es2022/src/private_in_object.rs
+++ b/crates/swc_ecma_compat_es2022/src/private_in_object.rs
@@ -11,7 +11,8 @@ use swc_ecma_ast::*;
 use swc_ecma_transforms_base::pass::JsPass;
 use swc_ecma_utils::{default_constructor, prepend_stmt, private_ident, quote_ident, ExprFactory};
 use swc_ecma_visit::{
-    as_folder, noop_visit_mut_type, noop_visit_type, Visit, VisitMut, VisitMutWith, VisitWith,
+    as_folder, standard_only_visit, standard_only_visit_mut, Visit, VisitMut, VisitMutWith,
+    VisitWith,
 };
 
 /// https://github.com/tc39/proposal-private-fields-in-in
@@ -125,7 +126,7 @@ impl PrivateInObject {
 }
 
 impl VisitMut for PrivateInObject {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_class(&mut self, n: &mut Class) {
         {
@@ -465,7 +466,7 @@ struct ClassAnalyzer<'a> {
 }
 
 impl Visit for ClassAnalyzer<'_> {
-    noop_visit_type!();
+    standard_only_visit!();
 
     fn visit_bin_expr(&mut self, n: &BinExpr) {
         n.visit_children_with(self);
diff --git a/crates/swc_ecma_compat_es2022/src/static_blocks.rs b/crates/swc_ecma_compat_es2022/src/static_blocks.rs
index 291083caa379..ca09fa116624 100644
--- a/crates/swc_ecma_compat_es2022/src/static_blocks.rs
+++ b/crates/swc_ecma_compat_es2022/src/static_blocks.rs
@@ -2,7 +2,7 @@ use swc_atoms::JsWord;
 use swc_common::{collections::AHashSet, util::take::Take, Mark, DUMMY_SP};
 use swc_ecma_ast::*;
 use swc_ecma_utils::ExprFactory;
-use swc_ecma_visit::{as_folder, noop_visit_mut_type, Fold, VisitMut, VisitMutWith};
+use swc_ecma_visit::{as_folder, standard_only_visit_mut, Fold, VisitMut, VisitMutWith};
 use swc_trace_macro::swc_trace;
 
 struct ClassStaticBlock {
@@ -76,7 +76,7 @@ impl ClassStaticBlock {
 
 #[swc_trace]
 impl VisitMut for ClassStaticBlock {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_class(&mut self, class: &mut Class) {
         class.visit_mut_children_with(self);
diff --git a/crates/swc_ecma_compat_es3/src/member_expr_lits.rs b/crates/swc_ecma_compat_es3/src/member_expr_lits.rs
index 6afe99b8b84c..81867440a864 100644
--- a/crates/swc_ecma_compat_es3/src/member_expr_lits.rs
+++ b/crates/swc_ecma_compat_es3/src/member_expr_lits.rs
@@ -1,6 +1,6 @@
 use swc_ecma_ast::*;
 use swc_ecma_utils::is_valid_ident;
-use swc_ecma_visit::{noop_fold_type, Fold, FoldWith};
+use swc_ecma_visit::{standard_only_fold, Fold, FoldWith};
 use swc_trace_macro::swc_trace;
 
 /// babel: `transform-member-expression-literals`
@@ -28,7 +28,7 @@ struct MemberExprLit;
 
 #[swc_trace]
 impl Fold for MemberExprLit {
-    noop_fold_type!();
+    standard_only_fold!();
 
     fn fold_member_expr(&mut self, e: MemberExpr) -> MemberExpr {
         let e = e.fold_children_with(self);
diff --git a/crates/swc_ecma_compat_es3/src/prop_lits.rs b/crates/swc_ecma_compat_es3/src/prop_lits.rs
index eac62633f6cb..12d731cb0857 100644
--- a/crates/swc_ecma_compat_es3/src/prop_lits.rs
+++ b/crates/swc_ecma_compat_es3/src/prop_lits.rs
@@ -1,6 +1,6 @@
 use swc_ecma_ast::*;
 use swc_ecma_utils::is_valid_ident;
-use swc_ecma_visit::{noop_fold_type, Fold, FoldWith};
+use swc_ecma_visit::{standard_only_fold, Fold, FoldWith};
 use swc_trace_macro::swc_trace;
 
 /// babel: `transform-property-literals`
@@ -38,7 +38,7 @@ struct PropertyLiteral;
 
 #[swc_trace]
 impl Fold for PropertyLiteral {
-    noop_fold_type!();
+    standard_only_fold!();
 
     fn fold_prop_name(&mut self, n: PropName) -> PropName {
         let n = n.fold_children_with(self);
diff --git a/crates/swc_ecma_compat_es3/src/reserved_word.rs b/crates/swc_ecma_compat_es3/src/reserved_word.rs
index f4c6826d4db9..fa2e3c21ccbc 100644
--- a/crates/swc_ecma_compat_es3/src/reserved_word.rs
+++ b/crates/swc_ecma_compat_es3/src/reserved_word.rs
@@ -1,6 +1,6 @@
 use swc_common::{util::take::Take, DUMMY_SP};
 use swc_ecma_ast::*;
-use swc_ecma_visit::{as_folder, noop_visit_mut_type, Fold, VisitMut, VisitMutWith};
+use swc_ecma_visit::{as_folder, standard_only_visit_mut, Fold, VisitMut, VisitMutWith};
 
 /// babel: `@babel/plugin-transform-reserved-words`
 ///
@@ -27,7 +27,7 @@ struct ReservedWord {
 }
 
 impl VisitMut for ReservedWord {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_module_items(&mut self, n: &mut Vec<ModuleItem>) {
         let mut extra_exports = vec![];
diff --git a/crates/swc_ecma_minifier/src/compress/hoist_decls.rs b/crates/swc_ecma_minifier/src/compress/hoist_decls.rs
index e53da4d05c0c..8b7d23389f53 100644
--- a/crates/swc_ecma_minifier/src/compress/hoist_decls.rs
+++ b/crates/swc_ecma_minifier/src/compress/hoist_decls.rs
@@ -4,7 +4,7 @@ use swc_common::{collections::AHashSet, pass::Repeated, util::take::Take, DUMMY_
 use swc_ecma_ast::*;
 use swc_ecma_usage_analyzer::analyzer::UsageAnalyzer;
 use swc_ecma_utils::{find_pat_ids, StmtLike};
-use swc_ecma_visit::{noop_visit_mut_type, VisitMut, VisitMutWith, VisitWith};
+use swc_ecma_visit::{standard_only_visit_mut, VisitMut, VisitMutWith, VisitWith};
 
 use super::util::drop_invalid_stmts;
 use crate::{
@@ -270,7 +270,7 @@ impl Hoister<'_> {
 }
 
 impl VisitMut for Hoister<'_> {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_module_items(&mut self, stmts: &mut Vec<ModuleItem>) {
         self.handle_stmt_likes(stmts);
diff --git a/crates/swc_ecma_minifier/src/compress/mod.rs b/crates/swc_ecma_minifier/src/compress/mod.rs
index e63d784d294b..6362dd829a2f 100644
--- a/crates/swc_ecma_minifier/src/compress/mod.rs
+++ b/crates/swc_ecma_minifier/src/compress/mod.rs
@@ -15,7 +15,7 @@ use swc_ecma_transforms_optimization::simplify::{
     dead_branch_remover, expr_simplifier, ExprSimplifierConfig,
 };
 use swc_ecma_usage_analyzer::{analyzer::UsageAnalyzer, marks::Marks};
-use swc_ecma_visit::{as_folder, noop_visit_mut_type, VisitMut, VisitMutWith, VisitWith};
+use swc_ecma_visit::{as_folder, standard_only_visit_mut, VisitMut, VisitMutWith, VisitWith};
 use swc_timer::timer;
 use tracing::{debug, error};
 
@@ -325,7 +325,7 @@ impl Compressor<'_> {
 }
 
 impl VisitMut for Compressor<'_> {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_script(&mut self, n: &mut Script) {
         self.optimize_unit_repeatedly(n);
diff --git a/crates/swc_ecma_minifier/src/compress/optimize/arguments.rs b/crates/swc_ecma_minifier/src/compress/optimize/arguments.rs
index 5ff65f23e575..a679000b3721 100644
--- a/crates/swc_ecma_minifier/src/compress/optimize/arguments.rs
+++ b/crates/swc_ecma_minifier/src/compress/optimize/arguments.rs
@@ -3,7 +3,7 @@ use std::iter::repeat_with;
 use swc_common::{util::take::Take, DUMMY_SP};
 use swc_ecma_ast::*;
 use swc_ecma_utils::{find_pat_ids, is_valid_prop_ident, private_ident};
-use swc_ecma_visit::{noop_visit_mut_type, VisitMut, VisitMutWith};
+use swc_ecma_visit::{standard_only_visit_mut, VisitMut, VisitMutWith};
 
 use super::Optimizer;
 use crate::compress::optimize::is_left_access_to_arguments;
@@ -148,7 +148,7 @@ impl ArgReplacer<'_> {
 }
 
 impl VisitMut for ArgReplacer<'_> {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     /// Noop.
     fn visit_mut_arrow_expr(&mut self, _: &mut ArrowExpr) {}
diff --git a/crates/swc_ecma_minifier/src/compress/optimize/if_return.rs b/crates/swc_ecma_minifier/src/compress/optimize/if_return.rs
index 60778e2a2d8c..73c566553594 100644
--- a/crates/swc_ecma_minifier/src/compress/optimize/if_return.rs
+++ b/crates/swc_ecma_minifier/src/compress/optimize/if_return.rs
@@ -2,7 +2,7 @@ use swc_common::{util::take::Take, Spanned, DUMMY_SP};
 use swc_ecma_ast::*;
 use swc_ecma_transforms_optimization::debug_assert_valid;
 use swc_ecma_utils::{StmtExt, StmtLike};
-use swc_ecma_visit::{noop_visit_type, Visit, VisitWith};
+use swc_ecma_visit::{standard_only_visit, Visit, VisitWith};
 
 use super::Optimizer;
 #[cfg(feature = "debug")]
@@ -510,7 +510,7 @@ pub(super) struct ReturnFinder {
 }
 
 impl Visit for ReturnFinder {
-    noop_visit_type!();
+    standard_only_visit!();
 
     fn visit_return_stmt(&mut self, n: &ReturnStmt) {
         n.visit_children_with(self);
diff --git a/crates/swc_ecma_minifier/src/compress/optimize/mod.rs b/crates/swc_ecma_minifier/src/compress/optimize/mod.rs
index 93fa0200b3a5..4c691053bc96 100644
--- a/crates/swc_ecma_minifier/src/compress/optimize/mod.rs
+++ b/crates/swc_ecma_minifier/src/compress/optimize/mod.rs
@@ -14,7 +14,7 @@ use swc_ecma_usage_analyzer::{analyzer::UsageAnalyzer, marks::Marks};
 use swc_ecma_utils::{
     prepend_stmts, ExprCtx, ExprExt, ExprFactory, IsEmpty, ModuleItemLike, StmtLike, Type, Value,
 };
-use swc_ecma_visit::{noop_visit_mut_type, VisitMut, VisitMutWith, VisitWith};
+use swc_ecma_visit::{standard_only_visit_mut, VisitMut, VisitMutWith, VisitWith};
 #[cfg(feature = "debug")]
 use tracing::{debug, span, Level};
 use Value::Known;
@@ -1468,7 +1468,7 @@ impl Optimizer<'_> {
 }
 
 impl VisitMut for Optimizer<'_> {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     #[cfg_attr(feature = "debug", tracing::instrument(skip_all))]
     fn visit_mut_arrow_expr(&mut self, n: &mut ArrowExpr) {
diff --git a/crates/swc_ecma_minifier/src/compress/optimize/sequences.rs b/crates/swc_ecma_minifier/src/compress/optimize/sequences.rs
index 4bc47d99c907..29445e809612 100644
--- a/crates/swc_ecma_minifier/src/compress/optimize/sequences.rs
+++ b/crates/swc_ecma_minifier/src/compress/optimize/sequences.rs
@@ -9,7 +9,7 @@ use swc_ecma_usage_analyzer::{
 use swc_ecma_utils::{
     contains_arguments, contains_this_expr, prepend_stmts, ExprExt, IdentUsageFinder, StmtLike,
 };
-use swc_ecma_visit::{noop_visit_type, Visit, VisitWith};
+use swc_ecma_visit::{standard_only_visit, Visit, VisitWith};
 #[cfg(feature = "debug")]
 use tracing::{span, Level};
 
@@ -2582,7 +2582,7 @@ struct UsageCounter<'a> {
 }
 
 impl Visit for UsageCounter<'_> {
-    noop_visit_type!();
+    standard_only_visit!();
 
     fn visit_ident(&mut self, i: &Ident) {
         if self.target.sym == i.sym && self.target.span.ctxt == i.span.ctxt {
diff --git a/crates/swc_ecma_minifier/src/compress/optimize/switches.rs b/crates/swc_ecma_minifier/src/compress/optimize/switches.rs
index 0e5791f89467..5e14f05ae80e 100644
--- a/crates/swc_ecma_minifier/src/compress/optimize/switches.rs
+++ b/crates/swc_ecma_minifier/src/compress/optimize/switches.rs
@@ -1,7 +1,7 @@
 use swc_common::{util::take::Take, EqIgnoreSpan, Spanned, DUMMY_SP};
 use swc_ecma_ast::*;
 use swc_ecma_utils::{prepend_stmt, ExprExt, ExprFactory, StmtExt};
-use swc_ecma_visit::{noop_visit_type, Visit, VisitWith};
+use swc_ecma_visit::{standard_only_visit, Visit, VisitWith};
 
 use super::Optimizer;
 use crate::{compress::util::is_primitive, util::idents_used_by};
@@ -533,7 +533,7 @@ struct BreakFinder {
 }
 
 impl Visit for BreakFinder {
-    noop_visit_type!();
+    standard_only_visit!();
 
     fn visit_break_stmt(&mut self, s: &BreakStmt) {
         if !self.top_level && s.label.is_none() {
diff --git a/crates/swc_ecma_minifier/src/compress/optimize/unused.rs b/crates/swc_ecma_minifier/src/compress/optimize/unused.rs
index 2f2e91f4d5ee..3395ec5e6a97 100644
--- a/crates/swc_ecma_minifier/src/compress/optimize/unused.rs
+++ b/crates/swc_ecma_minifier/src/compress/optimize/unused.rs
@@ -4,7 +4,7 @@ use swc_common::{util::take::Take, DUMMY_SP};
 use swc_ecma_ast::*;
 use swc_ecma_usage_analyzer::util::is_global_var_with_pure_property_access;
 use swc_ecma_utils::{contains_ident_ref, contains_this_expr, ExprExt};
-use swc_ecma_visit::{noop_visit_type, Visit, VisitWith};
+use swc_ecma_visit::{standard_only_visit, Visit, VisitWith};
 
 use super::Optimizer;
 #[cfg(feature = "debug")]
@@ -938,7 +938,7 @@ struct ThisPropertyVisitor {
 }
 
 impl Visit for ThisPropertyVisitor {
-    noop_visit_type!();
+    standard_only_visit!();
 
     fn visit_assign_expr(&mut self, e: &AssignExpr) {
         if self.should_abort {
diff --git a/crates/swc_ecma_minifier/src/compress/optimize/util.rs b/crates/swc_ecma_minifier/src/compress/optimize/util.rs
index 7ae6087aeae3..08b35bb3e6ef 100644
--- a/crates/swc_ecma_minifier/src/compress/optimize/util.rs
+++ b/crates/swc_ecma_minifier/src/compress/optimize/util.rs
@@ -9,7 +9,7 @@ use swc_common::{collections::AHashSet, util::take::Take, Mark, Span, DUMMY_SP};
 use swc_ecma_ast::*;
 use swc_ecma_transforms_base::perf::{Parallel, ParallelExt};
 use swc_ecma_utils::{collect_decls, ExprCtx, ExprExt, Remapper};
-use swc_ecma_visit::{noop_visit_mut_type, VisitMut, VisitMutWith};
+use swc_ecma_visit::{standard_only_visit_mut, VisitMut, VisitMutWith};
 use tracing::debug;
 
 use super::{Ctx, Optimizer};
@@ -306,7 +306,7 @@ enum FinalizerMode {
 }
 
 impl VisitMut for Finalizer<'_> {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_callee(&mut self, e: &mut Callee) {
         e.visit_mut_children_with(self);
@@ -481,7 +481,7 @@ impl<'a> NormalMultiReplacer<'a> {
 }
 
 impl VisitMut for NormalMultiReplacer<'_> {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_expr(&mut self, e: &mut Expr) {
         if self.vars.is_empty() {
@@ -568,7 +568,7 @@ impl ExprReplacer {
 }
 
 impl VisitMut for ExprReplacer {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_expr(&mut self, e: &mut Expr) {
         e.visit_mut_children_with(self);
diff --git a/crates/swc_ecma_minifier/src/compress/pure/dead_code.rs b/crates/swc_ecma_minifier/src/compress/pure/dead_code.rs
index 8baf7b8ca2f5..98da28017937 100644
--- a/crates/swc_ecma_minifier/src/compress/pure/dead_code.rs
+++ b/crates/swc_ecma_minifier/src/compress/pure/dead_code.rs
@@ -3,7 +3,7 @@ use rayon::prelude::*;
 use swc_common::{util::take::Take, EqIgnoreSpan, Spanned, DUMMY_SP};
 use swc_ecma_ast::*;
 use swc_ecma_utils::{extract_var_ids, ExprCtx, ExprExt, StmtExt, StmtLike, Value};
-use swc_ecma_visit::{noop_visit_type, Visit, VisitWith};
+use swc_ecma_visit::{standard_only_visit, Visit, VisitWith};
 
 use super::Pure;
 use crate::{compress::util::is_fine_for_if_cons, maybe_par, util::ModuleItemExt};
@@ -599,7 +599,7 @@ struct LabelFinder<'a> {
     found: bool,
 }
 impl Visit for LabelFinder<'_> {
-    noop_visit_type!();
+    standard_only_visit!();
 
     fn visit_break_stmt(&mut self, s: &BreakStmt) {
         match &s.label {
diff --git a/crates/swc_ecma_minifier/src/compress/pure/mod.rs b/crates/swc_ecma_minifier/src/compress/pure/mod.rs
index 4a4dcfc90dbf..b5a80efef73a 100644
--- a/crates/swc_ecma_minifier/src/compress/pure/mod.rs
+++ b/crates/swc_ecma_minifier/src/compress/pure/mod.rs
@@ -7,7 +7,7 @@ use swc_ecma_ast::*;
 use swc_ecma_transforms_optimization::debug_assert_valid;
 use swc_ecma_usage_analyzer::marks::Marks;
 use swc_ecma_utils::ExprCtx;
-use swc_ecma_visit::{noop_visit_mut_type, VisitMut, VisitMutWith, VisitWith};
+use swc_ecma_visit::{standard_only_visit_mut, VisitMut, VisitMutWith, VisitWith};
 #[cfg(feature = "debug")]
 use tracing::{debug, span, Level};
 
@@ -254,7 +254,7 @@ impl Pure<'_> {
 }
 
 impl VisitMut for Pure<'_> {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_assign_expr(&mut self, e: &mut AssignExpr) {
         {
diff --git a/crates/swc_ecma_minifier/src/compress/pure/vars.rs b/crates/swc_ecma_minifier/src/compress/pure/vars.rs
index e7e80fb06d8a..50dd68f0a96d 100644
--- a/crates/swc_ecma_minifier/src/compress/pure/vars.rs
+++ b/crates/swc_ecma_minifier/src/compress/pure/vars.rs
@@ -3,7 +3,7 @@ use swc_common::{util::take::Take, DUMMY_SP};
 use swc_ecma_ast::*;
 use swc_ecma_utils::{prepend_stmt, StmtLike};
 use swc_ecma_visit::{
-    noop_visit_mut_type, noop_visit_type, Visit, VisitMut, VisitMutWith, VisitWith,
+    standard_only_visit, standard_only_visit_mut, Visit, VisitMut, VisitMutWith, VisitWith,
 };
 
 use super::Pure;
@@ -299,7 +299,7 @@ pub(super) struct VarWithOutInitCounter {
 }
 
 impl Visit for VarWithOutInitCounter {
-    noop_visit_type!();
+    standard_only_visit!();
 
     fn visit_arrow_expr(&mut self, _: &ArrowExpr) {}
 
@@ -367,7 +367,7 @@ pub(super) struct VarMover {
 }
 
 impl VisitMut for VarMover {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     /// Noop
     fn visit_mut_arrow_expr(&mut self, _: &mut ArrowExpr) {}
@@ -485,7 +485,7 @@ pub(super) struct VarPrepender {
 }
 
 impl VisitMut for VarPrepender {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     /// Noop
     fn visit_mut_arrow_expr(&mut self, _: &mut ArrowExpr) {}
diff --git a/crates/swc_ecma_minifier/src/compress/util/mod.rs b/crates/swc_ecma_minifier/src/compress/util/mod.rs
index 1c5810af032f..da418b6462d7 100644
--- a/crates/swc_ecma_minifier/src/compress/util/mod.rs
+++ b/crates/swc_ecma_minifier/src/compress/util/mod.rs
@@ -8,7 +8,7 @@ use swc_ecma_utils::{ExprCtx, ExprExt, IdentUsageFinder, Value};
 #[cfg(feature = "debug")]
 use swc_ecma_visit::{as_folder, FoldWith};
 use swc_ecma_visit::{
-    noop_visit_mut_type, noop_visit_type, Visit, VisitMut, VisitMutWith, VisitWith,
+    standard_only_visit, standard_only_visit_mut, Visit, VisitMut, VisitMutWith, VisitWith,
 };
 
 #[cfg(feature = "debug")]
@@ -566,7 +566,7 @@ impl<F> VisitMut for ExprReplacer<F>
 where
     F: FnMut(&mut Expr),
 {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_expr(&mut self, e: &mut Expr) {
         e.visit_mut_children_with(self);
@@ -684,7 +684,7 @@ impl UnreachableHandler {
 }
 
 impl VisitMut for UnreachableHandler {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_arrow_expr(&mut self, _: &mut ArrowExpr) {}
 
@@ -734,7 +734,7 @@ pub struct SuperFinder {
 }
 
 impl Visit for SuperFinder {
-    noop_visit_type!();
+    standard_only_visit!();
 
     /// Don't recurse into constructor
     fn visit_constructor(&mut self, _: &Constructor) {}
diff --git a/crates/swc_ecma_minifier/src/compress/util/tests.rs b/crates/swc_ecma_minifier/src/compress/util/tests.rs
index 79220b179833..f5514db0ab38 100644
--- a/crates/swc_ecma_minifier/src/compress/util/tests.rs
+++ b/crates/swc_ecma_minifier/src/compress/util/tests.rs
@@ -3,7 +3,7 @@ use swc_ecma_ast::*;
 use swc_ecma_parser::parse_file_as_expr;
 use swc_ecma_transforms_base::fixer::fixer;
 use swc_ecma_utils::ExprCtx;
-use swc_ecma_visit::{noop_visit_mut_type, FoldWith, VisitMut, VisitMutWith};
+use swc_ecma_visit::{standard_only_visit_mut, FoldWith, VisitMut, VisitMutWith};
 use tracing::{info, warn};
 
 use super::negate_cost;
@@ -11,7 +11,7 @@ use crate::{compress::util::negate, debug::dump};
 
 struct UnwrapParen;
 impl VisitMut for UnwrapParen {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_expr(&mut self, e: &mut Expr) {
         e.visit_mut_children_with(self);
diff --git a/crates/swc_ecma_minifier/src/debug.rs b/crates/swc_ecma_minifier/src/debug.rs
index 8decb9502cb2..02209e3bc5eb 100644
--- a/crates/swc_ecma_minifier/src/debug.rs
+++ b/crates/swc_ecma_minifier/src/debug.rs
@@ -9,13 +9,13 @@ use swc_ecma_codegen::{text_writer::JsWriter, Emitter};
 use swc_ecma_transforms_base::{fixer::fixer, hygiene::hygiene};
 pub use swc_ecma_transforms_optimization::{debug_assert_valid, AssertValid};
 use swc_ecma_utils::{drop_span, DropSpan};
-use swc_ecma_visit::{noop_visit_mut_type, FoldWith, VisitMut, VisitMutWith};
+use swc_ecma_visit::{standard_only_visit_mut, FoldWith, VisitMut, VisitMutWith};
 use tracing::debug;
 
 pub(crate) struct Debugger {}
 
 impl VisitMut for Debugger {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_ident(&mut self, n: &mut Ident) {
         if !cfg!(feature = "debug") {
diff --git a/crates/swc_ecma_minifier/src/lib.rs b/crates/swc_ecma_minifier/src/lib.rs
index 5839e5cf6a3e..30874cce1b83 100644
--- a/crates/swc_ecma_minifier/src/lib.rs
+++ b/crates/swc_ecma_minifier/src/lib.rs
@@ -53,7 +53,6 @@ use crate::{
     mode::{Minification, Mode},
     option::{CompressOptions, ExtraOptions, MinifyOptions},
     pass::{
-        expand_names::name_expander,
         global_defs,
         mangle_names::{idents_to_preserve, name_mangler},
         mangle_props::mangle_properties,
@@ -172,7 +171,7 @@ pub fn optimize(
     if options.rename && DISABLE_BUGGY_PASSES {
         // toplevel.figure_out_scope(options.mangle);
         // TODO: Pass `options.mangle` to name expander.
-        n.visit_mut_with(&mut name_expander());
+        // n.visit_mut_with(&mut name_expander());
     }
 
     if let Some(ref mut t) = timings {
diff --git a/crates/swc_ecma_minifier/src/metadata/mod.rs b/crates/swc_ecma_minifier/src/metadata/mod.rs
index eac05979bf82..d41f49cb423e 100644
--- a/crates/swc_ecma_minifier/src/metadata/mod.rs
+++ b/crates/swc_ecma_minifier/src/metadata/mod.rs
@@ -7,7 +7,7 @@ use swc_ecma_ast::*;
 use swc_ecma_usage_analyzer::marks::Marks;
 use swc_ecma_utils::NodeIgnoringSpan;
 use swc_ecma_visit::{
-    noop_visit_mut_type, noop_visit_type, Visit, VisitMut, VisitMutWith, VisitWith,
+    standard_only_visit, standard_only_visit_mut, Visit, VisitMut, VisitMutWith, VisitWith,
 };
 
 use crate::option::CompressOptions;
@@ -92,7 +92,7 @@ impl InfoMarker<'_> {
 }
 
 impl VisitMut for InfoMarker<'_> {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_call_expr(&mut self, n: &mut CallExpr) {
         n.visit_mut_children_with(self);
@@ -249,7 +249,7 @@ struct InfoCollector<'a> {
 }
 
 impl Visit for InfoCollector<'_> {
-    noop_visit_type!();
+    standard_only_visit!();
 
     fn visit_export_decl(&mut self, f: &ExportDecl) {
         f.visit_children_with(self);
diff --git a/crates/swc_ecma_minifier/src/pass/expand_names.rs b/crates/swc_ecma_minifier/src/pass/expand_names.rs
deleted file mode 100644
index f53646567d6c..000000000000
--- a/crates/swc_ecma_minifier/src/pass/expand_names.rs
+++ /dev/null
@@ -1,15 +0,0 @@
-use swc_ecma_visit::{noop_visit_mut_type, VisitMut};
-
-/// Currently noop.
-///
-/// See: https://github.com/terser/terser/blob/0c5fde1f6951c70b2dfc91f6960dfedbf0e84fef/lib/minify.js#L177-L182
-pub fn name_expander() -> impl VisitMut {
-    Expander {}
-}
-
-#[derive(Debug)]
-struct Expander {}
-
-impl VisitMut for Expander {
-    noop_visit_mut_type!();
-}
diff --git a/crates/swc_ecma_minifier/src/pass/global_defs.rs b/crates/swc_ecma_minifier/src/pass/global_defs.rs
index 9d9cf4d5e1ee..53fa1a8b158c 100644
--- a/crates/swc_ecma_minifier/src/pass/global_defs.rs
+++ b/crates/swc_ecma_minifier/src/pass/global_defs.rs
@@ -2,7 +2,7 @@ use std::borrow::Cow;
 
 use swc_common::{pass::CompilerPass, EqIgnoreSpan, Mark, SyntaxContext};
 use swc_ecma_ast::*;
-use swc_ecma_visit::{noop_visit_mut_type, VisitMut, VisitMutWith};
+use swc_ecma_visit::{standard_only_visit_mut, VisitMut, VisitMutWith};
 
 pub fn globals_defs(
     defs: Vec<(Box<Expr>, Box<Expr>)>,
@@ -35,7 +35,7 @@ impl CompilerPass for GlobalDefs {
 
 /// We use [VisitMut] instead of [swc_ecma_visit::Fold] because it's faster.
 impl VisitMut for GlobalDefs {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_assign_expr(&mut self, n: &mut AssignExpr) {
         let old = self.in_lhs_of_assign;
diff --git a/crates/swc_ecma_minifier/src/pass/hygiene/vars.rs b/crates/swc_ecma_minifier/src/pass/hygiene/vars.rs
index 8642103c8da0..ffb6a6c89847 100644
--- a/crates/swc_ecma_minifier/src/pass/hygiene/vars.rs
+++ b/crates/swc_ecma_minifier/src/pass/hygiene/vars.rs
@@ -86,7 +86,7 @@ macro_rules! scoped {
 }
 
 impl Visit for VarAnalyzer<'_> {
-    noop_visit_type!();
+    standard_only_visit!();
 
     fn visit_arrow_expr(&mut self, n: &ArrowExpr) {
         scoped!(self, n);
diff --git a/crates/swc_ecma_minifier/src/pass/mangle_names/mod.rs b/crates/swc_ecma_minifier/src/pass/mangle_names/mod.rs
index 31bc4aa7e38e..3e25cc754d6d 100644
--- a/crates/swc_ecma_minifier/src/pass/mangle_names/mod.rs
+++ b/crates/swc_ecma_minifier/src/pass/mangle_names/mod.rs
@@ -3,7 +3,7 @@ use swc_atoms::JsWord;
 use swc_common::{chain, Mark};
 use swc_ecma_ast::*;
 use swc_ecma_transforms_base::rename::{renamer, Renamer};
-use swc_ecma_visit::{noop_visit_mut_type, VisitMut, VisitMutWith};
+use swc_ecma_visit::{standard_only_visit_mut, VisitMut, VisitMutWith};
 
 pub(crate) use self::preserver::idents_to_preserve;
 use crate::{option::MangleOptions, util::base54::Base54Chars};
@@ -77,7 +77,7 @@ impl LabelMangler {
 }
 
 impl VisitMut for LabelMangler {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_labeled_stmt(&mut self, s: &mut LabeledStmt) {
         self.mangle(&mut s.label);
diff --git a/crates/swc_ecma_minifier/src/pass/mangle_names/preserver.rs b/crates/swc_ecma_minifier/src/pass/mangle_names/preserver.rs
index ac7984075e24..d9caacadbbd5 100644
--- a/crates/swc_ecma_minifier/src/pass/mangle_names/preserver.rs
+++ b/crates/swc_ecma_minifier/src/pass/mangle_names/preserver.rs
@@ -1,7 +1,7 @@
 use rustc_hash::FxHashSet;
 use swc_ecma_ast::*;
 use swc_ecma_utils::find_pat_ids;
-use swc_ecma_visit::{noop_visit_type, Visit, VisitWith};
+use swc_ecma_visit::{standard_only_visit, Visit, VisitWith};
 
 use crate::option::MangleOptions;
 
@@ -35,7 +35,7 @@ impl Preserver {
 }
 
 impl Visit for Preserver {
-    noop_visit_type!();
+    standard_only_visit!();
 
     fn visit_block_stmt(&mut self, n: &BlockStmt) {
         let old_top_level = self.in_top_level;
diff --git a/crates/swc_ecma_minifier/src/pass/mangle_names/private_name.rs b/crates/swc_ecma_minifier/src/pass/mangle_names/private_name.rs
index 5a728beb7c28..cb8f2b558d6f 100644
--- a/crates/swc_ecma_minifier/src/pass/mangle_names/private_name.rs
+++ b/crates/swc_ecma_minifier/src/pass/mangle_names/private_name.rs
@@ -1,7 +1,7 @@
 use swc_atoms::JsWord;
 use swc_common::collections::AHashMap;
 use swc_ecma_ast::*;
-use swc_ecma_visit::{as_folder, noop_visit_mut_type, Fold, VisitMut, VisitMutWith};
+use swc_ecma_visit::{as_folder, standard_only_visit_mut, Fold, VisitMut, VisitMutWith};
 
 use super::Base54Chars;
 
@@ -44,7 +44,7 @@ impl PrivateNameMangler {
 }
 
 impl VisitMut for PrivateNameMangler {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_member_expr(&mut self, n: &mut MemberExpr) {
         n.obj.visit_mut_with(self);
diff --git a/crates/swc_ecma_minifier/src/pass/mangle_props.rs b/crates/swc_ecma_minifier/src/pass/mangle_props.rs
index 49fe53a09e94..ec9ae6820f48 100644
--- a/crates/swc_ecma_minifier/src/pass/mangle_props.rs
+++ b/crates/swc_ecma_minifier/src/pass/mangle_props.rs
@@ -7,7 +7,7 @@ use swc_ecma_ast::{
     CallExpr, Callee, Expr, Ident, KeyValueProp, Lit, MemberExpr, MemberProp, Program, Prop,
     PropName, Str, SuperProp, SuperPropExpr,
 };
-use swc_ecma_visit::{noop_visit_mut_type, VisitMut, VisitMutWith};
+use swc_ecma_visit::{standard_only_visit_mut, VisitMut, VisitMutWith};
 
 use crate::{
     option::ManglePropertiesOptions,
@@ -238,7 +238,7 @@ impl Mangler<'_> {
 }
 
 impl VisitMut for Mangler<'_> {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_call_expr(&mut self, call: &mut CallExpr) {
         call.visit_mut_children_with(self);
diff --git a/crates/swc_ecma_minifier/src/pass/merge_exports.rs b/crates/swc_ecma_minifier/src/pass/merge_exports.rs
index 7e9b0bf5c59d..7cf00547451a 100644
--- a/crates/swc_ecma_minifier/src/pass/merge_exports.rs
+++ b/crates/swc_ecma_minifier/src/pass/merge_exports.rs
@@ -1,6 +1,6 @@
 use swc_common::{util::take::Take, DUMMY_SP};
 use swc_ecma_ast::*;
-use swc_ecma_visit::{noop_visit_mut_type, VisitMut, VisitMutWith};
+use swc_ecma_visit::{standard_only_visit_mut, VisitMut, VisitMutWith};
 
 use crate::maybe_par;
 
@@ -16,7 +16,7 @@ struct Merger {
 }
 
 impl VisitMut for Merger {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_module_items(&mut self, stmts: &mut Vec<ModuleItem>) {
         let was_module = maybe_par!(
diff --git a/crates/swc_ecma_minifier/src/pass/mod.rs b/crates/swc_ecma_minifier/src/pass/mod.rs
index 17e07ec819aa..6f3eca4421e4 100644
--- a/crates/swc_ecma_minifier/src/pass/mod.rs
+++ b/crates/swc_ecma_minifier/src/pass/mod.rs
@@ -1,4 +1,3 @@
-pub mod expand_names;
 pub mod global_defs;
 pub mod mangle_names;
 pub mod mangle_props;
diff --git a/crates/swc_ecma_minifier/src/pass/postcompress.rs b/crates/swc_ecma_minifier/src/pass/postcompress.rs
index 16643890c480..e0ad23c04367 100644
--- a/crates/swc_ecma_minifier/src/pass/postcompress.rs
+++ b/crates/swc_ecma_minifier/src/pass/postcompress.rs
@@ -1,7 +1,7 @@
 use swc_common::util::take::Take;
 use swc_ecma_ast::*;
 use swc_ecma_transforms_base::perf::{Parallel, ParallelExt};
-use swc_ecma_visit::{noop_visit_mut_type, VisitMut, VisitMutWith};
+use swc_ecma_visit::{standard_only_visit_mut, VisitMut, VisitMutWith};
 
 use crate::{maybe_par, option::CompressOptions, LIGHT_TASK_PARALLELS};
 
@@ -36,7 +36,7 @@ impl Parallel for PostcompressOptimizer<'_> {
 }
 
 impl VisitMut for PostcompressOptimizer<'_> {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_export_decl(&mut self, export: &mut ExportDecl) {
         match &mut export.decl {
diff --git a/crates/swc_ecma_minifier/src/pass/precompress.rs b/crates/swc_ecma_minifier/src/pass/precompress.rs
index 7d414993802f..74f6c8e28efa 100644
--- a/crates/swc_ecma_minifier/src/pass/precompress.rs
+++ b/crates/swc_ecma_minifier/src/pass/precompress.rs
@@ -1,6 +1,8 @@
+use std::vec::Vec;
+
 use swc_ecma_ast::*;
 use swc_ecma_transforms_base::perf::{Parallel, ParallelExt};
-use swc_ecma_visit::{noop_visit_mut_type, VisitMut, VisitMutWith};
+use swc_ecma_visit::{standard_only_visit_mut, VisitMut, VisitMutWith};
 
 use crate::HEAVY_TASK_PARALLELS;
 
@@ -24,7 +26,7 @@ impl Parallel for PrecompressOptimizer {
 }
 
 impl VisitMut for PrecompressOptimizer {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_stmts(&mut self, n: &mut Vec<Stmt>) {
         self.maybe_par(*HEAVY_TASK_PARALLELS, n, |v, n| {
diff --git a/crates/swc_ecma_minifier/src/util/base54.rs b/crates/swc_ecma_minifier/src/util/base54.rs
index b6895731f4e5..2c58cf59e9cb 100644
--- a/crates/swc_ecma_minifier/src/util/base54.rs
+++ b/crates/swc_ecma_minifier/src/util/base54.rs
@@ -8,7 +8,7 @@ use swc_common::{
 };
 use swc_ecma_ast::*;
 use swc_ecma_codegen::{text_writer::WriteJs, Emitter};
-use swc_ecma_visit::{noop_visit_type, visit_obj_and_computed, Visit, VisitWith};
+use swc_ecma_visit::{standard_only_visit, visit_obj_and_computed, Visit, VisitWith};
 
 #[derive(Clone, Copy)]
 
@@ -296,7 +296,7 @@ struct CharFreqAnalyzer<'a> {
 }
 
 impl Visit for CharFreqAnalyzer<'_> {
-    noop_visit_type!();
+    standard_only_visit!();
 
     visit_obj_and_computed!();
 
diff --git a/crates/swc_ecma_minifier/src/util/mod.rs b/crates/swc_ecma_minifier/src/util/mod.rs
index d54cc73d5e53..321151218f5c 100644
--- a/crates/swc_ecma_minifier/src/util/mod.rs
+++ b/crates/swc_ecma_minifier/src/util/mod.rs
@@ -6,7 +6,7 @@ use rustc_hash::FxHashSet;
 use swc_common::{util::take::Take, Mark, Span, Spanned, DUMMY_SP};
 use swc_ecma_ast::*;
 use swc_ecma_utils::{stack_size::maybe_grow_default, ModuleItemLike, StmtLike, Value};
-use swc_ecma_visit::{noop_visit_type, visit_obj_and_computed, Visit, VisitWith};
+use swc_ecma_visit::{standard_only_visit, visit_obj_and_computed, Visit, VisitWith};
 
 pub(crate) mod base54;
 pub(crate) mod size;
@@ -219,7 +219,7 @@ pub(crate) struct LeapFinder {
 }
 
 impl Visit for LeapFinder {
-    noop_visit_type!();
+    standard_only_visit!();
 
     fn visit_await_expr(&mut self, n: &AwaitExpr) {
         n.visit_children_with(self);
@@ -311,7 +311,7 @@ pub struct DeepThisExprVisitor {
 }
 
 impl Visit for DeepThisExprVisitor {
-    noop_visit_type!();
+    standard_only_visit!();
 
     fn visit_this_expr(&mut self, _: &ThisExpr) {
         self.found = true;
@@ -334,7 +334,7 @@ pub(crate) struct IdentUsageCollector {
 }
 
 impl Visit for IdentUsageCollector {
-    noop_visit_type!();
+    standard_only_visit!();
 
     visit_obj_and_computed!();
 
@@ -402,7 +402,7 @@ pub(crate) struct CapturedIdCollector {
 }
 
 impl Visit for CapturedIdCollector {
-    noop_visit_type!();
+    standard_only_visit!();
 
     visit_obj_and_computed!();
 
@@ -506,7 +506,7 @@ pub(crate) struct EvalFinder {
 }
 
 impl Visit for EvalFinder {
-    noop_visit_type!();
+    standard_only_visit!();
 
     visit_obj_and_computed!();
 
diff --git a/crates/swc_ecma_minifier/tests/eval.rs b/crates/swc_ecma_minifier/tests/eval.rs
index 401ce68dc56e..60ec729211fd 100644
--- a/crates/swc_ecma_minifier/tests/eval.rs
+++ b/crates/swc_ecma_minifier/tests/eval.rs
@@ -10,7 +10,7 @@ use swc_ecma_minifier::{
 };
 use swc_ecma_parser::{parse_file_as_expr, parse_file_as_module, EsSyntax, Syntax};
 use swc_ecma_transforms_base::resolver;
-use swc_ecma_visit::{noop_visit_mut_type, VisitMut, VisitMutWith};
+use swc_ecma_visit::{standard_only_visit_mut, VisitMut, VisitMutWith};
 use testing::{assert_eq, DebugUsingDisplay};
 
 fn eval(module: &str, expr: &str) -> Option<String> {
@@ -169,7 +169,7 @@ impl PartialInliner {
 }
 
 impl VisitMut for PartialInliner {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_expr(&mut self, e: &mut Expr) {
         e.visit_mut_children_with(self);
diff --git a/crates/swc_ecma_preset_env/src/corejs2/entry.rs b/crates/swc_ecma_preset_env/src/corejs2/entry.rs
index 6ca8ffc89974..f5faa2486f32 100644
--- a/crates/swc_ecma_preset_env/src/corejs2/entry.rs
+++ b/crates/swc_ecma_preset_env/src/corejs2/entry.rs
@@ -3,7 +3,7 @@ use preset_env_base::{version::should_enable, Versions};
 use swc_atoms::js_word;
 use swc_common::{collections::ARandomState, DUMMY_SP};
 use swc_ecma_ast::*;
-use swc_ecma_visit::{noop_visit_mut_type, VisitMut, VisitMutWith};
+use swc_ecma_visit::{standard_only_visit_mut, VisitMut, VisitMutWith};
 
 use super::builtin::BUILTINS;
 
@@ -65,7 +65,7 @@ impl Entry {
 }
 
 impl VisitMut for Entry {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_import_decl(&mut self, i: &mut ImportDecl) {
         let remove = i.specifiers.is_empty() && self.add_all(&i.src.value);
diff --git a/crates/swc_ecma_preset_env/src/corejs2/mod.rs b/crates/swc_ecma_preset_env/src/corejs2/mod.rs
index 02a2e095f580..78ed02fca44a 100644
--- a/crates/swc_ecma_preset_env/src/corejs2/mod.rs
+++ b/crates/swc_ecma_preset_env/src/corejs2/mod.rs
@@ -3,7 +3,7 @@ use preset_env_base::{version::should_enable, Versions};
 use swc_atoms::{js_word, JsWord};
 use swc_common::{collections::ARandomState, DUMMY_SP};
 use swc_ecma_ast::*;
-use swc_ecma_visit::{noop_visit_type, Visit, VisitWith};
+use swc_ecma_visit::{standard_only_visit, Visit, VisitWith};
 
 pub(crate) use self::entry::Entry;
 use self::{
@@ -124,7 +124,7 @@ impl UsageVisitor {
 
 /// Detects usage of types
 impl Visit for UsageVisitor {
-    noop_visit_type!();
+    standard_only_visit!();
 
     fn visit_ident(&mut self, node: &Ident) {
         node.visit_children_with(self);
diff --git a/crates/swc_ecma_preset_env/src/corejs3/usage.rs b/crates/swc_ecma_preset_env/src/corejs3/usage.rs
index 420d3a5cec82..6a6ba3eb20fc 100644
--- a/crates/swc_ecma_preset_env/src/corejs3/usage.rs
+++ b/crates/swc_ecma_preset_env/src/corejs3/usage.rs
@@ -3,7 +3,7 @@ use preset_env_base::version::{should_enable, Version};
 use swc_atoms::{js_word, JsWord};
 use swc_common::{collections::ARandomState, DUMMY_SP};
 use swc_ecma_ast::*;
-use swc_ecma_visit::{noop_visit_type, Visit, VisitWith};
+use swc_ecma_visit::{standard_only_visit, Visit, VisitWith};
 
 use super::{
     builtin::{
@@ -154,7 +154,7 @@ impl UsageVisitor {
 }
 
 impl Visit for UsageVisitor {
-    noop_visit_type!();
+    standard_only_visit!();
 
     /// `[a, b] = c`
     fn visit_array_pat(&mut self, p: &ArrayPat) {
diff --git a/crates/swc_ecma_preset_env/src/lib.rs b/crates/swc_ecma_preset_env/src/lib.rs
index cb19217b090d..223c49cc87f6 100644
--- a/crates/swc_ecma_preset_env/src/lib.rs
+++ b/crates/swc_ecma_preset_env/src/lib.rs
@@ -6,7 +6,6 @@ use std::path::PathBuf;
 
 use preset_env_base::query::targets_to_versions;
 pub use preset_env_base::{query::Targets, version::Version, BrowserData, Versions};
-use regenerator::RegeneratorVisitor;
 use serde::Deserialize;
 use swc_atoms::{js_word, JsWord};
 use swc_common::{chain, collections::AHashSet, comments::Comments, FromVariant, Mark, DUMMY_SP};
@@ -378,8 +377,7 @@ impl Polyfills {
         T: VisitWith<corejs2::UsageVisitor>
             + VisitWith<corejs3::UsageVisitor>
             + VisitMutWith<corejs2::Entry>
-            + VisitMutWith<corejs3::Entry>
-            + VisitWith<RegeneratorVisitor>,
+            + VisitMutWith<corejs3::Entry>,
     {
         let required = match self.mode {
             None => Default::default(),
diff --git a/crates/swc_ecma_preset_env/src/regenerator/mod.rs b/crates/swc_ecma_preset_env/src/regenerator/mod.rs
index 63cc7cdb8f48..3dcf1585d8ff 100644
--- a/crates/swc_ecma_preset_env/src/regenerator/mod.rs
+++ b/crates/swc_ecma_preset_env/src/regenerator/mod.rs
@@ -1,16 +1,3 @@
-use swc_ecma_visit::{noop_visit_type, Visit, VisitWith};
-
-pub(super) fn is_required<T: VisitWith<RegeneratorVisitor>>(node: &T) -> bool {
-    let mut v = RegeneratorVisitor { found: false };
-    node.visit_with(&mut v);
-    v.found
-}
-
-pub(super) struct RegeneratorVisitor {
-    found: bool,
-}
-
-/// TODO
-impl Visit for RegeneratorVisitor {
-    noop_visit_type!();
+pub(super) fn is_required<T>(_: &T) -> bool {
+    false
 }
diff --git a/crates/swc_ecma_transforms/tests/decorators.rs b/crates/swc_ecma_transforms/tests/decorators.rs
index 2004ddb8c20b..e128e5490d00 100644
--- a/crates/swc_ecma_transforms/tests/decorators.rs
+++ b/crates/swc_ecma_transforms/tests/decorators.rs
@@ -74,6 +74,7 @@ fn simple_strip(t: &Tester, config: Config) -> impl Fold {
                 no_empty_export: true,
                 ..Default::default()
             },
+            unresolved_mark,
             top_level_mark
         ),
         class_fields_use_set(true),
@@ -4045,7 +4046,7 @@ fn fixture_exec(input: PathBuf) {
                     emit_metadata: true,
                     use_define_for_class_fields: false,
                 }),
-                strip(top_level_mark),
+                strip(unresolved_mark, top_level_mark),
                 class_fields_use_set(true),
             )
         },
diff --git a/crates/swc_ecma_transforms/tests/deno.rs b/crates/swc_ecma_transforms/tests/deno.rs
index fe9ecb12a27a..6d1573dd40f6 100644
--- a/crates/swc_ecma_transforms/tests/deno.rs
+++ b/crates/swc_ecma_transforms/tests/deno.rs
@@ -42,6 +42,7 @@ fn run_test(input: PathBuf) {
                             typescript::TsImportExportAssignConfig::Preserve,
                         ts_enum_is_mutable: true,
                     },
+                    unresolved_mark,
                     top_level_mark
                 ),
                 fixer(None),
diff --git a/crates/swc_ecma_transforms_base/tests/fixture.rs b/crates/swc_ecma_transforms_base/tests/fixture.rs
index 216ac1092ff6..e9b9624bdf1f 100644
--- a/crates/swc_ecma_transforms_base/tests/fixture.rs
+++ b/crates/swc_ecma_transforms_base/tests/fixture.rs
@@ -123,6 +123,10 @@ impl VisitMut for TsHygiene {
         i.span = i.span.with_ctxt(SyntaxContext::empty());
     }
 
+    fn visit_mut_jsx_member_expr(&mut self, n: &mut JSXMemberExpr) {
+        n.obj.visit_mut_with(self);
+    }
+
     fn visit_mut_prop_name(&mut self, n: &mut PropName) {
         if let PropName::Computed(n) = n {
             n.visit_mut_with(self);
diff --git a/crates/swc_ecma_transforms_classes/src/super_field.rs b/crates/swc_ecma_transforms_classes/src/super_field.rs
index d68bb36d90fd..2e09d8ee6a35 100644
--- a/crates/swc_ecma_transforms_classes/src/super_field.rs
+++ b/crates/swc_ecma_transforms_classes/src/super_field.rs
@@ -4,7 +4,7 @@ use swc_common::{util::take::Take, Mark, Span, DUMMY_SP};
 use swc_ecma_ast::*;
 use swc_ecma_transforms_base::helper;
 use swc_ecma_utils::{is_rest_arguments, quote_ident, ExprFactory};
-use swc_ecma_visit::{noop_visit_mut_type, VisitMut, VisitMutWith};
+use swc_ecma_visit::{standard_only_visit_mut, VisitMut, VisitMutWith};
 
 use super::get_prototype_of;
 
@@ -65,7 +65,7 @@ macro_rules! mark_nested {
 }
 
 impl<'a> VisitMut for SuperFieldAccessFolder<'a> {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     // mark_nested!(fold_function, Function);
     mark_nested!(visit_mut_class, Class);
diff --git a/crates/swc_ecma_transforms_compat/src/class_fields_use_set.rs b/crates/swc_ecma_transforms_compat/src/class_fields_use_set.rs
index 345877a132b7..a6bab0d40290 100644
--- a/crates/swc_ecma_transforms_compat/src/class_fields_use_set.rs
+++ b/crates/swc_ecma_transforms_compat/src/class_fields_use_set.rs
@@ -6,7 +6,7 @@ use swc_ecma_utils::{
     constructor::inject_after_super, default_constructor, is_literal, is_simple_pure_expr,
     private_ident, prop_name_to_member_prop, ExprFactory, ModuleItemLike, StmtLike,
 };
-use swc_ecma_visit::{as_folder, noop_visit_mut_type, Fold, VisitMut, VisitMutWith};
+use swc_ecma_visit::{as_folder, standard_only_visit_mut, Fold, VisitMut, VisitMutWith};
 
 /// # What does this module do?
 ///
@@ -93,7 +93,7 @@ struct ClassFieldsUseSet {
 }
 
 impl VisitMut for ClassFieldsUseSet {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_module_items(&mut self, n: &mut Vec<ModuleItem>) {
         self.visit_mut_stmts_like(n);
@@ -163,7 +163,7 @@ struct FieldsHandler {
 }
 
 impl VisitMut for FieldsHandler {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_class(&mut self, _: &mut Class) {
         // skip inner classes
@@ -266,7 +266,7 @@ struct ComputedFieldsHandler {
 }
 
 impl VisitMut for ComputedFieldsHandler {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_class_prop(&mut self, n: &mut ClassProp) {
         match &mut n.key {
diff --git a/crates/swc_ecma_transforms_compat/src/reserved_words.rs b/crates/swc_ecma_transforms_compat/src/reserved_words.rs
index af60ecea1ebd..bcdef34189ad 100644
--- a/crates/swc_ecma_transforms_compat/src/reserved_words.rs
+++ b/crates/swc_ecma_transforms_compat/src/reserved_words.rs
@@ -2,7 +2,7 @@ use swc_atoms::JsWord;
 use swc_ecma_ast::*;
 use swc_ecma_transforms_base::perf::Parallel;
 use swc_ecma_visit::{
-    as_folder, noop_visit_mut_type, visit_mut_obj_and_computed, Fold, VisitMut, VisitMutWith,
+    as_folder, standard_only_visit_mut, visit_mut_obj_and_computed, Fold, VisitMut, VisitMutWith,
 };
 
 pub fn reserved_words() -> impl 'static + Fold + VisitMut {
@@ -21,7 +21,7 @@ impl Parallel for EsReservedWord {
 }
 
 impl VisitMut for EsReservedWord {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     visit_mut_obj_and_computed!();
 
diff --git a/crates/swc_ecma_transforms_module/Cargo.toml b/crates/swc_ecma_transforms_module/Cargo.toml
index dd08efe935dd..576443ed5423 100644
--- a/crates/swc_ecma_transforms_module/Cargo.toml
+++ b/crates/swc_ecma_transforms_module/Cargo.toml
@@ -46,4 +46,5 @@ swc_ecma_loader = { version = "0.46.0", path = "../swc_ecma_loader", features =
 ] }
 swc_ecma_transforms_compat = { version = "0.166.1", path = "../swc_ecma_transforms_compat" }
 swc_ecma_transforms_testing = { version = "0.143.1", path = "../swc_ecma_transforms_testing" }
+swc_ecma_transforms_typescript = { version = "0.191.2", path = "../swc_ecma_transforms_typescript" }
 testing = { version = "0.36.0", path = "../testing/" }
diff --git a/crates/swc_ecma_transforms_module/src/amd.rs b/crates/swc_ecma_transforms_module/src/amd.rs
index d7093e113f87..57cfe7cf3ebf 100644
--- a/crates/swc_ecma_transforms_module/src/amd.rs
+++ b/crates/swc_ecma_transforms_module/src/amd.rs
@@ -12,7 +12,7 @@ use swc_ecma_transforms_base::{feature::FeatureFlag, helper_expr};
 use swc_ecma_utils::{
     member_expr, private_ident, quote_ident, quote_str, ExprFactory, FunctionFactory, IsDirective,
 };
-use swc_ecma_visit::{as_folder, noop_visit_mut_type, Fold, VisitMut, VisitMutWith};
+use swc_ecma_visit::{as_folder, standard_only_visit_mut, Fold, VisitMut, VisitMutWith};
 
 pub use super::util::Config as InnerConfig;
 use crate::{
@@ -128,7 +128,7 @@ impl<C> VisitMut for Amd<C>
 where
     C: Comments,
 {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_module(&mut self, n: &mut Module) {
         if self.module_id.is_none() {
diff --git a/crates/swc_ecma_transforms_module/src/common_js.rs b/crates/swc_ecma_transforms_module/src/common_js.rs
index c258f1ee2d7d..d90d70bdde62 100644
--- a/crates/swc_ecma_transforms_module/src/common_js.rs
+++ b/crates/swc_ecma_transforms_module/src/common_js.rs
@@ -6,7 +6,7 @@ use swc_ecma_transforms_base::{feature::FeatureFlag, helper_expr};
 use swc_ecma_utils::{
     member_expr, private_ident, quote_expr, quote_ident, ExprFactory, FunctionFactory, IsDirective,
 };
-use swc_ecma_visit::{as_folder, noop_visit_mut_type, Fold, VisitMut, VisitMutWith};
+use swc_ecma_visit::{as_folder, standard_only_visit_mut, Fold, VisitMut, VisitMutWith};
 
 pub use super::util::Config;
 use crate::{
@@ -89,7 +89,7 @@ impl<C> VisitMut for Cjs<C>
 where
     C: Comments,
 {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_module(&mut self, n: &mut Module) {
         let mut stmts: Vec<ModuleItem> = Vec::with_capacity(n.body.len() + 6);
diff --git a/crates/swc_ecma_transforms_module/src/import_analysis.rs b/crates/swc_ecma_transforms_module/src/import_analysis.rs
index 3b4a3974549e..04dfb0c88261 100644
--- a/crates/swc_ecma_transforms_module/src/import_analysis.rs
+++ b/crates/swc_ecma_transforms_module/src/import_analysis.rs
@@ -3,7 +3,7 @@ use swc_common::collections::AHashMap;
 use swc_ecma_ast::*;
 use swc_ecma_transforms_base::enable_helper;
 use swc_ecma_visit::{
-    as_folder, noop_visit_mut_type, noop_visit_type, Fold, Visit, VisitMut, VisitWith,
+    as_folder, standard_only_visit, standard_only_visit_mut, Fold, Visit, VisitMut, VisitWith,
 };
 
 use crate::{module_decl_strip::LinkFlag, util::ImportInterop};
@@ -30,7 +30,7 @@ pub struct ImportAnalyzer {
 
 /// Inject required helpers methods **for** module transform passes.
 impl VisitMut for ImportAnalyzer {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_module(&mut self, module: &mut Module) {
         self.visit_module(&*module);
@@ -38,7 +38,7 @@ impl VisitMut for ImportAnalyzer {
 }
 
 impl Visit for ImportAnalyzer {
-    noop_visit_type!();
+    standard_only_visit!();
 
     fn visit_module_items(&mut self, n: &[ModuleItem]) {
         for item in n.iter() {
diff --git a/crates/swc_ecma_transforms_module/src/module_decl_strip.rs b/crates/swc_ecma_transforms_module/src/module_decl_strip.rs
index c4c6c6e0cb45..f4208ec21d1e 100644
--- a/crates/swc_ecma_transforms_module/src/module_decl_strip.rs
+++ b/crates/swc_ecma_transforms_module/src/module_decl_strip.rs
@@ -7,7 +7,7 @@ use swc_common::{
 };
 use swc_ecma_ast::*;
 use swc_ecma_utils::{find_pat_ids, ident::IdentLike, private_ident, quote_ident, ExprFactory};
-use swc_ecma_visit::{noop_visit_mut_type, VisitMut, VisitMutWith};
+use swc_ecma_visit::{standard_only_visit_mut, VisitMut, VisitMutWith};
 
 use crate::module_ref_rewriter::ImportMap;
 
@@ -52,7 +52,7 @@ impl ModuleDeclStrip {
 }
 
 impl VisitMut for ModuleDeclStrip {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_module_items(&mut self, n: &mut Vec<ModuleItem>) {
         let mut list = Vec::with_capacity(n.len());
diff --git a/crates/swc_ecma_transforms_module/src/rewriter.rs b/crates/swc_ecma_transforms_module/src/rewriter.rs
index da055adda4e4..36f8e15b00d8 100644
--- a/crates/swc_ecma_transforms_module/src/rewriter.rs
+++ b/crates/swc_ecma_transforms_module/src/rewriter.rs
@@ -1,7 +1,7 @@
 use anyhow::Context;
 use swc_common::FileName;
 use swc_ecma_ast::*;
-use swc_ecma_visit::{as_folder, noop_visit_mut_type, Fold, VisitMut, VisitMutWith};
+use swc_ecma_visit::{as_folder, standard_only_visit_mut, Fold, VisitMut, VisitMutWith};
 
 use crate::path::ImportResolver;
 
@@ -25,7 +25,7 @@ impl<R> VisitMut for Rewriter<R>
 where
     R: ImportResolver,
 {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_call_expr(&mut self, e: &mut CallExpr) {
         e.visit_mut_children_with(self);
diff --git a/crates/swc_ecma_transforms_module/src/system_js.rs b/crates/swc_ecma_transforms_module/src/system_js.rs
index db44cfb9dfda..28203224e030 100644
--- a/crates/swc_ecma_transforms_module/src/system_js.rs
+++ b/crates/swc_ecma_transforms_module/src/system_js.rs
@@ -6,7 +6,7 @@ use swc_ecma_ast::*;
 use swc_ecma_utils::{
     member_expr, private_ident, quote_ident, quote_str, var::VarCollector, ExprFactory,
 };
-use swc_ecma_visit::{noop_fold_type, Fold, FoldWith, VisitWith};
+use swc_ecma_visit::{standard_only_fold, Fold, FoldWith, VisitWith};
 
 use crate::{
     path::{ImportResolver, Resolver},
@@ -510,7 +510,7 @@ impl SystemJs {
 }
 
 impl Fold for SystemJs {
-    noop_fold_type!();
+    standard_only_fold!();
 
     fn fold_call_expr(&mut self, expr: CallExpr) -> CallExpr {
         let expr = expr.fold_children_with(self);
diff --git a/crates/swc_ecma_transforms_module/src/top_level_this.rs b/crates/swc_ecma_transforms_module/src/top_level_this.rs
index 412d568ab5fd..93b52f708dbf 100644
--- a/crates/swc_ecma_transforms_module/src/top_level_this.rs
+++ b/crates/swc_ecma_transforms_module/src/top_level_this.rs
@@ -1,5 +1,5 @@
 use swc_ecma_ast::*;
-use swc_ecma_visit::{noop_visit_mut_type, VisitMut, VisitMutWith};
+use swc_ecma_visit::{noop_visit_mut_type, standard_only_visit_mut, VisitMut, VisitMutWith};
 
 pub struct TopLevelThis {
     found: bool,
@@ -19,7 +19,7 @@ where
 }
 
 impl VisitMut for TopLevelThis {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     noop_visit_mut_type!(visit_mut_function, Function);
 
diff --git a/crates/swc_ecma_transforms_module/src/umd.rs b/crates/swc_ecma_transforms_module/src/umd.rs
index 89cc71ea27de..84814940bb3f 100644
--- a/crates/swc_ecma_transforms_module/src/umd.rs
+++ b/crates/swc_ecma_transforms_module/src/umd.rs
@@ -8,7 +8,7 @@ use swc_ecma_transforms_base::{feature::FeatureFlag, helper_expr};
 use swc_ecma_utils::{
     is_valid_prop_ident, private_ident, quote_ident, quote_str, ExprFactory, IsDirective,
 };
-use swc_ecma_visit::{as_folder, noop_visit_mut_type, Fold, VisitMut, VisitMutWith};
+use swc_ecma_visit::{as_folder, standard_only_visit_mut, Fold, VisitMut, VisitMutWith};
 
 use self::config::BuiltConfig;
 pub use self::config::Config;
@@ -105,7 +105,7 @@ impl<C> VisitMut for Umd<C>
 where
     C: Comments,
 {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_module(&mut self, module: &mut Module) {
         let module_items = &mut module.body;
diff --git a/crates/swc_ecma_transforms_module/tests/amd.rs b/crates/swc_ecma_transforms_module/tests/amd.rs
index 448ffe3d5fbb..3df29ebfbc6a 100644
--- a/crates/swc_ecma_transforms_module/tests/amd.rs
+++ b/crates/swc_ecma_transforms_module/tests/amd.rs
@@ -6,6 +6,7 @@ use swc_ecma_transforms_base::{feature::FeatureFlag, resolver};
 use swc_ecma_transforms_compat::es2015::for_of;
 use swc_ecma_transforms_module::amd::{self, amd};
 use swc_ecma_transforms_testing::{test, test_fixture};
+use swc_ecma_transforms_typescript::typescript;
 use swc_ecma_visit::Fold;
 
 fn syntax() -> Syntax {
@@ -16,14 +17,15 @@ fn ts_syntax() -> Syntax {
     Syntax::Typescript(TsSyntax::default())
 }
 
-fn tr(config: amd::Config, typescript: bool, comments: Rc<SingleThreadedComments>) -> impl Fold {
+fn tr(config: amd::Config, is_ts: bool, comments: Rc<SingleThreadedComments>) -> impl Fold {
     let unresolved_mark = Mark::new();
     let top_level_mark = Mark::new();
 
     let avalible_set = FeatureFlag::all();
 
     chain!(
-        resolver(unresolved_mark, top_level_mark, typescript),
+        resolver(unresolved_mark, top_level_mark, is_ts),
+        typescript::typescript(Default::default(), unresolved_mark, top_level_mark),
         amd(unresolved_mark, config, avalible_set, Some(comments)),
     )
 }
diff --git a/crates/swc_ecma_transforms_module/tests/common_js.rs b/crates/swc_ecma_transforms_module/tests/common_js.rs
index fbda100887e8..5b40ace2378e 100644
--- a/crates/swc_ecma_transforms_module/tests/common_js.rs
+++ b/crates/swc_ecma_transforms_module/tests/common_js.rs
@@ -6,6 +6,7 @@ use swc_ecma_transforms_base::{feature::FeatureFlag, resolver};
 use swc_ecma_transforms_compat::es2015::for_of;
 use swc_ecma_transforms_module::common_js::{self, common_js};
 use swc_ecma_transforms_testing::{test, test_fixture, FixtureTestConfig};
+use swc_ecma_transforms_typescript::typescript;
 use swc_ecma_visit::Fold;
 
 fn syntax() -> Syntax {
@@ -16,18 +17,15 @@ fn ts_syntax() -> Syntax {
     Syntax::Typescript(TsSyntax::default())
 }
 
-fn tr(
-    config: common_js::Config,
-    typescript: bool,
-    comments: Rc<SingleThreadedComments>,
-) -> impl Fold {
+fn tr(config: common_js::Config, is_ts: bool, comments: Rc<SingleThreadedComments>) -> impl Fold {
     let unresolved_mark = Mark::new();
     let top_level_mark = Mark::new();
 
     let available_set = FeatureFlag::all();
 
     chain!(
-        resolver(unresolved_mark, top_level_mark, typescript),
+        resolver(unresolved_mark, top_level_mark, is_ts),
+        typescript::typescript(Default::default(), unresolved_mark, top_level_mark),
         common_js(unresolved_mark, config, available_set, Some(comments)),
     )
 }
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/amd-triple-slash-directive/1/output.amd.ts b/crates/swc_ecma_transforms_module/tests/fixture/common/amd-triple-slash-directive/1/output.amd.ts
index d2da424bf254..d50d12392617 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/amd-triple-slash-directive/1/output.amd.ts
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/amd-triple-slash-directive/1/output.amd.ts
@@ -1,13 +1,17 @@
 ///<amd-module name='NamedModule'/>
 define("NamedModule", [
-    "require"
-], function(require) {
+    "require",
+    "exports"
+], function(require, exports) {
     "use strict";
+    Object.defineProperty(exports, "__esModule", {
+        value: true
+    });
     class Foo {
-        x: number;
+        x;
         constructor(){
             this.x = 5;
         }
     }
-    return Foo;
+    module.exports = Foo;
 });
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/amd-triple-slash-directive/1/output.cts b/crates/swc_ecma_transforms_module/tests/fixture/common/amd-triple-slash-directive/1/output.cts
index 7d0129e3d868..820ab95ff051 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/amd-triple-slash-directive/1/output.cts
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/amd-triple-slash-directive/1/output.cts
@@ -1,7 +1,10 @@
 ///<amd-module name='NamedModule'/>
 "use strict";
+Object.defineProperty(exports, "__esModule", {
+    value: true
+});
 class Foo {
-    x: number;
+    x;
     constructor(){
         this.x = 5;
     }
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/amd-triple-slash-directive/1/output.umd.ts b/crates/swc_ecma_transforms_module/tests/fixture/common/amd-triple-slash-directive/1/output.umd.ts
index 7f88ad5ad7e4..4c4f3bce4b00 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/amd-triple-slash-directive/1/output.umd.ts
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/amd-triple-slash-directive/1/output.umd.ts
@@ -1,15 +1,20 @@
 ///<amd-module name='NamedModule'/>
 (function(global, factory) {
-    if (typeof module === "object" && typeof module.exports === "object") module.exports = factory();
-    else if (typeof define === "function" && define.amd) define([], factory);
-    else if (global = typeof globalThis !== "undefined" ? globalThis : global || self) module.exports = factory();
-})(this, function() {
+    if (typeof module === "object" && typeof module.exports === "object") factory(exports);
+    else if (typeof define === "function" && define.amd) define([
+        "exports"
+    ], factory);
+    else if (global = typeof globalThis !== "undefined" ? globalThis : global || self) factory(global.input = {});
+})(this, function(exports) {
     "use strict";
+    Object.defineProperty(exports, "__esModule", {
+        value: true
+    });
     class Foo {
-        x: number;
+        x;
         constructor(){
             this.x = 5;
         }
     }
-    return Foo;
+    module.exports = Foo;
 });
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/amd-triple-slash-directive/2/output.amd.ts b/crates/swc_ecma_transforms_module/tests/fixture/common/amd-triple-slash-directive/2/output.amd.ts
index ab0379f6a463..419e23cd1f31 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/amd-triple-slash-directive/2/output.amd.ts
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/amd-triple-slash-directive/2/output.amd.ts
@@ -1,14 +1,18 @@
 ///<amd-module name='FirstModuleName'/>
 ///<amd-module name='SecondModuleName'/>
 define("SecondModuleName", [
-    "require"
-], function(require) {
+    "require",
+    "exports"
+], function(require, exports) {
     "use strict";
+    Object.defineProperty(exports, "__esModule", {
+        value: true
+    });
     class Foo {
-        x: number;
+        x;
         constructor(){
             this.x = 5;
         }
     }
-    return Foo;
+    module.exports = Foo;
 });
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/amd-triple-slash-directive/2/output.cts b/crates/swc_ecma_transforms_module/tests/fixture/common/amd-triple-slash-directive/2/output.cts
index 9fe74ef3031a..e3eaa58d9894 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/amd-triple-slash-directive/2/output.cts
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/amd-triple-slash-directive/2/output.cts
@@ -1,8 +1,11 @@
 ///<amd-module name='FirstModuleName'/>
 ///<amd-module name='SecondModuleName'/>
 "use strict";
+Object.defineProperty(exports, "__esModule", {
+    value: true
+});
 class Foo {
-    x: number;
+    x;
     constructor(){
         this.x = 5;
     }
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/amd-triple-slash-directive/2/output.umd.ts b/crates/swc_ecma_transforms_module/tests/fixture/common/amd-triple-slash-directive/2/output.umd.ts
index 51b93eb85517..4ec09637c08f 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/amd-triple-slash-directive/2/output.umd.ts
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/amd-triple-slash-directive/2/output.umd.ts
@@ -1,16 +1,21 @@
 ///<amd-module name='FirstModuleName'/>
 ///<amd-module name='SecondModuleName'/>
 (function(global, factory) {
-    if (typeof module === "object" && typeof module.exports === "object") module.exports = factory();
-    else if (typeof define === "function" && define.amd) define([], factory);
-    else if (global = typeof globalThis !== "undefined" ? globalThis : global || self) module.exports = factory();
-})(this, function() {
+    if (typeof module === "object" && typeof module.exports === "object") factory(exports);
+    else if (typeof define === "function" && define.amd) define([
+        "exports"
+    ], factory);
+    else if (global = typeof globalThis !== "undefined" ? globalThis : global || self) factory(global.input = {});
+})(this, function(exports) {
     "use strict";
+    Object.defineProperty(exports, "__esModule", {
+        value: true
+    });
     class Foo {
-        x: number;
+        x;
         constructor(){
             this.x = 5;
         }
     }
-    return Foo;
+    module.exports = Foo;
 });
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/amd-triple-slash-directive/3/output.amd.ts b/crates/swc_ecma_transforms_module/tests/fixture/common/amd-triple-slash-directive/3/output.amd.ts
index 82c39bf2e6a7..76f7ec0436ff 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/amd-triple-slash-directive/3/output.amd.ts
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/amd-triple-slash-directive/3/output.amd.ts
@@ -1,13 +1,17 @@
 ///<AmD-moDulE nAme='NamedModule'/>
 define("NamedModule", [
-    "require"
-], function(require) {
+    "require",
+    "exports"
+], function(require, exports) {
     "use strict";
+    Object.defineProperty(exports, "__esModule", {
+        value: true
+    });
     class Foo {
-        x: number;
+        x;
         constructor(){
             this.x = 5;
         }
     }
-    return Foo;
+    module.exports = Foo;
 });
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/amd-triple-slash-directive/3/output.cts b/crates/swc_ecma_transforms_module/tests/fixture/common/amd-triple-slash-directive/3/output.cts
index d664425b8491..118b25897bc0 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/amd-triple-slash-directive/3/output.cts
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/amd-triple-slash-directive/3/output.cts
@@ -1,7 +1,10 @@
 ///<AmD-moDulE nAme='NamedModule'/>
 "use strict";
+Object.defineProperty(exports, "__esModule", {
+    value: true
+});
 class Foo {
-    x: number;
+    x;
     constructor(){
         this.x = 5;
     }
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/amd-triple-slash-directive/3/output.umd.ts b/crates/swc_ecma_transforms_module/tests/fixture/common/amd-triple-slash-directive/3/output.umd.ts
index 1d154a68cc0b..79d59bc2e068 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/amd-triple-slash-directive/3/output.umd.ts
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/amd-triple-slash-directive/3/output.umd.ts
@@ -1,15 +1,20 @@
 ///<AmD-moDulE nAme='NamedModule'/>
 (function(global, factory) {
-    if (typeof module === "object" && typeof module.exports === "object") module.exports = factory();
-    else if (typeof define === "function" && define.amd) define([], factory);
-    else if (global = typeof globalThis !== "undefined" ? globalThis : global || self) module.exports = factory();
-})(this, function() {
+    if (typeof module === "object" && typeof module.exports === "object") factory(exports);
+    else if (typeof define === "function" && define.amd) define([
+        "exports"
+    ], factory);
+    else if (global = typeof globalThis !== "undefined" ? globalThis : global || self) factory(global.input = {});
+})(this, function(exports) {
     "use strict";
+    Object.defineProperty(exports, "__esModule", {
+        value: true
+    });
     class Foo {
-        x: number;
+        x;
         constructor(){
             this.x = 5;
         }
     }
-    return Foo;
+    module.exports = Foo;
 });
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/amd-triple-slash-directive/4/output.amd.ts b/crates/swc_ecma_transforms_module/tests/fixture/common/amd-triple-slash-directive/4/output.amd.ts
index 49b4e1fa6794..ef002e3b344c 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/amd-triple-slash-directive/4/output.amd.ts
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/amd-triple-slash-directive/4/output.amd.ts
@@ -1,12 +1,16 @@
 /*/<amd-module name='should-ignore'/> */ define([
-    "require"
-], function(require) {
+    "require",
+    "exports"
+], function(require, exports) {
     "use strict";
+    Object.defineProperty(exports, "__esModule", {
+        value: true
+    });
     class Foo {
-        x: number;
+        x;
         constructor(){
             this.x = 5;
         }
     }
-    return Foo;
+    module.exports = Foo;
 });
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/amd-triple-slash-directive/4/output.cts b/crates/swc_ecma_transforms_module/tests/fixture/common/amd-triple-slash-directive/4/output.cts
index eb924755e133..4ba42901ff6e 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/amd-triple-slash-directive/4/output.cts
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/amd-triple-slash-directive/4/output.cts
@@ -1,6 +1,9 @@
 /*/<amd-module name='should-ignore'/> */ "use strict";
+Object.defineProperty(exports, "__esModule", {
+    value: true
+});
 class Foo {
-    x: number;
+    x;
     constructor(){
         this.x = 5;
     }
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/amd-triple-slash-directive/4/output.umd.ts b/crates/swc_ecma_transforms_module/tests/fixture/common/amd-triple-slash-directive/4/output.umd.ts
index 3dbdea595764..796defc78f91 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/amd-triple-slash-directive/4/output.umd.ts
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/amd-triple-slash-directive/4/output.umd.ts
@@ -1,14 +1,19 @@
 /*/<amd-module name='should-ignore'/> */ (function(global, factory) {
-    if (typeof module === "object" && typeof module.exports === "object") module.exports = factory();
-    else if (typeof define === "function" && define.amd) define([], factory);
-    else if (global = typeof globalThis !== "undefined" ? globalThis : global || self) module.exports = factory();
-})(this, function() {
+    if (typeof module === "object" && typeof module.exports === "object") factory(exports);
+    else if (typeof define === "function" && define.amd) define([
+        "exports"
+    ], factory);
+    else if (global = typeof globalThis !== "undefined" ? globalThis : global || self) factory(global.input = {});
+})(this, function(exports) {
     "use strict";
+    Object.defineProperty(exports, "__esModule", {
+        value: true
+    });
     class Foo {
-        x: number;
+        x;
         constructor(){
             this.x = 5;
         }
     }
-    return Foo;
+    module.exports = Foo;
 });
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/cts-import-export/export-assign/output.amd.ts b/crates/swc_ecma_transforms_module/tests/fixture/common/cts-import-export/export-assign/output.amd.ts
index 1556db75f59d..99522009e7a0 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/cts-import-export/export-assign/output.amd.ts
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/cts-import-export/export-assign/output.amd.ts
@@ -1,7 +1,11 @@
 define([
     "require",
-    "foo"
-], function(require, _foo) {
+    "exports"
+], function(require, exports) {
     "use strict";
-    return _foo;
+    Object.defineProperty(exports, "__esModule", {
+        value: true
+    });
+    const foo = require("foo");
+    module.exports = foo;
 });
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/cts-import-export/export-assign/output.cts b/crates/swc_ecma_transforms_module/tests/fixture/common/cts-import-export/export-assign/output.cts
index e642ef8d7dec..dc5b8b77802e 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/cts-import-export/export-assign/output.cts
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/cts-import-export/export-assign/output.cts
@@ -1,3 +1,6 @@
 "use strict";
+Object.defineProperty(exports, "__esModule", {
+    value: true
+});
 const foo = require("foo");
 module.exports = foo;
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/cts-import-export/export-assign/output.umd.ts b/crates/swc_ecma_transforms_module/tests/fixture/common/cts-import-export/export-assign/output.umd.ts
index 33922044464d..69ce3fce035c 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/cts-import-export/export-assign/output.umd.ts
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/cts-import-export/export-assign/output.umd.ts
@@ -1,10 +1,14 @@
 (function(global, factory) {
-    if (typeof module === "object" && typeof module.exports === "object") module.exports = factory(require("foo"));
+    if (typeof module === "object" && typeof module.exports === "object") factory(exports);
     else if (typeof define === "function" && define.amd) define([
-        "foo"
+        "exports"
     ], factory);
-    else if (global = typeof globalThis !== "undefined" ? globalThis : global || self) module.exports = factory(global.foo);
-})(this, function(_foo) {
+    else if (global = typeof globalThis !== "undefined" ? globalThis : global || self) factory(global.input = {});
+})(this, function(exports) {
     "use strict";
-    return _foo;
+    Object.defineProperty(exports, "__esModule", {
+        value: true
+    });
+    const foo = require("foo");
+    module.exports = foo;
 });
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/cts-import-export/export-import/output.amd.ts b/crates/swc_ecma_transforms_module/tests/fixture/common/cts-import-export/export-import/output.amd.ts
index f13a6810770f..9f47466d42d0 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/cts-import-export/export-import/output.amd.ts
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/cts-import-export/export-import/output.amd.ts
@@ -1,16 +1,10 @@
 define([
     "require",
-    "exports",
-    "foo"
-], function(require, exports, _foo) {
+    "exports"
+], function(require, exports1) {
     "use strict";
-    Object.defineProperty(exports, "__esModule", {
+    Object.defineProperty(exports1, "__esModule", {
         value: true
     });
-    Object.defineProperty(exports, "foo", {
-        enumerable: true,
-        get: function() {
-            return _foo;
-        }
-    });
+    const foo = exports.foo = require("foo");
 });
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/cts-import-export/export-import/output.cts b/crates/swc_ecma_transforms_module/tests/fixture/common/cts-import-export/export-import/output.cts
index 6a27ca6eca4f..0f47a30c5279 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/cts-import-export/export-import/output.cts
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/cts-import-export/export-import/output.cts
@@ -2,4 +2,4 @@
 Object.defineProperty(exports, "__esModule", {
     value: true
 });
-exports.foo = require("foo");
+const foo = exports.foo = require("foo");
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/cts-import-export/export-import/output.umd.ts b/crates/swc_ecma_transforms_module/tests/fixture/common/cts-import-export/export-import/output.umd.ts
index c59bd4242730..b9fb7c6fa407 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/cts-import-export/export-import/output.umd.ts
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/cts-import-export/export-import/output.umd.ts
@@ -1,19 +1,13 @@
 (function(global, factory) {
-    if (typeof module === "object" && typeof module.exports === "object") factory(exports, require("foo"));
+    if (typeof module === "object" && typeof module.exports === "object") factory(exports);
     else if (typeof define === "function" && define.amd) define([
-        "exports",
-        "foo"
+        "exports"
     ], factory);
-    else if (global = typeof globalThis !== "undefined" ? globalThis : global || self) factory(global.input = {}, global.foo);
-})(this, function(exports, _foo) {
+    else if (global = typeof globalThis !== "undefined" ? globalThis : global || self) factory(global.input = {});
+})(this, function(exports1) {
     "use strict";
-    Object.defineProperty(exports, "__esModule", {
+    Object.defineProperty(exports1, "__esModule", {
         value: true
     });
-    Object.defineProperty(exports, "foo", {
-        enumerable: true,
-        get: function() {
-            return _foo;
-        }
-    });
+    const foo = exports.foo = require("foo");
 });
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/cts-import-export/mixed/output.amd.ts b/crates/swc_ecma_transforms_module/tests/fixture/common/cts-import-export/mixed/output.amd.ts
index 14d4d77e592c..4eec0701af86 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/cts-import-export/mixed/output.amd.ts
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/cts-import-export/mixed/output.amd.ts
@@ -7,7 +7,8 @@ define([
     Object.defineProperty(exports, "__esModule", {
         value: true
     });
-    const _foo1 = /*#__PURE__*/ _interop_require_default(_foo);
-    (0, _foo1.default)();
-    _foo();
+    _foo = /*#__PURE__*/ _interop_require_default(_foo);
+    const bar = require("foo");
+    (0, _foo.default)();
+    bar();
 });
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/cts-import-export/mixed/output.umd.ts b/crates/swc_ecma_transforms_module/tests/fixture/common/cts-import-export/mixed/output.umd.ts
index dfa010841664..103c853f28b7 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/cts-import-export/mixed/output.umd.ts
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/cts-import-export/mixed/output.umd.ts
@@ -10,7 +10,8 @@
     Object.defineProperty(exports, "__esModule", {
         value: true
     });
-    const _foo1 = /*#__PURE__*/ _interop_require_default(_foo);
-    (0, _foo1.default)();
-    _foo();
+    _foo = /*#__PURE__*/ _interop_require_default(_foo);
+    const bar = require("foo");
+    (0, _foo.default)();
+    bar();
 });
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/ignore-dynamic/1/output.amd.js b/crates/swc_ecma_transforms_module/tests/fixture/common/ignore-dynamic/1/output.amd.js
index 94f63082771c..e60d89883fa7 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/ignore-dynamic/1/output.amd.js
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/ignore-dynamic/1/output.amd.js
@@ -1,13 +1,11 @@
 define([
     "require",
-    "exports",
-    "foo"
-], function(require, exports, _foo) {
+    "exports"
+], function(require, exports) {
     "use strict";
     Object.defineProperty(exports, "__esModule", {
         value: true
     });
-    _foo = /*#__PURE__*/ _interop_require_default(_foo);
     async function foo() {
         await import("foo");
         callback(()=>import("foo"));
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/ignore-dynamic/1/output.cjs b/crates/swc_ecma_transforms_module/tests/fixture/common/ignore-dynamic/1/output.cjs
index 638af740f13d..489a8cd6d39e 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/ignore-dynamic/1/output.cjs
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/ignore-dynamic/1/output.cjs
@@ -2,7 +2,6 @@
 Object.defineProperty(exports, "__esModule", {
     value: true
 });
-const _foo = /*#__PURE__*/ _interop_require_default(require("foo"));
 async function foo() {
     await import("foo");
     callback(()=>import("foo"));
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/ignore-dynamic/1/output.umd.js b/crates/swc_ecma_transforms_module/tests/fixture/common/ignore-dynamic/1/output.umd.js
index f84f8d5a15bc..21c526c3fa0c 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/ignore-dynamic/1/output.umd.js
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/ignore-dynamic/1/output.umd.js
@@ -1,16 +1,14 @@
 (function(global, factory) {
-    if (typeof module === "object" && typeof module.exports === "object") factory(exports, require("foo"));
+    if (typeof module === "object" && typeof module.exports === "object") factory(exports);
     else if (typeof define === "function" && define.amd) define([
-        "exports",
-        "foo"
+        "exports"
     ], factory);
-    else if (global = typeof globalThis !== "undefined" ? globalThis : global || self) factory(global.input = {}, global.foo);
-})(this, function(exports, _foo) {
+    else if (global = typeof globalThis !== "undefined" ? globalThis : global || self) factory(global.input = {});
+})(this, function(exports) {
     "use strict";
     Object.defineProperty(exports, "__esModule", {
         value: true
     });
-    _foo = /*#__PURE__*/ _interop_require_default(_foo);
     async function foo() {
         await import("foo");
         callback(()=>import("foo"));
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/imports-glob/output.amd.js b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/imports-glob/output.amd.js
index c744a948919f..9ef9840f8b9f 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/imports-glob/output.amd.js
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/imports-glob/output.amd.js
@@ -1,11 +1,9 @@
 define([
     "require",
-    "exports",
-    "foo"
-], function(require, exports, _foo) {
+    "exports"
+], function(require, exports) {
     "use strict";
     Object.defineProperty(exports, "__esModule", {
         value: true
     });
-    _foo = /*#__PURE__*/ _interop_require_wildcard(_foo, true);
 });
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/imports-glob/output.cjs b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/imports-glob/output.cjs
index 3e9e5e8e6fc9..b62a6d552c31 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/imports-glob/output.cjs
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/imports-glob/output.cjs
@@ -2,4 +2,3 @@
 Object.defineProperty(exports, "__esModule", {
     value: true
 });
-const _foo = /*#__PURE__*/ _interop_require_wildcard(require("foo"), true);
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/imports-glob/output.umd.js b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/imports-glob/output.umd.js
index a0d04a76fdfa..912a624cc67a 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/imports-glob/output.umd.js
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/imports-glob/output.umd.js
@@ -1,14 +1,12 @@
 (function(global, factory) {
-    if (typeof module === "object" && typeof module.exports === "object") factory(exports, require("foo"));
+    if (typeof module === "object" && typeof module.exports === "object") factory(exports);
     else if (typeof define === "function" && define.amd) define([
-        "exports",
-        "foo"
+        "exports"
     ], factory);
-    else if (global = typeof globalThis !== "undefined" ? globalThis : global || self) factory(global.input = {}, global.foo);
-})(this, function(exports, _foo) {
+    else if (global = typeof globalThis !== "undefined" ? globalThis : global || self) factory(global.input = {});
+})(this, function(exports) {
     "use strict";
     Object.defineProperty(exports, "__esModule", {
         value: true
     });
-    _foo = /*#__PURE__*/ _interop_require_wildcard(_foo, true);
 });
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/imports-ordering/output.amd.js b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/imports-ordering/output.amd.js
index 62ce7d8b82a0..1ddc83f6847e 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/imports-ordering/output.amd.js
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/imports-ordering/output.amd.js
@@ -2,13 +2,10 @@ define([
     "require",
     "exports",
     "./foo",
-    "./bar",
-    "./derp",
-    "./qux"
-], function(require, exports, _foo, _bar, _derp, _qux) {
+    "./derp"
+], function(require, exports, _foo, _derp) {
     "use strict";
     Object.defineProperty(exports, "__esModule", {
         value: true
     });
-    _bar = _bar;
 });
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/imports-ordering/output.cjs b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/imports-ordering/output.cjs
index 0ced927f8fe8..fe8dd9c60d6d 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/imports-ordering/output.cjs
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/imports-ordering/output.cjs
@@ -3,6 +3,4 @@ Object.defineProperty(exports, "__esModule", {
     value: true
 });
 require("./foo");
-const _bar = require("./bar");
 require("./derp");
-const _qux = require("./qux");
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/imports-ordering/output.umd.js b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/imports-ordering/output.umd.js
index f9f2cf66bfc0..a012abe3423b 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/imports-ordering/output.umd.js
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/imports-ordering/output.umd.js
@@ -1,17 +1,14 @@
 (function(global, factory) {
-    if (typeof module === "object" && typeof module.exports === "object") factory(exports, require("./foo"), require("./bar"), require("./derp"), require("./qux"));
+    if (typeof module === "object" && typeof module.exports === "object") factory(exports, require("./foo"), require("./derp"));
     else if (typeof define === "function" && define.amd) define([
         "exports",
         "./foo",
-        "./bar",
-        "./derp",
-        "./qux"
+        "./derp"
     ], factory);
-    else if (global = typeof globalThis !== "undefined" ? globalThis : global || self) factory(global.input = {}, global.foo, global.bar, global.derp, global.qux);
-})(this, function(exports, _foo, _bar, _derp, _qux) {
+    else if (global = typeof globalThis !== "undefined" ? globalThis : global || self) factory(global.input = {}, global.foo, global.derp);
+})(this, function(exports, _foo, _derp) {
     "use strict";
     Object.defineProperty(exports, "__esModule", {
         value: true
     });
-    _bar = _bar;
 });
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/overview/output.amd.js b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/overview/output.amd.js
index 75fad6a9d49b..3fa3b8558600 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/overview/output.amd.js
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/overview/output.amd.js
@@ -5,10 +5,9 @@ define([
     "foo-bar",
     "./directory/foo-bar",
     "foo2",
-    "foo3",
     "foo4",
     "foo5"
-], function(require, exports, _foo, _foobar, _foobar1, _foo2, _foo3, _foo4, _foo5) {
+], function(require, exports, _foo, _foobar, _foobar1, _foo2, _foo4, _foo5) {
     "use strict";
     Object.defineProperty(exports, "__esModule", {
         value: true
@@ -28,7 +27,6 @@ define([
         }
     });
     _foo2 = _foo2;
-    _foo3 = /*#__PURE__*/ _interop_require_wildcard(_foo3, true);
     var test;
     var test2 = 5;
     _foo4.bar;
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/overview/output.cjs b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/overview/output.cjs
index 7ea7387a6bb2..e1c526da4fe4 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/overview/output.cjs
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/overview/output.cjs
@@ -24,7 +24,6 @@ require("foo");
 require("foo-bar");
 require("./directory/foo-bar");
 const _foo2 = require("foo2");
-const _foo3 = /*#__PURE__*/ _interop_require_wildcard(require("foo3"), true);
 const _foo4 = require("foo4");
 const _foo5 = require("foo5");
 var test;
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/overview/output.umd.js b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/overview/output.umd.js
index f6ef0c110633..27dda1f24b9a 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/overview/output.umd.js
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/interop-node/overview/output.umd.js
@@ -1,17 +1,16 @@
 (function(global, factory) {
-    if (typeof module === "object" && typeof module.exports === "object") factory(exports, require("foo"), require("foo-bar"), require("./directory/foo-bar"), require("foo2"), require("foo3"), require("foo4"), require("foo5"));
+    if (typeof module === "object" && typeof module.exports === "object") factory(exports, require("foo"), require("foo-bar"), require("./directory/foo-bar"), require("foo2"), require("foo4"), require("foo5"));
     else if (typeof define === "function" && define.amd) define([
         "exports",
         "foo",
         "foo-bar",
         "./directory/foo-bar",
         "foo2",
-        "foo3",
         "foo4",
         "foo5"
     ], factory);
-    else if (global = typeof globalThis !== "undefined" ? globalThis : global || self) factory(global.input = {}, global.foo, global.fooBar, global.fooBar, global.foo2, global.foo3, global.foo4, global.foo5);
-})(this, function(exports, _foo, _foobar, _foobar1, _foo2, _foo3, _foo4, _foo5) {
+    else if (global = typeof globalThis !== "undefined" ? globalThis : global || self) factory(global.input = {}, global.foo, global.fooBar, global.fooBar, global.foo2, global.foo4, global.foo5);
+})(this, function(exports, _foo, _foobar, _foobar1, _foo2, _foo4, _foo5) {
     "use strict";
     Object.defineProperty(exports, "__esModule", {
         value: true
@@ -31,7 +30,6 @@
         }
     });
     _foo2 = _foo2;
-    _foo3 = /*#__PURE__*/ _interop_require_wildcard(_foo3, true);
     var test;
     var test2 = 5;
     _foo4.bar;
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/interop/imports-glob/output.amd.js b/crates/swc_ecma_transforms_module/tests/fixture/common/interop/imports-glob/output.amd.js
index 50c0de539791..9ef9840f8b9f 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/interop/imports-glob/output.amd.js
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/interop/imports-glob/output.amd.js
@@ -1,11 +1,9 @@
 define([
     "require",
-    "exports",
-    "foo"
-], function(require, exports, _foo) {
+    "exports"
+], function(require, exports) {
     "use strict";
     Object.defineProperty(exports, "__esModule", {
         value: true
     });
-    _foo = /*#__PURE__*/ _interop_require_wildcard(_foo);
 });
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/interop/imports-glob/output.cjs b/crates/swc_ecma_transforms_module/tests/fixture/common/interop/imports-glob/output.cjs
index 14d925afe7f2..b62a6d552c31 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/interop/imports-glob/output.cjs
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/interop/imports-glob/output.cjs
@@ -2,4 +2,3 @@
 Object.defineProperty(exports, "__esModule", {
     value: true
 });
-const _foo = /*#__PURE__*/ _interop_require_wildcard(require("foo"));
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/interop/imports-glob/output.umd.js b/crates/swc_ecma_transforms_module/tests/fixture/common/interop/imports-glob/output.umd.js
index 410cbac665ba..912a624cc67a 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/interop/imports-glob/output.umd.js
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/interop/imports-glob/output.umd.js
@@ -1,14 +1,12 @@
 (function(global, factory) {
-    if (typeof module === "object" && typeof module.exports === "object") factory(exports, require("foo"));
+    if (typeof module === "object" && typeof module.exports === "object") factory(exports);
     else if (typeof define === "function" && define.amd) define([
-        "exports",
-        "foo"
+        "exports"
     ], factory);
-    else if (global = typeof globalThis !== "undefined" ? globalThis : global || self) factory(global.input = {}, global.foo);
-})(this, function(exports, _foo) {
+    else if (global = typeof globalThis !== "undefined" ? globalThis : global || self) factory(global.input = {});
+})(this, function(exports) {
     "use strict";
     Object.defineProperty(exports, "__esModule", {
         value: true
     });
-    _foo = /*#__PURE__*/ _interop_require_wildcard(_foo);
 });
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/interop/imports-ordering/output.amd.js b/crates/swc_ecma_transforms_module/tests/fixture/common/interop/imports-ordering/output.amd.js
index 03b76c84d8ca..1ddc83f6847e 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/interop/imports-ordering/output.amd.js
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/interop/imports-ordering/output.amd.js
@@ -2,13 +2,10 @@ define([
     "require",
     "exports",
     "./foo",
-    "./bar",
-    "./derp",
-    "./qux"
-], function(require, exports, _foo, _bar, _derp, _qux) {
+    "./derp"
+], function(require, exports, _foo, _derp) {
     "use strict";
     Object.defineProperty(exports, "__esModule", {
         value: true
     });
-    _bar = /*#__PURE__*/ _interop_require_default(_bar);
 });
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/interop/imports-ordering/output.cjs b/crates/swc_ecma_transforms_module/tests/fixture/common/interop/imports-ordering/output.cjs
index d54269cf3df6..fe8dd9c60d6d 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/interop/imports-ordering/output.cjs
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/interop/imports-ordering/output.cjs
@@ -3,6 +3,4 @@ Object.defineProperty(exports, "__esModule", {
     value: true
 });
 require("./foo");
-const _bar = /*#__PURE__*/ _interop_require_default(require("./bar"));
 require("./derp");
-const _qux = require("./qux");
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/interop/imports-ordering/output.umd.js b/crates/swc_ecma_transforms_module/tests/fixture/common/interop/imports-ordering/output.umd.js
index 418b963f3939..a012abe3423b 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/interop/imports-ordering/output.umd.js
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/interop/imports-ordering/output.umd.js
@@ -1,17 +1,14 @@
 (function(global, factory) {
-    if (typeof module === "object" && typeof module.exports === "object") factory(exports, require("./foo"), require("./bar"), require("./derp"), require("./qux"));
+    if (typeof module === "object" && typeof module.exports === "object") factory(exports, require("./foo"), require("./derp"));
     else if (typeof define === "function" && define.amd) define([
         "exports",
         "./foo",
-        "./bar",
-        "./derp",
-        "./qux"
+        "./derp"
     ], factory);
-    else if (global = typeof globalThis !== "undefined" ? globalThis : global || self) factory(global.input = {}, global.foo, global.bar, global.derp, global.qux);
-})(this, function(exports, _foo, _bar, _derp, _qux) {
+    else if (global = typeof globalThis !== "undefined" ? globalThis : global || self) factory(global.input = {}, global.foo, global.derp);
+})(this, function(exports, _foo, _derp) {
     "use strict";
     Object.defineProperty(exports, "__esModule", {
         value: true
     });
-    _bar = /*#__PURE__*/ _interop_require_default(_bar);
 });
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/interop/overview/output.amd.js b/crates/swc_ecma_transforms_module/tests/fixture/common/interop/overview/output.amd.js
index 2d53eedd83c0..f204a5d7f59a 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/interop/overview/output.amd.js
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/interop/overview/output.amd.js
@@ -5,10 +5,9 @@ define([
     "foo-bar",
     "./directory/foo-bar",
     "foo2",
-    "foo3",
     "foo4",
     "foo5"
-], function(require, exports, _foo, _foobar, _foobar1, _foo2, _foo3, _foo4, _foo5) {
+], function(require, exports, _foo, _foobar, _foobar1, _foo2, _foo4, _foo5) {
     "use strict";
     Object.defineProperty(exports, "__esModule", {
         value: true
@@ -28,7 +27,6 @@ define([
         }
     });
     _foo2 = /*#__PURE__*/ _interop_require_default(_foo2);
-    _foo3 = /*#__PURE__*/ _interop_require_wildcard(_foo3);
     var test;
     var test2 = 5;
     _foo4.bar;
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/interop/overview/output.cjs b/crates/swc_ecma_transforms_module/tests/fixture/common/interop/overview/output.cjs
index d2b6e047139e..0f25edd1774d 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/interop/overview/output.cjs
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/interop/overview/output.cjs
@@ -20,7 +20,6 @@ require("foo");
 require("foo-bar");
 require("./directory/foo-bar");
 const _foo2 = /*#__PURE__*/ _interop_require_default(require("foo2"));
-const _foo3 = /*#__PURE__*/ _interop_require_wildcard(require("foo3"));
 const _foo4 = require("foo4");
 const _foo5 = require("foo5");
 var test;
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/interop/overview/output.umd.js b/crates/swc_ecma_transforms_module/tests/fixture/common/interop/overview/output.umd.js
index 9a29cb9861e8..30833b76f8f2 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/interop/overview/output.umd.js
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/interop/overview/output.umd.js
@@ -1,17 +1,16 @@
 (function(global, factory) {
-    if (typeof module === "object" && typeof module.exports === "object") factory(exports, require("foo"), require("foo-bar"), require("./directory/foo-bar"), require("foo2"), require("foo3"), require("foo4"), require("foo5"));
+    if (typeof module === "object" && typeof module.exports === "object") factory(exports, require("foo"), require("foo-bar"), require("./directory/foo-bar"), require("foo2"), require("foo4"), require("foo5"));
     else if (typeof define === "function" && define.amd) define([
         "exports",
         "foo",
         "foo-bar",
         "./directory/foo-bar",
         "foo2",
-        "foo3",
         "foo4",
         "foo5"
     ], factory);
-    else if (global = typeof globalThis !== "undefined" ? globalThis : global || self) factory(global.input = {}, global.foo, global.fooBar, global.fooBar, global.foo2, global.foo3, global.foo4, global.foo5);
-})(this, function(exports, _foo, _foobar, _foobar1, _foo2, _foo3, _foo4, _foo5) {
+    else if (global = typeof globalThis !== "undefined" ? globalThis : global || self) factory(global.input = {}, global.foo, global.fooBar, global.fooBar, global.foo2, global.foo4, global.foo5);
+})(this, function(exports, _foo, _foobar, _foobar1, _foo2, _foo4, _foo5) {
     "use strict";
     Object.defineProperty(exports, "__esModule", {
         value: true
@@ -31,7 +30,6 @@
         }
     });
     _foo2 = /*#__PURE__*/ _interop_require_default(_foo2);
-    _foo3 = /*#__PURE__*/ _interop_require_wildcard(_foo3);
     var test;
     var test2 = 5;
     _foo4.bar;
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-1480/2/output.amd.js b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-1480/2/output.amd.js
index b6dc8ef83bb0..9ef9840f8b9f 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-1480/2/output.amd.js
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-1480/2/output.amd.js
@@ -1,11 +1,9 @@
 define([
     "require",
-    "exports",
-    "ora"
-], function(require, exports, _ora) {
+    "exports"
+], function(require, exports) {
     "use strict";
     Object.defineProperty(exports, "__esModule", {
         value: true
     });
-    _ora = /*#__PURE__*/ _interop_require_wildcard(_ora);
 });
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-1480/2/output.cjs b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-1480/2/output.cjs
index 619f917c6a05..b62a6d552c31 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-1480/2/output.cjs
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-1480/2/output.cjs
@@ -2,4 +2,3 @@
 Object.defineProperty(exports, "__esModule", {
     value: true
 });
-const _ora = /*#__PURE__*/ _interop_require_wildcard(require("ora"));
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-1480/2/output.umd.js b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-1480/2/output.umd.js
index 8ce699f779d3..912a624cc67a 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-1480/2/output.umd.js
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-1480/2/output.umd.js
@@ -1,14 +1,12 @@
 (function(global, factory) {
-    if (typeof module === "object" && typeof module.exports === "object") factory(exports, require("ora"));
+    if (typeof module === "object" && typeof module.exports === "object") factory(exports);
     else if (typeof define === "function" && define.amd) define([
-        "exports",
-        "ora"
+        "exports"
     ], factory);
-    else if (global = typeof globalThis !== "undefined" ? globalThis : global || self) factory(global.input = {}, global.ora);
-})(this, function(exports, _ora) {
+    else if (global = typeof globalThis !== "undefined" ? globalThis : global || self) factory(global.input = {});
+})(this, function(exports) {
     "use strict";
     Object.defineProperty(exports, "__esModule", {
         value: true
     });
-    _ora = /*#__PURE__*/ _interop_require_wildcard(_ora);
 });
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-1686/output.amd.ts b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-1686/output.amd.ts
index 5ba04db2c54b..843601ef02cd 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-1686/output.amd.ts
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-1686/output.amd.ts
@@ -1,9 +1,7 @@
 define([
     "require",
-    "exports",
-    "a",
-    "b"
-], function(require, exports, _a, _b) {
+    "exports"
+], function(require, exports) {
     "use strict";
     Object.defineProperty(exports, "__esModule", {
         value: true
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-1686/output.cts b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-1686/output.cts
index e4f064b69bf4..13efd0de4e2b 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-1686/output.cts
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-1686/output.cts
@@ -2,6 +2,5 @@
 Object.defineProperty(exports, "__esModule", {
     value: true
 });
-const A = require("a"); // print a
 console.log(1);
-const B = require("b"); // print b
+ // print b
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-1686/output.umd.ts b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-1686/output.umd.ts
index b6b3c11014ea..d81597a63c11 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-1686/output.umd.ts
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-1686/output.umd.ts
@@ -1,12 +1,10 @@
 (function(global, factory) {
-    if (typeof module === "object" && typeof module.exports === "object") factory(exports, require("a"), require("b"));
+    if (typeof module === "object" && typeof module.exports === "object") factory(exports);
     else if (typeof define === "function" && define.amd) define([
-        "exports",
-        "a",
-        "b"
+        "exports"
     ], factory);
-    else if (global = typeof globalThis !== "undefined" ? globalThis : global || self) factory(global.input = {}, global.a, global.b);
-})(this, function(exports, _a, _b) {
+    else if (global = typeof globalThis !== "undefined" ? globalThis : global || self) factory(global.input = {});
+})(this, function(exports) {
     "use strict";
     Object.defineProperty(exports, "__esModule", {
         value: true
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-1786/1/output.amd.js b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-1786/1/output.amd.js
index 563d5aa71539..89d001f04e79 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-1786/1/output.amd.js
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-1786/1/output.amd.js
@@ -13,5 +13,4 @@ define([
             return _foo.Foo;
         }
     });
-    _foo = /*#__PURE__*/ _interop_require_wildcard(_foo);
 });
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-1786/1/output.cjs b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-1786/1/output.cjs
index d649f4e2e28a..15685d3515d6 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-1786/1/output.cjs
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-1786/1/output.cjs
@@ -8,4 +8,4 @@ Object.defineProperty(exports, "Foo", {
         return _foo.Foo;
     }
 });
-const _foo = /*#__PURE__*/ _interop_require_wildcard(require("foo"));
+const _foo = require("foo");
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-1786/1/output.umd.js b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-1786/1/output.umd.js
index f4005a7a6b56..73f4ca6c30ef 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-1786/1/output.umd.js
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-1786/1/output.umd.js
@@ -16,5 +16,4 @@
             return _foo.Foo;
         }
     });
-    _foo = /*#__PURE__*/ _interop_require_wildcard(_foo);
 });
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-4456/1/output.amd.ts b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-4456/1/output.amd.ts
index 79823a781b99..534d427995a5 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-4456/1/output.amd.ts
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-4456/1/output.amd.ts
@@ -34,9 +34,6 @@ define([
         }
     });
     _styled = /*#__PURE__*/ _interop_require_default(_styled);
-    interface IStyledProp {
-        className?: string;
-    }
     const breakpoints = _breakpoints.breakpoinstUtils;
     const styled = _styled.default;
     const _default = styled;
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-4456/1/output.cts b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-4456/1/output.cts
index 628b9758d0bf..f7b0d4f3e046 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-4456/1/output.cts
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-4456/1/output.cts
@@ -29,9 +29,6 @@ require(".");
 const _styled = /*#__PURE__*/ _interop_require_default(require("@emotion/styled"));
 const _breakpoints = require("@eduzz/houston-tokens/variables/breakpoints");
 const _css = require("@emotion/css");
-interface IStyledProp {
-    className?: string;
-}
 const breakpoints = _breakpoints.breakpoinstUtils;
 const styled = _styled.default;
 const _default = styled;
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-4456/1/output.umd.ts b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-4456/1/output.umd.ts
index 9148896c8104..aac4d431c3dd 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-4456/1/output.umd.ts
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-4456/1/output.umd.ts
@@ -37,9 +37,6 @@
         }
     });
     _styled = /*#__PURE__*/ _interop_require_default(_styled);
-    interface IStyledProp {
-        className?: string;
-    }
     const breakpoints = _breakpoints.breakpoinstUtils;
     const styled = _styled.default;
     const _default = styled;
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-456/1/output.amd.js b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-456/1/output.amd.js
index c1b3f7ff507a..68f9f3bc2442 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-456/1/output.amd.js
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-456/1/output.amd.js
@@ -1,8 +1,7 @@
 define([
     "require",
-    "exports",
-    "path"
-], function(require, exports, _path) {
+    "exports"
+], function(require, exports) {
     "use strict";
     Object.defineProperty(exports, "foo", {
         enumerable: true,
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-456/1/output.cjs b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-456/1/output.cjs
index 1882d7a77fe6..66ebb30c96f4 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-456/1/output.cjs
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-456/1/output.cjs
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "foo", {
         return foo;
     }
 });
-const _path = require("path");
 const foo = function() {
     function e(t) {}
     return A(e, {}), e;
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-456/1/output.umd.js b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-456/1/output.umd.js
index 9922d3e4d011..9e07bebb92c6 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-456/1/output.umd.js
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-456/1/output.umd.js
@@ -1,11 +1,10 @@
 (function(global, factory) {
-    if (typeof module === "object" && typeof module.exports === "object") factory(exports, require("path"));
+    if (typeof module === "object" && typeof module.exports === "object") factory(exports);
     else if (typeof define === "function" && define.amd) define([
-        "exports",
-        "path"
+        "exports"
     ], factory);
-    else if (global = typeof globalThis !== "undefined" ? globalThis : global || self) factory(global.input = {}, global.path);
-})(this, function(exports, _path) {
+    else if (global = typeof globalThis !== "undefined" ? globalThis : global || self) factory(global.input = {});
+})(this, function(exports) {
     "use strict";
     Object.defineProperty(exports, "foo", {
         enumerable: true,
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-456/2/output.amd.js b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-456/2/output.amd.js
index 43a98cb51b3a..86ee35b6532d 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-456/2/output.amd.js
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-456/2/output.amd.js
@@ -1,8 +1,7 @@
 define([
     "require",
-    "exports",
-    "path"
-], function(require, exports, _path) {
+    "exports"
+], function(require, exports) {
     "use strict";
     Object.defineProperty(exports, "foo", {
         enumerable: true,
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-456/2/output.cjs b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-456/2/output.cjs
index 65d8d7084676..b16d265146a9 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-456/2/output.cjs
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-456/2/output.cjs
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "foo", {
         return foo;
     }
 });
-const _path = require("path");
 const foo = function() {
     var e = 1;
     return A(e, {}), e;
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-456/2/output.umd.js b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-456/2/output.umd.js
index 68805163d28c..757131559342 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-456/2/output.umd.js
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-456/2/output.umd.js
@@ -1,11 +1,10 @@
 (function(global, factory) {
-    if (typeof module === "object" && typeof module.exports === "object") factory(exports, require("path"));
+    if (typeof module === "object" && typeof module.exports === "object") factory(exports);
     else if (typeof define === "function" && define.amd) define([
-        "exports",
-        "path"
+        "exports"
     ], factory);
-    else if (global = typeof globalThis !== "undefined" ? globalThis : global || self) factory(global.input = {}, global.path);
-})(this, function(exports, _path) {
+    else if (global = typeof globalThis !== "undefined" ? globalThis : global || self) factory(global.input = {});
+})(this, function(exports) {
     "use strict";
     Object.defineProperty(exports, "foo", {
         enumerable: true,
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-4864/output.amd.ts b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-4864/output.amd.ts
index 3d89797c0165..323ad31f41c0 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-4864/output.amd.ts
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-4864/output.amd.ts
@@ -60,7 +60,7 @@ define([
         }
     });
     const SETs = {
-        [_ST.S_E_T]: _ST.S_E_T as typeof SSET
+        [_ST.S_E_T]: _ST.S_E_T
     };
     const SI = {
         [SETs[_ST.S_E_T]]: _SS.SI
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-4864/output.cts b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-4864/output.cts
index ae5578248aa0..ccad19dd59b8 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-4864/output.cts
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-4864/output.cts
@@ -92,7 +92,7 @@ function _SDUs() {
     return data;
 }
 const SETs = {
-    [_ST().S_E_T]: _ST().S_E_T as typeof SSET
+    [_ST().S_E_T]: _ST().S_E_T
 };
 const SI = {
     [SETs[_ST().S_E_T]]: _SS().SI
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-4864/output.umd.ts b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-4864/output.umd.ts
index 223c0088c808..8f6a15bf3ded 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-4864/output.umd.ts
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-4864/output.umd.ts
@@ -63,7 +63,7 @@
         }
     });
     const SETs = {
-        [_ST.S_E_T]: _ST.S_E_T as typeof SSET
+        [_ST.S_E_T]: _ST.S_E_T
     };
     const SI = {
         [SETs[_ST.S_E_T]]: _SS.SI
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-4898/1/output.amd.ts b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-4898/1/output.amd.ts
index d9079d463a80..aad6c13cbdbd 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-4898/1/output.amd.ts
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-4898/1/output.amd.ts
@@ -1,11 +1,11 @@
 define([
     "require",
-    "exports",
-    "assert"
-], function(require, exports, _assert) {
+    "exports"
+], function(require, exports) {
     "use strict";
     Object.defineProperty(exports, "__esModule", {
         value: true
     });
-    _assert(true);
+    const assert = require("assert");
+    assert(true);
 });
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-4898/1/output.umd.ts b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-4898/1/output.umd.ts
index 35356e2f1a9c..2245e16a64c0 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-4898/1/output.umd.ts
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-4898/1/output.umd.ts
@@ -1,14 +1,14 @@
 (function(global, factory) {
-    if (typeof module === "object" && typeof module.exports === "object") factory(exports, require("assert"));
+    if (typeof module === "object" && typeof module.exports === "object") factory(exports);
     else if (typeof define === "function" && define.amd) define([
-        "exports",
-        "assert"
+        "exports"
     ], factory);
-    else if (global = typeof globalThis !== "undefined" ? globalThis : global || self) factory(global.input = {}, global.assert);
-})(this, function(exports, _assert) {
+    else if (global = typeof globalThis !== "undefined" ? globalThis : global || self) factory(global.input = {});
+})(this, function(exports) {
     "use strict";
     Object.defineProperty(exports, "__esModule", {
         value: true
     });
-    _assert(true);
+    const assert = require("assert");
+    assert(true);
 });
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-4898/2/output.amd.ts b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-4898/2/output.amd.ts
index 648feccfc59d..73b07bec1280 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-4898/2/output.amd.ts
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-4898/2/output.amd.ts
@@ -7,7 +7,8 @@ define([
     Object.defineProperty(exports, "__esModule", {
         value: true
     });
-    const _assert1 = /*#__PURE__*/ _interop_require_default(_assert);
-    _assert(true);
-    (0, _assert1.default)(true);
+    _assert = /*#__PURE__*/ _interop_require_default(_assert);
+    const assert = require("assert");
+    assert(true);
+    (0, _assert.default)(true);
 });
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-4898/2/output.umd.ts b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-4898/2/output.umd.ts
index 11aeca6903ab..8cb9a889e87f 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-4898/2/output.umd.ts
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-4898/2/output.umd.ts
@@ -10,7 +10,8 @@
     Object.defineProperty(exports, "__esModule", {
         value: true
     });
-    const _assert1 = /*#__PURE__*/ _interop_require_default(_assert);
-    _assert(true);
-    (0, _assert1.default)(true);
+    _assert = /*#__PURE__*/ _interop_require_default(_assert);
+    const assert = require("assert");
+    assert(true);
+    (0, _assert.default)(true);
 });
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-5042/1/output.amd.ts b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-5042/1/output.amd.ts
index fc552dff6680..9491d7fe8f75 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-5042/1/output.amd.ts
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-5042/1/output.amd.ts
@@ -1,25 +1,17 @@
 define([
     "require",
-    "exports",
-    "jquery"
-], function(require, exports, _jquery) {
+    "exports"
+], function(require, exports1) {
     "use strict";
-    Object.defineProperty(exports, "__esModule", {
+    Object.defineProperty(exports1, "__esModule", {
         value: true
     });
-    function _export(target, all) {
-        for(var name in all)Object.defineProperty(target, name, {
-            enumerable: true,
-            get: all[name]
-        });
-    }
-    _export(exports, {
-        $: function() {
-            return _jquery;
-        },
-        jquery: function() {
-            return _jquery;
+    Object.defineProperty(exports1, "jquery", {
+        enumerable: true,
+        get: function() {
+            return $;
         }
     });
-    _jquery(".hello");
+    const $ = exports.$ = require("jquery");
+    $(".hello");
 });
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-5042/1/output.cts b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-5042/1/output.cts
index f88d2356a090..3e79e7443feb 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-5042/1/output.cts
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-5042/1/output.cts
@@ -5,8 +5,8 @@ Object.defineProperty(exports, "__esModule", {
 Object.defineProperty(exports, "jquery", {
     enumerable: true,
     get: function() {
-        return exports.$;
+        return $;
     }
 });
-exports.$ = require("jquery");
-(0, exports.$)(".hello");
+const $ = exports.$ = require("jquery");
+$(".hello");
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-5042/1/output.umd.ts b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-5042/1/output.umd.ts
index cb81987734a7..f30de3343956 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-5042/1/output.umd.ts
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-5042/1/output.umd.ts
@@ -1,28 +1,20 @@
 (function(global, factory) {
-    if (typeof module === "object" && typeof module.exports === "object") factory(exports, require("jquery"));
+    if (typeof module === "object" && typeof module.exports === "object") factory(exports);
     else if (typeof define === "function" && define.amd) define([
-        "exports",
-        "jquery"
+        "exports"
     ], factory);
-    else if (global = typeof globalThis !== "undefined" ? globalThis : global || self) factory(global.input = {}, global.jquery);
-})(this, function(exports, _jquery) {
+    else if (global = typeof globalThis !== "undefined" ? globalThis : global || self) factory(global.input = {});
+})(this, function(exports1) {
     "use strict";
-    Object.defineProperty(exports, "__esModule", {
+    Object.defineProperty(exports1, "__esModule", {
         value: true
     });
-    function _export(target, all) {
-        for(var name in all)Object.defineProperty(target, name, {
-            enumerable: true,
-            get: all[name]
-        });
-    }
-    _export(exports, {
-        $: function() {
-            return _jquery;
-        },
-        jquery: function() {
-            return _jquery;
+    Object.defineProperty(exports1, "jquery", {
+        enumerable: true,
+        get: function() {
+            return $;
         }
     });
-    _jquery(".hello");
+    const $ = exports.$ = require("jquery");
+    $(".hello");
 });
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-5042/2/output.amd.ts b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-5042/2/output.amd.ts
index 49523228ced3..da46b4703c87 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-5042/2/output.amd.ts
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-5042/2/output.amd.ts
@@ -1,9 +1,13 @@
 define([
     "require",
-    "foo"
-], function(require, _foo) {
+    "exports"
+], function(require, exports) {
     "use strict";
-    _foo.bar = 1;
-    _foo.bar = 2;
-    return _foo;
+    Object.defineProperty(exports, "__esModule", {
+        value: true
+    });
+    const foo = require("foo");
+    foo.bar = 1;
+    foo.bar = 2;
+    module.exports = foo;
 });
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-5042/2/output.cts b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-5042/2/output.cts
index 4cc5fe3da901..bcc6da9507ed 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-5042/2/output.cts
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-5042/2/output.cts
@@ -1,4 +1,7 @@
 "use strict";
+Object.defineProperty(exports, "__esModule", {
+    value: true
+});
 const foo = require("foo");
 foo.bar = 1;
 foo.bar = 2;
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-5042/2/output.umd.ts b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-5042/2/output.umd.ts
index afd50cda083c..25d8e5a71bcf 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-5042/2/output.umd.ts
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-5042/2/output.umd.ts
@@ -1,12 +1,16 @@
 (function(global, factory) {
-    if (typeof module === "object" && typeof module.exports === "object") module.exports = factory(require("foo"));
+    if (typeof module === "object" && typeof module.exports === "object") factory(exports);
     else if (typeof define === "function" && define.amd) define([
-        "foo"
+        "exports"
     ], factory);
-    else if (global = typeof globalThis !== "undefined" ? globalThis : global || self) module.exports = factory(global.foo);
-})(this, function(_foo) {
+    else if (global = typeof globalThis !== "undefined" ? globalThis : global || self) factory(global.input = {});
+})(this, function(exports) {
     "use strict";
-    _foo.bar = 1;
-    _foo.bar = 2;
-    return _foo;
+    Object.defineProperty(exports, "__esModule", {
+        value: true
+    });
+    const foo = require("foo");
+    foo.bar = 1;
+    foo.bar = 2;
+    module.exports = foo;
 });
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-578/2/output.amd.js b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-578/2/output.amd.js
index 3c48673a9264..beee97b8748c 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-578/2/output.amd.js
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-578/2/output.amd.js
@@ -1,8 +1,7 @@
 define([
     "require",
-    "exports",
-    "./dep.js"
-], function(require, exports, _dep) {
+    "exports"
+], function(require, exports) {
     "use strict";
     Object.defineProperty(exports, "__esModule", {
         value: true
@@ -12,7 +11,7 @@ define([
             this.props = properties;
         }
         call() {
-            const { myFunction  } = this.props;
+            const { myFunction } = this.props;
             if (myFunction) {
                 myFunction();
             } else {
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-578/2/output.cjs b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-578/2/output.cjs
index 3a99e2156604..df503cce29e1 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-578/2/output.cjs
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-578/2/output.cjs
@@ -2,13 +2,12 @@
 Object.defineProperty(exports, "__esModule", {
     value: true
 });
-const _dep = require("./dep.js");
 class SomeClass {
     constructor(properties){
         this.props = properties;
     }
     call() {
-        const { myFunction  } = this.props;
+        const { myFunction } = this.props;
         if (myFunction) {
             myFunction();
         } else {
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-578/2/output.umd.js b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-578/2/output.umd.js
index 5ca019977e70..a1267a9c1a43 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-578/2/output.umd.js
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-578/2/output.umd.js
@@ -1,11 +1,10 @@
 (function(global, factory) {
-    if (typeof module === "object" && typeof module.exports === "object") factory(exports, require("./dep.js"));
+    if (typeof module === "object" && typeof module.exports === "object") factory(exports);
     else if (typeof define === "function" && define.amd) define([
-        "exports",
-        "./dep.js"
+        "exports"
     ], factory);
-    else if (global = typeof globalThis !== "undefined" ? globalThis : global || self) factory(global.input = {}, global.depJs);
-})(this, function(exports, _dep) {
+    else if (global = typeof globalThis !== "undefined" ? globalThis : global || self) factory(global.input = {});
+})(this, function(exports) {
     "use strict";
     Object.defineProperty(exports, "__esModule", {
         value: true
@@ -15,7 +14,7 @@
             this.props = properties;
         }
         call() {
-            const { myFunction  } = this.props;
+            const { myFunction } = this.props;
             if (myFunction) {
                 myFunction();
             } else {
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-724/output.amd.js b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-724/output.amd.js
index cfc59ae546d4..8f69cba6df5e 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-724/output.amd.js
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-724/output.amd.js
@@ -1,7 +1,6 @@
 define([
-    "require",
-    "mongodb"
-], function(require, _mongodb) {
+    "require"
+], function(require) {
     "use strict";
     require("foo");
 });
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-724/output.cjs b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-724/output.cjs
index 7ea92822910a..965045600903 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-724/output.cjs
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-724/output.cjs
@@ -1,3 +1,2 @@
 "use strict";
-const _mongodb = require("mongodb");
 require("foo");
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-724/output.umd.js b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-724/output.umd.js
index 2fe7d28e81de..73ef42ea1d6b 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-724/output.umd.js
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-724/output.umd.js
@@ -1,10 +1,8 @@
 (function(global, factory) {
-    if (typeof module === "object" && typeof module.exports === "object") factory(require("mongodb"));
-    else if (typeof define === "function" && define.amd) define([
-        "mongodb"
-    ], factory);
-    else if (global = typeof globalThis !== "undefined" ? globalThis : global || self) factory(global.mongodb);
-})(this, function(_mongodb) {
+    if (typeof module === "object" && typeof module.exports === "object") factory();
+    else if (typeof define === "function" && define.amd) define([], factory);
+    else if (global = typeof globalThis !== "undefined" ? globalThis : global || self) factory();
+})(this, function() {
     "use strict";
     require("foo");
 });
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-895/output.amd.ts b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-895/output.amd.ts
index 81bd7667bc84..81631d280a5e 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-895/output.amd.ts
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-895/output.amd.ts
@@ -13,7 +13,7 @@ define([
             return setup;
         }
     });
-    function setup(url: string, obj: any) {
+    function setup(url, obj) {
         const _queryString = (0, _url.queryString)(obj);
         const _url1 = url + "?" + _queryString;
         return _url1;
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-895/output.cts b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-895/output.cts
index a6dad1afe441..a154288c66ea 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-895/output.cts
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-895/output.cts
@@ -9,7 +9,7 @@ Object.defineProperty(exports, "setup", {
     }
 });
 const _url = require("./url");
-function setup(url: string, obj: any) {
+function setup(url, obj) {
     const _queryString = (0, _url.queryString)(obj);
     const _url1 = url + "?" + _queryString;
     return _url1;
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-895/output.umd.ts b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-895/output.umd.ts
index 77409b964958..24c54d05fced 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/issue-895/output.umd.ts
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/issue-895/output.umd.ts
@@ -16,7 +16,7 @@
             return setup;
         }
     });
-    function setup(url: string, obj: any) {
+    function setup(url, obj) {
         const _queryString = (0, _url.queryString)(obj);
         const _url1 = url + "?" + _queryString;
         return _url1;
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/misc/import-const-throw/output.amd.js b/crates/swc_ecma_transforms_module/tests/fixture/common/misc/import-const-throw/output.amd.js
index 3886e9ffd735..e31df1a17f0c 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/misc/import-const-throw/output.amd.js
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/misc/import-const-throw/output.amd.js
@@ -1,23 +1,18 @@
 define([
     "require",
-    "exports",
-    "foo",
-    "bar",
-    "baz"
-], function(require, exports, _foo, _bar, _baz) {
+    "exports"
+], function(require, exports) {
     "use strict";
     Object.defineProperty(exports, "__esModule", {
         value: true
     });
-    _foo = /*#__PURE__*/ _interop_require_default(_foo);
-    _bar = /*#__PURE__*/ _interop_require_wildcard(_bar);
     Foo = 42;
     Bar = 43;
     Baz = 44;
-    ({ Foo  } = {});
-    ({ Bar  } = {});
-    ({ Baz  } = {});
-    ({ prop: Foo  } = {});
-    ({ prop: Bar  } = {});
-    ({ prop: Baz  } = {});
+    ({ Foo } = {});
+    ({ Bar } = {});
+    ({ Baz } = {});
+    ({ prop: Foo } = {});
+    ({ prop: Bar } = {});
+    ({ prop: Baz } = {});
 });
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/misc/import-const-throw/output.cjs b/crates/swc_ecma_transforms_module/tests/fixture/common/misc/import-const-throw/output.cjs
index 55625de827f7..22375846774e 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/misc/import-const-throw/output.cjs
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/misc/import-const-throw/output.cjs
@@ -2,15 +2,12 @@
 Object.defineProperty(exports, "__esModule", {
     value: true
 });
-const _foo = /*#__PURE__*/ _interop_require_default(require("foo"));
-const _bar = /*#__PURE__*/ _interop_require_wildcard(require("bar"));
-const _baz = require("baz");
 Foo = 42;
 Bar = 43;
 Baz = 44;
-({ Foo  } = {});
-({ Bar  } = {});
-({ Baz  } = {});
-({ prop: Foo  } = {});
-({ prop: Bar  } = {});
-({ prop: Baz  } = {});
+({ Foo } = {});
+({ Bar } = {});
+({ Baz } = {});
+({ prop: Foo } = {});
+({ prop: Bar } = {});
+({ prop: Baz } = {});
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/misc/import-const-throw/output.umd.js b/crates/swc_ecma_transforms_module/tests/fixture/common/misc/import-const-throw/output.umd.js
index 4c88bf54ca0b..7126239621d5 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/misc/import-const-throw/output.umd.js
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/misc/import-const-throw/output.umd.js
@@ -1,26 +1,21 @@
 (function(global, factory) {
-    if (typeof module === "object" && typeof module.exports === "object") factory(exports, require("foo"), require("bar"), require("baz"));
+    if (typeof module === "object" && typeof module.exports === "object") factory(exports);
     else if (typeof define === "function" && define.amd) define([
-        "exports",
-        "foo",
-        "bar",
-        "baz"
+        "exports"
     ], factory);
-    else if (global = typeof globalThis !== "undefined" ? globalThis : global || self) factory(global.input = {}, global.foo, global.bar, global.baz);
-})(this, function(exports, _foo, _bar, _baz) {
+    else if (global = typeof globalThis !== "undefined" ? globalThis : global || self) factory(global.input = {});
+})(this, function(exports) {
     "use strict";
     Object.defineProperty(exports, "__esModule", {
         value: true
     });
-    _foo = /*#__PURE__*/ _interop_require_default(_foo);
-    _bar = /*#__PURE__*/ _interop_require_wildcard(_bar);
     Foo = 42;
     Bar = 43;
     Baz = 44;
-    ({ Foo  } = {});
-    ({ Bar  } = {});
-    ({ Baz  } = {});
-    ({ prop: Foo  } = {});
-    ({ prop: Bar  } = {});
-    ({ prop: Baz  } = {});
+    ({ Foo } = {});
+    ({ Bar } = {});
+    ({ Baz } = {});
+    ({ prop: Foo } = {});
+    ({ prop: Bar } = {});
+    ({ prop: Baz } = {});
 });
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/strict/export-3/output.amd.js b/crates/swc_ecma_transforms_module/tests/fixture/common/strict/export-3/output.amd.js
index ff2bfa7b5646..9ef9840f8b9f 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/strict/export-3/output.amd.js
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/strict/export-3/output.amd.js
@@ -1,8 +1,7 @@
 define([
     "require",
-    "exports",
-    "foo"
-], function(require, exports, _foo) {
+    "exports"
+], function(require, exports) {
     "use strict";
     Object.defineProperty(exports, "__esModule", {
         value: true
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/strict/export-3/output.cjs b/crates/swc_ecma_transforms_module/tests/fixture/common/strict/export-3/output.cjs
index 43930bc84252..b62a6d552c31 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/strict/export-3/output.cjs
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/strict/export-3/output.cjs
@@ -2,4 +2,3 @@
 Object.defineProperty(exports, "__esModule", {
     value: true
 });
-require("foo");
diff --git a/crates/swc_ecma_transforms_module/tests/fixture/common/strict/export-3/output.umd.js b/crates/swc_ecma_transforms_module/tests/fixture/common/strict/export-3/output.umd.js
index 713290653750..912a624cc67a 100644
--- a/crates/swc_ecma_transforms_module/tests/fixture/common/strict/export-3/output.umd.js
+++ b/crates/swc_ecma_transforms_module/tests/fixture/common/strict/export-3/output.umd.js
@@ -1,11 +1,10 @@
 (function(global, factory) {
-    if (typeof module === "object" && typeof module.exports === "object") factory(exports, require("foo"));
+    if (typeof module === "object" && typeof module.exports === "object") factory(exports);
     else if (typeof define === "function" && define.amd) define([
-        "exports",
-        "foo"
+        "exports"
     ], factory);
-    else if (global = typeof globalThis !== "undefined" ? globalThis : global || self) factory(global.input = {}, global.foo);
-})(this, function(exports, _foo) {
+    else if (global = typeof globalThis !== "undefined" ? globalThis : global || self) factory(global.input = {});
+})(this, function(exports) {
     "use strict";
     Object.defineProperty(exports, "__esModule", {
         value: true
diff --git a/crates/swc_ecma_transforms_module/tests/umd.rs b/crates/swc_ecma_transforms_module/tests/umd.rs
index 81279817fd40..8024ccdd8b11 100644
--- a/crates/swc_ecma_transforms_module/tests/umd.rs
+++ b/crates/swc_ecma_transforms_module/tests/umd.rs
@@ -5,6 +5,7 @@ use swc_ecma_parser::{Syntax, TsSyntax};
 use swc_ecma_transforms_base::{feature::FeatureFlag, resolver};
 use swc_ecma_transforms_module::umd::{umd, Config};
 use swc_ecma_transforms_testing::{test_fixture, Tester};
+use swc_ecma_transforms_typescript::typescript;
 use swc_ecma_visit::Fold;
 
 fn syntax() -> Syntax {
@@ -23,6 +24,7 @@ fn tr(tester: &mut Tester<'_>, config: Config, typescript: bool) -> impl Fold {
 
     chain!(
         resolver(unresolved_mark, top_level_mark, typescript),
+        typescript::typescript(Default::default(), unresolved_mark, top_level_mark),
         umd(
             tester.cm.clone(),
             unresolved_mark,
diff --git a/crates/swc_ecma_transforms_optimization/src/const_modules.rs b/crates/swc_ecma_transforms_optimization/src/const_modules.rs
index a6b39e95237a..7b87ded09af5 100644
--- a/crates/swc_ecma_transforms_optimization/src/const_modules.rs
+++ b/crates/swc_ecma_transforms_optimization/src/const_modules.rs
@@ -17,7 +17,7 @@ use swc_common::{
 use swc_ecma_ast::*;
 use swc_ecma_parser::parse_file_as_expr;
 use swc_ecma_utils::drop_span;
-use swc_ecma_visit::{as_folder, noop_visit_mut_type, Fold, VisitMut, VisitMutWith};
+use swc_ecma_visit::{as_folder, standard_only_visit_mut, Fold, VisitMut, VisitMutWith};
 
 pub fn const_modules(
     cm: Lrc<SourceMap>,
@@ -93,7 +93,7 @@ struct Scope {
 }
 
 impl VisitMut for ConstModules {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_module_items(&mut self, n: &mut Vec<ModuleItem>) {
         *n = n.take().move_flat_map(|item| match item {
diff --git a/crates/swc_ecma_transforms_optimization/src/debug.rs b/crates/swc_ecma_transforms_optimization/src/debug.rs
index 221e9d3e223d..f9b14f567ab5 100644
--- a/crates/swc_ecma_transforms_optimization/src/debug.rs
+++ b/crates/swc_ecma_transforms_optimization/src/debug.rs
@@ -3,7 +3,7 @@
 use std::{fmt::Debug, mem::forget};
 
 use swc_ecma_ast::*;
-use swc_ecma_visit::{noop_visit_type, Visit, VisitWith};
+use swc_ecma_visit::{noop_visit_type, standard_only_visit, Visit, VisitWith};
 
 /// Assert in debug mode. This is noop in release build.
 pub fn debug_assert_valid<N>(node: &N)
@@ -29,7 +29,7 @@ impl Drop for Ctx<'_> {
 pub struct AssertValid;
 
 impl Visit for AssertValid {
-    noop_visit_type!();
+    standard_only_visit!();
 
     #[cfg(debug_assertions)]
     fn visit_expr(&mut self, n: &Expr) {
diff --git a/crates/swc_ecma_transforms_optimization/src/inline_globals.rs b/crates/swc_ecma_transforms_optimization/src/inline_globals.rs
index 4d56f737b428..814049416dfd 100644
--- a/crates/swc_ecma_transforms_optimization/src/inline_globals.rs
+++ b/crates/swc_ecma_transforms_optimization/src/inline_globals.rs
@@ -6,7 +6,7 @@ use swc_common::{
 use swc_ecma_ast::*;
 use swc_ecma_transforms_base::perf::{ParVisitMut, Parallel};
 use swc_ecma_utils::{collect_decls, parallel::cpu_count, NodeIgnoringSpan};
-use swc_ecma_visit::{as_folder, noop_visit_mut_type, Fold, VisitMut, VisitMutWith};
+use swc_ecma_visit::{as_folder, standard_only_visit_mut, Fold, VisitMut, VisitMutWith};
 
 /// The key will be compared using [EqIgnoreSpan::eq_ignore_span], and matched
 /// expressions will be replaced with the value.
@@ -63,7 +63,7 @@ impl Parallel for InlineGlobals {
 }
 
 impl VisitMut for InlineGlobals {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_expr(&mut self, expr: &mut Expr) {
         if let Expr::Ident(Ident { ref sym, span, .. }) = expr {
diff --git a/crates/swc_ecma_transforms_optimization/src/json_parse.rs b/crates/swc_ecma_transforms_optimization/src/json_parse.rs
index e873f59e9704..c201743116f7 100644
--- a/crates/swc_ecma_transforms_optimization/src/json_parse.rs
+++ b/crates/swc_ecma_transforms_optimization/src/json_parse.rs
@@ -3,7 +3,7 @@ use swc_common::{util::take::Take, Spanned, DUMMY_SP};
 use swc_ecma_ast::*;
 use swc_ecma_transforms_base::perf::Parallel;
 use swc_ecma_utils::{calc_literal_cost, member_expr, ExprFactory};
-use swc_ecma_visit::{as_folder, noop_visit_mut_type, Fold, VisitMut, VisitMutWith};
+use swc_ecma_visit::{as_folder, standard_only_visit_mut, Fold, VisitMut, VisitMutWith};
 
 /// Transform to optimize performance of literals.
 ///
@@ -52,7 +52,7 @@ impl Default for JsonParse {
 }
 
 impl VisitMut for JsonParse {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     /// Handles parent expressions before child expressions.
     fn visit_mut_expr(&mut self, expr: &mut Expr) {
diff --git a/crates/swc_ecma_transforms_optimization/src/simplify/branch/mod.rs b/crates/swc_ecma_transforms_optimization/src/simplify/branch/mod.rs
index a49daf5ce1a8..5528d121e44f 100644
--- a/crates/swc_ecma_transforms_optimization/src/simplify/branch/mod.rs
+++ b/crates/swc_ecma_transforms_optimization/src/simplify/branch/mod.rs
@@ -15,7 +15,8 @@ use swc_ecma_utils::{
     StmtExt, StmtLike, Value::Known,
 };
 use swc_ecma_visit::{
-    as_folder, noop_visit_mut_type, noop_visit_type, Visit, VisitMut, VisitMutWith, VisitWith,
+    as_folder, standard_only_visit, standard_only_visit_mut, Visit, VisitMut, VisitMutWith,
+    VisitWith,
 };
 use tracing::{debug, trace};
 
@@ -72,7 +73,7 @@ impl Parallel for Remover {
 }
 
 impl VisitMut for Remover {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_array_pat(&mut self, p: &mut ArrayPat) {
         p.visit_mut_children_with(self);
@@ -1903,7 +1904,7 @@ fn check_for_stopper(s: &[Stmt], only_conditional: bool) -> bool {
     }
 
     impl Visit for Visitor {
-        noop_visit_type!();
+        standard_only_visit!();
 
         fn visit_switch_case(&mut self, node: &SwitchCase) {
             let old = self.in_cond;
diff --git a/crates/swc_ecma_transforms_optimization/src/simplify/const_propagation.rs b/crates/swc_ecma_transforms_optimization/src/simplify/const_propagation.rs
index 5ba610926ff0..03eb78800625 100644
--- a/crates/swc_ecma_transforms_optimization/src/simplify/const_propagation.rs
+++ b/crates/swc_ecma_transforms_optimization/src/simplify/const_propagation.rs
@@ -2,7 +2,7 @@
 
 use swc_common::{collections::AHashMap, util::take::Take};
 use swc_ecma_ast::*;
-use swc_ecma_visit::{as_folder, noop_visit_mut_type, Fold, VisitMut, VisitMutWith};
+use swc_ecma_visit::{as_folder, standard_only_visit_mut, Fold, VisitMut, VisitMutWith};
 
 /// This pass is kind of inliner, but it's far faster.
 pub fn constant_propagation() -> impl 'static + Fold + VisitMut {
@@ -38,7 +38,7 @@ impl<'a> Scope<'a> {
 }
 
 impl VisitMut for ConstPropagation<'_> {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     /// No-op
     fn visit_mut_assign_expr(&mut self, _: &mut AssignExpr) {}
diff --git a/crates/swc_ecma_transforms_optimization/src/simplify/dce/mod.rs b/crates/swc_ecma_transforms_optimization/src/simplify/dce/mod.rs
index 9cfb4a5736f0..71e39bd336dc 100644
--- a/crates/swc_ecma_transforms_optimization/src/simplify/dce/mod.rs
+++ b/crates/swc_ecma_transforms_optimization/src/simplify/dce/mod.rs
@@ -19,7 +19,8 @@ use swc_ecma_utils::{
     collect_decls, find_pat_ids, ExprCtx, ExprExt, IsEmpty, ModuleItemLike, StmtLike,
 };
 use swc_ecma_visit::{
-    as_folder, noop_visit_mut_type, noop_visit_type, Fold, Visit, VisitMut, VisitMutWith, VisitWith,
+    as_folder, standard_only_visit, standard_only_visit_mut, Fold, Visit, VisitMut, VisitMutWith,
+    VisitWith,
 };
 use swc_fast_graph::digraph::FastDiGraphMap;
 use tracing::{debug, span, Level};
@@ -355,7 +356,7 @@ impl Analyzer<'_> {
 }
 
 impl Visit for Analyzer<'_> {
-    noop_visit_type!();
+    standard_only_visit!();
 
     fn visit_callee(&mut self, n: &Callee) {
         n.visit_children_with(self);
@@ -658,7 +659,7 @@ impl TreeShaker {
 }
 
 impl VisitMut for TreeShaker {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_assign_expr(&mut self, n: &mut AssignExpr) {
         n.visit_mut_children_with(self);
diff --git a/crates/swc_ecma_transforms_optimization/src/simplify/expr/mod.rs b/crates/swc_ecma_transforms_optimization/src/simplify/expr/mod.rs
index 2712e478dc98..cbe8e3253318 100644
--- a/crates/swc_ecma_transforms_optimization/src/simplify/expr/mod.rs
+++ b/crates/swc_ecma_transforms_optimization/src/simplify/expr/mod.rs
@@ -16,7 +16,7 @@ use swc_ecma_utils::{
     is_literal, prop_name_eq, to_int32, BoolType, ExprCtx, ExprExt, NullType, NumberType,
     ObjectType, StringType, SymbolType, UndefinedType, Value,
 };
-use swc_ecma_visit::{as_folder, noop_visit_mut_type, VisitMut, VisitMutWith};
+use swc_ecma_visit::{as_folder, standard_only_visit_mut, VisitMut, VisitMutWith};
 use Value::{Known, Unknown};
 
 use crate::debug::debug_assert_valid;
@@ -1226,7 +1226,7 @@ impl SimplifyExpr {
 }
 
 impl VisitMut for SimplifyExpr {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_assign_expr(&mut self, n: &mut AssignExpr) {
         let old = self.is_modifying;
diff --git a/crates/swc_ecma_transforms_optimization/src/simplify/inlining/mod.rs b/crates/swc_ecma_transforms_optimization/src/simplify/inlining/mod.rs
index 994595d62c46..385f0e2bb13b 100644
--- a/crates/swc_ecma_transforms_optimization/src/simplify/inlining/mod.rs
+++ b/crates/swc_ecma_transforms_optimization/src/simplify/inlining/mod.rs
@@ -8,8 +8,8 @@ use swc_ecma_ast::*;
 use swc_ecma_transforms_base::{pass::RepeatedJsPass, scope::IdentType};
 use swc_ecma_utils::{contains_this_expr, find_pat_ids};
 use swc_ecma_visit::{
-    as_folder, noop_visit_mut_type, noop_visit_type, visit_obj_and_computed, Visit, VisitMut,
-    VisitMutWith, VisitWith,
+    as_folder, standard_only_visit, standard_only_visit_mut, visit_obj_and_computed, Visit,
+    VisitMut, VisitMutWith, VisitWith,
 };
 use tracing::{span, Level};
 
@@ -103,7 +103,7 @@ impl Inlining<'_> {
 }
 
 impl VisitMut for Inlining<'_> {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_arrow_expr(&mut self, node: &mut ArrowExpr) {
         self.visit_with_child(ScopeKind::Fn { named: false }, node)
@@ -744,7 +744,7 @@ struct IdentListVisitor<'a, 'b> {
 }
 
 impl Visit for IdentListVisitor<'_, '_> {
-    noop_visit_type!();
+    standard_only_visit!();
 
     visit_obj_and_computed!();
 
@@ -759,7 +759,7 @@ struct WriteVisitor<'a, 'b> {
 }
 
 impl Visit for WriteVisitor<'_, '_> {
-    noop_visit_type!();
+    standard_only_visit!();
 
     visit_obj_and_computed!();
 
diff --git a/crates/swc_ecma_transforms_optimization/tests/__swc_snapshots__/tests/simplify_dce.rs/issue_1150_1.js b/crates/swc_ecma_transforms_optimization/tests/__swc_snapshots__/tests/simplify_dce.rs/issue_1150_1.js
index 8e3efc894c5f..edb596654fc1 100644
--- a/crates/swc_ecma_transforms_optimization/tests/__swc_snapshots__/tests/simplify_dce.rs/issue_1150_1.js
+++ b/crates/swc_ecma_transforms_optimization/tests/__swc_snapshots__/tests/simplify_dce.rs/issue_1150_1.js
@@ -1,5 +1,5 @@
 class A {
-    constructor(o: AOptions = {}){
+    constructor(o = {}){
         const { a = defaultA, c } = o;
         this.#a = a;
         this.#c = c;
diff --git a/crates/swc_ecma_transforms_optimization/tests/dce-jsx/property/input.js b/crates/swc_ecma_transforms_optimization/tests/dce-jsx/property/input.js
deleted file mode 100644
index d69b17010155..000000000000
--- a/crates/swc_ecma_transforms_optimization/tests/dce-jsx/property/input.js
+++ /dev/null
@@ -1,7 +0,0 @@
-function A() {
-    return "a";
-}
-const b = "b";
-export function c() {
-    return <A.b />;
-}
diff --git a/crates/swc_ecma_transforms_optimization/tests/dce-jsx/property/output.js b/crates/swc_ecma_transforms_optimization/tests/dce-jsx/property/output.js
deleted file mode 100644
index dcc099a5ba65..000000000000
--- a/crates/swc_ecma_transforms_optimization/tests/dce-jsx/property/output.js
+++ /dev/null
@@ -1,6 +0,0 @@
-function A() {
-    return "a";
-}
-export function c() {
-    return <A.b />;
-}
diff --git a/crates/swc_ecma_transforms_optimization/tests/dce-jsx/property2/input.js b/crates/swc_ecma_transforms_optimization/tests/dce-jsx/property2/input.js
deleted file mode 100644
index 450635316d53..000000000000
--- a/crates/swc_ecma_transforms_optimization/tests/dce-jsx/property2/input.js
+++ /dev/null
@@ -1,8 +0,0 @@
-function A() {
-    return "a";
-}
-const b = "b";
-const c = "c";
-export function d() {
-    return <A.b.c />;
-}
diff --git a/crates/swc_ecma_transforms_optimization/tests/dce-jsx/property2/output.js b/crates/swc_ecma_transforms_optimization/tests/dce-jsx/property2/output.js
deleted file mode 100644
index ef1f791b5cf2..000000000000
--- a/crates/swc_ecma_transforms_optimization/tests/dce-jsx/property2/output.js
+++ /dev/null
@@ -1,6 +0,0 @@
-function A() {
-    return "a";
-}
-export function d() {
-    return <A.b.c />;
-}
diff --git a/crates/swc_ecma_transforms_optimization/tests/dce-jsx/spread/input.js b/crates/swc_ecma_transforms_optimization/tests/dce-jsx/spread/input.js
deleted file mode 100644
index a5ee2839c7e8..000000000000
--- a/crates/swc_ecma_transforms_optimization/tests/dce-jsx/spread/input.js
+++ /dev/null
@@ -1,8 +0,0 @@
-function A() {
-    return "a";
-}
-const b = "b";
-const c = "c";
-export function d() {
-    return <A {...b}>{c}</A>;
-}
diff --git a/crates/swc_ecma_transforms_optimization/tests/dce-jsx/spread/output.js b/crates/swc_ecma_transforms_optimization/tests/dce-jsx/spread/output.js
deleted file mode 100644
index a5ee2839c7e8..000000000000
--- a/crates/swc_ecma_transforms_optimization/tests/dce-jsx/spread/output.js
+++ /dev/null
@@ -1,8 +0,0 @@
-function A() {
-    return "a";
-}
-const b = "b";
-const c = "c";
-export function d() {
-    return <A {...b}>{c}</A>;
-}
diff --git a/crates/swc_ecma_transforms_optimization/tests/dce-jsx/var/input.js b/crates/swc_ecma_transforms_optimization/tests/dce-jsx/var/input.js
deleted file mode 100644
index 819e09994e12..000000000000
--- a/crates/swc_ecma_transforms_optimization/tests/dce-jsx/var/input.js
+++ /dev/null
@@ -1,8 +0,0 @@
-function A() {
-    return "a";
-}
-const b = "b";
-const c = "c";
-export function d() {
-    return <A val={b}>{c}</A>;
-}
diff --git a/crates/swc_ecma_transforms_optimization/tests/dce-jsx/var/output.js b/crates/swc_ecma_transforms_optimization/tests/dce-jsx/var/output.js
deleted file mode 100644
index 819e09994e12..000000000000
--- a/crates/swc_ecma_transforms_optimization/tests/dce-jsx/var/output.js
+++ /dev/null
@@ -1,8 +0,0 @@
-function A() {
-    return "a";
-}
-const b = "b";
-const c = "c";
-export function d() {
-    return <A val={b}>{c}</A>;
-}
diff --git a/crates/swc_ecma_transforms_optimization/tests/fixture.rs b/crates/swc_ecma_transforms_optimization/tests/fixture.rs
index 9ecb1adb07f0..3576f0fa1b44 100644
--- a/crates/swc_ecma_transforms_optimization/tests/fixture.rs
+++ b/crates/swc_ecma_transforms_optimization/tests/fixture.rs
@@ -54,23 +54,6 @@ fn dce_repeated(input: PathBuf) {
     );
 }
 
-#[testing::fixture("tests/dce-jsx/**/input.js")]
-fn dce_jsx(input: PathBuf) {
-    let output = input.with_file_name("output.js");
-
-    test_fixture(
-        Syntax::Es(EsSyntax {
-            decorators: true,
-            jsx: true,
-            ..Default::default()
-        }),
-        &|t| chain!(remover(t), dce(Default::default(), Mark::new())),
-        &input,
-        &output,
-        Default::default(),
-    );
-}
-
 #[testing::fixture("tests/expr-simplifier/**/input.js")]
 fn expr(input: PathBuf) {
     let output = input.with_file_name("output.js");
diff --git a/crates/swc_ecma_transforms_optimization/tests/simplify.rs b/crates/swc_ecma_transforms_optimization/tests/simplify.rs
index eff3c0596ec5..285c9f5d4278 100644
--- a/crates/swc_ecma_transforms_optimization/tests/simplify.rs
+++ b/crates/swc_ecma_transforms_optimization/tests/simplify.rs
@@ -500,7 +500,7 @@ test!(
 
         chain!(
             resolver(unresolved_mark, top_level_mark, false),
-            strip(top_level_mark),
+            strip(unresolved_mark, top_level_mark),
             class_properties(
                 Some(t.comments.clone()),
                 class_properties::Config {
@@ -553,7 +553,7 @@ test!(
         chain!(
             decorators(Default::default()),
             resolver(unresolved_mark, top_level_mark, false),
-            strip(top_level_mark),
+            strip(unresolved_mark, top_level_mark),
             class_properties(
                 Some(t.comments.clone()),
                 Default::default(),
diff --git a/crates/swc_ecma_transforms_optimization/tests/simplify_dce.rs b/crates/swc_ecma_transforms_optimization/tests/simplify_dce.rs
index 6b2345308dee..064072a09500 100644
--- a/crates/swc_ecma_transforms_optimization/tests/simplify_dce.rs
+++ b/crates/swc_ecma_transforms_optimization/tests/simplify_dce.rs
@@ -382,7 +382,7 @@ test!(
                 use_define_for_class_fields: false,
             }),
             resolver(unresolved_mark, top_level_mark, false),
-            strip(top_level_mark),
+            strip(unresolved_mark, top_level_mark),
             tr()
         )
     },
@@ -414,7 +414,7 @@ test!(
                 use_define_for_class_fields: false,
             }),
             resolver(unresolved_mark, top_level_mark, false),
-            strip(top_level_mark),
+            strip(unresolved_mark, top_level_mark),
             tr()
         )
     },
@@ -439,7 +439,7 @@ test!(
     issue_1150_1,
     "
 class A {
-    constructor(o: AOptions = {}) {
+    constructor(o = {}) {
         const {
             a = defaultA,
             c,
@@ -471,7 +471,7 @@ test!(
 
         chain!(
             resolver(unresolved_mark, top_level_mark, false),
-            strip(top_level_mark),
+            strip(unresolved_mark, top_level_mark),
             class_properties(
                 Some(t.comments.clone()),
                 class_properties::Config {
@@ -511,7 +511,7 @@ test!(
 
         chain!(
             resolver(unresolved_mark, top_level_mark, false),
-            strip(top_level_mark),
+            strip(unresolved_mark, top_level_mark),
             class_properties(
                 Some(t.comments.clone()),
                 class_properties::Config {
@@ -565,7 +565,7 @@ test!(
 
         chain!(
             resolver(unresolved_mark, top_level_mark, false),
-            strip(top_level_mark),
+            strip(unresolved_mark, top_level_mark),
             tr(),
         )
     },
@@ -594,7 +594,7 @@ test!(
 
         chain!(
             resolver(unresolved_mark, top_level_mark, false),
-            strip(top_level_mark),
+            strip(unresolved_mark, top_level_mark),
             class_properties(
                 Some(t.comments.clone()),
                 class_properties::Config {
diff --git a/crates/swc_ecma_transforms_optimization/tests/simplify_inlining.rs b/crates/swc_ecma_transforms_optimization/tests/simplify_inlining.rs
index 895222658174..e98a6cc436ff 100644
--- a/crates/swc_ecma_transforms_optimization/tests/simplify_inlining.rs
+++ b/crates/swc_ecma_transforms_optimization/tests/simplify_inlining.rs
@@ -9,12 +9,13 @@ use swc_ecma_transforms_testing::test;
 use swc_ecma_transforms_typescript::typescript;
 use swc_ecma_visit::Fold;
 
-fn simple_strip(top_level_mark: Mark) -> impl Fold {
+fn simple_strip(unresolved_mark: Mark, top_level_mark: Mark) -> impl Fold {
     typescript(
         typescript::Config {
             no_empty_export: true,
             ..Default::default()
         },
+        unresolved_mark,
         top_level_mark,
     )
 }
@@ -2066,7 +2067,7 @@ test!(
         let top_level_mark = Mark::fresh(Mark::root());
         chain!(
             resolver(unresolved_mark, top_level_mark, false),
-            simple_strip(top_level_mark),
+            simple_strip(unresolved_mark, top_level_mark),
             class_properties(
                 Some(t.comments.clone()),
                 class_properties::Config {
@@ -2105,7 +2106,7 @@ test!(
         let top_level_mark = Mark::new();
         chain!(
             resolver(unresolved_mark, top_level_mark, false),
-            simple_strip(top_level_mark),
+            simple_strip(unresolved_mark, top_level_mark),
             class_properties(
                 Some(t.comments.clone()),
                 class_properties::Config {
@@ -2158,7 +2159,7 @@ test!(
         let top_level_mark = Mark::new();
         chain!(
             resolver(unresolved_mark, top_level_mark, false),
-            simple_strip(top_level_mark),
+            simple_strip(unresolved_mark, top_level_mark),
             inlining(Default::default())
         )
     },
@@ -2192,7 +2193,7 @@ test!(
         let top_level_mark = Mark::new();
         chain!(
             resolver(unresolved_mark, top_level_mark, false),
-            simple_strip(top_level_mark),
+            simple_strip(unresolved_mark, top_level_mark),
             inlining(Default::default())
         )
     },
diff --git a/crates/swc_ecma_transforms_react/src/refresh/tests.rs b/crates/swc_ecma_transforms_react/src/refresh/tests.rs
index 4d5575981087..10d4a5ef3978 100644
--- a/crates/swc_ecma_transforms_react/src/refresh/tests.rs
+++ b/crates/swc_ecma_transforms_react/src/refresh/tests.rs
@@ -4,6 +4,7 @@ use swc_ecma_transforms_module::common_js::common_js;
 use swc_ecma_transforms_testing::{test, Tester};
 
 use super::*;
+use crate::jsx;
 
 fn tr(t: &mut Tester) -> impl Fold {
     let unresolved_mark = Mark::new();
@@ -556,6 +557,13 @@ test!(
                 Some(t.comments.clone()),
                 top_level_mark
             ),
+            jsx(
+                t.cm.clone(),
+                Some(t.comments.clone()),
+                Default::default(),
+                top_level_mark,
+                unresolved_mark
+            ),
             common_js(
                 unresolved_mark,
                 Default::default(),
diff --git a/crates/swc_ecma_transforms_react/tests/__swc_snapshots__/src/refresh/tests.rs/include_hook_signature_in_commonjs.js b/crates/swc_ecma_transforms_react/tests/__swc_snapshots__/src/refresh/tests.rs/include_hook_signature_in_commonjs.js
index cf5da48c197b..65268f310638 100644
--- a/crates/swc_ecma_transforms_react/tests/__swc_snapshots__/src/refresh/tests.rs/include_hook_signature_in_commonjs.js
+++ b/crates/swc_ecma_transforms_react/tests/__swc_snapshots__/src/refresh/tests.rs/include_hook_signature_in_commonjs.js
@@ -15,7 +15,7 @@ function App() {
     _s();
     const bar = (0, _hooks.useFancyState)();
     const foo = (0, _foo.default)();
-    return <h1>{bar}</h1>;
+    return /*#__PURE__*/ React.createElement("h1", null, bar);
 }
 _s(App, "useFancyState{bar}\nuseFoo{foo}", false, function() {
     return [
diff --git a/crates/swc_ecma_transforms_typescript/benches/compat.rs b/crates/swc_ecma_transforms_typescript/benches/compat.rs
index b16230ae6a5b..ec36b6c3677f 100644
--- a/crates/swc_ecma_transforms_typescript/benches/compat.rs
+++ b/crates/swc_ecma_transforms_typescript/benches/compat.rs
@@ -35,7 +35,7 @@ where
         let top_level_mark = Mark::fresh(Mark::root());
         let module = module
             .fold_with(&mut resolver(unresolved_mark, top_level_mark, true))
-            .fold_with(&mut strip(top_level_mark));
+            .fold_with(&mut strip(unresolved_mark, top_level_mark));
 
         b.iter(|| {
             let module = module.clone();
@@ -78,13 +78,13 @@ fn common_typescript(b: &mut Bencher) {
         let top_level_mark = Mark::fresh(Mark::root());
         let module = module
             .fold_with(&mut resolver(unresolved_mark, top_level_mark, true))
-            .fold_with(&mut strip(top_level_mark));
+            .fold_with(&mut strip(unresolved_mark, top_level_mark));
 
         b.iter(|| {
             let module = module.clone();
 
             helpers::HELPERS.set(&Default::default(), || {
-                black_box(module.fold_with(&mut strip(top_level_mark)));
+                black_box(module.fold_with(&mut strip(unresolved_mark, top_level_mark)));
             });
         });
 
diff --git a/crates/swc_ecma_transforms_typescript/examples/ts_to_js.rs b/crates/swc_ecma_transforms_typescript/examples/ts_to_js.rs
index 62efa13b6300..48585b609bd2 100644
--- a/crates/swc_ecma_transforms_typescript/examples/ts_to_js.rs
+++ b/crates/swc_ecma_transforms_typescript/examples/ts_to_js.rs
@@ -68,7 +68,7 @@ fn main() {
         let module = module.fold_with(&mut resolver(unresolved_mark, top_level_mark, true));
 
         // Remove typescript types
-        let module = module.fold_with(&mut strip(top_level_mark));
+        let module = module.fold_with(&mut strip(unresolved_mark, top_level_mark));
 
         // Fix up any identifiers with the same name, but different contexts
         let module = module.fold_with(&mut hygiene());
diff --git a/crates/swc_ecma_transforms_typescript/src/transform.rs b/crates/swc_ecma_transforms_typescript/src/transform.rs
index 8015e30295f1..9148f8be5ec3 100644
--- a/crates/swc_ecma_transforms_typescript/src/transform.rs
+++ b/crates/swc_ecma_transforms_typescript/src/transform.rs
@@ -48,7 +48,8 @@ use crate::{
 /// [export and import require]: https://www.typescriptlang.org/docs/handbook/modules.html#export--and-import--require
 #[derive(Debug, Default)]
 pub(crate) struct Transform {
-    top_level_mark: Mark,
+    unresolved_mark: Mark,
+    unresolved_ctxt: SyntaxContext,
     top_level_ctxt: SyntaxContext,
 
     import_export_assign_config: TsImportExportAssignConfig,
@@ -64,13 +65,15 @@ pub(crate) struct Transform {
 }
 
 pub fn transform(
+    unresolved_mark: Mark,
     top_level_mark: Mark,
     import_export_assign_config: TsImportExportAssignConfig,
     ts_enum_is_mutable: bool,
     verbatim_module_syntax: bool,
 ) -> impl Fold + VisitMut {
     as_folder(Transform {
-        top_level_mark,
+        unresolved_mark,
+        unresolved_ctxt: SyntaxContext::empty().apply_mark(unresolved_mark),
         top_level_ctxt: SyntaxContext::empty().apply_mark(top_level_mark),
         import_export_assign_config,
         ts_enum_is_mutable,
@@ -545,7 +548,7 @@ impl Transform {
                 &id.to_id(),
                 &default_init,
                 record,
-                self.top_level_mark,
+                self.unresolved_mark,
             );
 
             default_init = value.inc();
@@ -982,7 +985,7 @@ impl Transform {
         // NOTE: This is not correct!
         // However, all unresolved_span are used in TsImportExportAssignConfig::Classic
         // which is deprecated and not used in real world.
-        let unresolved_span = DUMMY_SP.apply_mark(self.top_level_mark);
+        let unresolved_span = DUMMY_SP.apply_mark(self.unresolved_mark);
         let cjs_require = quote_ident!(unresolved_span, "require");
         let cjs_exports = quote_ident!(unresolved_span, "exports");
 
@@ -991,7 +994,12 @@ impl Transform {
         for mut module_item in n.take() {
             match &mut module_item {
                 ModuleItem::ModuleDecl(ModuleDecl::TsImportEquals(decl)) if !decl.is_type_only => {
-                    debug_assert_eq!(decl.id.span.ctxt(), self.top_level_ctxt);
+                    debug_assert_ne!(
+                        decl.id.span.ctxt(),
+                        self.unresolved_ctxt,
+                        "TsImportEquals has top-level context and it should not be identical to \
+                         the unresolved mark"
+                    );
 
                     match &mut decl.module_ref {
                         // import foo = bar.baz
diff --git a/crates/swc_ecma_transforms_typescript/src/typescript.rs b/crates/swc_ecma_transforms_typescript/src/typescript.rs
index 4c4c43351858..764a48b989bb 100644
--- a/crates/swc_ecma_transforms_typescript/src/typescript.rs
+++ b/crates/swc_ecma_transforms_typescript/src/typescript.rs
@@ -11,20 +11,28 @@ use swc_ecma_visit::{as_folder, Fold, VisitMut, VisitMutWith};
 pub use crate::config::*;
 use crate::{strip_import_export::StripImportExport, strip_type::StripType, transform::transform};
 
-pub fn typescript(config: Config, top_level_mark: Mark) -> impl Fold + VisitMut {
+pub fn typescript(
+    config: Config,
+    unresolved_mark: Mark,
+    top_level_mark: Mark,
+) -> impl Fold + VisitMut {
+    debug_assert_ne!(unresolved_mark, top_level_mark);
+
     as_folder(TypeScript {
         config,
+        unresolved_mark,
         top_level_mark,
         id_usage: Default::default(),
     })
 }
 
-pub fn strip(top_level_mark: Mark) -> impl Fold + VisitMut {
-    typescript(Config::default(), top_level_mark)
+pub fn strip(unresolved_mark: Mark, top_level_mark: Mark) -> impl Fold + VisitMut {
+    typescript(Config::default(), unresolved_mark, top_level_mark)
 }
 
 pub(crate) struct TypeScript {
     pub config: Config,
+    pub unresolved_mark: Mark,
     pub top_level_mark: Mark,
 
     id_usage: AHashSet<Id>,
@@ -44,6 +52,7 @@ impl VisitMut for TypeScript {
         n.visit_mut_with(&mut StripType::default());
 
         n.visit_mut_with(&mut transform(
+            self.unresolved_mark,
             self.top_level_mark,
             self.config.import_export_assign_config,
             self.config.ts_enum_is_mutable,
@@ -104,6 +113,7 @@ pub fn tsx<C>(
     config: Config,
     tsx_config: TsxConfig,
     comments: C,
+    unresolved_mark: Mark,
     top_level_mark: Mark,
 ) -> impl Fold + VisitMut
 where
@@ -116,6 +126,7 @@ where
         comments,
         cm,
         top_level_mark,
+        unresolved_mark,
     })
 }
 
@@ -141,6 +152,7 @@ where
     comments: C,
     cm: Lrc<SourceMap>,
     top_level_mark: Mark,
+    unresolved_mark: Mark,
 }
 
 impl<C> VisitMut for TypeScriptReact<C>
@@ -219,6 +231,7 @@ where
 
         n.visit_mut_with(&mut TypeScript {
             config: mem::take(&mut self.config),
+            unresolved_mark: self.unresolved_mark,
             top_level_mark: self.top_level_mark,
             id_usage: mem::take(&mut self.id_usage),
         });
diff --git a/crates/swc_ecma_transforms_typescript/tests/fixture/issue-3338/1/output.js b/crates/swc_ecma_transforms_typescript/tests/fixture/issue-3338/1/output.js
index 22bd2e9c0de7..146f67dc2cac 100644
--- a/crates/swc_ecma_transforms_typescript/tests/fixture/issue-3338/1/output.js
+++ b/crates/swc_ecma_transforms_typescript/tests/fixture/issue-3338/1/output.js
@@ -1,5 +1,5 @@
 var Status;
-(function (Status) {
+(function(Status) {
     Status["foo"] = "111";
     Status["boo"] = "222";
 })(Status || (Status = {}));
diff --git a/crates/swc_ecma_transforms_typescript/tests/fixture/issue-6923/output.js b/crates/swc_ecma_transforms_typescript/tests/fixture/issue-6923/output.js
index 31cd8e727a7e..6743365e4828 100644
--- a/crates/swc_ecma_transforms_typescript/tests/fixture/issue-6923/output.js
+++ b/crates/swc_ecma_transforms_typescript/tests/fixture/issue-6923/output.js
@@ -1,7 +1,4 @@
 import ReactDOM from "react-dom";
 import { _Component } from "./Component";
-const App = <div>
-        <_Component></_Component>
-        <p>Hello World</p>
-    </div>;
+const App = React.createElement("div", null, React.createElement(_Component, null), React.createElement("p", null, "Hello World"));
 ReactDOM.render(App, window.document.getElementById("react_root"));
diff --git a/crates/swc_ecma_transforms_typescript/tests/fixture/issue-7539/output.js b/crates/swc_ecma_transforms_typescript/tests/fixture/issue-7539/output.js
index d0f3e9c84a29..d2b2afe8389d 100644
--- a/crates/swc_ecma_transforms_typescript/tests/fixture/issue-7539/output.js
+++ b/crates/swc_ecma_transforms_typescript/tests/fixture/issue-7539/output.js
@@ -1 +1 @@
-/* @jsx h */ /* @jsxFrag null */ <></>;
+/* @jsx h */ /* @jsxFrag null */ React.createElement(React.Fragment, null);
diff --git a/crates/swc_ecma_transforms_typescript/tests/fixture/namespace/2/output.js b/crates/swc_ecma_transforms_typescript/tests/fixture/namespace/2/output.js
index 04ed1dc7e343..989116a01449 100644
--- a/crates/swc_ecma_transforms_typescript/tests/fixture/namespace/2/output.js
+++ b/crates/swc_ecma_transforms_typescript/tests/fixture/namespace/2/output.js
@@ -1,17 +1,14 @@
 class X1 {
 }
-(function (X1) {
+(function(X1) {
     console.log(1);
 })(X1 || (X1 = {}));
-
-function X2() { }
-(function (X2) {
+function X2() {}
+(function(X2) {
     console.log(2);
 })(X2 || (X2 = {}));
-
 var X3;
-(function (X3) {
-})(X3 || (X3 = {}));
-(function (X3) {
+(function(X3) {})(X3 || (X3 = {}));
+(function(X3) {
     console.log(3);
 })(X3 || (X3 = {}));
diff --git a/crates/swc_ecma_transforms_typescript/tests/fixture/next-45561/1/output.js b/crates/swc_ecma_transforms_typescript/tests/fixture/next-45561/1/output.js
index 2ee2a9881d48..84341e8e32a4 100644
--- a/crates/swc_ecma_transforms_typescript/tests/fixture/next-45561/1/output.js
+++ b/crates/swc_ecma_transforms_typescript/tests/fixture/next-45561/1/output.js
@@ -1,9 +1,8 @@
 import { dirname } from "node:path";
 export default function IndexPage(props) {
-    return <div>
-            abc: {props.abc}
-            <svg viewBox="0 -85 600 600"></svg>
-        </div>;
+    return React.createElement("div", null, "abc: ", props.abc, React.createElement("svg", {
+        viewBox: "0 -85 600 600"
+    }));
 }
 export function getServerSideProps() {
     return {
diff --git a/crates/swc_ecma_transforms_typescript/tests/fixture/next-45561/2/output.js b/crates/swc_ecma_transforms_typescript/tests/fixture/next-45561/2/output.js
index b25bc2779264..99c5a367821c 100644
--- a/crates/swc_ecma_transforms_typescript/tests/fixture/next-45561/2/output.js
+++ b/crates/swc_ecma_transforms_typescript/tests/fixture/next-45561/2/output.js
@@ -1,11 +1,12 @@
 import { dirname } from "node:path";
 export default function IndexPage(props) {
-    return <div>
-            abc: {props.abc}
-            <svg viewBox="0 -85 600 600">
-                <path fillRule="evenodd" d="M513 256.5C513 398.161 398.161 513 256.5 513C114.839 513 0 398.161 0 256.5C0 114.839 114.839 0 256.5 0C398.161 0 513 114.839 513 256.5ZM211.146 305.243L369.885 145L412 185.878L253.26 346.122L211.146 387L101 275.811L143.115 234.932L211.146 305.243Z" fill="#fff"/>
-            </svg>
-        </div>;
+    return React.createElement("div", null, "abc: ", props.abc, React.createElement("svg", {
+        viewBox: "0 -85 600 600"
+    }, React.createElement("path", {
+        fillRule: "evenodd",
+        d: "M513 256.5C513 398.161 398.161 513 256.5 513C114.839 513 0 398.161 0 256.5C0 114.839 114.839 0 256.5 0C398.161 0 513 114.839 513 256.5ZM211.146 305.243L369.885 145L412 185.878L253.26 346.122L211.146 387L101 275.811L143.115 234.932L211.146 305.243Z",
+        fill: "#fff"
+    })));
 }
 export function getServerSideProps() {
     return {
diff --git a/crates/swc_ecma_transforms_typescript/tests/fixture/next/server/render/1/output.js b/crates/swc_ecma_transforms_typescript/tests/fixture/next/server/render/1/output.js
index f7417cae2fcc..f613ecac0590 100644
--- a/crates/swc_ecma_transforms_typescript/tests/fixture/next/server/render/1/output.js
+++ b/crates/swc_ecma_transforms_typescript/tests/fixture/next/server/render/1/output.js
@@ -232,13 +232,15 @@ export async function renderToHTML(req, res, pathname, query, renderOpts) {
         locales: renderOpts.locales,
         defaultLocale: renderOpts.defaultLocale,
         AppTree: (props)=>{
-            return <AppContainer>
-                    <App {...props} Component={Component} router={router}/>
-                </AppContainer>;
+            return React.createElement(AppContainer, null, React.createElement(App, {
+                ...props,
+                Component: Component,
+                router: router
+            }));
         },
         defaultGetInitialProps: async (docCtx)=>{
             const enhanceApp = (AppComp)=>{
-                return (props)=><AppComp {...props}/>;
+                return (props)=>React.createElement(AppComp, props);
             };
             const { html, head } = await docCtx.renderPage({
                 enhanceApp
@@ -262,26 +264,26 @@ export async function renderToHTML(req, res, pathname, query, renderOpts) {
     let head = defaultHead(inAmpMode);
     let scriptLoader = {};
     const nextExport = !isSSG && (renderOpts.nextExport || dev && (isAutoExport || isFallback));
-    const AppContainer = ({ children })=><RouterContext.Provider value={router}>
-            <AmpStateContext.Provider value={ampState}>
-                <HeadManagerContext.Provider value={{
-            updateHead: (state)=>{
-                head = state;
-            },
-            updateScripts: (scripts)=>{
-                scriptLoader = scripts;
-            },
-            scripts: {},
-            mountedInstances: new Set()
-        }}>
-                    <LoadableContext.Provider value={(moduleName)=>reactLoadableModules.push(moduleName)}>
-                        <StyleRegistry registry={jsxStyleRegistry}>
-                            {children}
-                        </StyleRegistry>
-                    </LoadableContext.Provider>
-                </HeadManagerContext.Provider>
-            </AmpStateContext.Provider>
-        </RouterContext.Provider>;
+    const AppContainer = ({ children })=>React.createElement(RouterContext.Provider, {
+            value: router
+        }, React.createElement(AmpStateContext.Provider, {
+            value: ampState
+        }, React.createElement(HeadManagerContext.Provider, {
+            value: {
+                updateHead: (state)=>{
+                    head = state;
+                },
+                updateScripts: (scripts)=>{
+                    scriptLoader = scripts;
+                },
+                scripts: {},
+                mountedInstances: new Set()
+            }
+        }, React.createElement(LoadableContext.Provider, {
+            value: (moduleName)=>reactLoadableModules.push(moduleName)
+        }, React.createElement(StyleRegistry, {
+            registry: jsxStyleRegistry
+        }, children)))));
     props = await loadGetInitialProps(App, {
         AppTree: ctx.AppTree,
         Component,
@@ -530,7 +532,9 @@ export async function renderToHTML(req, res, pathname, query, renderOpts) {
         if (Document.getInitialProps) {
             const renderPage = (options = {})=>{
                 if (ctx.err && ErrorDebug) {
-                    const html = ReactDOMServer.renderToString(<ErrorDebug error={ctx.err}/>);
+                    const html = ReactDOMServer.renderToString(React.createElement(ErrorDebug, {
+                        error: ctx.err
+                    }));
                     return {
                         html,
                         head
@@ -540,9 +544,11 @@ export async function renderToHTML(req, res, pathname, query, renderOpts) {
                     throw new Error(`'router' and 'Component' can not be returned in getInitialProps from _app.js https://nextjs.org/docs/messages/cant-override-next-props`);
                 }
                 const { App: EnhancedApp, Component: EnhancedComponent } = enhanceComponents(options, App, Component);
-                const html = ReactDOMServer.renderToString(<AppContainer>
-                        <EnhancedApp Component={EnhancedComponent} router={router} {...props}/>
-                    </AppContainer>);
+                const html = ReactDOMServer.renderToString(React.createElement(AppContainer, null, React.createElement(EnhancedApp, {
+                    Component: EnhancedComponent,
+                    router: router,
+                    ...props
+                })));
                 return {
                     html,
                     head
@@ -563,15 +569,22 @@ export async function renderToHTML(req, res, pathname, query, renderOpts) {
                 bodyResult: piperFromArray([
                     docProps.html
                 ]),
-                documentElement: (htmlProps)=><Document {...htmlProps} {...docProps}/>,
+                documentElement: (htmlProps)=>React.createElement(Document, {
+                        ...htmlProps,
+                        ...docProps
+                    }),
                 head: docProps.head,
                 headTags: await headTags(documentCtx),
                 styles: docProps.styles
             };
         } else {
-            const content = ctx.err && ErrorDebug ? <ErrorDebug error={ctx.err}/> : <AppContainer>
-                        <App {...props} Component={Component} router={router}/>
-                    </AppContainer>;
+            const content = ctx.err && ErrorDebug ? React.createElement(ErrorDebug, {
+                error: ctx.err
+            }) : React.createElement(AppContainer, null, React.createElement(App, {
+                ...props,
+                Component: Component,
+                router: router
+            }));
             const bodyResult = concurrentFeatures ? await renderToStream(content, generateStaticHTML) : piperFromArray([
                 ReactDOMServer.renderToString(content)
             ]);
@@ -648,11 +661,11 @@ export async function renderToHTML(req, res, pathname, query, renderOpts) {
         styles: documentResult.styles,
         useMaybeDeferContent
     };
-    const documentHTML = ReactDOMServer.renderToStaticMarkup(<AmpStateContext.Provider value={ampState}>
-            <HtmlContext.Provider value={htmlProps}>
-                {documentResult.documentElement(htmlProps)}
-            </HtmlContext.Provider>
-        </AmpStateContext.Provider>);
+    const documentHTML = ReactDOMServer.renderToStaticMarkup(React.createElement(AmpStateContext.Provider, {
+        value: ampState
+    }, React.createElement(HtmlContext.Provider, {
+        value: htmlProps
+    }, documentResult.documentElement(htmlProps))));
     if (process.env.NODE_ENV !== "production") {
         const nonRenderedComponents = [];
         const expectedDocComponents = [
diff --git a/crates/swc_ecma_transforms_typescript/tests/strip.rs b/crates/swc_ecma_transforms_typescript/tests/strip.rs
index f6e2e79ef613..18d1d62527fe 100644
--- a/crates/swc_ecma_transforms_typescript/tests/strip.rs
+++ b/crates/swc_ecma_transforms_typescript/tests/strip.rs
@@ -1,6 +1,11 @@
 use std::path::PathBuf;
 
-use swc_common::{chain, comments::SingleThreadedComments, pass::Optional, Mark};
+use swc_common::{
+    chain,
+    comments::{NoopComments, SingleThreadedComments},
+    pass::Optional,
+    Mark,
+};
 use swc_ecma_parser::{Syntax, TsSyntax};
 use swc_ecma_transforms_base::resolver;
 use swc_ecma_transforms_compat::{
@@ -11,17 +16,19 @@ use swc_ecma_transforms_compat::{
     es2022::{class_properties, static_blocks},
 };
 use swc_ecma_transforms_proposal::decorators;
+use swc_ecma_transforms_react::jsx;
 use swc_ecma_transforms_testing::{test, test_exec, test_fixture, Tester};
 use swc_ecma_transforms_typescript::{
     tsx, typescript, ImportsNotUsedAsValues, TsImportExportAssignConfig, TsxConfig,
 };
 use swc_ecma_visit::Fold;
 
-fn tr() -> impl Fold {
-    tr_config(None, None, false)
+fn tr(t: &mut Tester) -> impl Fold {
+    tr_config(t, None, None, false)
 }
 
 fn tr_config(
+    t: &mut Tester,
     config: Option<typescript::Config>,
     decorators_config: Option<decorators::Config>,
     use_define_for_class_fields: bool,
@@ -40,7 +47,14 @@ fn tr_config(
             has_decorators,
         ),
         resolver(unresolved_mark, top_level_mark, true),
-        typescript(config, top_level_mark),
+        typescript(config, unresolved_mark, top_level_mark),
+        jsx(
+            t.cm.clone(),
+            None::<NoopComments>,
+            Default::default(),
+            top_level_mark,
+            unresolved_mark
+        ),
         Optional::new(class_fields_use_set(true), !use_define_for_class_fields),
     )
 }
@@ -60,6 +74,7 @@ fn tsxr(t: &Tester) -> impl Fold {
             },
             TsxConfig::default(),
             t.comments.clone(),
+            unresolved_mark,
             top_level_mark,
         ),
         swc_ecma_transforms_react::jsx(
@@ -99,7 +114,7 @@ macro_rules! to {
                 decorators: true,
                 ..Default::default()
             }),
-            |t| chain!(tr(), properties(t, true)),
+            |t| chain!(tr(t), properties(t, true)),
             $name,
             $from
         );
@@ -119,7 +134,7 @@ macro_rules! test_with_config {
                 decorators: true,
                 ..Default::default()
             }),
-            |_| tr_config(Some($config), None, $use_define),
+            |t| tr_config(t, Some($config), None, $use_define),
             $name,
             $from
         );
@@ -128,12 +143,12 @@ macro_rules! test_with_config {
 
 test!(
     Syntax::Typescript(Default::default()),
-    |_| {
+    |t| {
         let unresolved_mark = Mark::new();
         let top_level_mark = Mark::new();
         chain!(
             resolver(unresolved_mark, top_level_mark, true),
-            tr(),
+            tr(t),
             parameters(
                 parameters::Config {
                     ignore_function_length: true
@@ -155,7 +170,7 @@ test!(
 
 test!(
     ::swc_ecma_parser::Syntax::Typescript(Default::default()),
-    |_| tr(),
+    tr,
     issue_392_2,
     "
 import { PlainObject } from 'simplytyped';
@@ -165,7 +180,7 @@ const dict: PlainObject = {};
 
 test!(
     ::swc_ecma_parser::Syntax::Typescript(Default::default()),
-    |_| tr(),
+    tr,
     issue_461,
     "for (let x in ['']) {
   (x => 0)(x);
@@ -174,7 +189,7 @@ test!(
 
 test!(
     ::swc_ecma_parser::Syntax::Typescript(Default::default()),
-    |_| tr(),
+    tr,
     issue_468_1,
     "tView.firstCreatePass ?
       getOrCreateTNode(tView, lView[T_HOST], index, TNodeType.Element, null, null) :
@@ -183,7 +198,7 @@ test!(
 
 test!(
     ::swc_ecma_parser::Syntax::Typescript(Default::default()),
-    |_| tr(),
+    tr,
     issue_468_2,
     "tView.firstCreatePass ?
       getOrCreateTNode(tView, lView[T_HOST], index, TNodeType.Element, null, null) :
@@ -192,7 +207,7 @@ test!(
 
 test!(
     ::swc_ecma_parser::Syntax::Typescript(Default::default()),
-    |_| tr(),
+    tr,
     issue_468_3,
     "tView.firstCreatePass ?
       getOrCreateTNode() : tView.data[adjustedIndex] as TElementNode"
@@ -200,42 +215,42 @@ test!(
 
 test!(
     ::swc_ecma_parser::Syntax::Typescript(Default::default()),
-    |_| tr(),
+    tr,
     issue_468_4,
     "a ? b : c"
 );
 
 test!(
     ::swc_ecma_parser::Syntax::Typescript(Default::default()),
-    |_| tr(),
+    tr,
     issue_468_5,
     "a ? b : c as T"
 );
 
 test!(
     ::swc_ecma_parser::Syntax::Typescript(Default::default()),
-    |_| tr(),
+    tr,
     issue_468_6,
     "a.b ? c() : d.e[f] as T"
 );
 
 test!(
     ::swc_ecma_parser::Syntax::Typescript(Default::default()),
-    |_| tr(),
+    tr,
     issue_468_7,
     "tView.firstCreatePass ? getOrCreateTNode() : tView.data[adjustedIndex]"
 );
 
 test!(
     ::swc_ecma_parser::Syntax::Typescript(Default::default()),
-    |_| tr(),
+    tr,
     enum_simple,
     "enum Foo{ a }"
 );
 
 test!(
     ::swc_ecma_parser::Syntax::Typescript(Default::default()),
-    |_| tr(),
+    tr,
     enum_str,
     "enum State {
   closed = 'closed',
@@ -247,7 +262,7 @@ test!(
 
 test!(
     ::swc_ecma_parser::Syntax::Typescript(Default::default()),
-    |_| tr(),
+    tr,
     enum_key_value,
     "enum StateNum {
   closed = 'cl0',
@@ -258,7 +273,7 @@ test!(
 
 test!(
     ::swc_ecma_parser::Syntax::Typescript(Default::default()),
-    |_| tr(),
+    tr,
     enum_export_str,
     "export enum State {
   closed = 'closed',
@@ -281,7 +296,7 @@ to!(
 
 test!(
     ::swc_ecma_parser::Syntax::Typescript(Default::default()),
-    |_| tr(),
+    tr,
     issue_640,
     "import { Handler } from 'aws-lambda';
 export const handler: Handler = async (event, context) => {};"
@@ -289,7 +304,7 @@ export const handler: Handler = async (event, context) => {};"
 
 test!(
     ::swc_ecma_parser::Syntax::Typescript(Default::default()),
-    |_| tr(),
+    tr,
     issue_656,
     "export const x = { text: 'hello' } as const;"
 );
@@ -538,7 +553,7 @@ to!(
 
 test!(
     ::swc_ecma_parser::Syntax::Typescript(Default::default()),
-    |_| tr(),
+    tr,
     issue_930_instance,
     "class A {
         b = this.a;
@@ -549,7 +564,7 @@ test!(
 
 test!(
     ::swc_ecma_parser::Syntax::Typescript(Default::default()),
-    |t| chain!(tr(), properties(t, true)),
+    |t| chain!(tr(t), properties(t, true)),
     issue_930_static,
     "class A {
         static b = 'foo';
@@ -560,7 +575,7 @@ test!(
 
 test!(
     ::swc_ecma_parser::Syntax::Typescript(Default::default()),
-    |t| chain!(tr(), properties(t, true)),
+    |t| chain!(tr(t), properties(t, true)),
     typescript_001,
     "class A {
         foo = new Subject()
@@ -573,7 +588,7 @@ test!(
 
 test!(
     ::swc_ecma_parser::Syntax::Typescript(Default::default()),
-    |_| tr(),
+    tr,
     typescript_002,
     "class A extends B {
             foo = 'foo'
@@ -591,7 +606,7 @@ test!(
 
 test!(
     ::swc_ecma_parser::Syntax::Typescript(Default::default()),
-    |_| tr(),
+    tr,
     issue_958,
     "export class Test {
         constructor(readonly test?: string) {}
@@ -603,12 +618,12 @@ test!(
         decorators: true,
         ..Default::default()
     }),
-    |_| chain!(
+    |t| chain!(
         decorators(decorators::Config {
             legacy: true,
             ..Default::default()
         }),
-        tr()
+        tr(t)
     ),
     issue_960_1,
     "
@@ -638,12 +653,12 @@ test_exec!(
         decorators: true,
         ..Default::default()
     }),
-    |_| chain!(
+    |t| chain!(
         decorators(decorators::Config {
             legacy: true,
             ..Default::default()
         }),
-        tr()
+        tr(t)
     ),
     issue_960_2,
     "function DefineAction() { return function(_a, _b, c) { return c } }
@@ -673,7 +688,7 @@ test_exec!(
 
 test!(
     ::swc_ecma_parser::Syntax::Typescript(Default::default()),
-    |_| tr(),
+    tr,
     issue_1032,
     r#"import {
     indent as indentFormatter,
@@ -1748,7 +1763,7 @@ test!(
         decorators: true,
         ..Default::default()
     }),
-    |_| tr(),
+    tr,
     deno_7413_1,
     "
     import { a } from './foo';
@@ -1761,7 +1776,7 @@ test!(
         decorators: true,
         ..Default::default()
     }),
-    |_| tr(),
+    tr,
     deno_7413_2,
     "
     import './foo';
@@ -1773,8 +1788,9 @@ test!(
         decorators: true,
         ..Default::default()
     }),
-    |_| {
+    |t| {
         tr_config(
+            t,
             Some(typescript::Config {
                 no_empty_export: true,
                 import_not_used_as_values: ImportsNotUsedAsValues::Preserve,
@@ -1831,7 +1847,7 @@ test!(
         decorators: true,
         ..Default::default()
     }),
-    |_| tr(),
+    tr,
     issue_1124,
     "
     import { Type } from './types';
@@ -1851,7 +1867,7 @@ test!(
         chain!(
             Optional::new(decorators(Default::default()), false,),
             resolver(unresolved_mark, top_level_mark, true),
-            typescript(config, top_level_mark),
+            typescript(config, unresolved_mark, top_level_mark),
             async_to_generator::<SingleThreadedComments>(Default::default(), None, unresolved_mark),
         )
     },
@@ -1881,7 +1897,7 @@ test!(
         chain!(
             Optional::new(decorators(Default::default()), false,),
             resolver(unresolved_mark, top_level_mark, true),
-            typescript(config, top_level_mark),
+            typescript(config, unresolved_mark, top_level_mark),
             optional_chaining(Default::default(), unresolved_mark)
         )
     },
@@ -1893,7 +1909,7 @@ test!(
 
 test!(
     Syntax::Typescript(Default::default()),
-    |_| chain!(tr(), nullish_coalescing(Default::default())),
+    |t| chain!(tr(t), nullish_coalescing(Default::default())),
     issue_1123_1,
     r#"
     interface SuperSubmission {
@@ -1927,7 +1943,8 @@ test!(
 // compile_to_class_constructor_collision_ignores_types
 test!(
     Syntax::Typescript(Default::default()),
-    |_| tr_config(
+    |t| tr_config(
+        t,
         Some(typescript::Config {
             no_empty_export: true,
             ..Default::default()
@@ -1952,7 +1969,7 @@ test!(
         decorators: true,
         ..Default::default()
     }),
-    |_| tr_config(None, Some(Default::default()), false),
+    |t| tr_config(t, None, Some(Default::default()), false),
     issue_367,
     "
 
@@ -2650,7 +2667,7 @@ fn exec(input: PathBuf) {
             tsx: input.to_string_lossy().ends_with(".tsx"),
             ..Default::default()
         }),
-        &|t| chain!(tr(), properties(t, true)),
+        &|t| chain!(tr(t), properties(t, true)),
         &input,
         &output,
         Default::default(),
@@ -2674,7 +2691,7 @@ let b = class {
 
 test!(
     Syntax::Typescript(TsSyntax::default()),
-    |_| tr_config(None, None, true),
+    |t| tr_config(t, None, None, true),
     export_import_assign,
     r#"
     export import foo = require("foo");
@@ -2685,7 +2702,8 @@ test!(
 
 test!(
     Syntax::Typescript(TsSyntax::default()),
-    |_| tr_config(
+    |t| tr_config(
+        t,
         Some(typescript::Config {
             import_export_assign_config: TsImportExportAssignConfig::NodeNext,
             ..Default::default()
@@ -2703,7 +2721,8 @@ test!(
 
 test!(
     Syntax::Typescript(TsSyntax::default()),
-    |_| tr_config(
+    |t| tr_config(
+        t,
         Some(typescript::Config {
             import_export_assign_config: TsImportExportAssignConfig::NodeNext,
             ..Default::default()
@@ -2732,7 +2751,7 @@ test_with_config!(
 
 test!(
     ::swc_ecma_parser::Syntax::Typescript(Default::default()),
-    |_| tr(),
+    tr,
     issue_6219,
     "enum A{
         a=a,
@@ -2741,7 +2760,7 @@ test!(
 
 test!(
     ::swc_ecma_parser::Syntax::Typescript(Default::default()),
-    |_| tr(),
+    tr,
     issue_7106,
     "
     export class test {
@@ -2757,7 +2776,8 @@ test!(
 
 test!(
     Syntax::Typescript(TsSyntax::default()),
-    |_| tr_config(
+    |t| tr_config(
+        t,
         Some(typescript::Config {
             ts_enum_is_mutable: true,
             ..Default::default()
@@ -2814,6 +2834,7 @@ test!(
                 },
                 TsxConfig::default(),
                 t.comments.clone(),
+                unresolved_mark,
                 top_level_mark,
             )
         )
diff --git a/crates/swc_ecma_transforms_typescript/tests/strip_correctness.rs b/crates/swc_ecma_transforms_typescript/tests/strip_correctness.rs
index 3fb9453bb52c..6e080aa6b942 100644
--- a/crates/swc_ecma_transforms_typescript/tests/strip_correctness.rs
+++ b/crates/swc_ecma_transforms_typescript/tests/strip_correctness.rs
@@ -108,6 +108,7 @@ fn identity(entry: PathBuf) {
                                 no_empty_export: true,
                                 ..Default::default()
                             },
+                            unresolved_mark,
                             top_level_mark,
                         ))
                         .fold_with(&mut hygiene())
diff --git a/crates/swc_ecma_usage_analyzer/src/alias/mod.rs b/crates/swc_ecma_usage_analyzer/src/alias/mod.rs
index 29c2d13fa3e9..bc7db73f0aba 100644
--- a/crates/swc_ecma_usage_analyzer/src/alias/mod.rs
+++ b/crates/swc_ecma_usage_analyzer/src/alias/mod.rs
@@ -4,7 +4,7 @@ use rustc_hash::FxHashSet;
 use swc_common::{collections::AHashSet, SyntaxContext};
 use swc_ecma_ast::*;
 use swc_ecma_utils::{collect_decls, BindingCollector};
-use swc_ecma_visit::{noop_visit_type, Visit, VisitWith};
+use swc_ecma_visit::{standard_only_visit, Visit, VisitWith};
 
 pub use self::ctx::Ctx;
 use crate::{marks::Marks, util::is_global_var_with_pure_property_access};
@@ -120,7 +120,7 @@ impl InfectionCollector<'_> {
 }
 
 impl Visit for InfectionCollector<'_> {
-    noop_visit_type!();
+    standard_only_visit!();
 
     fn visit_bin_expr(&mut self, e: &BinExpr) {
         match e.op {
diff --git a/crates/swc_ecma_usage_analyzer/src/analyzer/mod.rs b/crates/swc_ecma_usage_analyzer/src/analyzer/mod.rs
index 76bfb7995209..9e077987b798 100644
--- a/crates/swc_ecma_usage_analyzer/src/analyzer/mod.rs
+++ b/crates/swc_ecma_usage_analyzer/src/analyzer/mod.rs
@@ -1,7 +1,7 @@
 use swc_common::{collections::AHashMap, SyntaxContext};
 use swc_ecma_ast::*;
 use swc_ecma_utils::{find_pat_ids, ExprCtx, ExprExt, IsEmpty, StmtExt};
-use swc_ecma_visit::{noop_visit_type, Visit, VisitWith};
+use swc_ecma_visit::{standard_only_visit, Visit, VisitWith};
 use swc_timer::timer;
 
 pub use self::ctx::Ctx;
@@ -215,7 +215,7 @@ impl<S> Visit for UsageAnalyzer<S>
 where
     S: Storage,
 {
-    noop_visit_type!();
+    standard_only_visit!();
 
     fn visit_array_lit(&mut self, n: &ArrayLit) {
         let ctx = Ctx {
diff --git a/crates/swc_ecma_utils/src/constructor.rs b/crates/swc_ecma_utils/src/constructor.rs
index fa27b9bb3628..a415c0a005e9 100644
--- a/crates/swc_ecma_utils/src/constructor.rs
+++ b/crates/swc_ecma_utils/src/constructor.rs
@@ -2,7 +2,9 @@ use std::iter;
 
 use swc_common::{util::take::Take, DUMMY_SP};
 use swc_ecma_ast::*;
-use swc_ecma_visit::{noop_fold_type, noop_visit_mut_type, Fold, FoldWith, VisitMut, VisitMutWith};
+use swc_ecma_visit::{
+    standard_only_fold, standard_only_visit_mut, Fold, FoldWith, VisitMut, VisitMutWith,
+};
 
 use crate::{prepend_stmts, ExprFactory};
 
@@ -35,7 +37,7 @@ struct Injector<'a> {
 }
 
 impl<'a> Fold for Injector<'a> {
-    noop_fold_type!();
+    standard_only_fold!();
 
     fn fold_class(&mut self, c: Class) -> Class {
         c
@@ -117,7 +119,7 @@ struct ExprInjector<'a> {
 }
 
 impl VisitMut for ExprInjector<'_> {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_class(&mut self, c: &mut Class) {
         c.super_class.visit_mut_with(self);
diff --git a/crates/swc_ecma_utils/src/function/fn_env_hoister.rs b/crates/swc_ecma_utils/src/function/fn_env_hoister.rs
index 11d9126cf861..128ea299e9af 100644
--- a/crates/swc_ecma_utils/src/function/fn_env_hoister.rs
+++ b/crates/swc_ecma_utils/src/function/fn_env_hoister.rs
@@ -4,7 +4,7 @@ use indexmap::IndexMap;
 use swc_atoms::JsWord;
 use swc_common::{util::take::Take, Span, Spanned, SyntaxContext, DUMMY_SP};
 use swc_ecma_ast::*;
-use swc_ecma_visit::{noop_visit_mut_type, VisitMut, VisitMutWith};
+use swc_ecma_visit::{standard_only_visit_mut, VisitMut, VisitMutWith};
 
 use crate::ExprFactory;
 
@@ -277,7 +277,7 @@ impl FnEnvHoister {
 }
 
 impl VisitMut for FnEnvHoister {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_assign_target_pat(&mut self, n: &mut AssignTargetPat) {
         let in_pat = self.in_pat;
@@ -595,7 +595,7 @@ struct InitThis<'a> {
 
 // babel is skip function and class property
 impl<'a> VisitMut for InitThis<'a> {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_class(&mut self, _: &mut Class) {}
 
diff --git a/crates/swc_ecma_utils/src/lib.rs b/crates/swc_ecma_utils/src/lib.rs
index 074b38ac41d0..4b89225f9920 100644
--- a/crates/swc_ecma_utils/src/lib.rs
+++ b/crates/swc_ecma_utils/src/lib.rs
@@ -21,8 +21,8 @@ use swc_common::{
 };
 use swc_ecma_ast::*;
 use swc_ecma_visit::{
-    noop_visit_mut_type, noop_visit_type, visit_mut_obj_and_computed, visit_obj_and_computed,
-    Visit, VisitMut, VisitMutWith, VisitWith,
+    noop_visit_mut_type, noop_visit_type, standard_only_visit_mut, visit_mut_obj_and_computed,
+    visit_obj_and_computed, Visit, VisitMut, VisitMutWith, VisitWith,
 };
 use tracing::trace;
 
@@ -1814,26 +1814,6 @@ impl Visit for LiteralVisitor {
         self.is_lit = false;
     }
 
-    fn visit_jsx_element(&mut self, _: &JSXElement) {
-        self.is_lit = false
-    }
-
-    fn visit_jsx_empty_expr(&mut self, _: &JSXEmptyExpr) {
-        self.is_lit = false
-    }
-
-    fn visit_jsx_fragment(&mut self, _: &JSXFragment) {
-        self.is_lit = false
-    }
-
-    fn visit_jsx_member_expr(&mut self, _: &JSXMemberExpr) {
-        self.is_lit = false
-    }
-
-    fn visit_jsx_namespaced_name(&mut self, _: &JSXNamespacedName) {
-        self.is_lit = false
-    }
-
     fn visit_member_expr(&mut self, _: &MemberExpr) {
         self.is_lit = false;
     }
@@ -2348,8 +2328,6 @@ where
 }
 
 impl<I: IdentLike> Visit for DestructuringFinder<I> {
-    noop_visit_type!();
-
     /// No-op (we don't care about expressions)
     fn visit_expr(&mut self, _: &Expr) {}
 
@@ -2357,8 +2335,14 @@ impl<I: IdentLike> Visit for DestructuringFinder<I> {
         self.found.push(I::from_ident(i));
     }
 
+    fn visit_jsx_member_expr(&mut self, n: &JSXMemberExpr) {
+        n.obj.visit_with(self);
+    }
+
     /// No-op (we don't care about expressions)
     fn visit_prop_name(&mut self, _: &PropName) {}
+
+    fn visit_ts_type(&mut self, _: &TsType) {}
 }
 
 /// Finds all **binding** idents of variables.
@@ -2701,7 +2685,7 @@ pub struct IdentReplacer<'a> {
 }
 
 impl VisitMut for IdentReplacer<'_> {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     visit_mut_obj_and_computed!();
 
@@ -2984,7 +2968,7 @@ impl<'a> Remapper<'a> {
 }
 
 impl VisitMut for Remapper<'_> {
-    noop_visit_mut_type!();
+    standard_only_visit_mut!();
 
     fn visit_mut_ident(&mut self, i: &mut Ident) {
         if let Some(new_ctxt) = self.vars.get(&i.to_id()).copied() {
@@ -3009,6 +2993,10 @@ impl VisitMut for IdentRenamer<'_> {
 
     visit_mut_obj_and_computed!();
 
+    fn visit_mut_jsx_member_expr(&mut self, n: &mut JSXMemberExpr) {
+        n.obj.visit_mut_with(self);
+    }
+
     fn visit_mut_export_named_specifier(&mut self, node: &mut ExportNamedSpecifier) {
         if node.exported.is_some() {
             node.orig.visit_mut_children_with(self);
@@ -3127,8 +3115,6 @@ impl<T> VisitMut for RefRewriter<T>
 where
     T: QueryRef,
 {
-    noop_visit_mut_type!();
-
     /// replace bar in binding pattern
     /// input:
     /// ```JavaScript
diff --git a/crates/swc_ecma_utils/src/var.rs b/crates/swc_ecma_utils/src/var.rs
index 6e1dce2d81fd..9585d270bc03 100644
--- a/crates/swc_ecma_utils/src/var.rs
+++ b/crates/swc_ecma_utils/src/var.rs
@@ -1,5 +1,5 @@
 use swc_ecma_ast::*;
-use swc_ecma_visit::{noop_visit_type, Visit, VisitWith};
+use swc_ecma_visit::{standard_only_visit, Visit, VisitWith};
 
 use crate::ident::IdentLike;
 
@@ -10,7 +10,7 @@ pub struct VarCollector<'a, I: IdentLike> {
 }
 
 impl<'a, I: IdentLike> Visit for VarCollector<'a, I> {
-    noop_visit_type!();
+    standard_only_visit!();
 
     fn visit_arrow_expr(&mut self, _: &ArrowExpr) {}
 
diff --git a/crates/swc_ecma_visit/Cargo.toml b/crates/swc_ecma_visit/Cargo.toml
index 4da4b9d9f3d4..dc49ae49a9f3 100644
--- a/crates/swc_ecma_visit/Cargo.toml
+++ b/crates/swc_ecma_visit/Cargo.toml
@@ -21,9 +21,10 @@ default = []
 path    = []
 
 [dependencies]
-num-bigint = { workspace = true, features = ["serde"] }
-serde      = { workspace = true, optional = true }
-tracing    = { workspace = true }
+new_debug_unreachable = { workspace = true }
+num-bigint            = { workspace = true, features = ["serde"] }
+serde                 = { workspace = true, optional = true }
+tracing               = { workspace = true }
 
 swc_atoms    = { version = "0.6.5", path = "../swc_atoms" }
 swc_common   = { version = "0.34.0", path = "../swc_common" }
diff --git a/crates/swc_ecma_visit/src/lib.rs b/crates/swc_ecma_visit/src/lib.rs
index 65d7a545b11d..c0df3e3697a7 100644
--- a/crates/swc_ecma_visit/src/lib.rs
+++ b/crates/swc_ecma_visit/src/lib.rs
@@ -370,7 +370,6 @@ macro_rules! noop_fold_type {
         noop_fold_type!(fold_ts_module_block, TsModuleBlock);
         noop_fold_type!(fold_ts_module_decl, TsModuleDecl);
         noop_fold_type!(fold_ts_module_name, TsModuleName);
-        noop_fold_type!(fold_ts_module_ref, TsModuleRef);
         noop_fold_type!(fold_ts_namespace_body, TsNamespaceBody);
         noop_fold_type!(fold_ts_namespace_decl, TsNamespaceDecl);
         noop_fold_type!(fold_ts_namespace_export_decl, TsNamespaceExportDecl);
@@ -469,6 +468,237 @@ macro_rules! noop_visit_type {
     };
 }
 
+/// NOT A PUBLIC API
+#[doc(hidden)]
+#[inline(always)]
+pub fn fail_not_standard() {
+    unsafe {
+        debug_unreachable::debug_unreachable!(
+            "This visitor supports only standard ECMAScript types"
+        )
+    }
+}
+
+/// Mark visitor as ECMAScript standard only and mark other types as
+/// unreachable.
+///
+/// Used to reduce the binary size.
+#[macro_export]
+macro_rules! standard_only_fold {
+    ($name:ident, $N:ident) => {
+        fn $name(&mut self, n: $crate::swc_ecma_ast::$N) -> $crate::swc_ecma_ast::$N {
+            $crate::fail_not_standard();
+            n
+        }
+    };
+    () => {
+        standard_only_fold!(fold_accessibility, Accessibility);
+        standard_only_fold!(fold_true_plus_minus, TruePlusMinus);
+        standard_only_fold!(fold_ts_array_type, TsArrayType);
+        standard_only_fold!(fold_ts_call_signature_decl, TsCallSignatureDecl);
+        standard_only_fold!(fold_ts_conditional_type, TsConditionalType);
+        standard_only_fold!(fold_ts_construct_signature_decl, TsConstructSignatureDecl);
+        standard_only_fold!(fold_ts_constructor_type, TsConstructorType);
+        standard_only_fold!(fold_ts_entity_name, TsEntityName);
+        standard_only_fold!(fold_ts_expr_with_type_args, TsExprWithTypeArgs);
+        standard_only_fold!(fold_ts_fn_or_constructor_type, TsFnOrConstructorType);
+        standard_only_fold!(fold_ts_fn_param, TsFnParam);
+        standard_only_fold!(fold_ts_fn_type, TsFnType);
+        standard_only_fold!(fold_ts_import_type, TsImportType);
+        standard_only_fold!(fold_ts_index_signature, TsIndexSignature);
+        standard_only_fold!(fold_ts_indexed_access_type, TsIndexedAccessType);
+        standard_only_fold!(fold_ts_infer_type, TsInferType);
+        standard_only_fold!(fold_ts_interface_body, TsInterfaceBody);
+        standard_only_fold!(fold_ts_interface_decl, TsInterfaceDecl);
+        standard_only_fold!(fold_ts_intersection_type, TsIntersectionType);
+        standard_only_fold!(fold_ts_keyword_type, TsKeywordType);
+        standard_only_fold!(fold_ts_keyword_type_kind, TsKeywordTypeKind);
+        standard_only_fold!(fold_ts_mapped_type, TsMappedType);
+        standard_only_fold!(fold_ts_method_signature, TsMethodSignature);
+        standard_only_fold!(fold_ts_optional_type, TsOptionalType);
+        standard_only_fold!(fold_ts_parenthesized_type, TsParenthesizedType);
+        standard_only_fold!(fold_ts_property_signature, TsPropertySignature);
+        standard_only_fold!(fold_ts_qualified_name, TsQualifiedName);
+        standard_only_fold!(fold_ts_rest_type, TsRestType);
+        standard_only_fold!(fold_ts_this_type, TsThisType);
+        standard_only_fold!(fold_ts_this_type_or_ident, TsThisTypeOrIdent);
+        standard_only_fold!(fold_ts_tuple_type, TsTupleType);
+        standard_only_fold!(fold_ts_type, TsType);
+        standard_only_fold!(fold_ts_type_alias_decl, TsTypeAliasDecl);
+        standard_only_fold!(fold_ts_type_ann, TsTypeAnn);
+        standard_only_fold!(fold_ts_type_element, TsTypeElement);
+        standard_only_fold!(fold_ts_type_lit, TsTypeLit);
+        standard_only_fold!(fold_ts_type_operator, TsTypeOperator);
+        standard_only_fold!(fold_ts_type_operator_op, TsTypeOperatorOp);
+        standard_only_fold!(fold_ts_type_param, TsTypeParam);
+        standard_only_fold!(fold_ts_type_param_decl, TsTypeParamDecl);
+        standard_only_fold!(fold_ts_type_param_instantiation, TsTypeParamInstantiation);
+        standard_only_fold!(fold_ts_type_predicate, TsTypePredicate);
+        standard_only_fold!(fold_ts_type_query, TsTypeQuery);
+        standard_only_fold!(fold_ts_type_query_expr, TsTypeQueryExpr);
+        standard_only_fold!(fold_ts_type_ref, TsTypeRef);
+        standard_only_fold!(
+            fold_ts_union_or_intersection_type,
+            TsUnionOrIntersectionType
+        );
+        standard_only_fold!(fold_ts_union_type, TsUnionType);
+
+        standard_only_fold!(fold_jsx_element, JSXElement);
+        standard_only_fold!(fold_jsx_fragment, JSXFragment);
+        standard_only_fold!(fold_jsx_empty_expr, JSXEmptyExpr);
+        standard_only_fold!(fold_jsx_member_expr, JSXMemberExpr);
+        standard_only_fold!(fold_jsx_namespaced_name, JSXNamespacedName);
+    };
+}
+
+/// Mark visitor as ECMAScript standard only and mark other types as
+/// unreachable.
+///
+/// Used to reduce the binary size.
+#[macro_export]
+macro_rules! standard_only_visit {
+    ($name:ident, $N:ident) => {
+        fn $name(&mut self, _: &$crate::swc_ecma_ast::$N) {
+            $crate::fail_not_standard()
+        }
+    };
+    () => {
+        standard_only_visit!(visit_accessibility, Accessibility);
+        standard_only_visit!(visit_true_plus_minus, TruePlusMinus);
+        standard_only_visit!(visit_ts_array_type, TsArrayType);
+        standard_only_visit!(visit_ts_call_signature_decl, TsCallSignatureDecl);
+        standard_only_visit!(visit_ts_conditional_type, TsConditionalType);
+        standard_only_visit!(visit_ts_construct_signature_decl, TsConstructSignatureDecl);
+        standard_only_visit!(visit_ts_constructor_type, TsConstructorType);
+        standard_only_visit!(visit_ts_entity_name, TsEntityName);
+        standard_only_visit!(visit_ts_expr_with_type_args, TsExprWithTypeArgs);
+        standard_only_visit!(visit_ts_fn_or_constructor_type, TsFnOrConstructorType);
+        standard_only_visit!(visit_ts_fn_param, TsFnParam);
+        standard_only_visit!(visit_ts_fn_type, TsFnType);
+        standard_only_visit!(visit_ts_import_type, TsImportType);
+        standard_only_visit!(visit_ts_index_signature, TsIndexSignature);
+        standard_only_visit!(visit_ts_indexed_access_type, TsIndexedAccessType);
+        standard_only_visit!(visit_ts_infer_type, TsInferType);
+        standard_only_visit!(visit_ts_interface_body, TsInterfaceBody);
+        standard_only_visit!(visit_ts_interface_decl, TsInterfaceDecl);
+        standard_only_visit!(visit_ts_intersection_type, TsIntersectionType);
+        standard_only_visit!(visit_ts_keyword_type, TsKeywordType);
+        standard_only_visit!(visit_ts_keyword_type_kind, TsKeywordTypeKind);
+        standard_only_visit!(visit_ts_mapped_type, TsMappedType);
+        standard_only_visit!(visit_ts_method_signature, TsMethodSignature);
+        standard_only_visit!(visit_ts_optional_type, TsOptionalType);
+        standard_only_visit!(visit_ts_parenthesized_type, TsParenthesizedType);
+        standard_only_visit!(visit_ts_property_signature, TsPropertySignature);
+        standard_only_visit!(visit_ts_qualified_name, TsQualifiedName);
+        standard_only_visit!(visit_ts_rest_type, TsRestType);
+        standard_only_visit!(visit_ts_this_type, TsThisType);
+        standard_only_visit!(visit_ts_this_type_or_ident, TsThisTypeOrIdent);
+        standard_only_visit!(visit_ts_tuple_type, TsTupleType);
+        standard_only_visit!(visit_ts_type, TsType);
+        standard_only_visit!(visit_ts_type_alias_decl, TsTypeAliasDecl);
+        standard_only_visit!(visit_ts_type_ann, TsTypeAnn);
+        standard_only_visit!(visit_ts_type_element, TsTypeElement);
+        standard_only_visit!(visit_ts_type_lit, TsTypeLit);
+        standard_only_visit!(visit_ts_type_operator, TsTypeOperator);
+        standard_only_visit!(visit_ts_type_operator_op, TsTypeOperatorOp);
+        standard_only_visit!(visit_ts_type_param, TsTypeParam);
+        standard_only_visit!(visit_ts_type_param_decl, TsTypeParamDecl);
+        standard_only_visit!(visit_ts_type_param_instantiation, TsTypeParamInstantiation);
+        standard_only_visit!(visit_ts_type_predicate, TsTypePredicate);
+        standard_only_visit!(visit_ts_type_query, TsTypeQuery);
+        standard_only_visit!(visit_ts_type_query_expr, TsTypeQueryExpr);
+        standard_only_visit!(visit_ts_type_ref, TsTypeRef);
+        standard_only_visit!(
+            visit_ts_union_or_intersection_type,
+            TsUnionOrIntersectionType
+        );
+        standard_only_visit!(visit_ts_union_type, TsUnionType);
+
+        standard_only_visit!(visit_jsx_element, JSXElement);
+        standard_only_visit!(visit_jsx_fragment, JSXFragment);
+        standard_only_visit!(visit_jsx_empty_expr, JSXEmptyExpr);
+        standard_only_visit!(visit_jsx_member_expr, JSXMemberExpr);
+        standard_only_visit!(visit_jsx_namespaced_name, JSXNamespacedName);
+    };
+}
+
+/// Mark visitor as ECMAScript standard only and mark other types as
+/// unreachable.
+///
+/// Used to reduce the binary size.
+#[macro_export]
+macro_rules! standard_only_visit_mut {
+    ($name:ident, $N:ident) => {
+        fn $name(&mut self, _: &mut $crate::swc_ecma_ast::$N) {
+            $crate::fail_not_standard()
+        }
+    };
+    () => {
+        standard_only_visit_mut!(visit_mut_accessibility, Accessibility);
+        standard_only_visit_mut!(visit_mut_true_plus_minus, TruePlusMinus);
+        standard_only_visit_mut!(visit_mut_ts_array_type, TsArrayType);
+        standard_only_visit_mut!(visit_mut_ts_call_signature_decl, TsCallSignatureDecl);
+        standard_only_visit_mut!(visit_mut_ts_conditional_type, TsConditionalType);
+        standard_only_visit_mut!(
+            visit_mut_ts_construct_signature_decl,
+            TsConstructSignatureDecl
+        );
+        standard_only_visit_mut!(visit_mut_ts_constructor_type, TsConstructorType);
+        standard_only_visit_mut!(visit_mut_ts_entity_name, TsEntityName);
+        standard_only_visit_mut!(visit_mut_ts_expr_with_type_args, TsExprWithTypeArgs);
+        standard_only_visit_mut!(visit_mut_ts_fn_or_constructor_type, TsFnOrConstructorType);
+        standard_only_visit_mut!(visit_mut_ts_fn_param, TsFnParam);
+        standard_only_visit_mut!(visit_mut_ts_fn_type, TsFnType);
+        standard_only_visit_mut!(visit_mut_ts_import_type, TsImportType);
+        standard_only_visit_mut!(visit_mut_ts_index_signature, TsIndexSignature);
+        standard_only_visit_mut!(visit_mut_ts_indexed_access_type, TsIndexedAccessType);
+        standard_only_visit_mut!(visit_mut_ts_infer_type, TsInferType);
+        standard_only_visit_mut!(visit_mut_ts_interface_body, TsInterfaceBody);
+        standard_only_visit_mut!(visit_mut_ts_interface_decl, TsInterfaceDecl);
+        standard_only_visit_mut!(visit_mut_ts_intersection_type, TsIntersectionType);
+        standard_only_visit_mut!(visit_mut_ts_keyword_type, TsKeywordType);
+        standard_only_visit_mut!(visit_mut_ts_keyword_type_kind, TsKeywordTypeKind);
+        standard_only_visit_mut!(visit_mut_ts_mapped_type, TsMappedType);
+        standard_only_visit_mut!(visit_mut_ts_method_signature, TsMethodSignature);
+        standard_only_visit_mut!(visit_mut_ts_optional_type, TsOptionalType);
+        standard_only_visit_mut!(visit_mut_ts_parenthesized_type, TsParenthesizedType);
+        standard_only_visit_mut!(visit_mut_ts_property_signature, TsPropertySignature);
+        standard_only_visit_mut!(visit_mut_ts_qualified_name, TsQualifiedName);
+        standard_only_visit_mut!(visit_mut_ts_rest_type, TsRestType);
+        standard_only_visit_mut!(visit_mut_ts_this_type, TsThisType);
+        standard_only_visit_mut!(visit_mut_ts_this_type_or_ident, TsThisTypeOrIdent);
+        standard_only_visit_mut!(visit_mut_ts_tuple_type, TsTupleType);
+        standard_only_visit_mut!(visit_mut_ts_type, TsType);
+        standard_only_visit_mut!(visit_mut_ts_type_alias_decl, TsTypeAliasDecl);
+        standard_only_visit_mut!(visit_mut_ts_type_ann, TsTypeAnn);
+        standard_only_visit_mut!(visit_mut_ts_type_element, TsTypeElement);
+        standard_only_visit_mut!(visit_mut_ts_type_lit, TsTypeLit);
+        standard_only_visit_mut!(visit_mut_ts_type_operator, TsTypeOperator);
+        standard_only_visit_mut!(visit_mut_ts_type_operator_op, TsTypeOperatorOp);
+        standard_only_visit_mut!(visit_mut_ts_type_param, TsTypeParam);
+        standard_only_visit_mut!(visit_mut_ts_type_param_decl, TsTypeParamDecl);
+        standard_only_visit_mut!(
+            visit_mut_ts_type_param_instantiation,
+            TsTypeParamInstantiation
+        );
+        standard_only_visit_mut!(visit_mut_ts_type_predicate, TsTypePredicate);
+        standard_only_visit_mut!(visit_mut_ts_type_query, TsTypeQuery);
+        standard_only_visit_mut!(visit_mut_ts_type_query_expr, TsTypeQueryExpr);
+        standard_only_visit_mut!(visit_mut_ts_type_ref, TsTypeRef);
+        standard_only_visit_mut!(
+            visit_mut_ts_union_or_intersection_type,
+            TsUnionOrIntersectionType
+        );
+        standard_only_visit_mut!(visit_mut_ts_union_type, TsUnionType);
+
+        standard_only_visit_mut!(visit_mut_jsx_element, JSXElement);
+        standard_only_visit_mut!(visit_mut_jsx_fragment, JSXFragment);
+        standard_only_visit_mut!(visit_mut_jsx_empty_expr, JSXEmptyExpr);
+        standard_only_visit_mut!(visit_mut_jsx_member_expr, JSXMemberExpr);
+        standard_only_visit_mut!(visit_mut_jsx_namespaced_name, JSXNamespacedName);
+    };
+}
+
 /// Note: Ignoring more types is not considered as a breaking change.
 #[macro_export]
 macro_rules! noop_visit_mut_type {
@@ -1945,10 +2175,6 @@ macro_rules! visit_mut_obj_and_computed {
             }
         }
 
-        fn visit_mut_jsx_member_expr(&mut self, n: &mut $crate::swc_ecma_ast::JSXMemberExpr) {
-            n.obj.visit_mut_with(self);
-        }
-
         fn visit_mut_super_prop_expr(&mut self, n: &mut $crate::swc_ecma_ast::SuperPropExpr) {
             if let $crate::swc_ecma_ast::SuperProp::Computed(c) = &mut n.prop {
                 c.visit_mut_with(self);
diff --git a/crates/swc_estree_compat/benches/babelify.rs b/crates/swc_estree_compat/benches/babelify.rs
index afd6071c5522..18f4db2cb37c 100644
--- a/crates/swc_estree_compat/benches/babelify.rs
+++ b/crates/swc_estree_compat/benches/babelify.rs
@@ -54,7 +54,7 @@ fn babelify_only(b: &mut Bencher) {
 
             module
                 .fold_with(&mut resolver(unresolved_mark, top_level_mark, true))
-                .fold_with(&mut typescript::strip(top_level_mark))
+                .fold_with(&mut typescript::strip(unresolved_mark, top_level_mark))
                 .fold_with(&mut es2020(Default::default(), unresolved_mark))
         });
 
diff --git a/crates/swc_node_bundler/src/loaders/swc.rs b/crates/swc_node_bundler/src/loaders/swc.rs
index c943286b7b00..bc6c2bdee33f 100644
--- a/crates/swc_node_bundler/src/loaders/swc.rs
+++ b/crates/swc_node_bundler/src/loaders/swc.rs
@@ -10,7 +10,7 @@ use swc_atoms::JsWord;
 use swc_bundler::{Load, ModuleData};
 use swc_common::{
     collections::AHashMap,
-    comments::SingleThreadedComments,
+    comments::{NoopComments, SingleThreadedComments},
     errors::{Handler, HANDLER},
     sync::Lrc,
     FileName, Mark, DUMMY_SP,
@@ -24,7 +24,9 @@ use swc_ecma_transforms::{
         simplify::{dead_branch_remover, expr_simplifier},
     },
     pass::noop,
+    react::jsx,
     resolver,
+    typescript::typescript,
 };
 use swc_ecma_visit::{FoldWith, VisitMutWith};
 
@@ -154,7 +156,7 @@ impl SwcLoader {
         let program = if fm.name.to_string().contains("node_modules") {
             let comments = self.compiler.comments().clone();
 
-            let program = self.compiler.parse_js(
+            let mut program = self.compiler.parse_js(
                 fm.clone(),
                 handler,
                 EsVersion::Es2020,
@@ -165,15 +167,30 @@ impl SwcLoader {
 
             helpers::HELPERS.set(&helpers, || {
                 HANDLER.set(handler, || {
-                    let mut program = program.fold_with(&mut inline_globals(
+                    let unresolved_mark = Mark::new();
+                    let top_level_mark = Mark::new();
+
+                    program.visit_mut_with(&mut resolver(unresolved_mark, top_level_mark, false));
+                    program.visit_mut_with(&mut typescript(
+                        Default::default(),
+                        unresolved_mark,
+                        top_level_mark,
+                    ));
+
+                    program.visit_mut_with(&mut jsx(
+                        self.compiler.cm.clone(),
+                        None::<NoopComments>,
+                        Default::default(),
+                        top_level_mark,
+                        unresolved_mark,
+                    ));
+
+                    program.visit_mut_with(&mut inline_globals(
                         self.env_map(),
                         Default::default(),
                         Default::default(),
                     ));
-                    let unresolved_mark = Mark::new();
-                    let top_level_mark = Mark::new();
 
-                    program.visit_mut_with(&mut resolver(unresolved_mark, top_level_mark, false));
                     let program = program
                         .fold_with(&mut expr_simplifier(unresolved_mark, Default::default()));
 
@@ -239,16 +256,11 @@ impl SwcLoader {
             //
             // Note that we don't apply compat transform at loading phase.
             let program = if let Some(config) = config {
-                let program = config.program;
+                let mut program = config.program;
                 let mut pass = config.pass;
 
                 helpers::HELPERS.set(&helpers, || {
                     HANDLER.set(handler, || {
-                        let mut program = program.fold_with(&mut inline_globals(
-                            self.env_map(),
-                            Default::default(),
-                            Default::default(),
-                        ));
                         let unresolved_mark = Mark::new();
                         let top_level_mark = Mark::new();
 
@@ -257,6 +269,26 @@ impl SwcLoader {
                             top_level_mark,
                             false,
                         ));
+                        program.visit_mut_with(&mut typescript(
+                            Default::default(),
+                            unresolved_mark,
+                            top_level_mark,
+                        ));
+
+                        program.visit_mut_with(&mut jsx(
+                            self.compiler.cm.clone(),
+                            None::<NoopComments>,
+                            Default::default(),
+                            top_level_mark,
+                            unresolved_mark,
+                        ));
+
+                        let program = program.fold_with(&mut inline_globals(
+                            self.env_map(),
+                            Default::default(),
+                            Default::default(),
+                        ));
+
                         let program = program
                             .fold_with(&mut expr_simplifier(unresolved_mark, Default::default()));
                         let program = program.fold_with(&mut dead_branch_remover(unresolved_mark));
diff --git a/crates/swc_node_bundler/tests/pass/deno-001/full/output/entry.js b/crates/swc_node_bundler/tests/pass/deno-001/full/output/entry.js
index 5459cf0b7a2e..a3e6e347535a 100644
--- a/crates/swc_node_bundler/tests/pass/deno-001/full/output/entry.js
+++ b/crates/swc_node_bundler/tests/pass/deno-001/full/output/entry.js
@@ -366,8 +366,8 @@ class TextProtoReader {
         return n;
     }
 }
-var Status;
-(function(Status) {})(Status || (Status = {}));
+let Status;
+Status || (Status = {});
 const STATUS_TEXT = new Map([]);
 function deferred() {
     let methods;
diff --git a/crates/swc_node_bundler/tests/pass/resolve-name-fix/output/entry.js b/crates/swc_node_bundler/tests/pass/resolve-name-fix/output/entry.js
index 8809b109becf..e69de29bb2d1 100644
--- a/crates/swc_node_bundler/tests/pass/resolve-name-fix/output/entry.js
+++ b/crates/swc_node_bundler/tests/pass/resolve-name-fix/output/entry.js
@@ -1,7398 +0,0 @@
-function __swcpack_require__(mod) {
-    function interop(obj) {
-        if (obj && obj.__esModule) {
-            return obj;
-        } else {
-            var newObj = {};
-            if (obj != null) {
-                for(var key in obj){
-                    if (Object.prototype.hasOwnProperty.call(obj, key)) {
-                        var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {};
-                        if (desc.get || desc.set) {
-                            Object.defineProperty(newObj, key, desc);
-                        } else {
-                            newObj[key] = obj[key];
-                        }
-                    }
-                }
-            }
-            newObj.default = obj;
-            return newObj;
-        }
-    }
-    var cache;
-    if (cache) {
-        return cache;
-    }
-    var module = {
-        exports: {}
-    };
-    mod(module, module.exports);
-    cache = interop(module.exports);
-    return cache;
-}
-var load = __swcpack_require__.bind(void 0, function(module, exports) {
-    // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
-    var global = module.exports = typeof window != 'undefined' && window.Math == Math ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();
-    if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef
-});
-var load1 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var hasOwnProperty = {}.hasOwnProperty;
-    module.exports = function(it, key) {
-        return hasOwnProperty.call(it, key);
-    };
-});
-var load2 = __swcpack_require__.bind(void 0, function(module, exports) {
-    module.exports = function(exec) {
-        try {
-            return !!exec();
-        } catch (e) {
-            return true;
-        }
-    };
-});
-var load3 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // Thank's IE8 for his funny defineProperty
-    module.exports = !load2()(function() {
-        return Object.defineProperty({}, 'a', {
-            get: function() {
-                return 7;
-            }
-        }).a != 7;
-    });
-});
-var load4 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var core = module.exports = {
-        version: '2.6.12'
-    };
-    if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef
-});
-var load5 = __swcpack_require__.bind(void 0, function(module, exports) {
-    module.exports = function(it) {
-        return typeof it === 'object' ? it !== null : typeof it === 'function';
-    };
-});
-var load6 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var isObject = load5();
-    module.exports = function(it) {
-        if (!isObject(it)) throw TypeError(it + ' is not an object!');
-        return it;
-    };
-});
-var load7 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var isObject = load5();
-    var document1 = load().document;
-    // typeof document.createElement is 'object' in old IE
-    var is = isObject(document1) && isObject(document1.createElement);
-    module.exports = function(it) {
-        return is ? document1.createElement(it) : {};
-    };
-});
-var load8 = __swcpack_require__.bind(void 0, function(module, exports) {
-    module.exports = !load3() && !load2()(function() {
-        return Object.defineProperty(load7()('div'), 'a', {
-            get: function() {
-                return 7;
-            }
-        }).a != 7;
-    });
-});
-var load9 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 7.1.1 ToPrimitive(input [, PreferredType])
-    var isObject = load5();
-    // instead of the ES6 spec version, we didn't implement @@toPrimitive case
-    // and the second argument - flag - preferred type is a string
-    module.exports = function(it, S) {
-        if (!isObject(it)) return it;
-        var fn, val;
-        if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
-        if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;
-        if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
-        throw TypeError("Can't convert object to primitive value");
-    };
-});
-var load10 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var anObject = load6();
-    var IE8_DOM_DEFINE = load8();
-    var toPrimitive = load9();
-    var dP = Object.defineProperty;
-    exports.f = load3() ? Object.defineProperty : function defineProperty(O, P, Attributes) {
-        anObject(O);
-        P = toPrimitive(P, true);
-        anObject(Attributes);
-        if (IE8_DOM_DEFINE) try {
-            return dP(O, P, Attributes);
-        } catch (e) {}
-        if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
-        if ('value' in Attributes) O[P] = Attributes.value;
-        return O;
-    };
-});
-var load11 = __swcpack_require__.bind(void 0, function(module, exports) {
-    module.exports = function(bitmap, value) {
-        return {
-            enumerable: !(bitmap & 1),
-            configurable: !(bitmap & 2),
-            writable: !(bitmap & 4),
-            value: value
-        };
-    };
-});
-var load12 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var dP = load10();
-    var createDesc = load11();
-    module.exports = load3() ? function(object, key, value) {
-        return dP.f(object, key, createDesc(1, value));
-    } : function(object, key, value) {
-        object[key] = value;
-        return object;
-    };
-});
-var load13 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var id = 0;
-    var px = Math.random();
-    module.exports = function(key) {
-        return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
-    };
-});
-var load14 = __swcpack_require__.bind(void 0, function(module, exports) {
-    module.exports = false;
-});
-var load15 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var core = load4();
-    var global = load();
-    var SHARED = '__core-js_shared__';
-    var store = global[SHARED] || (global[SHARED] = {});
-    (module.exports = function(key, value) {
-        return store[key] || (store[key] = value !== undefined ? value : {});
-    })('versions', []).push({
-        version: core.version,
-        mode: load14() ? 'pure' : 'global',
-        copyright: '© 2020 Denis Pushkarev (zloirock.ru)'
-    });
-});
-var load16 = __swcpack_require__.bind(void 0, function(module, exports) {
-    module.exports = load15()('native-function-to-string', Function.toString);
-});
-var load17 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var global = load();
-    var hide = load12();
-    var has = load1();
-    var SRC = load13()('src');
-    var $toString = load16();
-    var TO_STRING = 'toString';
-    var TPL = ('' + $toString).split(TO_STRING);
-    load4().inspectSource = function(it) {
-        return $toString.call(it);
-    };
-    (module.exports = function(O, key, val, safe) {
-        var isFunction = typeof val == 'function';
-        if (isFunction) has(val, 'name') || hide(val, 'name', key);
-        if (O[key] === val) return;
-        if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));
-        if (O === global) O[key] = val;
-        else if (!safe) {
-            delete O[key];
-            hide(O, key, val);
-        } else if (O[key]) O[key] = val;
-        else hide(O, key, val);
-    // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
-    })(Function.prototype, TO_STRING, function toString() {
-        return typeof this == 'function' && this[SRC] || $toString.call(this);
-    });
-});
-var load18 = __swcpack_require__.bind(void 0, function(module, exports) {
-    module.exports = function(it) {
-        if (typeof it != 'function') throw TypeError(it + ' is not a function!');
-        return it;
-    };
-});
-var load19 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // optional / simple context binding
-    var aFunction = load18();
-    module.exports = function(fn, that, length) {
-        aFunction(fn);
-        if (that === undefined) return fn;
-        switch(length){
-            case 1:
-                return function(a) {
-                    return fn.call(that, a);
-                };
-            case 2:
-                return function(a, b) {
-                    return fn.call(that, a, b);
-                };
-            case 3:
-                return function(a, b, c) {
-                    return fn.call(that, a, b, c);
-                };
-        }
-        return function() {
-            return fn.apply(that, arguments);
-        };
-    };
-});
-var load20 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var global = load();
-    var core = load4();
-    var hide = load12();
-    var redefine = load17();
-    var ctx = load19();
-    var PROTOTYPE = 'prototype';
-    var $export = function(type, name, source) {
-        var IS_FORCED = type & $export.F;
-        var IS_GLOBAL = type & $export.G;
-        var IS_STATIC = type & $export.S;
-        var IS_PROTO = type & $export.P;
-        var IS_BIND = type & $export.B;
-        var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];
-        var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});
-        var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});
-        var key, own, out, exp;
-        if (IS_GLOBAL) source = name;
-        for(key in source){
-            // contains in native
-            own = !IS_FORCED && target && target[key] !== undefined;
-            // export native or passed
-            out = (own ? target : source)[key];
-            // bind timers to global for call from export context
-            exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
-            // extend global
-            if (target) redefine(target, key, out, type & $export.U);
-            // export
-            if (exports[key] != out) hide(exports, key, exp);
-            if (IS_PROTO && expProto[key] != out) expProto[key] = out;
-        }
-    };
-    global.core = core;
-    // type bitmap
-    $export.F = 1; // forced
-    $export.G = 2; // global
-    $export.S = 4; // static
-    $export.P = 8; // proto
-    $export.B = 16; // bind
-    $export.W = 32; // wrap
-    $export.U = 64; // safe
-    $export.R = 128; // real proto method for `library`
-    module.exports = $export;
-});
-var load21 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var META = load13()('meta');
-    var isObject = load5();
-    var has = load1();
-    var setDesc = load10().f;
-    var id = 0;
-    var isExtensible = Object.isExtensible || function() {
-        return true;
-    };
-    var FREEZE = !load2()(function() {
-        return isExtensible(Object.preventExtensions({}));
-    });
-    var setMeta = function(it) {
-        setDesc(it, META, {
-            value: {
-                i: 'O' + ++id,
-                w: {} // weak collections IDs
-            }
-        });
-    };
-    var fastKey = function(it, create) {
-        // return primitive with prefix
-        if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
-        if (!has(it, META)) {
-            // can't set metadata to uncaught frozen object
-            if (!isExtensible(it)) return 'F';
-            // not necessary to add metadata
-            if (!create) return 'E';
-            // add missing metadata
-            setMeta(it);
-        // return object ID
-        }
-        return it[META].i;
-    };
-    var getWeak = function(it, create) {
-        if (!has(it, META)) {
-            // can't set metadata to uncaught frozen object
-            if (!isExtensible(it)) return true;
-            // not necessary to add metadata
-            if (!create) return false;
-            // add missing metadata
-            setMeta(it);
-        // return hash weak collections IDs
-        }
-        return it[META].w;
-    };
-    // add metadata on freeze-family methods calling
-    var onFreeze = function(it) {
-        if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);
-        return it;
-    };
-    var meta = module.exports = {
-        KEY: META,
-        NEED: false,
-        fastKey: fastKey,
-        getWeak: getWeak,
-        onFreeze: onFreeze
-    };
-});
-var load22 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var store = load15()('wks');
-    var uid = load13();
-    var Symbol1 = load().Symbol;
-    var USE_SYMBOL = typeof Symbol1 == 'function';
-    var $exports = module.exports = function(name) {
-        return store[name] || (store[name] = USE_SYMBOL && Symbol1[name] || (USE_SYMBOL ? Symbol1 : uid)('Symbol.' + name));
-    };
-    $exports.store = store;
-});
-var load23 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var def = load10().f;
-    var has = load1();
-    var TAG = load22()('toStringTag');
-    module.exports = function(it, tag, stat) {
-        if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, {
-            configurable: true,
-            value: tag
-        });
-    };
-});
-var load24 = __swcpack_require__.bind(void 0, function(module, exports) {
-    exports.f = load22();
-});
-var load25 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var global = load();
-    var core = load4();
-    var LIBRARY = load14();
-    var wksExt = load24();
-    var defineProperty = load10().f;
-    module.exports = function(name) {
-        var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});
-        if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, {
-            value: wksExt.f(name)
-        });
-    };
-});
-var load26 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var toString = {}.toString;
-    module.exports = function(it) {
-        return toString.call(it).slice(8, -1);
-    };
-});
-var load27 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // fallback for non-array-like ES3 and non-enumerable old V8 strings
-    var cof = load26();
-    // eslint-disable-next-line no-prototype-builtins
-    module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it) {
-        return cof(it) == 'String' ? it.split('') : Object(it);
-    };
-});
-var load28 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 7.2.1 RequireObjectCoercible(argument)
-    module.exports = function(it) {
-        if (it == undefined) throw TypeError("Can't call method on  " + it);
-        return it;
-    };
-});
-var load29 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // to indexed object, toObject with fallback for non-array-like ES3 strings
-    var IObject = load27();
-    var defined = load28();
-    module.exports = function(it) {
-        return IObject(defined(it));
-    };
-});
-var load30 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 7.1.4 ToInteger
-    var ceil = Math.ceil;
-    var floor = Math.floor;
-    module.exports = function(it) {
-        return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
-    };
-});
-var load31 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 7.1.15 ToLength
-    var toInteger = load30();
-    var min = Math.min;
-    module.exports = function(it) {
-        return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
-    };
-});
-var load32 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var toInteger = load30();
-    var max = Math.max;
-    var min = Math.min;
-    module.exports = function(index, length) {
-        index = toInteger(index);
-        return index < 0 ? max(index + length, 0) : min(index, length);
-    };
-});
-var load33 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // false -> Array#indexOf
-    // true  -> Array#includes
-    var toIObject = load29();
-    var toLength = load31();
-    var toAbsoluteIndex = load32();
-    module.exports = function(IS_INCLUDES) {
-        return function($this, el, fromIndex) {
-            var O = toIObject($this);
-            var length = toLength(O.length);
-            var index = toAbsoluteIndex(fromIndex, length);
-            var value;
-            // Array#includes uses SameValueZero equality algorithm
-            // eslint-disable-next-line no-self-compare
-            if (IS_INCLUDES && el != el) while(length > index){
-                value = O[index++];
-                // eslint-disable-next-line no-self-compare
-                if (value != value) return true;
-            // Array#indexOf ignores holes, Array#includes - not
-            }
-            else for(; length > index; index++)if (IS_INCLUDES || index in O) {
-                if (O[index] === el) return IS_INCLUDES || index || 0;
-            }
-            return !IS_INCLUDES && -1;
-        };
-    };
-});
-var load34 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var shared = load15()('keys');
-    var uid = load13();
-    module.exports = function(key) {
-        return shared[key] || (shared[key] = uid(key));
-    };
-});
-var load35 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var has = load1();
-    var toIObject = load29();
-    var arrayIndexOf = load33()(false);
-    var IE_PROTO = load34()('IE_PROTO');
-    module.exports = function(object, names) {
-        var O = toIObject(object);
-        var i = 0;
-        var result = [];
-        var key;
-        for(key in O)if (key != IE_PROTO) has(O, key) && result.push(key);
-        // Don't enum bug & hidden keys
-        while(names.length > i)if (has(O, key = names[i++])) ~arrayIndexOf(result, key) || result.push(key);
-        return result;
-    };
-});
-var load36 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // IE 8- don't enum bug keys
-    module.exports = 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'.split(',');
-});
-var load37 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 19.1.2.14 / 15.2.3.14 Object.keys(O)
-    var $keys = load35();
-    var enumBugKeys = load36();
-    module.exports = Object.keys || function keys(O) {
-        return $keys(O, enumBugKeys);
-    };
-});
-var load38 = __swcpack_require__.bind(void 0, function(module, exports) {
-    exports.f = Object.getOwnPropertySymbols;
-});
-var load39 = __swcpack_require__.bind(void 0, function(module, exports) {
-    exports.f = ({}).propertyIsEnumerable;
-});
-var load40 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // all enumerable object keys, includes symbols
-    var getKeys = load37();
-    var gOPS = load38();
-    var pIE = load39();
-    module.exports = function(it) {
-        var result = getKeys(it);
-        var getSymbols = gOPS.f;
-        if (getSymbols) {
-            var symbols = getSymbols(it);
-            var isEnum = pIE.f;
-            var i = 0;
-            var key;
-            while(symbols.length > i)if (isEnum.call(it, key = symbols[i++])) result.push(key);
-        }
-        return result;
-    };
-});
-var load41 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 7.2.2 IsArray(argument)
-    var cof = load26();
-    module.exports = Array.isArray || function isArray(arg) {
-        return cof(arg) == 'Array';
-    };
-});
-var load42 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 7.1.13 ToObject(argument)
-    var defined = load28();
-    module.exports = function(it) {
-        return Object(defined(it));
-    };
-});
-var load43 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var dP = load10();
-    var anObject = load6();
-    var getKeys = load37();
-    module.exports = load3() ? Object.defineProperties : function defineProperties(O, Properties) {
-        anObject(O);
-        var keys = getKeys(Properties);
-        var length = keys.length;
-        var i = 0;
-        var P;
-        while(length > i)dP.f(O, P = keys[i++], Properties[P]);
-        return O;
-    };
-});
-var load44 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var document1 = load().document;
-    module.exports = document1 && document1.documentElement;
-});
-var load45 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
-    var anObject = load6();
-    var dPs = load43();
-    var enumBugKeys = load36();
-    var IE_PROTO = load34()('IE_PROTO');
-    var Empty = function() {};
-    var PROTOTYPE = 'prototype';
-    // Create object with fake `null` prototype: use iframe Object with cleared prototype
-    var createDict = function() {
-        // Thrash, waste and sodomy: IE GC bug
-        var iframe = load7()('iframe');
-        var i = enumBugKeys.length;
-        var lt = '<';
-        var gt = '>';
-        var iframeDocument;
-        iframe.style.display = 'none';
-        load44().appendChild(iframe);
-        iframe.src = 'javascript:'; // eslint-disable-line no-script-url
-        // createDict = iframe.contentWindow.Object;
-        // html.removeChild(iframe);
-        iframeDocument = iframe.contentWindow.document;
-        iframeDocument.open();
-        iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
-        iframeDocument.close();
-        createDict = iframeDocument.F;
-        while(i--)delete createDict[PROTOTYPE][enumBugKeys[i]];
-        return createDict();
-    };
-    module.exports = Object.create || function create(O, Properties) {
-        var result;
-        if (O !== null) {
-            Empty[PROTOTYPE] = anObject(O);
-            result = new Empty();
-            Empty[PROTOTYPE] = null;
-            // add "__proto__" for Object.getPrototypeOf polyfill
-            result[IE_PROTO] = O;
-        } else result = createDict();
-        return Properties === undefined ? result : dPs(result, Properties);
-    };
-});
-var load46 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
-    var $keys = load35();
-    var hiddenKeys = load36().concat('length', 'prototype');
-    exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
-        return $keys(O, hiddenKeys);
-    };
-});
-var load47 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
-    var toIObject = load29();
-    var gOPN = load46().f;
-    var toString = {}.toString;
-    var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : [];
-    var getWindowNames = function(it) {
-        try {
-            return gOPN(it);
-        } catch (e) {
-            return windowNames.slice();
-        }
-    };
-    module.exports.f = function getOwnPropertyNames(it) {
-        return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));
-    };
-});
-var load48 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var pIE = load39();
-    var createDesc = load11();
-    var toIObject = load29();
-    var toPrimitive = load9();
-    var has = load1();
-    var IE8_DOM_DEFINE = load8();
-    var gOPD = Object.getOwnPropertyDescriptor;
-    exports.f = load3() ? gOPD : function getOwnPropertyDescriptor(O, P) {
-        O = toIObject(O);
-        P = toPrimitive(P, true);
-        if (IE8_DOM_DEFINE) try {
-            return gOPD(O, P);
-        } catch (e) {}
-        if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);
-    };
-});
-var load49 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    // ECMAScript 6 symbols shim
-    var global = load();
-    var has = load1();
-    var DESCRIPTORS = load3();
-    var $export = load20();
-    var redefine = load17();
-    var META = load21().KEY;
-    var $fails = load2();
-    var shared = load15();
-    var setToStringTag = load23();
-    var uid = load13();
-    var wks = load22();
-    var wksExt = load24();
-    var wksDefine = load25();
-    var enumKeys = load40();
-    var isArray = load41();
-    var anObject = load6();
-    var isObject = load5();
-    var toObject = load42();
-    var toIObject = load29();
-    var toPrimitive = load9();
-    var createDesc = load11();
-    var _create = load45();
-    var gOPNExt = load47();
-    var $GOPD = load48();
-    var $GOPS = load38();
-    var $DP = load10();
-    var $keys = load37();
-    var gOPD = $GOPD.f;
-    var dP = $DP.f;
-    var gOPN = gOPNExt.f;
-    var $Symbol = global.Symbol;
-    var $JSON = global.JSON;
-    var _stringify = $JSON && $JSON.stringify;
-    var PROTOTYPE = 'prototype';
-    var HIDDEN = wks('_hidden');
-    var TO_PRIMITIVE = wks('toPrimitive');
-    var isEnum = {}.propertyIsEnumerable;
-    var SymbolRegistry = shared('symbol-registry');
-    var AllSymbols = shared('symbols');
-    var OPSymbols = shared('op-symbols');
-    var ObjectProto = Object[PROTOTYPE];
-    var USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;
-    var QObject = global.QObject;
-    // Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
-    var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;
-    // fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
-    var setSymbolDesc = DESCRIPTORS && $fails(function() {
-        return _create(dP({}, 'a', {
-            get: function() {
-                return dP(this, 'a', {
-                    value: 7
-                }).a;
-            }
-        })).a != 7;
-    }) ? function(it, key, D) {
-        var protoDesc = gOPD(ObjectProto, key);
-        if (protoDesc) delete ObjectProto[key];
-        dP(it, key, D);
-        if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);
-    } : dP;
-    var wrap = function(tag) {
-        var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);
-        sym._k = tag;
-        return sym;
-    };
-    var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function(it) {
-        return typeof it == 'symbol';
-    } : function(it) {
-        return it instanceof $Symbol;
-    };
-    var $defineProperty = function defineProperty(it, key, D) {
-        if (it === ObjectProto) $defineProperty(OPSymbols, key, D);
-        anObject(it);
-        key = toPrimitive(key, true);
-        anObject(D);
-        if (has(AllSymbols, key)) {
-            if (!D.enumerable) {
-                if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));
-                it[HIDDEN][key] = true;
-            } else {
-                if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;
-                D = _create(D, {
-                    enumerable: createDesc(0, false)
-                });
-            }
-            return setSymbolDesc(it, key, D);
-        }
-        return dP(it, key, D);
-    };
-    var $defineProperties = function defineProperties(it, P) {
-        anObject(it);
-        var keys = enumKeys(P = toIObject(P));
-        var i = 0;
-        var l = keys.length;
-        var key;
-        while(l > i)$defineProperty(it, key = keys[i++], P[key]);
-        return it;
-    };
-    var $create = function create(it, P) {
-        return P === undefined ? _create(it) : $defineProperties(_create(it), P);
-    };
-    var $propertyIsEnumerable = function propertyIsEnumerable(key) {
-        var E = isEnum.call(this, key = toPrimitive(key, true));
-        if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;
-        return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;
-    };
-    var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {
-        it = toIObject(it);
-        key = toPrimitive(key, true);
-        if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;
-        var D = gOPD(it, key);
-        if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;
-        return D;
-    };
-    var $getOwnPropertyNames = function getOwnPropertyNames(it) {
-        var names = gOPN(toIObject(it));
-        var result = [];
-        var i = 0;
-        var key;
-        while(names.length > i)if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);
-        return result;
-    };
-    var $getOwnPropertySymbols = function getOwnPropertySymbols(it) {
-        var IS_OP = it === ObjectProto;
-        var names = gOPN(IS_OP ? OPSymbols : toIObject(it));
-        var result = [];
-        var i = 0;
-        var key;
-        while(names.length > i)if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);
-        return result;
-    };
-    // 19.4.1.1 Symbol([description])
-    if (!USE_NATIVE) {
-        $Symbol = function Symbol1() {
-            if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');
-            var tag = uid(arguments.length > 0 ? arguments[0] : undefined);
-            var $set = function(value) {
-                if (this === ObjectProto) $set.call(OPSymbols, value);
-                if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;
-                setSymbolDesc(this, tag, createDesc(1, value));
-            };
-            if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, {
-                configurable: true,
-                set: $set
-            });
-            return wrap(tag);
-        };
-        redefine($Symbol[PROTOTYPE], 'toString', function toString() {
-            return this._k;
-        });
-        $GOPD.f = $getOwnPropertyDescriptor;
-        $DP.f = $defineProperty;
-        load46().f = gOPNExt.f = $getOwnPropertyNames;
-        load39().f = $propertyIsEnumerable;
-        $GOPS.f = $getOwnPropertySymbols;
-        if (DESCRIPTORS && !load14()) redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
-        wksExt.f = function(name) {
-            return wrap(wks(name));
-        };
-    }
-    $export($export.G + $export.W + $export.F * !USE_NATIVE, {
-        Symbol: $Symbol
-    });
-    for(var es6Symbols = // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14
-    'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'.split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);
-    for(var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;)wksDefine(wellKnownSymbols[k++]);
-    $export($export.S + $export.F * !USE_NATIVE, 'Symbol', {
-        // 19.4.2.1 Symbol.for(key)
-        'for': function(key) {
-            return has(SymbolRegistry, key += '') ? SymbolRegistry[key] : SymbolRegistry[key] = $Symbol(key);
-        },
-        // 19.4.2.5 Symbol.keyFor(sym)
-        keyFor: function keyFor(sym) {
-            if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');
-            for(var key in SymbolRegistry)if (SymbolRegistry[key] === sym) return key;
-        },
-        useSetter: function() {
-            setter = true;
-        },
-        useSimple: function() {
-            setter = false;
-        }
-    });
-    $export($export.S + $export.F * !USE_NATIVE, 'Object', {
-        // 19.1.2.2 Object.create(O [, Properties])
-        create: $create,
-        // 19.1.2.4 Object.defineProperty(O, P, Attributes)
-        defineProperty: $defineProperty,
-        // 19.1.2.3 Object.defineProperties(O, Properties)
-        defineProperties: $defineProperties,
-        // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
-        getOwnPropertyDescriptor: $getOwnPropertyDescriptor,
-        // 19.1.2.7 Object.getOwnPropertyNames(O)
-        getOwnPropertyNames: $getOwnPropertyNames,
-        // 19.1.2.8 Object.getOwnPropertySymbols(O)
-        getOwnPropertySymbols: $getOwnPropertySymbols
-    });
-    // Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives
-    // https://bugs.chromium.org/p/v8/issues/detail?id=3443
-    var FAILS_ON_PRIMITIVES = $fails(function() {
-        $GOPS.f(1);
-    });
-    $export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {
-        getOwnPropertySymbols: function getOwnPropertySymbols(it) {
-            return $GOPS.f(toObject(it));
-        }
-    });
-    // 24.3.2 JSON.stringify(value [, replacer [, space]])
-    $JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function() {
-        var S = $Symbol();
-        // MS Edge converts symbol values to JSON as {}
-        // WebKit converts symbol values to JSON as null
-        // V8 throws on boxed symbols
-        return _stringify([
-            S
-        ]) != '[null]' || _stringify({
-            a: S
-        }) != '{}' || _stringify(Object(S)) != '{}';
-    })), 'JSON', {
-        stringify: function stringify(it) {
-            var args = [
-                it
-            ];
-            var i = 1;
-            var replacer, $replacer;
-            while(arguments.length > i)args.push(arguments[i++]);
-            $replacer = replacer = args[1];
-            if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined
-            if (!isArray(replacer)) replacer = function(key, value) {
-                if (typeof $replacer == 'function') value = $replacer.call(this, key, value);
-                if (!isSymbol(value)) return value;
-            };
-            args[1] = replacer;
-            return _stringify.apply($JSON, args);
-        }
-    });
-    // 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)
-    $Symbol[PROTOTYPE][TO_PRIMITIVE] || load12()($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
-    // 19.4.3.5 Symbol.prototype[@@toStringTag]
-    setToStringTag($Symbol, 'Symbol');
-    // 20.2.1.9 Math[@@toStringTag]
-    setToStringTag(Math, 'Math', true);
-    // 24.3.3 JSON[@@toStringTag]
-    setToStringTag(global.JSON, 'JSON', true);
-});
-var load50 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var $export = load20();
-    // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
-    $export($export.S, 'Object', {
-        create: load45()
-    });
-});
-var load51 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var $export = load20();
-    // 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)
-    $export($export.S + $export.F * !load3(), 'Object', {
-        defineProperty: load10().f
-    });
-});
-var load52 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var $export = load20();
-    // 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)
-    $export($export.S + $export.F * !load3(), 'Object', {
-        defineProperties: load43()
-    });
-});
-var load53 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // most Object methods by ES6 should accept primitives
-    var $export = load20();
-    var core = load4();
-    var fails = load2();
-    module.exports = function(KEY, exec) {
-        var fn = (core.Object || {})[KEY] || Object[KEY];
-        var exp = {};
-        exp[KEY] = exec(fn);
-        $export($export.S + $export.F * fails(function() {
-            fn(1);
-        }), 'Object', exp);
-    };
-});
-var load54 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
-    var toIObject = load29();
-    var $getOwnPropertyDescriptor = load48().f;
-    load53()('getOwnPropertyDescriptor', function() {
-        return function getOwnPropertyDescriptor(it, key) {
-            return $getOwnPropertyDescriptor(toIObject(it), key);
-        };
-    });
-});
-var load55 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
-    var has = load1();
-    var toObject = load42();
-    var IE_PROTO = load34()('IE_PROTO');
-    var ObjectProto = Object.prototype;
-    module.exports = Object.getPrototypeOf || function(O) {
-        O = toObject(O);
-        if (has(O, IE_PROTO)) return O[IE_PROTO];
-        if (typeof O.constructor == 'function' && O instanceof O.constructor) return O.constructor.prototype;
-        return O instanceof Object ? ObjectProto : null;
-    };
-});
-var load56 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 19.1.2.9 Object.getPrototypeOf(O)
-    var toObject = load42();
-    var $getPrototypeOf = load55();
-    load53()('getPrototypeOf', function() {
-        return function getPrototypeOf(it) {
-            return $getPrototypeOf(toObject(it));
-        };
-    });
-});
-var load57 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 19.1.2.14 Object.keys(O)
-    var toObject = load42();
-    var $keys = load37();
-    load53()('keys', function() {
-        return function keys(it) {
-            return $keys(toObject(it));
-        };
-    });
-});
-var load58 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 19.1.2.7 Object.getOwnPropertyNames(O)
-    load53()('getOwnPropertyNames', function() {
-        return load47().f;
-    });
-});
-var load59 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 19.1.2.5 Object.freeze(O)
-    var isObject = load5();
-    var meta = load21().onFreeze;
-    load53()('freeze', function($freeze) {
-        return function freeze(it) {
-            return $freeze && isObject(it) ? $freeze(meta(it)) : it;
-        };
-    });
-});
-var load60 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 19.1.2.17 Object.seal(O)
-    var isObject = load5();
-    var meta = load21().onFreeze;
-    load53()('seal', function($seal) {
-        return function seal(it) {
-            return $seal && isObject(it) ? $seal(meta(it)) : it;
-        };
-    });
-});
-var load61 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 19.1.2.15 Object.preventExtensions(O)
-    var isObject = load5();
-    var meta = load21().onFreeze;
-    load53()('preventExtensions', function($preventExtensions) {
-        return function preventExtensions(it) {
-            return $preventExtensions && isObject(it) ? $preventExtensions(meta(it)) : it;
-        };
-    });
-});
-var load62 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 19.1.2.12 Object.isFrozen(O)
-    var isObject = load5();
-    load53()('isFrozen', function($isFrozen) {
-        return function isFrozen(it) {
-            return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true;
-        };
-    });
-});
-var load63 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 19.1.2.13 Object.isSealed(O)
-    var isObject = load5();
-    load53()('isSealed', function($isSealed) {
-        return function isSealed(it) {
-            return isObject(it) ? $isSealed ? $isSealed(it) : false : true;
-        };
-    });
-});
-var load64 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 19.1.2.11 Object.isExtensible(O)
-    var isObject = load5();
-    load53()('isExtensible', function($isExtensible) {
-        return function isExtensible(it) {
-            return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false;
-        };
-    });
-});
-var load65 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    // 19.1.2.1 Object.assign(target, source, ...)
-    var DESCRIPTORS = load3();
-    var getKeys = load37();
-    var gOPS = load38();
-    var pIE = load39();
-    var toObject = load42();
-    var IObject = load27();
-    var $assign = Object.assign;
-    // should work with symbols and should have deterministic property order (V8 bug)
-    module.exports = !$assign || load2()(function() {
-        var A = {};
-        var B = {};
-        // eslint-disable-next-line no-undef
-        var S = Symbol();
-        var K = 'abcdefghijklmnopqrst';
-        A[S] = 7;
-        K.split('').forEach(function(k) {
-            B[k] = k;
-        });
-        return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;
-    }) ? function assign(target, source) {
-        var T = toObject(target);
-        var aLen = arguments.length;
-        var index = 1;
-        var getSymbols = gOPS.f;
-        var isEnum = pIE.f;
-        while(aLen > index){
-            var S = IObject(arguments[index++]);
-            var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);
-            var length = keys.length;
-            var j = 0;
-            var key;
-            while(length > j){
-                key = keys[j++];
-                if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];
-            }
-        }
-        return T;
-    } : $assign;
-});
-var load66 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 19.1.3.1 Object.assign(target, source)
-    var $export = load20();
-    $export($export.S + $export.F, 'Object', {
-        assign: load65()
-    });
-});
-var load67 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 7.2.9 SameValue(x, y)
-    module.exports = Object.is || function is(x, y) {
-        // eslint-disable-next-line no-self-compare
-        return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;
-    };
-});
-var load68 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 19.1.3.10 Object.is(value1, value2)
-    var $export = load20();
-    $export($export.S, 'Object', {
-        is: load67()
-    });
-});
-var load69 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // Works with __proto__ only. Old v8 can't work with null proto objects.
-    /* eslint-disable no-proto */ var isObject = load5();
-    var anObject = load6();
-    var check = function(O, proto) {
-        anObject(O);
-        if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!");
-    };
-    module.exports = {
-        set: Object.setPrototypeOf || ('__proto__' in {} ? function(test, buggy, set) {
-            try {
-                set = load19()(Function.call, load48().f(Object.prototype, '__proto__').set, 2);
-                set(test, []);
-                buggy = !(test instanceof Array);
-            } catch (e) {
-                buggy = true;
-            }
-            return function setPrototypeOf(O, proto) {
-                check(O, proto);
-                if (buggy) O.__proto__ = proto;
-                else set(O, proto);
-                return O;
-            };
-        }({}, false) : undefined),
-        check: check
-    };
-});
-var load70 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 19.1.3.19 Object.setPrototypeOf(O, proto)
-    var $export = load20();
-    $export($export.S, 'Object', {
-        setPrototypeOf: load69().set
-    });
-});
-var load71 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // getting tag from 19.1.3.6 Object.prototype.toString()
-    var cof = load26();
-    var TAG = load22()('toStringTag');
-    // ES3 wrong here
-    var ARG = cof(function() {
-        return arguments;
-    }()) == 'Arguments';
-    // fallback for IE11 Script Access Denied error
-    var tryGet = function(it, key) {
-        try {
-            return it[key];
-        } catch (e) {}
-    };
-    module.exports = function(it) {
-        var O, T, B;
-        return it === undefined ? 'Undefined' : it === null ? 'Null' : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T : ARG ? cof(O) : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
-    };
-});
-var load72 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    // 19.1.3.6 Object.prototype.toString()
-    var classof = load71();
-    var test = {};
-    test[load22()('toStringTag')] = 'z';
-    if (test + '' != '[object z]') load17()(Object.prototype, 'toString', function toString() {
-        return '[object ' + classof(this) + ']';
-    }, true);
-});
-var load73 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // fast apply, http://jsperf.lnkit.com/fast-apply/5
-    module.exports = function(fn, args, that) {
-        var un = that === undefined;
-        switch(args.length){
-            case 0:
-                return un ? fn() : fn.call(that);
-            case 1:
-                return un ? fn(args[0]) : fn.call(that, args[0]);
-            case 2:
-                return un ? fn(args[0], args[1]) : fn.call(that, args[0], args[1]);
-            case 3:
-                return un ? fn(args[0], args[1], args[2]) : fn.call(that, args[0], args[1], args[2]);
-            case 4:
-                return un ? fn(args[0], args[1], args[2], args[3]) : fn.call(that, args[0], args[1], args[2], args[3]);
-        }
-        return fn.apply(that, args);
-    };
-});
-var load74 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var aFunction = load18();
-    var isObject = load5();
-    var invoke = load73();
-    var arraySlice = [].slice;
-    var factories = {};
-    var construct = function(F, len, args) {
-        if (!(len in factories)) {
-            for(var n = [], i = 0; i < len; i++)n[i] = 'a[' + i + ']';
-            // eslint-disable-next-line no-new-func
-            factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');
-        }
-        return factories[len](F, args);
-    };
-    module.exports = Function.bind || function bind(that /* , ...args */ ) {
-        var fn = aFunction(this);
-        var partArgs = arraySlice.call(arguments, 1);
-        var bound = function() {
-            var args = partArgs.concat(arraySlice.call(arguments));
-            return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);
-        };
-        if (isObject(fn.prototype)) bound.prototype = fn.prototype;
-        return bound;
-    };
-});
-var load75 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...)
-    var $export = load20();
-    $export($export.P, 'Function', {
-        bind: load74()
-    });
-});
-var load76 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var dP = load10().f;
-    var FProto = Function.prototype;
-    var nameRE = /^\s*function ([^ (]*)/;
-    var NAME = 'name';
-    // 19.2.4.2 name
-    NAME in FProto || load3() && dP(FProto, NAME, {
-        configurable: true,
-        get: function() {
-            try {
-                return ('' + this).match(nameRE)[1];
-            } catch (e) {
-                return '';
-            }
-        }
-    });
-});
-var load77 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var isObject = load5();
-    var getPrototypeOf = load55();
-    var HAS_INSTANCE = load22()('hasInstance');
-    var FunctionProto = Function.prototype;
-    // 19.2.3.6 Function.prototype[@@hasInstance](V)
-    if (!(HAS_INSTANCE in FunctionProto)) load10().f(FunctionProto, HAS_INSTANCE, {
-        value: function(O) {
-            if (typeof this != 'function' || !isObject(O)) return false;
-            if (!isObject(this.prototype)) return O instanceof this;
-            // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:
-            while(O = getPrototypeOf(O))if (this.prototype === O) return true;
-            return false;
-        }
-    });
-});
-var load78 = __swcpack_require__.bind(void 0, function(module, exports) {
-    module.exports = "	\n\v\f\r   ᠎              \u2028\u2029\uFEFF";
-});
-var load79 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var $export = load20();
-    var defined = load28();
-    var fails = load2();
-    var spaces = load78();
-    var space = '[' + spaces + ']';
-    var non = '\u200b\u0085';
-    var ltrim = RegExp('^' + space + space + '*');
-    var rtrim = RegExp(space + space + '*$');
-    var exporter = function(KEY, exec, ALIAS) {
-        var exp = {};
-        var FORCE = fails(function() {
-            return !!spaces[KEY]() || non[KEY]() != non;
-        });
-        var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];
-        if (ALIAS) exp[ALIAS] = fn;
-        $export($export.P + $export.F * FORCE, 'String', exp);
-    };
-    // 1 -> String#trimLeft
-    // 2 -> String#trimRight
-    // 3 -> String#trim
-    var trim = exporter.trim = function(string, TYPE) {
-        string = String(defined(string));
-        if (TYPE & 1) string = string.replace(ltrim, '');
-        if (TYPE & 2) string = string.replace(rtrim, '');
-        return string;
-    };
-    module.exports = exporter;
-});
-var load80 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var $parseInt = load().parseInt;
-    var $trim = load79().trim;
-    var ws = load78();
-    var hex = /^[-+]?0[xX]/;
-    module.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt1(str, radix) {
-        var string = $trim(String(str), 3);
-        return $parseInt(string, radix >>> 0 || (hex.test(string) ? 16 : 10));
-    } : $parseInt;
-});
-var load81 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var $export = load20();
-    var $parseInt = load80();
-    // 18.2.5 parseInt(string, radix)
-    $export($export.G + $export.F * (parseInt != $parseInt), {
-        parseInt: $parseInt
-    });
-});
-var load82 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var $parseFloat = load().parseFloat;
-    var $trim = load79().trim;
-    module.exports = 1 / $parseFloat(load78() + '-0') !== -Infinity ? function parseFloat1(str) {
-        var string = $trim(String(str), 3);
-        var result = $parseFloat(string);
-        return result === 0 && string.charAt(0) == '-' ? -0 : result;
-    } : $parseFloat;
-});
-var load83 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var $export = load20();
-    var $parseFloat = load82();
-    // 18.2.4 parseFloat(string)
-    $export($export.G + $export.F * (parseFloat != $parseFloat), {
-        parseFloat: $parseFloat
-    });
-});
-var load84 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var isObject = load5();
-    var setPrototypeOf = load69().set;
-    module.exports = function(that, target, C) {
-        var S = target.constructor;
-        var P;
-        if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) setPrototypeOf(that, P);
-        return that;
-    };
-});
-var load85 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var global = load();
-    var has = load1();
-    var cof = load26();
-    var inheritIfRequired = load84();
-    var toPrimitive = load9();
-    var fails = load2();
-    var gOPN = load46().f;
-    var gOPD = load48().f;
-    var dP = load10().f;
-    var $trim = load79().trim;
-    var NUMBER = 'Number';
-    var $Number = global[NUMBER];
-    var Base = $Number;
-    var proto = $Number.prototype;
-    // Opera ~12 has broken Object#toString
-    var BROKEN_COF = cof(load45()(proto)) == NUMBER;
-    var TRIM = 'trim' in String.prototype;
-    // 7.1.3 ToNumber(argument)
-    var toNumber = function(argument) {
-        var it = toPrimitive(argument, false);
-        if (typeof it == 'string' && it.length > 2) {
-            it = TRIM ? it.trim() : $trim(it, 3);
-            var first = it.charCodeAt(0);
-            var third, radix, maxCode;
-            if (first === 43 || first === 45) {
-                third = it.charCodeAt(2);
-                if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix
-            } else if (first === 48) {
-                switch(it.charCodeAt(1)){
-                    case 66:
-                    case 98:
-                        radix = 2;
-                        maxCode = 49;
-                        break; // fast equal /^0b[01]+$/i
-                    case 79:
-                    case 111:
-                        radix = 8;
-                        maxCode = 55;
-                        break; // fast equal /^0o[0-7]+$/i
-                    default:
-                        return +it;
-                }
-                for(var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++){
-                    code = digits.charCodeAt(i);
-                    // parseInt parses a string to a first unavailable symbol
-                    // but ToNumber should return NaN if a string contains unavailable symbols
-                    if (code < 48 || code > maxCode) return NaN;
-                }
-                return parseInt(digits, radix);
-            }
-        }
-        return +it;
-    };
-    if (!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')) {
-        $Number = function Number1(value) {
-            var it = arguments.length < 1 ? 0 : value;
-            var that = this;
-            return that instanceof $Number && (BROKEN_COF ? fails(function() {
-                proto.valueOf.call(that);
-            }) : cof(that) != NUMBER) ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it);
-        };
-        for(var keys = load3() ? gOPN(Base) : // ES3:
-        "MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(','), j = 0, key; keys.length > j; j++)if (has(Base, key = keys[j]) && !has($Number, key)) dP($Number, key, gOPD(Base, key));
-        $Number.prototype = proto;
-        proto.constructor = $Number;
-        load17()(global, NUMBER, $Number);
-    }
-});
-var load86 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var cof = load26();
-    module.exports = function(it, msg) {
-        if (typeof it != 'number' && cof(it) != 'Number') throw TypeError(msg);
-        return +it;
-    };
-});
-var load87 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var toInteger = load30();
-    var defined = load28();
-    module.exports = function repeat(count) {
-        var str = String(defined(this));
-        var res = '';
-        var n = toInteger(count);
-        if (n < 0 || n == Infinity) throw RangeError("Count can't be negative");
-        for(; n > 0; (n >>>= 1) && (str += str))if (n & 1) res += str;
-        return res;
-    };
-});
-var load88 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var $export = load20();
-    var toInteger = load30();
-    var aNumberValue = load86();
-    var repeat = load87();
-    var $toFixed = 1.0.toFixed;
-    var floor = Math.floor;
-    var data = [
-        0,
-        0,
-        0,
-        0,
-        0,
-        0
-    ];
-    var ERROR = 'Number.toFixed: incorrect invocation!';
-    var ZERO = '0';
-    var multiply = function(n, c) {
-        var i = -1;
-        var c2 = c;
-        while(++i < 6){
-            c2 += n * data[i];
-            data[i] = c2 % 1e7;
-            c2 = floor(c2 / 1e7);
-        }
-    };
-    var divide = function(n) {
-        var i = 6;
-        var c = 0;
-        while(--i >= 0){
-            c += data[i];
-            data[i] = floor(c / n);
-            c = c % n * 1e7;
-        }
-    };
-    var numToString = function() {
-        var i = 6;
-        var s = '';
-        while(--i >= 0)if (s !== '' || i === 0 || data[i] !== 0) {
-            var t = String(data[i]);
-            s = s === '' ? t : s + repeat.call(ZERO, 7 - t.length) + t;
-        }
-        return s;
-    };
-    var pow = function(x, n, acc) {
-        return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);
-    };
-    var log = function(x) {
-        var n = 0;
-        var x2 = x;
-        while(x2 >= 4096){
-            n += 12;
-            x2 /= 4096;
-        }
-        while(x2 >= 2){
-            n += 1;
-            x2 /= 2;
-        }
-        return n;
-    };
-    $export($export.P + $export.F * (!!$toFixed && (0.00008.toFixed(3) !== '0.000' || 0.9.toFixed(0) !== '1' || 1.255.toFixed(2) !== '1.25' || 1000000000000000128.0.toFixed(0) !== '1000000000000000128') || !load2()(function() {
-        // V8 ~ Android 4.3-
-        $toFixed.call({});
-    })), 'Number', {
-        toFixed: function toFixed(fractionDigits) {
-            var x = aNumberValue(this, ERROR);
-            var f = toInteger(fractionDigits);
-            var s = '';
-            var m = ZERO;
-            var e, z, j, k;
-            if (f < 0 || f > 20) throw RangeError(ERROR);
-            // eslint-disable-next-line no-self-compare
-            if (x != x) return 'NaN';
-            if (x <= -1000000000000000000000 || x >= 1e21) return String(x);
-            if (x < 0) {
-                s = '-';
-                x = -x;
-            }
-            if (x > 1e-21) {
-                e = log(x * pow(2, 69, 1)) - 69;
-                z = e < 0 ? x * pow(2, -e, 1) : x / pow(2, e, 1);
-                z *= 0x10000000000000;
-                e = 52 - e;
-                if (e > 0) {
-                    multiply(0, z);
-                    j = f;
-                    while(j >= 7){
-                        multiply(1e7, 0);
-                        j -= 7;
-                    }
-                    multiply(pow(10, j, 1), 0);
-                    j = e - 1;
-                    while(j >= 23){
-                        divide(8388608);
-                        j -= 23;
-                    }
-                    divide(1 << j);
-                    multiply(1, 1);
-                    divide(2);
-                    m = numToString();
-                } else {
-                    multiply(0, z);
-                    multiply(1 << -e, 0);
-                    m = numToString() + repeat.call(ZERO, f);
-                }
-            }
-            if (f > 0) {
-                k = m.length;
-                m = s + (k <= f ? '0.' + repeat.call(ZERO, f - k) + m : m.slice(0, k - f) + '.' + m.slice(k - f));
-            } else m = s + m;
-            return m;
-        }
-    });
-});
-var load89 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var $export = load20();
-    var $fails = load2();
-    var aNumberValue = load86();
-    var $toPrecision = 1.0.toPrecision;
-    $export($export.P + $export.F * ($fails(function() {
-        // IE7-
-        return $toPrecision.call(1, undefined) !== '1';
-    }) || !$fails(function() {
-        // V8 ~ Android 4.3-
-        $toPrecision.call({});
-    })), 'Number', {
-        toPrecision: function toPrecision(precision) {
-            var that = aNumberValue(this, 'Number#toPrecision: incorrect invocation!');
-            return precision === undefined ? $toPrecision.call(that) : $toPrecision.call(that, precision);
-        }
-    });
-});
-var load90 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 20.1.2.1 Number.EPSILON
-    var $export = load20();
-    $export($export.S, 'Number', {
-        EPSILON: Math.pow(2, -52)
-    });
-});
-var load91 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 20.1.2.2 Number.isFinite(number)
-    var $export = load20();
-    var _isFinite = load().isFinite;
-    $export($export.S, 'Number', {
-        isFinite: function isFinite1(it) {
-            return typeof it == 'number' && _isFinite(it);
-        }
-    });
-});
-var load92 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 20.1.2.3 Number.isInteger(number)
-    var isObject = load5();
-    var floor = Math.floor;
-    module.exports = function isInteger(it) {
-        return !isObject(it) && isFinite(it) && floor(it) === it;
-    };
-});
-var load93 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 20.1.2.3 Number.isInteger(number)
-    var $export = load20();
-    $export($export.S, 'Number', {
-        isInteger: load92()
-    });
-});
-var load94 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 20.1.2.4 Number.isNaN(number)
-    var $export = load20();
-    $export($export.S, 'Number', {
-        isNaN: function isNaN1(number) {
-            // eslint-disable-next-line no-self-compare
-            return number != number;
-        }
-    });
-});
-var load95 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 20.1.2.5 Number.isSafeInteger(number)
-    var $export = load20();
-    var isInteger = load92();
-    var abs = Math.abs;
-    $export($export.S, 'Number', {
-        isSafeInteger: function isSafeInteger(number) {
-            return isInteger(number) && abs(number) <= 0x1fffffffffffff;
-        }
-    });
-});
-var load96 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 20.1.2.6 Number.MAX_SAFE_INTEGER
-    var $export = load20();
-    $export($export.S, 'Number', {
-        MAX_SAFE_INTEGER: 0x1fffffffffffff
-    });
-});
-var load97 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 20.1.2.10 Number.MIN_SAFE_INTEGER
-    var $export = load20();
-    $export($export.S, 'Number', {
-        MIN_SAFE_INTEGER: -9007199254740991
-    });
-});
-var load98 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var $export = load20();
-    var $parseFloat = load82();
-    // 20.1.2.12 Number.parseFloat(string)
-    $export($export.S + $export.F * (Number.parseFloat != $parseFloat), 'Number', {
-        parseFloat: $parseFloat
-    });
-});
-var load99 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var $export = load20();
-    var $parseInt = load80();
-    // 20.1.2.13 Number.parseInt(string, radix)
-    $export($export.S + $export.F * (Number.parseInt != $parseInt), 'Number', {
-        parseInt: $parseInt
-    });
-});
-var load100 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 20.2.2.20 Math.log1p(x)
-    module.exports = Math.log1p || function log1p(x) {
-        return (x = +x) > -0.00000001 && x < 1e-8 ? x - x * x / 2 : Math.log(1 + x);
-    };
-});
-var load101 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 20.2.2.3 Math.acosh(x)
-    var $export = load20();
-    var log1p = load100();
-    var sqrt = Math.sqrt;
-    var $acosh = Math.acosh;
-    $export($export.S + $export.F * !($acosh && Math.floor($acosh(Number.MAX_VALUE)) == 710 && $acosh(Infinity) == Infinity), 'Math', {
-        acosh: function acosh(x) {
-            return (x = +x) < 1 ? NaN : x > 94906265.62425156 ? Math.log(x) + Math.LN2 : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1));
-        }
-    });
-});
-var load102 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 20.2.2.5 Math.asinh(x)
-    var $export = load20();
-    var $asinh = Math.asinh;
-    function asinh(x) {
-        return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1));
-    }
-    // Tor Browser bug: Math.asinh(0) -> -0
-    $export($export.S + $export.F * !($asinh && 1 / $asinh(0) > 0), 'Math', {
-        asinh: asinh
-    });
-});
-var load103 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 20.2.2.7 Math.atanh(x)
-    var $export = load20();
-    var $atanh = Math.atanh;
-    // Tor Browser bug: Math.atanh(-0) -> 0
-    $export($export.S + $export.F * !($atanh && 1 / $atanh(-0) < 0), 'Math', {
-        atanh: function atanh(x) {
-            return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2;
-        }
-    });
-});
-var load104 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 20.2.2.28 Math.sign(x)
-    module.exports = Math.sign || function sign(x) {
-        // eslint-disable-next-line no-self-compare
-        return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;
-    };
-});
-var load105 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 20.2.2.9 Math.cbrt(x)
-    var $export = load20();
-    var sign = load104();
-    $export($export.S, 'Math', {
-        cbrt: function cbrt(x) {
-            return sign(x = +x) * Math.pow(Math.abs(x), 1 / 3);
-        }
-    });
-});
-var load106 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 20.2.2.11 Math.clz32(x)
-    var $export = load20();
-    $export($export.S, 'Math', {
-        clz32: function clz32(x) {
-            return (x >>>= 0) ? 31 - Math.floor(Math.log(x + 0.5) * Math.LOG2E) : 32;
-        }
-    });
-});
-var load107 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 20.2.2.12 Math.cosh(x)
-    var $export = load20();
-    var exp = Math.exp;
-    $export($export.S, 'Math', {
-        cosh: function cosh(x) {
-            return (exp(x = +x) + exp(-x)) / 2;
-        }
-    });
-});
-var load108 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 20.2.2.14 Math.expm1(x)
-    var $expm1 = Math.expm1;
-    module.exports = !$expm1 || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168 || $expm1(-0.00000000000000002) != -0.00000000000000002 ? function expm1(x) {
-        return (x = +x) == 0 ? x : x > -0.000001 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1;
-    } : $expm1;
-});
-var load109 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 20.2.2.14 Math.expm1(x)
-    var $export = load20();
-    var $expm1 = load108();
-    $export($export.S + $export.F * ($expm1 != Math.expm1), 'Math', {
-        expm1: $expm1
-    });
-});
-var load110 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 20.2.2.16 Math.fround(x)
-    var sign = load104();
-    var pow = Math.pow;
-    var EPSILON = pow(2, -52);
-    var EPSILON32 = pow(2, -23);
-    var MAX32 = pow(2, 127) * (2 - EPSILON32);
-    var MIN32 = pow(2, -126);
-    var roundTiesToEven = function(n) {
-        return n + 1 / EPSILON - 1 / EPSILON;
-    };
-    module.exports = Math.fround || function fround(x) {
-        var $abs = Math.abs(x);
-        var $sign = sign(x);
-        var a, result;
-        if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;
-        a = (1 + EPSILON32 / EPSILON) * $abs;
-        result = a - (a - $abs);
-        // eslint-disable-next-line no-self-compare
-        if (result > MAX32 || result != result) return $sign * Infinity;
-        return $sign * result;
-    };
-});
-var load111 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 20.2.2.16 Math.fround(x)
-    var $export = load20();
-    $export($export.S, 'Math', {
-        fround: load110()
-    });
-});
-var load112 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 20.2.2.17 Math.hypot([value1[, value2[, … ]]])
-    var $export = load20();
-    var abs = Math.abs;
-    $export($export.S, 'Math', {
-        hypot: function hypot(value1, value2) {
-            var sum = 0;
-            var i = 0;
-            var aLen = arguments.length;
-            var larg = 0;
-            var arg, div;
-            while(i < aLen){
-                arg = abs(arguments[i++]);
-                if (larg < arg) {
-                    div = larg / arg;
-                    sum = sum * div * div + 1;
-                    larg = arg;
-                } else if (arg > 0) {
-                    div = arg / larg;
-                    sum += div * div;
-                } else sum += arg;
-            }
-            return larg === Infinity ? Infinity : larg * Math.sqrt(sum);
-        }
-    });
-});
-var load113 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 20.2.2.18 Math.imul(x, y)
-    var $export = load20();
-    var $imul = Math.imul;
-    // some WebKit versions fails with big numbers, some has wrong arity
-    $export($export.S + $export.F * load2()(function() {
-        return $imul(0xffffffff, 5) != -5 || $imul.length != 2;
-    }), 'Math', {
-        imul: function imul(x, y) {
-            var UINT16 = 0xffff;
-            var xn = +x;
-            var yn = +y;
-            var xl = UINT16 & xn;
-            var yl = UINT16 & yn;
-            return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);
-        }
-    });
-});
-var load114 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 20.2.2.21 Math.log10(x)
-    var $export = load20();
-    $export($export.S, 'Math', {
-        log10: function log10(x) {
-            return Math.log(x) * Math.LOG10E;
-        }
-    });
-});
-var load115 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 20.2.2.20 Math.log1p(x)
-    var $export = load20();
-    $export($export.S, 'Math', {
-        log1p: load100()
-    });
-});
-var load116 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 20.2.2.22 Math.log2(x)
-    var $export = load20();
-    $export($export.S, 'Math', {
-        log2: function log2(x) {
-            return Math.log(x) / Math.LN2;
-        }
-    });
-});
-var load117 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 20.2.2.28 Math.sign(x)
-    var $export = load20();
-    $export($export.S, 'Math', {
-        sign: load104()
-    });
-});
-var load118 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 20.2.2.30 Math.sinh(x)
-    var $export = load20();
-    var expm1 = load108();
-    var exp = Math.exp;
-    // V8 near Chromium 38 has a problem with very small numbers
-    $export($export.S + $export.F * load2()(function() {
-        return !Math.sinh(-0.00000000000000002) != -0.00000000000000002;
-    }), 'Math', {
-        sinh: function sinh(x) {
-            return Math.abs(x = +x) < 1 ? (expm1(x) - expm1(-x)) / 2 : (exp(x - 1) - exp(-x - 1)) * (Math.E / 2);
-        }
-    });
-});
-var load119 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 20.2.2.33 Math.tanh(x)
-    var $export = load20();
-    var expm1 = load108();
-    var exp = Math.exp;
-    $export($export.S, 'Math', {
-        tanh: function tanh(x) {
-            var a = expm1(x = +x);
-            var b = expm1(-x);
-            return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x));
-        }
-    });
-});
-var load120 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 20.2.2.34 Math.trunc(x)
-    var $export = load20();
-    $export($export.S, 'Math', {
-        trunc: function trunc(it) {
-            return (it > 0 ? Math.floor : Math.ceil)(it);
-        }
-    });
-});
-var load121 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var $export = load20();
-    var toAbsoluteIndex = load32();
-    var fromCharCode = String.fromCharCode;
-    var $fromCodePoint = String.fromCodePoint;
-    // length should be 1, old FF problem
-    $export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {
-        // 21.1.2.2 String.fromCodePoint(...codePoints)
-        fromCodePoint: function fromCodePoint(x) {
-            var res = [];
-            var aLen = arguments.length;
-            var i = 0;
-            var code;
-            while(aLen > i){
-                code = +arguments[i++];
-                if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point');
-                res.push(code < 0x10000 ? fromCharCode(code) : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00));
-            }
-            return res.join('');
-        }
-    });
-});
-var load122 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var $export = load20();
-    var toIObject = load29();
-    var toLength = load31();
-    $export($export.S, 'String', {
-        // 21.1.2.4 String.raw(callSite, ...substitutions)
-        raw: function raw(callSite) {
-            var tpl = toIObject(callSite.raw);
-            var len = toLength(tpl.length);
-            var aLen = arguments.length;
-            var res = [];
-            var i = 0;
-            while(len > i){
-                res.push(String(tpl[i++]));
-                if (i < aLen) res.push(String(arguments[i]));
-            }
-            return res.join('');
-        }
-    });
-});
-var load123 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    // 21.1.3.25 String.prototype.trim()
-    load79()('trim', function($trim) {
-        return function trim() {
-            return $trim(this, 3);
-        };
-    });
-});
-var load124 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var toInteger = load30();
-    var defined = load28();
-    // true  -> String#at
-    // false -> String#codePointAt
-    module.exports = function(TO_STRING) {
-        return function(that, pos) {
-            var s = String(defined(that));
-            var i = toInteger(pos);
-            var l = s.length;
-            var a, b;
-            if (i < 0 || i >= l) return TO_STRING ? '' : undefined;
-            a = s.charCodeAt(i);
-            return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff ? TO_STRING ? s.charAt(i) : a : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
-        };
-    };
-});
-var load125 = __swcpack_require__.bind(void 0, function(module, exports) {
-    module.exports = {};
-});
-var load126 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var create = load45();
-    var descriptor = load11();
-    var setToStringTag = load23();
-    var IteratorPrototype = {};
-    // 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
-    load12()(IteratorPrototype, load22()('iterator'), function() {
-        return this;
-    });
-    module.exports = function(Constructor, NAME, next) {
-        Constructor.prototype = create(IteratorPrototype, {
-            next: descriptor(1, next)
-        });
-        setToStringTag(Constructor, NAME + ' Iterator');
-    };
-});
-var load127 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var LIBRARY = load14();
-    var $export = load20();
-    var redefine = load17();
-    var hide = load12();
-    var Iterators = load125();
-    var $iterCreate = load126();
-    var setToStringTag = load23();
-    var getPrototypeOf = load55();
-    var ITERATOR = load22()('iterator');
-    var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`
-    var FF_ITERATOR = '@@iterator';
-    var KEYS = 'keys';
-    var VALUES = 'values';
-    var returnThis = function() {
-        return this;
-    };
-    module.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {
-        $iterCreate(Constructor, NAME, next);
-        var getMethod = function(kind) {
-            if (!BUGGY && kind in proto) return proto[kind];
-            switch(kind){
-                case KEYS:
-                    return function keys() {
-                        return new Constructor(this, kind);
-                    };
-                case VALUES:
-                    return function values() {
-                        return new Constructor(this, kind);
-                    };
-            }
-            return function entries() {
-                return new Constructor(this, kind);
-            };
-        };
-        var TAG = NAME + ' Iterator';
-        var DEF_VALUES = DEFAULT == VALUES;
-        var VALUES_BUG = false;
-        var proto = Base.prototype;
-        var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];
-        var $default = $native || getMethod(DEFAULT);
-        var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;
-        var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;
-        var methods, key, IteratorPrototype;
-        // Fix native
-        if ($anyNative) {
-            IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));
-            if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {
-                // Set @@toStringTag to native iterators
-                setToStringTag(IteratorPrototype, TAG, true);
-                // fix for some old engines
-                if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);
-            }
-        }
-        // fix Array#{values, @@iterator}.name in V8 / FF
-        if (DEF_VALUES && $native && $native.name !== VALUES) {
-            VALUES_BUG = true;
-            $default = function values() {
-                return $native.call(this);
-            };
-        }
-        // Define iterator
-        if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) hide(proto, ITERATOR, $default);
-        // Plug for library
-        Iterators[NAME] = $default;
-        Iterators[TAG] = returnThis;
-        if (DEFAULT) {
-            methods = {
-                values: DEF_VALUES ? $default : getMethod(VALUES),
-                keys: IS_SET ? $default : getMethod(KEYS),
-                entries: $entries
-            };
-            if (FORCED) {
-                for(key in methods)if (!(key in proto)) redefine(proto, key, methods[key]);
-            } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);
-        }
-        return methods;
-    };
-});
-var load128 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var $at = load124()(true);
-    // 21.1.3.27 String.prototype[@@iterator]()
-    load127()(String, 'String', function(iterated) {
-        this._t = String(iterated); // target
-        this._i = 0; // next index
-    // 21.1.5.2.1 %StringIteratorPrototype%.next()
-    }, function() {
-        var O = this._t;
-        var index = this._i;
-        var point;
-        if (index >= O.length) return {
-            value: undefined,
-            done: true
-        };
-        point = $at(O, index);
-        this._i += point.length;
-        return {
-            value: point,
-            done: false
-        };
-    });
-});
-var load129 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var $export = load20();
-    var $at = load124()(false);
-    $export($export.P, 'String', {
-        // 21.1.3.3 String.prototype.codePointAt(pos)
-        codePointAt: function codePointAt(pos) {
-            return $at(this, pos);
-        }
-    });
-});
-var load130 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 7.2.8 IsRegExp(argument)
-    var isObject = load5();
-    var cof = load26();
-    var MATCH = load22()('match');
-    module.exports = function(it) {
-        var isRegExp;
-        return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');
-    };
-});
-var load131 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // helper for String#{startsWith, endsWith, includes}
-    var isRegExp = load130();
-    var defined = load28();
-    module.exports = function(that, searchString, NAME) {
-        if (isRegExp(searchString)) throw TypeError('String#' + NAME + " doesn't accept regex!");
-        return String(defined(that));
-    };
-});
-var load132 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var MATCH = load22()('match');
-    module.exports = function(KEY) {
-        var re = /./;
-        try {
-            '/./'[KEY](re);
-        } catch (e) {
-            try {
-                re[MATCH] = false;
-                return !'/./'[KEY](re);
-            } catch (f) {}
-        }
-        return true;
-    };
-});
-var load133 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 21.1.3.6 String.prototype.endsWith(searchString [, endPosition])
-    'use strict';
-    var $export = load20();
-    var toLength = load31();
-    var context = load131();
-    var ENDS_WITH = 'endsWith';
-    var $endsWith = ''[ENDS_WITH];
-    $export($export.P + $export.F * load132()(ENDS_WITH), 'String', {
-        endsWith: function endsWith(searchString /* , endPosition = @length */ ) {
-            var that = context(this, searchString, ENDS_WITH);
-            var endPosition = arguments.length > 1 ? arguments[1] : undefined;
-            var len = toLength(that.length);
-            var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len);
-            var search = String(searchString);
-            return $endsWith ? $endsWith.call(that, search, end) : that.slice(end - search.length, end) === search;
-        }
-    });
-});
-var load134 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 21.1.3.7 String.prototype.includes(searchString, position = 0)
-    'use strict';
-    var $export = load20();
-    var context = load131();
-    var INCLUDES = 'includes';
-    $export($export.P + $export.F * load132()(INCLUDES), 'String', {
-        includes: function includes(searchString /* , position = 0 */ ) {
-            return !!~context(this, searchString, INCLUDES).indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);
-        }
-    });
-});
-var load135 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var $export = load20();
-    $export($export.P, 'String', {
-        // 21.1.3.13 String.prototype.repeat(count)
-        repeat: load87()
-    });
-});
-var load136 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 21.1.3.18 String.prototype.startsWith(searchString [, position ])
-    'use strict';
-    var $export = load20();
-    var toLength = load31();
-    var context = load131();
-    var STARTS_WITH = 'startsWith';
-    var $startsWith = ''[STARTS_WITH];
-    $export($export.P + $export.F * load132()(STARTS_WITH), 'String', {
-        startsWith: function startsWith(searchString /* , position = 0 */ ) {
-            var that = context(this, searchString, STARTS_WITH);
-            var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));
-            var search = String(searchString);
-            return $startsWith ? $startsWith.call(that, search, index) : that.slice(index, index + search.length) === search;
-        }
-    });
-});
-var load137 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var $export = load20();
-    var fails = load2();
-    var defined = load28();
-    var quot = /"/g;
-    // B.2.3.2.1 CreateHTML(string, tag, attribute, value)
-    var createHTML = function(string, tag, attribute, value) {
-        var S = String(defined(string));
-        var p1 = '<' + tag;
-        if (attribute !== '') p1 += ' ' + attribute + '="' + String(value).replace(quot, '&quot;') + '"';
-        return p1 + '>' + S + '</' + tag + '>';
-    };
-    module.exports = function(NAME, exec) {
-        var O = {};
-        O[NAME] = exec(createHTML);
-        $export($export.P + $export.F * fails(function() {
-            var test = ''[NAME]('"');
-            return test !== test.toLowerCase() || test.split('"').length > 3;
-        }), 'String', O);
-    };
-});
-var load138 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    // B.2.3.2 String.prototype.anchor(name)
-    load137()('anchor', function(createHTML) {
-        return function anchor(name) {
-            return createHTML(this, 'a', 'name', name);
-        };
-    });
-});
-var load139 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    // B.2.3.3 String.prototype.big()
-    load137()('big', function(createHTML) {
-        return function big() {
-            return createHTML(this, 'big', '', '');
-        };
-    });
-});
-var load140 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    // B.2.3.4 String.prototype.blink()
-    load137()('blink', function(createHTML) {
-        return function blink() {
-            return createHTML(this, 'blink', '', '');
-        };
-    });
-});
-var load141 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    // B.2.3.5 String.prototype.bold()
-    load137()('bold', function(createHTML) {
-        return function bold() {
-            return createHTML(this, 'b', '', '');
-        };
-    });
-});
-var load142 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    // B.2.3.6 String.prototype.fixed()
-    load137()('fixed', function(createHTML) {
-        return function fixed() {
-            return createHTML(this, 'tt', '', '');
-        };
-    });
-});
-var load143 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    // B.2.3.7 String.prototype.fontcolor(color)
-    load137()('fontcolor', function(createHTML) {
-        return function fontcolor(color) {
-            return createHTML(this, 'font', 'color', color);
-        };
-    });
-});
-var load144 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    // B.2.3.8 String.prototype.fontsize(size)
-    load137()('fontsize', function(createHTML) {
-        return function fontsize(size) {
-            return createHTML(this, 'font', 'size', size);
-        };
-    });
-});
-var load145 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    // B.2.3.9 String.prototype.italics()
-    load137()('italics', function(createHTML) {
-        return function italics() {
-            return createHTML(this, 'i', '', '');
-        };
-    });
-});
-var load146 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    // B.2.3.10 String.prototype.link(url)
-    load137()('link', function(createHTML) {
-        return function link(url) {
-            return createHTML(this, 'a', 'href', url);
-        };
-    });
-});
-var load147 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    // B.2.3.11 String.prototype.small()
-    load137()('small', function(createHTML) {
-        return function small() {
-            return createHTML(this, 'small', '', '');
-        };
-    });
-});
-var load148 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    // B.2.3.12 String.prototype.strike()
-    load137()('strike', function(createHTML) {
-        return function strike() {
-            return createHTML(this, 'strike', '', '');
-        };
-    });
-});
-var load149 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    // B.2.3.13 String.prototype.sub()
-    load137()('sub', function(createHTML) {
-        return function sub() {
-            return createHTML(this, 'sub', '', '');
-        };
-    });
-});
-var load150 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    // B.2.3.14 String.prototype.sup()
-    load137()('sup', function(createHTML) {
-        return function sup() {
-            return createHTML(this, 'sup', '', '');
-        };
-    });
-});
-var load151 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 20.3.3.1 / 15.9.4.4 Date.now()
-    var $export = load20();
-    $export($export.S, 'Date', {
-        now: function() {
-            return new Date().getTime();
-        }
-    });
-});
-var load152 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var $export = load20();
-    var toObject = load42();
-    var toPrimitive = load9();
-    $export($export.P + $export.F * load2()(function() {
-        return new Date(NaN).toJSON() !== null || Date.prototype.toJSON.call({
-            toISOString: function() {
-                return 1;
-            }
-        }) !== 1;
-    }), 'Date', {
-        // eslint-disable-next-line no-unused-vars
-        toJSON: function toJSON(key) {
-            var O = toObject(this);
-            var pv = toPrimitive(O);
-            return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString();
-        }
-    });
-});
-var load153 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    // 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()
-    var fails = load2();
-    var getTime = Date.prototype.getTime;
-    var $toISOString = Date.prototype.toISOString;
-    var lz = function(num) {
-        return num > 9 ? num : '0' + num;
-    };
-    // PhantomJS / old WebKit has a broken implementations
-    module.exports = fails(function() {
-        return $toISOString.call(new Date(-50000000000000 - 1)) != '0385-07-25T07:06:39.999Z';
-    }) || !fails(function() {
-        $toISOString.call(new Date(NaN));
-    }) ? function toISOString() {
-        if (!isFinite(getTime.call(this))) throw RangeError('Invalid time value');
-        var d = this;
-        var y = d.getUTCFullYear();
-        var m = d.getUTCMilliseconds();
-        var s = y < 0 ? '-' : y > 9999 ? '+' : '';
-        return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) + '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) + 'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) + ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z';
-    } : $toISOString;
-});
-var load154 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()
-    var $export = load20();
-    var toISOString = load153();
-    // PhantomJS / old WebKit has a broken implementations
-    $export($export.P + $export.F * (Date.prototype.toISOString !== toISOString), 'Date', {
-        toISOString: toISOString
-    });
-});
-var load155 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var DateProto = Date.prototype;
-    var INVALID_DATE = 'Invalid Date';
-    var TO_STRING = 'toString';
-    var $toString = DateProto[TO_STRING];
-    var getTime = DateProto.getTime;
-    if (new Date(NaN) + '' != INVALID_DATE) load17()(DateProto, TO_STRING, function toString() {
-        var value = getTime.call(this);
-        // eslint-disable-next-line no-self-compare
-        return value === value ? $toString.call(this) : INVALID_DATE;
-    });
-});
-var load156 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var anObject = load6();
-    var toPrimitive = load9();
-    var NUMBER = 'number';
-    module.exports = function(hint) {
-        if (hint !== 'string' && hint !== NUMBER && hint !== 'default') throw TypeError('Incorrect hint');
-        return toPrimitive(anObject(this), hint != NUMBER);
-    };
-});
-var load157 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var TO_PRIMITIVE = load22()('toPrimitive');
-    var proto = Date.prototype;
-    if (!(TO_PRIMITIVE in proto)) load12()(proto, TO_PRIMITIVE, load156());
-});
-var load158 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
-    var $export = load20();
-    $export($export.S, 'Array', {
-        isArray: load41()
-    });
-});
-var load159 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // call something on iterator step with safe closing on error
-    var anObject = load6();
-    module.exports = function(iterator, fn, value, entries) {
-        try {
-            return entries ? fn(anObject(value)[0], value[1]) : fn(value);
-        // 7.4.6 IteratorClose(iterator, completion)
-        } catch (e) {
-            var ret = iterator['return'];
-            if (ret !== undefined) anObject(ret.call(iterator));
-            throw e;
-        }
-    };
-});
-var load160 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // check on default Array iterator
-    var Iterators = load125();
-    var ITERATOR = load22()('iterator');
-    var ArrayProto = Array.prototype;
-    module.exports = function(it) {
-        return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);
-    };
-});
-var load161 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var $defineProperty = load10();
-    var createDesc = load11();
-    module.exports = function(object, index, value) {
-        if (index in object) $defineProperty.f(object, index, createDesc(0, value));
-        else object[index] = value;
-    };
-});
-var load162 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var classof = load71();
-    var ITERATOR = load22()('iterator');
-    var Iterators = load125();
-    module.exports = load4().getIteratorMethod = function(it) {
-        if (it != undefined) return it[ITERATOR] || it['@@iterator'] || Iterators[classof(it)];
-    };
-});
-var load163 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var ITERATOR = load22()('iterator');
-    var SAFE_CLOSING = false;
-    try {
-        var riter = [
-            7
-        ][ITERATOR]();
-        riter['return'] = function() {
-            SAFE_CLOSING = true;
-        };
-        // eslint-disable-next-line no-throw-literal
-        Array.from(riter, function() {
-            throw 2;
-        });
-    } catch (e) {}
-    module.exports = function(exec, skipClosing) {
-        if (!skipClosing && !SAFE_CLOSING) return false;
-        var safe = false;
-        try {
-            var arr = [
-                7
-            ];
-            var iter = arr[ITERATOR]();
-            iter.next = function() {
-                return {
-                    done: safe = true
-                };
-            };
-            arr[ITERATOR] = function() {
-                return iter;
-            };
-            exec(arr);
-        } catch (e) {}
-        return safe;
-    };
-});
-var load164 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var ctx = load19();
-    var $export = load20();
-    var toObject = load42();
-    var call = load159();
-    var isArrayIter = load160();
-    var toLength = load31();
-    var createProperty = load161();
-    var getIterFn = load162();
-    $export($export.S + $export.F * !load163()(function(iter) {
-        Array.from(iter);
-    }), 'Array', {
-        // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)
-        from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */ ) {
-            var O = toObject(arrayLike);
-            var C = typeof this == 'function' ? this : Array;
-            var aLen = arguments.length;
-            var mapfn = aLen > 1 ? arguments[1] : undefined;
-            var mapping = mapfn !== undefined;
-            var index = 0;
-            var iterFn = getIterFn(O);
-            var length, result, step, iterator;
-            if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);
-            // if object isn't iterable or it's array with default iterator - use simple case
-            if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) for(iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++)createProperty(result, index, mapping ? call(iterator, mapfn, [
-                step.value,
-                index
-            ], true) : step.value);
-            else {
-                length = toLength(O.length);
-                for(result = new C(length); length > index; index++)createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);
-            }
-            result.length = index;
-            return result;
-        }
-    });
-});
-var load165 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var $export = load20();
-    var createProperty = load161();
-    // WebKit Array.of isn't generic
-    $export($export.S + $export.F * load2()(function() {
-        function F() {}
-        return !(Array.of.call(F) instanceof F);
-    }), 'Array', {
-        // 22.1.2.3 Array.of( ...items)
-        of: function of() {
-            var index = 0;
-            var aLen = arguments.length;
-            var result = new (typeof this == 'function' ? this : Array)(aLen);
-            while(aLen > index)createProperty(result, index, arguments[index++]);
-            result.length = aLen;
-            return result;
-        }
-    });
-});
-var load166 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var fails = load2();
-    module.exports = function(method, arg) {
-        return !!method && fails(function() {
-            // eslint-disable-next-line no-useless-call
-            arg ? method.call(null, function() {}, 1) : method.call(null);
-        });
-    };
-});
-var load167 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    // 22.1.3.13 Array.prototype.join(separator)
-    var $export = load20();
-    var toIObject = load29();
-    var arrayJoin = [].join;
-    // fallback for not array-like strings
-    $export($export.P + $export.F * (load27() != Object || !load166()(arrayJoin)), 'Array', {
-        join: function join(separator) {
-            return arrayJoin.call(toIObject(this), separator === undefined ? ',' : separator);
-        }
-    });
-});
-var load168 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var $export = load20();
-    var html = load44();
-    var cof = load26();
-    var toAbsoluteIndex = load32();
-    var toLength = load31();
-    var arraySlice = [].slice;
-    // fallback for not array-like ES3 strings and DOM objects
-    $export($export.P + $export.F * load2()(function() {
-        if (html) arraySlice.call(html);
-    }), 'Array', {
-        slice: function slice(begin, end) {
-            var len = toLength(this.length);
-            var klass = cof(this);
-            end = end === undefined ? len : end;
-            if (klass == 'Array') return arraySlice.call(this, begin, end);
-            var start = toAbsoluteIndex(begin, len);
-            var upTo = toAbsoluteIndex(end, len);
-            var size = toLength(upTo - start);
-            var cloned = new Array(size);
-            var i = 0;
-            for(; i < size; i++)cloned[i] = klass == 'String' ? this.charAt(start + i) : this[start + i];
-            return cloned;
-        }
-    });
-});
-var load169 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var $export = load20();
-    var aFunction = load18();
-    var toObject = load42();
-    var fails = load2();
-    var $sort = [].sort;
-    var test = [
-        1,
-        2,
-        3
-    ];
-    $export($export.P + $export.F * (fails(function() {
-        // IE8-
-        test.sort(undefined);
-    }) || !fails(function() {
-        // V8 bug
-        test.sort(null);
-    // Old WebKit
-    }) || !load166()($sort)), 'Array', {
-        // 22.1.3.25 Array.prototype.sort(comparefn)
-        sort: function sort(comparefn) {
-            return comparefn === undefined ? $sort.call(toObject(this)) : $sort.call(toObject(this), aFunction(comparefn));
-        }
-    });
-});
-var load170 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var isObject = load5();
-    var isArray = load41();
-    var SPECIES = load22()('species');
-    module.exports = function(original) {
-        var C;
-        if (isArray(original)) {
-            C = original.constructor;
-            // cross-realm fallback
-            if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
-            if (isObject(C)) {
-                C = C[SPECIES];
-                if (C === null) C = undefined;
-            }
-        }
-        return C === undefined ? Array : C;
-    };
-});
-var load171 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 9.4.2.3 ArraySpeciesCreate(originalArray, length)
-    var speciesConstructor = load170();
-    module.exports = function(original, length) {
-        return new (speciesConstructor(original))(length);
-    };
-});
-var load172 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 0 -> Array#forEach
-    // 1 -> Array#map
-    // 2 -> Array#filter
-    // 3 -> Array#some
-    // 4 -> Array#every
-    // 5 -> Array#find
-    // 6 -> Array#findIndex
-    var ctx = load19();
-    var IObject = load27();
-    var toObject = load42();
-    var toLength = load31();
-    var asc = load171();
-    module.exports = function(TYPE, $create) {
-        var IS_MAP = TYPE == 1;
-        var IS_FILTER = TYPE == 2;
-        var IS_SOME = TYPE == 3;
-        var IS_EVERY = TYPE == 4;
-        var IS_FIND_INDEX = TYPE == 6;
-        var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
-        var create = $create || asc;
-        return function($this, callbackfn, that) {
-            var O = toObject($this);
-            var self1 = IObject(O);
-            var f = ctx(callbackfn, that, 3);
-            var length = toLength(self1.length);
-            var index = 0;
-            var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
-            var val, res;
-            for(; length > index; index++)if (NO_HOLES || index in self1) {
-                val = self1[index];
-                res = f(val, index, O);
-                if (TYPE) {
-                    if (IS_MAP) result[index] = res; // map
-                    else if (res) switch(TYPE){
-                        case 3:
-                            return true; // some
-                        case 5:
-                            return val; // find
-                        case 6:
-                            return index; // findIndex
-                        case 2:
-                            result.push(val); // filter
-                    }
-                    else if (IS_EVERY) return false; // every
-                }
-            }
-            return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
-        };
-    };
-});
-var load173 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var $export = load20();
-    var $forEach = load172()(0);
-    var STRICT = load166()([].forEach, true);
-    $export($export.P + $export.F * !STRICT, 'Array', {
-        // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])
-        forEach: function forEach(callbackfn /* , thisArg */ ) {
-            return $forEach(this, callbackfn, arguments[1]);
-        }
-    });
-});
-var load174 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var $export = load20();
-    var $map = load172()(1);
-    $export($export.P + $export.F * !load166()([].map, true), 'Array', {
-        // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])
-        map: function map(callbackfn /* , thisArg */ ) {
-            return $map(this, callbackfn, arguments[1]);
-        }
-    });
-});
-var load175 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var $export = load20();
-    var $filter = load172()(2);
-    $export($export.P + $export.F * !load166()([].filter, true), 'Array', {
-        // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])
-        filter: function filter(callbackfn /* , thisArg */ ) {
-            return $filter(this, callbackfn, arguments[1]);
-        }
-    });
-});
-var load176 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var $export = load20();
-    var $some = load172()(3);
-    $export($export.P + $export.F * !load166()([].some, true), 'Array', {
-        // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg])
-        some: function some(callbackfn /* , thisArg */ ) {
-            return $some(this, callbackfn, arguments[1]);
-        }
-    });
-});
-var load177 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var $export = load20();
-    var $every = load172()(4);
-    $export($export.P + $export.F * !load166()([].every, true), 'Array', {
-        // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg])
-        every: function every(callbackfn /* , thisArg */ ) {
-            return $every(this, callbackfn, arguments[1]);
-        }
-    });
-});
-var load178 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var aFunction = load18();
-    var toObject = load42();
-    var IObject = load27();
-    var toLength = load31();
-    module.exports = function(that, callbackfn, aLen, memo, isRight) {
-        aFunction(callbackfn);
-        var O = toObject(that);
-        var self1 = IObject(O);
-        var length = toLength(O.length);
-        var index = isRight ? length - 1 : 0;
-        var i = isRight ? -1 : 1;
-        if (aLen < 2) for(;;){
-            if (index in self1) {
-                memo = self1[index];
-                index += i;
-                break;
-            }
-            index += i;
-            if (isRight ? index < 0 : length <= index) throw TypeError('Reduce of empty array with no initial value');
-        }
-        for(; isRight ? index >= 0 : length > index; index += i)if (index in self1) memo = callbackfn(memo, self1[index], index, O);
-        return memo;
-    };
-});
-var load179 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var $export = load20();
-    var $reduce = load178();
-    $export($export.P + $export.F * !load166()([].reduce, true), 'Array', {
-        // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])
-        reduce: function reduce(callbackfn /* , initialValue */ ) {
-            return $reduce(this, callbackfn, arguments.length, arguments[1], false);
-        }
-    });
-});
-var load180 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var $export = load20();
-    var $reduce = load178();
-    $export($export.P + $export.F * !load166()([].reduceRight, true), 'Array', {
-        // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue])
-        reduceRight: function reduceRight(callbackfn /* , initialValue */ ) {
-            return $reduce(this, callbackfn, arguments.length, arguments[1], true);
-        }
-    });
-});
-var load181 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var $export = load20();
-    var $indexOf = load33()(false);
-    var $native = [].indexOf;
-    var NEGATIVE_ZERO = !!$native && 1 / [
-        1
-    ].indexOf(1, -0) < 0;
-    $export($export.P + $export.F * (NEGATIVE_ZERO || !load166()($native)), 'Array', {
-        // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])
-        indexOf: function indexOf(searchElement /* , fromIndex = 0 */ ) {
-            return NEGATIVE_ZERO ? $native.apply(this, arguments) || 0 : $indexOf(this, searchElement, arguments[1]);
-        }
-    });
-});
-var load182 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var $export = load20();
-    var toIObject = load29();
-    var toInteger = load30();
-    var toLength = load31();
-    var $native = [].lastIndexOf;
-    var NEGATIVE_ZERO = !!$native && 1 / [
-        1
-    ].lastIndexOf(1, -0) < 0;
-    $export($export.P + $export.F * (NEGATIVE_ZERO || !load166()($native)), 'Array', {
-        // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex])
-        lastIndexOf: function lastIndexOf(searchElement /* , fromIndex = @[*-1] */ ) {
-            // convert -0 to +0
-            if (NEGATIVE_ZERO) return $native.apply(this, arguments) || 0;
-            var O = toIObject(this);
-            var length = toLength(O.length);
-            var index = length - 1;
-            if (arguments.length > 1) index = Math.min(index, toInteger(arguments[1]));
-            if (index < 0) index = length + index;
-            for(; index >= 0; index--)if (index in O) {
-                if (O[index] === searchElement) return index || 0;
-            }
-            return -1;
-        }
-    });
-});
-var load183 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)
-    'use strict';
-    var toObject = load42();
-    var toAbsoluteIndex = load32();
-    var toLength = load31();
-    module.exports = [].copyWithin || function copyWithin(target /* = 0 */ , start /* = 0, end = @length */ ) {
-        var O = toObject(this);
-        var len = toLength(O.length);
-        var to = toAbsoluteIndex(target, len);
-        var from = toAbsoluteIndex(start, len);
-        var end = arguments.length > 2 ? arguments[2] : undefined;
-        var count = Math.min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);
-        var inc = 1;
-        if (from < to && to < from + count) {
-            inc = -1;
-            from += count - 1;
-            to += count - 1;
-        }
-        while(count-- > 0){
-            if (from in O) O[to] = O[from];
-            else delete O[to];
-            to += inc;
-            from += inc;
-        }
-        return O;
-    };
-});
-var load184 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 22.1.3.31 Array.prototype[@@unscopables]
-    var UNSCOPABLES = load22()('unscopables');
-    var ArrayProto = Array.prototype;
-    if (ArrayProto[UNSCOPABLES] == undefined) load12()(ArrayProto, UNSCOPABLES, {});
-    module.exports = function(key) {
-        ArrayProto[UNSCOPABLES][key] = true;
-    };
-});
-var load185 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)
-    var $export = load20();
-    $export($export.P, 'Array', {
-        copyWithin: load183()
-    });
-    load184()('copyWithin');
-});
-var load186 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)
-    'use strict';
-    var toObject = load42();
-    var toAbsoluteIndex = load32();
-    var toLength = load31();
-    module.exports = function fill(value /* , start = 0, end = @length */ ) {
-        var O = toObject(this);
-        var length = toLength(O.length);
-        var aLen = arguments.length;
-        var index = toAbsoluteIndex(aLen > 1 ? arguments[1] : undefined, length);
-        var end = aLen > 2 ? arguments[2] : undefined;
-        var endPos = end === undefined ? length : toAbsoluteIndex(end, length);
-        while(endPos > index)O[index++] = value;
-        return O;
-    };
-});
-var load187 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)
-    var $export = load20();
-    $export($export.P, 'Array', {
-        fill: load186()
-    });
-    load184()('fill');
-});
-var load188 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    // 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)
-    var $export = load20();
-    var $find = load172()(5);
-    var KEY = 'find';
-    var forced = true;
-    // Shouldn't skip holes
-    if (KEY in []) Array(1)[KEY](function() {
-        forced = false;
-    });
-    $export($export.P + $export.F * forced, 'Array', {
-        find: function find(callbackfn /* , that = undefined */ ) {
-            return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
-        }
-    });
-    load184()(KEY);
-});
-var load189 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    // 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)
-    var $export = load20();
-    var $find = load172()(6);
-    var KEY = 'findIndex';
-    var forced = true;
-    // Shouldn't skip holes
-    if (KEY in []) Array(1)[KEY](function() {
-        forced = false;
-    });
-    $export($export.P + $export.F * forced, 'Array', {
-        findIndex: function findIndex(callbackfn /* , that = undefined */ ) {
-            return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
-        }
-    });
-    load184()(KEY);
-});
-var load190 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var global = load();
-    var dP = load10();
-    var DESCRIPTORS = load3();
-    var SPECIES = load22()('species');
-    module.exports = function(KEY) {
-        var C = global[KEY];
-        if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {
-            configurable: true,
-            get: function() {
-                return this;
-            }
-        });
-    };
-});
-var load191 = __swcpack_require__.bind(void 0, function(module, exports) {
-    load190()('Array');
-});
-var load192 = __swcpack_require__.bind(void 0, function(module, exports) {
-    module.exports = function(done, value) {
-        return {
-            value: value,
-            done: !!done
-        };
-    };
-});
-var load193 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var addToUnscopables = load184();
-    var step = load192();
-    var Iterators = load125();
-    var toIObject = load29();
-    // 22.1.3.4 Array.prototype.entries()
-    // 22.1.3.13 Array.prototype.keys()
-    // 22.1.3.29 Array.prototype.values()
-    // 22.1.3.30 Array.prototype[@@iterator]()
-    module.exports = load127()(Array, 'Array', function(iterated, kind) {
-        this._t = toIObject(iterated); // target
-        this._i = 0; // next index
-        this._k = kind; // kind
-    // 22.1.5.2.1 %ArrayIteratorPrototype%.next()
-    }, function() {
-        var O = this._t;
-        var kind = this._k;
-        var index = this._i++;
-        if (!O || index >= O.length) {
-            this._t = undefined;
-            return step(1);
-        }
-        if (kind == 'keys') return step(0, index);
-        if (kind == 'values') return step(0, O[index]);
-        return step(0, [
-            index,
-            O[index]
-        ]);
-    }, 'values');
-    // argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
-    Iterators.Arguments = Iterators.Array;
-    addToUnscopables('keys');
-    addToUnscopables('values');
-    addToUnscopables('entries');
-});
-var load194 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    // 21.2.5.3 get RegExp.prototype.flags
-    var anObject = load6();
-    module.exports = function() {
-        var that = anObject(this);
-        var result = '';
-        if (that.global) result += 'g';
-        if (that.ignoreCase) result += 'i';
-        if (that.multiline) result += 'm';
-        if (that.unicode) result += 'u';
-        if (that.sticky) result += 'y';
-        return result;
-    };
-});
-var load195 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var global = load();
-    var inheritIfRequired = load84();
-    var dP = load10().f;
-    var gOPN = load46().f;
-    var isRegExp = load130();
-    var $flags = load194();
-    var $RegExp = global.RegExp;
-    var Base = $RegExp;
-    var proto = $RegExp.prototype;
-    var re1 = /a/g;
-    var re2 = /a/g;
-    // "new" creates a new object, old webkit buggy here
-    var CORRECT_NEW = new $RegExp(re1) !== re1;
-    if (load3() && (!CORRECT_NEW || load2()(function() {
-        re2[load22()('match')] = false;
-        // RegExp constructor can alter flags and IsRegExp works correct with @@match
-        return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i';
-    }))) {
-        $RegExp = function RegExp1(p, f) {
-            var tiRE = this instanceof $RegExp;
-            var piRE = isRegExp(p);
-            var fiU = f === undefined;
-            return !tiRE && piRE && p.constructor === $RegExp && fiU ? p : inheritIfRequired(CORRECT_NEW ? new Base(piRE && !fiU ? p.source : p, f) : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f), tiRE ? this : proto, $RegExp);
-        };
-        var proxy = function(key) {
-            key in $RegExp || dP($RegExp, key, {
-                configurable: true,
-                get: function() {
-                    return Base[key];
-                },
-                set: function(it) {
-                    Base[key] = it;
-                }
-            });
-        };
-        for(var keys = gOPN(Base), i = 0; keys.length > i;)proxy(keys[i++]);
-        proto.constructor = $RegExp;
-        $RegExp.prototype = proto;
-        load17()(global, 'RegExp', $RegExp);
-    }
-    load190()('RegExp');
-});
-var load196 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var regexpFlags = load194();
-    var nativeExec = RegExp.prototype.exec;
-    // This always refers to the native implementation, because the
-    // String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,
-    // which loads this file before patching the method.
-    var nativeReplace = String.prototype.replace;
-    var patchedExec = nativeExec;
-    var LAST_INDEX = 'lastIndex';
-    var UPDATES_LAST_INDEX_WRONG = function() {
-        var re1 = /a/, re2 = /b*/g;
-        nativeExec.call(re1, 'a');
-        nativeExec.call(re2, 'a');
-        return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0;
-    }();
-    // nonparticipating capturing group, copied from es5-shim's String#split patch.
-    var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;
-    var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;
-    if (PATCH) patchedExec = function exec(str) {
-        var re = this;
-        var lastIndex, reCopy, match, i;
-        if (NPCG_INCLUDED) reCopy = new RegExp('^' + re.source + '$(?!\\s)', regexpFlags.call(re));
-        if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX];
-        match = nativeExec.call(re, str);
-        if (UPDATES_LAST_INDEX_WRONG && match) re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex;
-        if (NPCG_INCLUDED && match && match.length > 1) // Fix browsers whose `exec` methods don't consistently return `undefined`
-        // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/
-        // eslint-disable-next-line no-loop-func
-        nativeReplace.call(match[0], reCopy, function() {
-            for(i = 1; i < arguments.length - 2; i++)if (arguments[i] === undefined) match[i] = undefined;
-        });
-        return match;
-    };
-    module.exports = patchedExec;
-});
-var load197 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var regexpExec = load196();
-    load20()({
-        target: 'RegExp',
-        proto: true,
-        forced: regexpExec !== /./.exec
-    }, {
-        exec: regexpExec
-    });
-});
-var load198 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 21.2.5.3 get RegExp.prototype.flags()
-    if (load3() && /./g.flags != 'g') load10().f(RegExp.prototype, 'flags', {
-        configurable: true,
-        get: load194()
-    });
-});
-var load199 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    load198();
-    var anObject = load6();
-    var $flags = load194();
-    var DESCRIPTORS = load3();
-    var TO_STRING = 'toString';
-    var $toString = /./[TO_STRING];
-    var define = function(fn) {
-        load17()(RegExp.prototype, TO_STRING, fn, true);
-    };
-    // 21.2.5.14 RegExp.prototype.toString()
-    if (load2()(function() {
-        return $toString.call({
-            source: 'a',
-            flags: 'b'
-        }) != '/a/b';
-    })) define(function toString() {
-        var R = anObject(this);
-        return '/'.concat(R.source, '/', 'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined);
-    });
-    else if ($toString.name != TO_STRING) define(function toString() {
-        return $toString.call(this);
-    });
-});
-var load200 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var at = load124()(true);
-    // `AdvanceStringIndex` abstract operation
-    // https://tc39.github.io/ecma262/#sec-advancestringindex
-    module.exports = function(S, index, unicode) {
-        return index + (unicode ? at(S, index).length : 1);
-    };
-});
-var load201 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var classof = load71();
-    var builtinExec = RegExp.prototype.exec;
-    // `RegExpExec` abstract operation
-    // https://tc39.github.io/ecma262/#sec-regexpexec
-    module.exports = function(R, S) {
-        var exec = R.exec;
-        if (typeof exec === 'function') {
-            var result = exec.call(R, S);
-            if (typeof result !== 'object') throw new TypeError('RegExp exec method returned something other than an Object or null');
-            return result;
-        }
-        if (classof(R) !== 'RegExp') throw new TypeError('RegExp#exec called on incompatible receiver');
-        return builtinExec.call(R, S);
-    };
-});
-var load202 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    load197();
-    var redefine = load17();
-    var hide = load12();
-    var fails = load2();
-    var defined = load28();
-    var wks = load22();
-    var regexpExec = load196();
-    var SPECIES = wks('species');
-    var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function() {
-        // #replace needs built-in support for named groups.
-        // #match works fine because it just return the exec results, even if it has
-        // a "grops" property.
-        var re = /./;
-        re.exec = function() {
-            var result = [];
-            result.groups = {
-                a: '7'
-            };
-            return result;
-        };
-        return ''.replace(re, '$<a>') !== '7';
-    });
-    var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = function() {
-        // Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec
-        var re = /(?:)/;
-        var originalExec = re.exec;
-        re.exec = function() {
-            return originalExec.apply(this, arguments);
-        };
-        var result = 'ab'.split(re);
-        return result.length === 2 && result[0] === 'a' && result[1] === 'b';
-    }();
-    module.exports = function(KEY, length, exec) {
-        var SYMBOL = wks(KEY);
-        var DELEGATES_TO_SYMBOL = !fails(function() {
-            // String methods call symbol-named RegEp methods
-            var O = {};
-            O[SYMBOL] = function() {
-                return 7;
-            };
-            return ''[KEY](O) != 7;
-        });
-        var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function() {
-            // Symbol-named RegExp methods call .exec
-            var execCalled = false;
-            var re = /a/;
-            re.exec = function() {
-                execCalled = true;
-                return null;
-            };
-            if (KEY === 'split') {
-                // RegExp[@@split] doesn't call the regex's exec method, but first creates
-                // a new one. We need to return the patched regex when creating the new one.
-                re.constructor = {};
-                re.constructor[SPECIES] = function() {
-                    return re;
-                };
-            }
-            re[SYMBOL]('');
-            return !execCalled;
-        }) : undefined;
-        if (!DELEGATES_TO_SYMBOL || !DELEGATES_TO_EXEC || KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS || KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC) {
-            var nativeRegExpMethod = /./[SYMBOL];
-            var fns = exec(defined, SYMBOL, ''[KEY], function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {
-                if (regexp.exec === regexpExec) {
-                    if (DELEGATES_TO_SYMBOL && !forceStringMethod) // The native String method already delegates to @@method (this
-                    // polyfilled function), leasing to infinite recursion.
-                    // We avoid it by directly calling the native @@method method.
-                    return {
-                        done: true,
-                        value: nativeRegExpMethod.call(regexp, str, arg2)
-                    };
-                    return {
-                        done: true,
-                        value: nativeMethod.call(str, regexp, arg2)
-                    };
-                }
-                return {
-                    done: false
-                };
-            });
-            var strfn = fns[0];
-            var rxfn = fns[1];
-            redefine(String.prototype, KEY, strfn);
-            hide(RegExp.prototype, SYMBOL, length == 2 ? function(string, arg) {
-                return rxfn.call(string, this, arg);
-            } : function(string) {
-                return rxfn.call(string, this);
-            });
-        }
-    };
-});
-var load203 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var anObject = load6();
-    var toLength = load31();
-    var advanceStringIndex = load200();
-    var regExpExec = load201();
-    // @@match logic
-    load202()('match', 1, function(defined, MATCH, $match, maybeCallNative) {
-        return [
-            // `String.prototype.match` method
-            // https://tc39.github.io/ecma262/#sec-string.prototype.match
-            function match(regexp) {
-                var O = defined(this);
-                var fn = regexp == undefined ? undefined : regexp[MATCH];
-                return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));
-            },
-            // `RegExp.prototype[@@match]` method
-            // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match
-            function(regexp) {
-                var res = maybeCallNative($match, regexp, this);
-                if (res.done) return res.value;
-                var rx = anObject(regexp);
-                var S = String(this);
-                if (!rx.global) return regExpExec(rx, S);
-                var fullUnicode = rx.unicode;
-                rx.lastIndex = 0;
-                var A = [];
-                var n = 0;
-                var result;
-                while((result = regExpExec(rx, S)) !== null){
-                    var matchStr = String(result[0]);
-                    A[n] = matchStr;
-                    if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);
-                    n++;
-                }
-                return n === 0 ? null : A;
-            }
-        ];
-    });
-});
-var load204 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var anObject = load6();
-    var toObject = load42();
-    var toLength = load31();
-    var toInteger = load30();
-    var advanceStringIndex = load200();
-    var regExpExec = load201();
-    var max = Math.max;
-    var min = Math.min;
-    var floor = Math.floor;
-    var SUBSTITUTION_SYMBOLS = /\$([$&`']|\d\d?|<[^>]*>)/g;
-    var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&`']|\d\d?)/g;
-    var maybeToString = function(it) {
-        return it === undefined ? it : String(it);
-    };
-    // @@replace logic
-    load202()('replace', 2, function(defined, REPLACE, $replace, maybeCallNative) {
-        return [
-            // `String.prototype.replace` method
-            // https://tc39.github.io/ecma262/#sec-string.prototype.replace
-            function replace(searchValue, replaceValue) {
-                var O = defined(this);
-                var fn = searchValue == undefined ? undefined : searchValue[REPLACE];
-                return fn !== undefined ? fn.call(searchValue, O, replaceValue) : $replace.call(String(O), searchValue, replaceValue);
-            },
-            // `RegExp.prototype[@@replace]` method
-            // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace
-            function(regexp, replaceValue) {
-                var res = maybeCallNative($replace, regexp, this, replaceValue);
-                if (res.done) return res.value;
-                var rx = anObject(regexp);
-                var S = String(this);
-                var functionalReplace = typeof replaceValue === 'function';
-                if (!functionalReplace) replaceValue = String(replaceValue);
-                var global = rx.global;
-                if (global) {
-                    var fullUnicode = rx.unicode;
-                    rx.lastIndex = 0;
-                }
-                var results = [];
-                while(true){
-                    var result = regExpExec(rx, S);
-                    if (result === null) break;
-                    results.push(result);
-                    if (!global) break;
-                    var matchStr = String(result[0]);
-                    if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);
-                }
-                var accumulatedResult = '';
-                var nextSourcePosition = 0;
-                for(var i = 0; i < results.length; i++){
-                    result = results[i];
-                    var matched = String(result[0]);
-                    var position = max(min(toInteger(result.index), S.length), 0);
-                    var captures = [];
-                    // NOTE: This is equivalent to
-                    //   captures = result.slice(1).map(maybeToString)
-                    // but for some reason `nativeSlice.call(result, 1, result.length)` (called in
-                    // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and
-                    // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.
-                    for(var j = 1; j < result.length; j++)captures.push(maybeToString(result[j]));
-                    var namedCaptures = result.groups;
-                    if (functionalReplace) {
-                        var replacerArgs = [
-                            matched
-                        ].concat(captures, position, S);
-                        if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);
-                        var replacement = String(replaceValue.apply(undefined, replacerArgs));
-                    } else replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);
-                    if (position >= nextSourcePosition) {
-                        accumulatedResult += S.slice(nextSourcePosition, position) + replacement;
-                        nextSourcePosition = position + matched.length;
-                    }
-                }
-                return accumulatedResult + S.slice(nextSourcePosition);
-            }
-        ];
-        // https://tc39.github.io/ecma262/#sec-getsubstitution
-        function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {
-            var tailPos = position + matched.length;
-            var m = captures.length;
-            var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;
-            if (namedCaptures !== undefined) {
-                namedCaptures = toObject(namedCaptures);
-                symbols = SUBSTITUTION_SYMBOLS;
-            }
-            return $replace.call(replacement, symbols, function(match, ch) {
-                var capture;
-                switch(ch.charAt(0)){
-                    case '$':
-                        return '$';
-                    case '&':
-                        return matched;
-                    case '`':
-                        return str.slice(0, position);
-                    case "'":
-                        return str.slice(tailPos);
-                    case '<':
-                        capture = namedCaptures[ch.slice(1, -1)];
-                        break;
-                    default:
-                        var n = +ch;
-                        if (n === 0) return match;
-                        if (n > m) {
-                            var f = floor(n / 10);
-                            if (f === 0) return match;
-                            if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);
-                            return match;
-                        }
-                        capture = captures[n - 1];
-                }
-                return capture === undefined ? '' : capture;
-            });
-        }
-    });
-});
-var load205 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var anObject = load6();
-    var sameValue = load67();
-    var regExpExec = load201();
-    // @@search logic
-    load202()('search', 1, function(defined, SEARCH, $search, maybeCallNative) {
-        return [
-            // `String.prototype.search` method
-            // https://tc39.github.io/ecma262/#sec-string.prototype.search
-            function search(regexp) {
-                var O = defined(this);
-                var fn = regexp == undefined ? undefined : regexp[SEARCH];
-                return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));
-            },
-            // `RegExp.prototype[@@search]` method
-            // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search
-            function(regexp) {
-                var res = maybeCallNative($search, regexp, this);
-                if (res.done) return res.value;
-                var rx = anObject(regexp);
-                var S = String(this);
-                var previousLastIndex = rx.lastIndex;
-                if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;
-                var result = regExpExec(rx, S);
-                if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;
-                return result === null ? -1 : result.index;
-            }
-        ];
-    });
-});
-var load206 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 7.3.20 SpeciesConstructor(O, defaultConstructor)
-    var anObject = load6();
-    var aFunction = load18();
-    var SPECIES = load22()('species');
-    module.exports = function(O, D) {
-        var C = anObject(O).constructor;
-        var S;
-        return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);
-    };
-});
-var load207 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var isRegExp = load130();
-    var anObject = load6();
-    var speciesConstructor = load206();
-    var advanceStringIndex = load200();
-    var toLength = load31();
-    var callRegExpExec = load201();
-    var regexpExec = load196();
-    var fails = load2();
-    var $min = Math.min;
-    var $push = [].push;
-    var $SPLIT = 'split';
-    var LENGTH = 'length';
-    var LAST_INDEX = 'lastIndex';
-    var MAX_UINT32 = 0xffffffff;
-    // babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError
-    var SUPPORTS_Y = !fails(function() {
-        RegExp(MAX_UINT32, 'y');
-    });
-    // @@split logic
-    load202()('split', 2, function(defined, SPLIT, $split, maybeCallNative) {
-        var internalSplit;
-        if ('abbc'[$SPLIT](/(b)*/)[1] == 'c' || 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 || 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 || '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 || '.'[$SPLIT](/()()/)[LENGTH] > 1 || ''[$SPLIT](/.?/)[LENGTH]) // based on es5-shim implementation, need to rework it
-        internalSplit = function(separator, limit) {
-            var string = String(this);
-            if (separator === undefined && limit === 0) return [];
-            // If `separator` is not a regex, use native split
-            if (!isRegExp(separator)) return $split.call(string, separator, limit);
-            var output = [];
-            var flags = (separator.ignoreCase ? 'i' : '') + (separator.multiline ? 'm' : '') + (separator.unicode ? 'u' : '') + (separator.sticky ? 'y' : '');
-            var lastLastIndex = 0;
-            var splitLimit = limit === undefined ? MAX_UINT32 : limit >>> 0;
-            // Make `global` and avoid `lastIndex` issues by working with a copy
-            var separatorCopy = new RegExp(separator.source, flags + 'g');
-            var match, lastIndex, lastLength;
-            while(match = regexpExec.call(separatorCopy, string)){
-                lastIndex = separatorCopy[LAST_INDEX];
-                if (lastIndex > lastLastIndex) {
-                    output.push(string.slice(lastLastIndex, match.index));
-                    if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));
-                    lastLength = match[0][LENGTH];
-                    lastLastIndex = lastIndex;
-                    if (output[LENGTH] >= splitLimit) break;
-                }
-                if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop
-            }
-            if (lastLastIndex === string[LENGTH]) {
-                if (lastLength || !separatorCopy.test('')) output.push('');
-            } else output.push(string.slice(lastLastIndex));
-            return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;
-        };
-        else if ('0'[$SPLIT](undefined, 0)[LENGTH]) internalSplit = function(separator, limit) {
-            return separator === undefined && limit === 0 ? [] : $split.call(this, separator, limit);
-        };
-        else internalSplit = $split;
-        return [
-            // `String.prototype.split` method
-            // https://tc39.github.io/ecma262/#sec-string.prototype.split
-            function split(separator, limit) {
-                var O = defined(this);
-                var splitter = separator == undefined ? undefined : separator[SPLIT];
-                return splitter !== undefined ? splitter.call(separator, O, limit) : internalSplit.call(String(O), separator, limit);
-            },
-            // `RegExp.prototype[@@split]` method
-            // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split
-            //
-            // NOTE: This cannot be properly polyfilled in engines that don't support
-            // the 'y' flag.
-            function(regexp, limit) {
-                var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== $split);
-                if (res.done) return res.value;
-                var rx = anObject(regexp);
-                var S = String(this);
-                var C = speciesConstructor(rx, RegExp);
-                var unicodeMatching = rx.unicode;
-                var flags = (rx.ignoreCase ? 'i' : '') + (rx.multiline ? 'm' : '') + (rx.unicode ? 'u' : '') + (SUPPORTS_Y ? 'y' : 'g');
-                // ^(? + rx + ) is needed, in combination with some S slicing, to
-                // simulate the 'y' flag.
-                var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);
-                var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;
-                if (lim === 0) return [];
-                if (S.length === 0) return callRegExpExec(splitter, S) === null ? [
-                    S
-                ] : [];
-                var p = 0;
-                var q = 0;
-                var A = [];
-                while(q < S.length){
-                    splitter.lastIndex = SUPPORTS_Y ? q : 0;
-                    var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));
-                    var e;
-                    if (z === null || (e = $min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p) q = advanceStringIndex(S, q, unicodeMatching);
-                    else {
-                        A.push(S.slice(p, q));
-                        if (A.length === lim) return A;
-                        for(var i = 1; i <= z.length - 1; i++){
-                            A.push(z[i]);
-                            if (A.length === lim) return A;
-                        }
-                        q = p = e;
-                    }
-                }
-                A.push(S.slice(p));
-                return A;
-            }
-        ];
-    });
-});
-var load208 = __swcpack_require__.bind(void 0, function(module, exports) {
-    module.exports = function(it, Constructor, name, forbiddenField) {
-        if (!(it instanceof Constructor) || forbiddenField !== undefined && forbiddenField in it) throw TypeError(name + ': incorrect invocation!');
-        return it;
-    };
-});
-var load209 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var ctx = load19();
-    var call = load159();
-    var isArrayIter = load160();
-    var anObject = load6();
-    var toLength = load31();
-    var getIterFn = load162();
-    var BREAK = {};
-    var RETURN = {};
-    var exports = module.exports = function(iterable, entries, fn, that, ITERATOR) {
-        var iterFn = ITERATOR ? function() {
-            return iterable;
-        } : getIterFn(iterable);
-        var f = ctx(fn, that, entries ? 2 : 1);
-        var index = 0;
-        var length, step, iterator, result;
-        if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');
-        // fast case for arrays with default iterator
-        if (isArrayIter(iterFn)) for(length = toLength(iterable.length); length > index; index++){
-            result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
-            if (result === BREAK || result === RETURN) return result;
-        }
-        else for(iterator = iterFn.call(iterable); !(step = iterator.next()).done;){
-            result = call(iterator, f, step.value, entries);
-            if (result === BREAK || result === RETURN) return result;
-        }
-    };
-    exports.BREAK = BREAK;
-    exports.RETURN = RETURN;
-});
-var load210 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var ctx = load19();
-    var invoke = load73();
-    var html = load44();
-    var cel = load7();
-    var global = load();
-    var process = global.process;
-    var setTask = global.setImmediate;
-    var clearTask = global.clearImmediate;
-    var MessageChannel = global.MessageChannel;
-    var Dispatch = global.Dispatch;
-    var counter = 0;
-    var queue = {};
-    var ONREADYSTATECHANGE = 'onreadystatechange';
-    var defer, channel, port;
-    var run = function() {
-        var id = +this;
-        // eslint-disable-next-line no-prototype-builtins
-        if (queue.hasOwnProperty(id)) {
-            var fn = queue[id];
-            delete queue[id];
-            fn();
-        }
-    };
-    var listener = function(event) {
-        run.call(event.data);
-    };
-    // Node.js 0.9+ & IE10+ has setImmediate, otherwise:
-    if (!setTask || !clearTask) {
-        setTask = function setImmediate(fn) {
-            var args = [];
-            var i = 1;
-            while(arguments.length > i)args.push(arguments[i++]);
-            queue[++counter] = function() {
-                // eslint-disable-next-line no-new-func
-                invoke(typeof fn == 'function' ? fn : Function(fn), args);
-            };
-            defer(counter);
-            return counter;
-        };
-        clearTask = function clearImmediate(id) {
-            delete queue[id];
-        };
-        // Node.js 0.8-
-        if (load26()(process) == 'process') defer = function(id) {
-            process.nextTick(ctx(run, id, 1));
-        };
-        else if (Dispatch && Dispatch.now) defer = function(id) {
-            Dispatch.now(ctx(run, id, 1));
-        };
-        else if (MessageChannel) {
-            channel = new MessageChannel();
-            port = channel.port2;
-            channel.port1.onmessage = listener;
-            defer = ctx(port.postMessage, port, 1);
-        // Browsers with postMessage, skip WebWorkers
-        // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'
-        } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {
-            defer = function(id) {
-                global.postMessage(id + '', '*');
-            };
-            global.addEventListener('message', listener, false);
-        // IE8-
-        } else if (ONREADYSTATECHANGE in cel('script')) defer = function(id) {
-            html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function() {
-                html.removeChild(this);
-                run.call(id);
-            };
-        };
-        else defer = function(id) {
-            setTimeout(ctx(run, id, 1), 0);
-        };
-    }
-    module.exports = {
-        set: setTask,
-        clear: clearTask
-    };
-});
-var load211 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var global = load();
-    var macrotask = load210().set;
-    var Observer = global.MutationObserver || global.WebKitMutationObserver;
-    var process = global.process;
-    var Promise = global.Promise;
-    var isNode = load26()(process) == 'process';
-    module.exports = function() {
-        var head, last, notify;
-        var flush = function() {
-            var parent, fn;
-            if (isNode && (parent = process.domain)) parent.exit();
-            while(head){
-                fn = head.fn;
-                head = head.next;
-                try {
-                    fn();
-                } catch (e) {
-                    if (head) notify();
-                    else last = undefined;
-                    throw e;
-                }
-            }
-            last = undefined;
-            if (parent) parent.enter();
-        };
-        // Node.js
-        if (isNode) notify = function() {
-            process.nextTick(flush);
-        };
-        else if (Observer && !(global.navigator && global.navigator.standalone)) {
-            var toggle = true;
-            var node = document.createTextNode('');
-            new Observer(flush).observe(node, {
-                characterData: true
-            }); // eslint-disable-line no-new
-            notify = function() {
-                node.data = toggle = !toggle;
-            };
-        // environments with maybe non-completely correct, but existent Promise
-        } else if (Promise && Promise.resolve) {
-            // Promise.resolve without an argument throws an error in LG WebOS 2
-            var promise = Promise.resolve(undefined);
-            notify = function() {
-                promise.then(flush);
-            };
-        // for other environments - macrotask based on:
-        // - setImmediate
-        // - MessageChannel
-        // - window.postMessag
-        // - onreadystatechange
-        // - setTimeout
-        } else notify = function() {
-            // strange IE + webpack dev server bug - use .call(global)
-            macrotask.call(global, flush);
-        };
-        return function(fn) {
-            var task = {
-                fn: fn,
-                next: undefined
-            };
-            if (last) last.next = task;
-            if (!head) {
-                head = task;
-                notify();
-            }
-            last = task;
-        };
-    };
-});
-var load212 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    // 25.4.1.5 NewPromiseCapability(C)
-    var aFunction = load18();
-    function PromiseCapability(C) {
-        var resolve, reject;
-        this.promise = new C(function($$resolve, $$reject) {
-            if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');
-            resolve = $$resolve;
-            reject = $$reject;
-        });
-        this.resolve = aFunction(resolve);
-        this.reject = aFunction(reject);
-    }
-    module.exports.f = function(C) {
-        return new PromiseCapability(C);
-    };
-});
-var load213 = __swcpack_require__.bind(void 0, function(module, exports) {
-    module.exports = function(exec) {
-        try {
-            return {
-                e: false,
-                v: exec()
-            };
-        } catch (e) {
-            return {
-                e: true,
-                v: e
-            };
-        }
-    };
-});
-var load214 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var global = load();
-    var navigator = global.navigator;
-    module.exports = navigator && navigator.userAgent || '';
-});
-var load215 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var anObject = load6();
-    var isObject = load5();
-    var newPromiseCapability = load212();
-    module.exports = function(C, x) {
-        anObject(C);
-        if (isObject(x) && x.constructor === C) return x;
-        var promiseCapability = newPromiseCapability.f(C);
-        var resolve = promiseCapability.resolve;
-        resolve(x);
-        return promiseCapability.promise;
-    };
-});
-var load216 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var redefine = load17();
-    module.exports = function(target, src, safe) {
-        for(var key in src)redefine(target, key, src[key], safe);
-        return target;
-    };
-});
-var load217 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var LIBRARY = load14();
-    var global = load();
-    var ctx = load19();
-    var classof = load71();
-    var $export = load20();
-    var isObject = load5();
-    var aFunction = load18();
-    var anInstance = load208();
-    var forOf = load209();
-    var speciesConstructor = load206();
-    var task = load210().set;
-    var microtask = load211()();
-    var newPromiseCapabilityModule = load212();
-    var perform = load213();
-    var userAgent = load214();
-    var promiseResolve = load215();
-    var PROMISE = 'Promise';
-    var TypeError1 = global.TypeError;
-    var process = global.process;
-    var versions = process && process.versions;
-    var v8 = versions && versions.v8 || '';
-    var $Promise = global[PROMISE];
-    var isNode = classof(process) == 'process';
-    var empty = function() {};
-    var Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;
-    var newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;
-    var USE_NATIVE = !!function() {
-        try {
-            // correct subclassing with @@species support
-            var promise = $Promise.resolve(1);
-            var FakePromise = (promise.constructor = {})[load22()('species')] = function(exec) {
-                exec(empty, empty);
-            };
-            // unhandled rejections tracking support, NodeJS Promise without it fails @@species test
-            return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise && v8.indexOf('6.6') !== 0 && userAgent.indexOf('Chrome/66') === -1;
-        } catch (e) {}
-    }();
-    // helpers
-    var isThenable = function(it) {
-        var then;
-        return isObject(it) && typeof (then = it.then) == 'function' ? then : false;
-    };
-    var notify = function(promise, isReject) {
-        if (promise._n) return;
-        promise._n = true;
-        var chain = promise._c;
-        microtask(function() {
-            var value = promise._v;
-            var ok = promise._s == 1;
-            var i = 0;
-            var run = function(reaction) {
-                var handler = ok ? reaction.ok : reaction.fail;
-                var resolve = reaction.resolve;
-                var reject = reaction.reject;
-                var domain = reaction.domain;
-                var result, then, exited;
-                try {
-                    if (handler) {
-                        if (!ok) {
-                            if (promise._h == 2) onHandleUnhandled(promise);
-                            promise._h = 1;
-                        }
-                        if (handler === true) result = value;
-                        else {
-                            if (domain) domain.enter();
-                            result = handler(value); // may throw
-                            if (domain) {
-                                domain.exit();
-                                exited = true;
-                            }
-                        }
-                        if (result === reaction.promise) reject(TypeError1('Promise-chain cycle'));
-                        else if (then = isThenable(result)) then.call(result, resolve, reject);
-                        else resolve(result);
-                    } else reject(value);
-                } catch (e) {
-                    if (domain && !exited) domain.exit();
-                    reject(e);
-                }
-            };
-            while(chain.length > i)run(chain[i++]); // variable length - can't use forEach
-            promise._c = [];
-            promise._n = false;
-            if (isReject && !promise._h) onUnhandled(promise);
-        });
-    };
-    var onUnhandled = function(promise) {
-        task.call(global, function() {
-            var value = promise._v;
-            var unhandled = isUnhandled(promise);
-            var result, handler, console;
-            if (unhandled) {
-                result = perform(function() {
-                    if (isNode) process.emit('unhandledRejection', value, promise);
-                    else if (handler = global.onunhandledrejection) handler({
-                        promise: promise,
-                        reason: value
-                    });
-                    else if ((console = global.console) && console.error) console.error('Unhandled promise rejection', value);
-                });
-                // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should
-                promise._h = isNode || isUnhandled(promise) ? 2 : 1;
-            }
-            promise._a = undefined;
-            if (unhandled && result.e) throw result.v;
-        });
-    };
-    var isUnhandled = function(promise) {
-        return promise._h !== 1 && (promise._a || promise._c).length === 0;
-    };
-    var onHandleUnhandled = function(promise) {
-        task.call(global, function() {
-            var handler;
-            if (isNode) process.emit('rejectionHandled', promise);
-            else if (handler = global.onrejectionhandled) handler({
-                promise: promise,
-                reason: promise._v
-            });
-        });
-    };
-    var $reject = function(value) {
-        var promise = this;
-        if (promise._d) return;
-        promise._d = true;
-        promise = promise._w || promise; // unwrap
-        promise._v = value;
-        promise._s = 2;
-        if (!promise._a) promise._a = promise._c.slice();
-        notify(promise, true);
-    };
-    var $resolve = function(value) {
-        var promise = this;
-        var then;
-        if (promise._d) return;
-        promise._d = true;
-        promise = promise._w || promise; // unwrap
-        try {
-            if (promise === value) throw TypeError1("Promise can't be resolved itself");
-            if (then = isThenable(value)) microtask(function() {
-                var wrapper = {
-                    _w: promise,
-                    _d: false
-                }; // wrap
-                try {
-                    then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));
-                } catch (e) {
-                    $reject.call(wrapper, e);
-                }
-            });
-            else {
-                promise._v = value;
-                promise._s = 1;
-                notify(promise, false);
-            }
-        } catch (e) {
-            $reject.call({
-                _w: promise,
-                _d: false
-            }, e); // wrap
-        }
-    };
-    // constructor polyfill
-    if (!USE_NATIVE) {
-        // 25.4.3.1 Promise(executor)
-        $Promise = function Promise(executor) {
-            anInstance(this, $Promise, PROMISE, '_h');
-            aFunction(executor);
-            Internal.call(this);
-            try {
-                executor(ctx($resolve, this, 1), ctx($reject, this, 1));
-            } catch (err) {
-                $reject.call(this, err);
-            }
-        };
-        // eslint-disable-next-line no-unused-vars
-        Internal = function Promise(executor) {
-            this._c = []; // <- awaiting reactions
-            this._a = undefined; // <- checked in isUnhandled reactions
-            this._s = 0; // <- state
-            this._d = false; // <- done
-            this._v = undefined; // <- value
-            this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled
-            this._n = false; // <- notify
-        };
-        Internal.prototype = load216()($Promise.prototype, {
-            // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)
-            then: function then(onFulfilled, onRejected) {
-                var reaction = newPromiseCapability(speciesConstructor(this, $Promise));
-                reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;
-                reaction.fail = typeof onRejected == 'function' && onRejected;
-                reaction.domain = isNode ? process.domain : undefined;
-                this._c.push(reaction);
-                if (this._a) this._a.push(reaction);
-                if (this._s) notify(this, false);
-                return reaction.promise;
-            },
-            // 25.4.5.1 Promise.prototype.catch(onRejected)
-            'catch': function(onRejected) {
-                return this.then(undefined, onRejected);
-            }
-        });
-        OwnPromiseCapability = function() {
-            var promise = new Internal();
-            this.promise = promise;
-            this.resolve = ctx($resolve, promise, 1);
-            this.reject = ctx($reject, promise, 1);
-        };
-        newPromiseCapabilityModule.f = newPromiseCapability = function(C) {
-            return C === $Promise || C === Wrapper ? new OwnPromiseCapability(C) : newGenericPromiseCapability(C);
-        };
-    }
-    $export($export.G + $export.W + $export.F * !USE_NATIVE, {
-        Promise: $Promise
-    });
-    load23()($Promise, PROMISE);
-    load190()(PROMISE);
-    Wrapper = load4()[PROMISE];
-    // statics
-    $export($export.S + $export.F * !USE_NATIVE, PROMISE, {
-        // 25.4.4.5 Promise.reject(r)
-        reject: function reject(r) {
-            var capability = newPromiseCapability(this);
-            var $$reject = capability.reject;
-            $$reject(r);
-            return capability.promise;
-        }
-    });
-    $export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {
-        // 25.4.4.6 Promise.resolve(x)
-        resolve: function resolve(x) {
-            return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);
-        }
-    });
-    $export($export.S + $export.F * !(USE_NATIVE && load163()(function(iter) {
-        $Promise.all(iter)['catch'](empty);
-    })), PROMISE, {
-        // 25.4.4.1 Promise.all(iterable)
-        all: function all(iterable) {
-            var C = this;
-            var capability = newPromiseCapability(C);
-            var resolve = capability.resolve;
-            var reject = capability.reject;
-            var result = perform(function() {
-                var values = [];
-                var index = 0;
-                var remaining = 1;
-                forOf(iterable, false, function(promise) {
-                    var $index = index++;
-                    var alreadyCalled = false;
-                    values.push(undefined);
-                    remaining++;
-                    C.resolve(promise).then(function(value) {
-                        if (alreadyCalled) return;
-                        alreadyCalled = true;
-                        values[$index] = value;
-                        --remaining || resolve(values);
-                    }, reject);
-                });
-                --remaining || resolve(values);
-            });
-            if (result.e) reject(result.v);
-            return capability.promise;
-        },
-        // 25.4.4.4 Promise.race(iterable)
-        race: function race(iterable) {
-            var C = this;
-            var capability = newPromiseCapability(C);
-            var reject = capability.reject;
-            var result = perform(function() {
-                forOf(iterable, false, function(promise) {
-                    C.resolve(promise).then(capability.resolve, reject);
-                });
-            });
-            if (result.e) reject(result.v);
-            return capability.promise;
-        }
-    });
-});
-var load218 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var isObject = load5();
-    module.exports = function(it, TYPE) {
-        if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');
-        return it;
-    };
-});
-var load219 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var dP = load10().f;
-    var create = load45();
-    var redefineAll = load216();
-    var ctx = load19();
-    var anInstance = load208();
-    var forOf = load209();
-    var $iterDefine = load127();
-    var step = load192();
-    var setSpecies = load190();
-    var DESCRIPTORS = load3();
-    var fastKey = load21().fastKey;
-    var validate = load218();
-    var SIZE = DESCRIPTORS ? '_s' : 'size';
-    var getEntry = function(that, key) {
-        // fast case
-        var index = fastKey(key);
-        var entry;
-        if (index !== 'F') return that._i[index];
-        // frozen object case
-        for(entry = that._f; entry; entry = entry.n){
-            if (entry.k == key) return entry;
-        }
-    };
-    module.exports = {
-        getConstructor: function(wrapper, NAME, IS_MAP, ADDER) {
-            var C = wrapper(function(that, iterable) {
-                anInstance(that, C, NAME, '_i');
-                that._t = NAME; // collection type
-                that._i = create(null); // index
-                that._f = undefined; // first entry
-                that._l = undefined; // last entry
-                that[SIZE] = 0; // size
-                if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);
-            });
-            redefineAll(C.prototype, {
-                // 23.1.3.1 Map.prototype.clear()
-                // 23.2.3.2 Set.prototype.clear()
-                clear: function clear() {
-                    for(var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n){
-                        entry.r = true;
-                        if (entry.p) entry.p = entry.p.n = undefined;
-                        delete data[entry.i];
-                    }
-                    that._f = that._l = undefined;
-                    that[SIZE] = 0;
-                },
-                // 23.1.3.3 Map.prototype.delete(key)
-                // 23.2.3.4 Set.prototype.delete(value)
-                'delete': function(key) {
-                    var that = validate(this, NAME);
-                    var entry = getEntry(that, key);
-                    if (entry) {
-                        var next = entry.n;
-                        var prev = entry.p;
-                        delete that._i[entry.i];
-                        entry.r = true;
-                        if (prev) prev.n = next;
-                        if (next) next.p = prev;
-                        if (that._f == entry) that._f = next;
-                        if (that._l == entry) that._l = prev;
-                        that[SIZE]--;
-                    }
-                    return !!entry;
-                },
-                // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)
-                // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)
-                forEach: function forEach(callbackfn /* , that = undefined */ ) {
-                    validate(this, NAME);
-                    var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
-                    var entry;
-                    while(entry = entry ? entry.n : this._f){
-                        f(entry.v, entry.k, this);
-                        // revert to the last existing entry
-                        while(entry && entry.r)entry = entry.p;
-                    }
-                },
-                // 23.1.3.7 Map.prototype.has(key)
-                // 23.2.3.7 Set.prototype.has(value)
-                has: function has(key) {
-                    return !!getEntry(validate(this, NAME), key);
-                }
-            });
-            if (DESCRIPTORS) dP(C.prototype, 'size', {
-                get: function() {
-                    return validate(this, NAME)[SIZE];
-                }
-            });
-            return C;
-        },
-        def: function(that, key, value) {
-            var entry = getEntry(that, key);
-            var prev, index;
-            // change existing entry
-            if (entry) entry.v = value;
-            else {
-                that._l = entry = {
-                    i: index = fastKey(key, true),
-                    k: key,
-                    v: value,
-                    p: prev = that._l,
-                    n: undefined,
-                    r: false // <- removed
-                };
-                if (!that._f) that._f = entry;
-                if (prev) prev.n = entry;
-                that[SIZE]++;
-                // add to index
-                if (index !== 'F') that._i[index] = entry;
-            }
-            return that;
-        },
-        getEntry: getEntry,
-        setStrong: function(C, NAME, IS_MAP) {
-            // add .keys, .values, .entries, [@@iterator]
-            // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11
-            $iterDefine(C, NAME, function(iterated, kind) {
-                this._t = validate(iterated, NAME); // target
-                this._k = kind; // kind
-                this._l = undefined; // previous
-            }, function() {
-                var that = this;
-                var kind = that._k;
-                var entry = that._l;
-                // revert to the last existing entry
-                while(entry && entry.r)entry = entry.p;
-                // get next entry
-                if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {
-                    // or finish the iteration
-                    that._t = undefined;
-                    return step(1);
-                }
-                // return step by kind
-                if (kind == 'keys') return step(0, entry.k);
-                if (kind == 'values') return step(0, entry.v);
-                return step(0, [
-                    entry.k,
-                    entry.v
-                ]);
-            }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);
-            // add [@@species], 23.1.2.2, 23.2.2.2
-            setSpecies(NAME);
-        }
-    };
-});
-var load220 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var global = load();
-    var $export = load20();
-    var redefine = load17();
-    var redefineAll = load216();
-    var meta = load21();
-    var forOf = load209();
-    var anInstance = load208();
-    var isObject = load5();
-    var fails = load2();
-    var $iterDetect = load163();
-    var setToStringTag = load23();
-    var inheritIfRequired = load84();
-    module.exports = function(NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {
-        var Base = global[NAME];
-        var C = Base;
-        var ADDER = IS_MAP ? 'set' : 'add';
-        var proto = C && C.prototype;
-        var O = {};
-        var fixMethod = function(KEY) {
-            var fn = proto[KEY];
-            redefine(proto, KEY, KEY == 'delete' ? function(a) {
-                return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);
-            } : KEY == 'has' ? function has(a) {
-                return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);
-            } : KEY == 'get' ? function get(a) {
-                return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);
-            } : KEY == 'add' ? function add(a) {
-                fn.call(this, a === 0 ? 0 : a);
-                return this;
-            } : function set(a, b) {
-                fn.call(this, a === 0 ? 0 : a, b);
-                return this;
-            });
-        };
-        if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function() {
-            new C().entries().next();
-        }))) {
-            // create collection constructor
-            C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
-            redefineAll(C.prototype, methods);
-            meta.NEED = true;
-        } else {
-            var instance = new C();
-            // early implementations not supports chaining
-            var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;
-            // V8 ~  Chromium 40- weak-collections throws on primitives, but should return false
-            var THROWS_ON_PRIMITIVES = fails(function() {
-                instance.has(1);
-            });
-            // most early implementations doesn't supports iterables, most modern - not close it correctly
-            var ACCEPT_ITERABLES = $iterDetect(function(iter) {
-                new C(iter);
-            }); // eslint-disable-line no-new
-            // for early implementations -0 and +0 not the same
-            var BUGGY_ZERO = !IS_WEAK && fails(function() {
-                // V8 ~ Chromium 42- fails only with 5+ elements
-                var $instance = new C();
-                var index = 5;
-                while(index--)$instance[ADDER](index, index);
-                return !$instance.has(-0);
-            });
-            if (!ACCEPT_ITERABLES) {
-                C = wrapper(function(target, iterable) {
-                    anInstance(target, C, NAME);
-                    var that = inheritIfRequired(new Base(), target, C);
-                    if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);
-                    return that;
-                });
-                C.prototype = proto;
-                proto.constructor = C;
-            }
-            if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {
-                fixMethod('delete');
-                fixMethod('has');
-                IS_MAP && fixMethod('get');
-            }
-            if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);
-            // weak collections should not contains .clear method
-            if (IS_WEAK && proto.clear) delete proto.clear;
-        }
-        setToStringTag(C, NAME);
-        O[NAME] = C;
-        $export($export.G + $export.W + $export.F * (C != Base), O);
-        if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);
-        return C;
-    };
-});
-var load221 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var strong = load219();
-    var validate = load218();
-    var MAP = 'Map';
-    // 23.1 Map Objects
-    module.exports = load220()(MAP, function(get) {
-        return function Map() {
-            return get(this, arguments.length > 0 ? arguments[0] : undefined);
-        };
-    }, {
-        // 23.1.3.6 Map.prototype.get(key)
-        get: function get(key) {
-            var entry = strong.getEntry(validate(this, MAP), key);
-            return entry && entry.v;
-        },
-        // 23.1.3.9 Map.prototype.set(key, value)
-        set: function set(key, value) {
-            return strong.def(validate(this, MAP), key === 0 ? 0 : key, value);
-        }
-    }, strong, true);
-});
-var load222 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var strong = load219();
-    var validate = load218();
-    var SET = 'Set';
-    // 23.2 Set Objects
-    module.exports = load220()(SET, function(get) {
-        return function Set() {
-            return get(this, arguments.length > 0 ? arguments[0] : undefined);
-        };
-    }, {
-        // 23.2.3.1 Set.prototype.add(value)
-        add: function add(value) {
-            return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value);
-        }
-    }, strong);
-});
-var load223 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var redefineAll = load216();
-    var getWeak = load21().getWeak;
-    var anObject = load6();
-    var isObject = load5();
-    var anInstance = load208();
-    var forOf = load209();
-    var createArrayMethod = load172();
-    var $has = load1();
-    var validate = load218();
-    var arrayFind = createArrayMethod(5);
-    var arrayFindIndex = createArrayMethod(6);
-    var id = 0;
-    // fallback for uncaught frozen keys
-    var uncaughtFrozenStore = function(that) {
-        return that._l || (that._l = new UncaughtFrozenStore());
-    };
-    var UncaughtFrozenStore = function() {
-        this.a = [];
-    };
-    var findUncaughtFrozen = function(store, key) {
-        return arrayFind(store.a, function(it) {
-            return it[0] === key;
-        });
-    };
-    UncaughtFrozenStore.prototype = {
-        get: function(key) {
-            var entry = findUncaughtFrozen(this, key);
-            if (entry) return entry[1];
-        },
-        has: function(key) {
-            return !!findUncaughtFrozen(this, key);
-        },
-        set: function(key, value) {
-            var entry = findUncaughtFrozen(this, key);
-            if (entry) entry[1] = value;
-            else this.a.push([
-                key,
-                value
-            ]);
-        },
-        'delete': function(key) {
-            var index = arrayFindIndex(this.a, function(it) {
-                return it[0] === key;
-            });
-            if (~index) this.a.splice(index, 1);
-            return !!~index;
-        }
-    };
-    module.exports = {
-        getConstructor: function(wrapper, NAME, IS_MAP, ADDER) {
-            var C = wrapper(function(that, iterable) {
-                anInstance(that, C, NAME, '_i');
-                that._t = NAME; // collection type
-                that._i = id++; // collection id
-                that._l = undefined; // leak store for uncaught frozen objects
-                if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);
-            });
-            redefineAll(C.prototype, {
-                // 23.3.3.2 WeakMap.prototype.delete(key)
-                // 23.4.3.3 WeakSet.prototype.delete(value)
-                'delete': function(key) {
-                    if (!isObject(key)) return false;
-                    var data = getWeak(key);
-                    if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key);
-                    return data && $has(data, this._i) && delete data[this._i];
-                },
-                // 23.3.3.4 WeakMap.prototype.has(key)
-                // 23.4.3.4 WeakSet.prototype.has(value)
-                has: function has(key) {
-                    if (!isObject(key)) return false;
-                    var data = getWeak(key);
-                    if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key);
-                    return data && $has(data, this._i);
-                }
-            });
-            return C;
-        },
-        def: function(that, key, value) {
-            var data = getWeak(anObject(key), true);
-            if (data === true) uncaughtFrozenStore(that).set(key, value);
-            else data[that._i] = value;
-            return that;
-        },
-        ufstore: uncaughtFrozenStore
-    };
-});
-var load224 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var global = load();
-    var each = load172()(0);
-    var redefine = load17();
-    var meta = load21();
-    var assign = load65();
-    var weak = load223();
-    var isObject = load5();
-    var validate = load218();
-    var NATIVE_WEAK_MAP = load218();
-    var IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;
-    var WEAK_MAP = 'WeakMap';
-    var getWeak = meta.getWeak;
-    var isExtensible = Object.isExtensible;
-    var uncaughtFrozenStore = weak.ufstore;
-    var InternalMap;
-    var wrapper = function(get) {
-        return function WeakMap() {
-            return get(this, arguments.length > 0 ? arguments[0] : undefined);
-        };
-    };
-    var methods = {
-        // 23.3.3.3 WeakMap.prototype.get(key)
-        get: function get(key) {
-            if (isObject(key)) {
-                var data = getWeak(key);
-                if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key);
-                return data ? data[this._i] : undefined;
-            }
-        },
-        // 23.3.3.5 WeakMap.prototype.set(key, value)
-        set: function set(key, value) {
-            return weak.def(validate(this, WEAK_MAP), key, value);
-        }
-    };
-    // 23.3 WeakMap Objects
-    var $WeakMap = module.exports = load220()(WEAK_MAP, wrapper, methods, weak, true, true);
-    // IE11 WeakMap frozen keys fix
-    if (NATIVE_WEAK_MAP && IS_IE11) {
-        InternalMap = weak.getConstructor(wrapper, WEAK_MAP);
-        assign(InternalMap.prototype, methods);
-        meta.NEED = true;
-        each([
-            'delete',
-            'has',
-            'get',
-            'set'
-        ], function(key) {
-            var proto = $WeakMap.prototype;
-            var method = proto[key];
-            redefine(proto, key, function(a, b) {
-                // store frozen objects on internal weakmap shim
-                if (isObject(a) && !isExtensible(a)) {
-                    if (!this._f) this._f = new InternalMap();
-                    var result = this._f[key](a, b);
-                    return key == 'set' ? this : result;
-                // store all the rest on native weakmap
-                }
-                return method.call(this, a, b);
-            });
-        });
-    }
-});
-var load225 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var weak = load223();
-    var validate = load218();
-    var WEAK_SET = 'WeakSet';
-    // 23.4 WeakSet Objects
-    load220()(WEAK_SET, function(get) {
-        return function WeakSet() {
-            return get(this, arguments.length > 0 ? arguments[0] : undefined);
-        };
-    }, {
-        // 23.4.3.1 WeakSet.prototype.add(value)
-        add: function add(value) {
-            return weak.def(validate(this, WEAK_SET), value, true);
-        }
-    }, weak, false, true);
-});
-var load226 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var global = load();
-    var hide = load12();
-    var uid = load13();
-    var TYPED = uid('typed_array');
-    var VIEW = uid('view');
-    var ABV = !!(global.ArrayBuffer && global.DataView);
-    var CONSTR = ABV;
-    var i = 0;
-    var l = 9;
-    var Typed;
-    var TypedArrayConstructors = 'Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array'.split(',');
-    while(i < l)if (Typed = global[TypedArrayConstructors[i++]]) {
-        hide(Typed.prototype, TYPED, true);
-        hide(Typed.prototype, VIEW, true);
-    } else CONSTR = false;
-    module.exports = {
-        ABV: ABV,
-        CONSTR: CONSTR,
-        TYPED: TYPED,
-        VIEW: VIEW
-    };
-});
-var load227 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // https://tc39.github.io/ecma262/#sec-toindex
-    var toInteger = load30();
-    var toLength = load31();
-    module.exports = function(it) {
-        if (it === undefined) return 0;
-        var number = toInteger(it);
-        var length = toLength(number);
-        if (number !== length) throw RangeError('Wrong length!');
-        return length;
-    };
-});
-var load228 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var global = load();
-    var DESCRIPTORS = load3();
-    var LIBRARY = load14();
-    var $typed = load226();
-    var hide = load12();
-    var redefineAll = load216();
-    var fails = load2();
-    var anInstance = load208();
-    var toInteger = load30();
-    var toLength = load31();
-    var toIndex = load227();
-    var gOPN = load46().f;
-    var dP = load10().f;
-    var arrayFill = load186();
-    var setToStringTag = load23();
-    var ARRAY_BUFFER = 'ArrayBuffer';
-    var DATA_VIEW = 'DataView';
-    var PROTOTYPE = 'prototype';
-    var WRONG_LENGTH = 'Wrong length!';
-    var WRONG_INDEX = 'Wrong index!';
-    var $ArrayBuffer = global[ARRAY_BUFFER];
-    var $DataView = global[DATA_VIEW];
-    var Math1 = global.Math;
-    var RangeError1 = global.RangeError;
-    // eslint-disable-next-line no-shadow-restricted-names
-    var Infinity1 = global.Infinity;
-    var BaseBuffer = $ArrayBuffer;
-    var abs = Math1.abs;
-    var pow = Math1.pow;
-    var floor = Math1.floor;
-    var log = Math1.log;
-    var LN2 = Math1.LN2;
-    var BUFFER = 'buffer';
-    var BYTE_LENGTH = 'byteLength';
-    var BYTE_OFFSET = 'byteOffset';
-    var $BUFFER = DESCRIPTORS ? '_b' : BUFFER;
-    var $LENGTH = DESCRIPTORS ? '_l' : BYTE_LENGTH;
-    var $OFFSET = DESCRIPTORS ? '_o' : BYTE_OFFSET;
-    // IEEE754 conversions based on https://github.com/feross/ieee754
-    function packIEEE754(value, mLen, nBytes) {
-        var buffer = new Array(nBytes);
-        var eLen = nBytes * 8 - mLen - 1;
-        var eMax = (1 << eLen) - 1;
-        var eBias = eMax >> 1;
-        var rt = mLen === 23 ? pow(2, -24) - pow(2, -77) : 0;
-        var i = 0;
-        var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;
-        var e, m, c;
-        value = abs(value);
-        // eslint-disable-next-line no-self-compare
-        if (value != value || value === Infinity1) {
-            // eslint-disable-next-line no-self-compare
-            m = value != value ? 1 : 0;
-            e = eMax;
-        } else {
-            e = floor(log(value) / LN2);
-            if (value * (c = pow(2, -e)) < 1) {
-                e--;
-                c *= 2;
-            }
-            if (e + eBias >= 1) value += rt / c;
-            else value += rt * pow(2, 1 - eBias);
-            if (value * c >= 2) {
-                e++;
-                c /= 2;
-            }
-            if (e + eBias >= eMax) {
-                m = 0;
-                e = eMax;
-            } else if (e + eBias >= 1) {
-                m = (value * c - 1) * pow(2, mLen);
-                e = e + eBias;
-            } else {
-                m = value * pow(2, eBias - 1) * pow(2, mLen);
-                e = 0;
-            }
-        }
-        for(; mLen >= 8; buffer[i++] = m & 255, m /= 256, mLen -= 8);
-        e = e << mLen | m;
-        eLen += mLen;
-        for(; eLen > 0; buffer[i++] = e & 255, e /= 256, eLen -= 8);
-        buffer[--i] |= s * 128;
-        return buffer;
-    }
-    function unpackIEEE754(buffer, mLen, nBytes) {
-        var eLen = nBytes * 8 - mLen - 1;
-        var eMax = (1 << eLen) - 1;
-        var eBias = eMax >> 1;
-        var nBits = eLen - 7;
-        var i = nBytes - 1;
-        var s = buffer[i--];
-        var e = s & 127;
-        var m;
-        s >>= 7;
-        for(; nBits > 0; e = e * 256 + buffer[i], i--, nBits -= 8);
-        m = e & (1 << -nBits) - 1;
-        e >>= -nBits;
-        nBits += mLen;
-        for(; nBits > 0; m = m * 256 + buffer[i], i--, nBits -= 8);
-        if (e === 0) e = 1 - eBias;
-        else if (e === eMax) return m ? NaN : s ? -Infinity1 : Infinity1;
-        else {
-            m = m + pow(2, mLen);
-            e = e - eBias;
-        }
-        return (s ? -1 : 1) * m * pow(2, e - mLen);
-    }
-    function unpackI32(bytes) {
-        return bytes[3] << 24 | bytes[2] << 16 | bytes[1] << 8 | bytes[0];
-    }
-    function packI8(it) {
-        return [
-            it & 0xff
-        ];
-    }
-    function packI16(it) {
-        return [
-            it & 0xff,
-            it >> 8 & 0xff
-        ];
-    }
-    function packI32(it) {
-        return [
-            it & 0xff,
-            it >> 8 & 0xff,
-            it >> 16 & 0xff,
-            it >> 24 & 0xff
-        ];
-    }
-    function packF64(it) {
-        return packIEEE754(it, 52, 8);
-    }
-    function packF32(it) {
-        return packIEEE754(it, 23, 4);
-    }
-    function addGetter(C, key, internal) {
-        dP(C[PROTOTYPE], key, {
-            get: function() {
-                return this[internal];
-            }
-        });
-    }
-    function get(view, bytes, index, isLittleEndian) {
-        var numIndex = +index;
-        var intIndex = toIndex(numIndex);
-        if (intIndex + bytes > view[$LENGTH]) throw RangeError1(WRONG_INDEX);
-        var store = view[$BUFFER]._b;
-        var start = intIndex + view[$OFFSET];
-        var pack = store.slice(start, start + bytes);
-        return isLittleEndian ? pack : pack.reverse();
-    }
-    function set(view, bytes, index, conversion, value, isLittleEndian) {
-        var numIndex = +index;
-        var intIndex = toIndex(numIndex);
-        if (intIndex + bytes > view[$LENGTH]) throw RangeError1(WRONG_INDEX);
-        var store = view[$BUFFER]._b;
-        var start = intIndex + view[$OFFSET];
-        var pack = conversion(+value);
-        for(var i = 0; i < bytes; i++)store[start + i] = pack[isLittleEndian ? i : bytes - i - 1];
-    }
-    if (!$typed.ABV) {
-        $ArrayBuffer = function ArrayBuffer(length) {
-            anInstance(this, $ArrayBuffer, ARRAY_BUFFER);
-            var byteLength = toIndex(length);
-            this._b = arrayFill.call(new Array(byteLength), 0);
-            this[$LENGTH] = byteLength;
-        };
-        $DataView = function DataView(buffer, byteOffset, byteLength) {
-            anInstance(this, $DataView, DATA_VIEW);
-            anInstance(buffer, $ArrayBuffer, DATA_VIEW);
-            var bufferLength = buffer[$LENGTH];
-            var offset = toInteger(byteOffset);
-            if (offset < 0 || offset > bufferLength) throw RangeError1('Wrong offset!');
-            byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);
-            if (offset + byteLength > bufferLength) throw RangeError1(WRONG_LENGTH);
-            this[$BUFFER] = buffer;
-            this[$OFFSET] = offset;
-            this[$LENGTH] = byteLength;
-        };
-        if (DESCRIPTORS) {
-            addGetter($ArrayBuffer, BYTE_LENGTH, '_l');
-            addGetter($DataView, BUFFER, '_b');
-            addGetter($DataView, BYTE_LENGTH, '_l');
-            addGetter($DataView, BYTE_OFFSET, '_o');
-        }
-        redefineAll($DataView[PROTOTYPE], {
-            getInt8: function getInt8(byteOffset) {
-                return get(this, 1, byteOffset)[0] << 24 >> 24;
-            },
-            getUint8: function getUint8(byteOffset) {
-                return get(this, 1, byteOffset)[0];
-            },
-            getInt16: function getInt16(byteOffset /* , littleEndian */ ) {
-                var bytes = get(this, 2, byteOffset, arguments[1]);
-                return (bytes[1] << 8 | bytes[0]) << 16 >> 16;
-            },
-            getUint16: function getUint16(byteOffset /* , littleEndian */ ) {
-                var bytes = get(this, 2, byteOffset, arguments[1]);
-                return bytes[1] << 8 | bytes[0];
-            },
-            getInt32: function getInt32(byteOffset /* , littleEndian */ ) {
-                return unpackI32(get(this, 4, byteOffset, arguments[1]));
-            },
-            getUint32: function getUint32(byteOffset /* , littleEndian */ ) {
-                return unpackI32(get(this, 4, byteOffset, arguments[1])) >>> 0;
-            },
-            getFloat32: function getFloat32(byteOffset /* , littleEndian */ ) {
-                return unpackIEEE754(get(this, 4, byteOffset, arguments[1]), 23, 4);
-            },
-            getFloat64: function getFloat64(byteOffset /* , littleEndian */ ) {
-                return unpackIEEE754(get(this, 8, byteOffset, arguments[1]), 52, 8);
-            },
-            setInt8: function setInt8(byteOffset, value) {
-                set(this, 1, byteOffset, packI8, value);
-            },
-            setUint8: function setUint8(byteOffset, value) {
-                set(this, 1, byteOffset, packI8, value);
-            },
-            setInt16: function setInt16(byteOffset, value /* , littleEndian */ ) {
-                set(this, 2, byteOffset, packI16, value, arguments[2]);
-            },
-            setUint16: function setUint16(byteOffset, value /* , littleEndian */ ) {
-                set(this, 2, byteOffset, packI16, value, arguments[2]);
-            },
-            setInt32: function setInt32(byteOffset, value /* , littleEndian */ ) {
-                set(this, 4, byteOffset, packI32, value, arguments[2]);
-            },
-            setUint32: function setUint32(byteOffset, value /* , littleEndian */ ) {
-                set(this, 4, byteOffset, packI32, value, arguments[2]);
-            },
-            setFloat32: function setFloat32(byteOffset, value /* , littleEndian */ ) {
-                set(this, 4, byteOffset, packF32, value, arguments[2]);
-            },
-            setFloat64: function setFloat64(byteOffset, value /* , littleEndian */ ) {
-                set(this, 8, byteOffset, packF64, value, arguments[2]);
-            }
-        });
-    } else {
-        if (!fails(function() {
-            $ArrayBuffer(1);
-        }) || !fails(function() {
-            new $ArrayBuffer(-1); // eslint-disable-line no-new
-        }) || fails(function() {
-            new $ArrayBuffer(); // eslint-disable-line no-new
-            new $ArrayBuffer(1.5); // eslint-disable-line no-new
-            new $ArrayBuffer(NaN); // eslint-disable-line no-new
-            return $ArrayBuffer.name != ARRAY_BUFFER;
-        })) {
-            $ArrayBuffer = function ArrayBuffer(length) {
-                anInstance(this, $ArrayBuffer);
-                return new BaseBuffer(toIndex(length));
-            };
-            var ArrayBufferProto = $ArrayBuffer[PROTOTYPE] = BaseBuffer[PROTOTYPE];
-            for(var keys = gOPN(BaseBuffer), j = 0, key; keys.length > j;)if (!((key = keys[j++]) in $ArrayBuffer)) hide($ArrayBuffer, key, BaseBuffer[key]);
-            if (!LIBRARY) ArrayBufferProto.constructor = $ArrayBuffer;
-        }
-        // iOS Safari 7.x bug
-        var view = new $DataView(new $ArrayBuffer(2));
-        var $setInt8 = $DataView[PROTOTYPE].setInt8;
-        view.setInt8(0, 2147483648);
-        view.setInt8(1, 2147483649);
-        if (view.getInt8(0) || !view.getInt8(1)) redefineAll($DataView[PROTOTYPE], {
-            setInt8: function setInt8(byteOffset, value) {
-                $setInt8.call(this, byteOffset, value << 24 >> 24);
-            },
-            setUint8: function setUint8(byteOffset, value) {
-                $setInt8.call(this, byteOffset, value << 24 >> 24);
-            }
-        }, true);
-    }
-    setToStringTag($ArrayBuffer, ARRAY_BUFFER);
-    setToStringTag($DataView, DATA_VIEW);
-    hide($DataView[PROTOTYPE], $typed.VIEW, true);
-    exports[ARRAY_BUFFER] = $ArrayBuffer;
-    exports[DATA_VIEW] = $DataView;
-});
-var load229 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var $export = load20();
-    var $typed = load226();
-    var buffer = load228();
-    var anObject = load6();
-    var toAbsoluteIndex = load32();
-    var toLength = load31();
-    var isObject = load5();
-    var ArrayBuffer = load().ArrayBuffer;
-    var speciesConstructor = load206();
-    var $ArrayBuffer = buffer.ArrayBuffer;
-    var $DataView = buffer.DataView;
-    var $isView = $typed.ABV && ArrayBuffer.isView;
-    var $slice = $ArrayBuffer.prototype.slice;
-    var VIEW = $typed.VIEW;
-    var ARRAY_BUFFER = 'ArrayBuffer';
-    $export($export.G + $export.W + $export.F * (ArrayBuffer !== $ArrayBuffer), {
-        ArrayBuffer: $ArrayBuffer
-    });
-    $export($export.S + $export.F * !$typed.CONSTR, ARRAY_BUFFER, {
-        // 24.1.3.1 ArrayBuffer.isView(arg)
-        isView: function isView(it) {
-            return $isView && $isView(it) || isObject(it) && VIEW in it;
-        }
-    });
-    $export($export.P + $export.U + $export.F * load2()(function() {
-        return !new $ArrayBuffer(2).slice(1, undefined).byteLength;
-    }), ARRAY_BUFFER, {
-        // 24.1.4.3 ArrayBuffer.prototype.slice(start, end)
-        slice: function slice(start, end) {
-            if ($slice !== undefined && end === undefined) return $slice.call(anObject(this), start); // FF fix
-            var len = anObject(this).byteLength;
-            var first = toAbsoluteIndex(start, len);
-            var fin = toAbsoluteIndex(end === undefined ? len : end, len);
-            var result = new (speciesConstructor(this, $ArrayBuffer))(toLength(fin - first));
-            var viewS = new $DataView(this);
-            var viewT = new $DataView(result);
-            var index = 0;
-            while(first < fin)viewT.setUint8(index++, viewS.getUint8(first++));
-            return result;
-        }
-    });
-    load190()(ARRAY_BUFFER);
-});
-var load230 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var $export = load20();
-    $export($export.G + $export.W + $export.F * !load226().ABV, {
-        DataView: load228().DataView
-    });
-});
-var load231 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    if (load3()) {
-        var LIBRARY = load14();
-        var global = load();
-        var fails = load2();
-        var $export = load20();
-        var $typed = load226();
-        var $buffer = load228();
-        var ctx = load19();
-        var anInstance = load208();
-        var propertyDesc = load11();
-        var hide = load12();
-        var redefineAll = load216();
-        var toInteger = load30();
-        var toLength = load31();
-        var toIndex = load227();
-        var toAbsoluteIndex = load32();
-        var toPrimitive = load9();
-        var has = load1();
-        var classof = load71();
-        var isObject = load5();
-        var toObject = load42();
-        var isArrayIter = load160();
-        var create = load45();
-        var getPrototypeOf = load55();
-        var gOPN = load46().f;
-        var getIterFn = load162();
-        var uid = load13();
-        var wks = load22();
-        var createArrayMethod = load172();
-        var createArrayIncludes = load33();
-        var speciesConstructor = load206();
-        var ArrayIterators = load193();
-        var Iterators = load125();
-        var $iterDetect = load163();
-        var setSpecies = load190();
-        var arrayFill = load186();
-        var arrayCopyWithin = load183();
-        var $DP = load10();
-        var $GOPD = load48();
-        var dP = $DP.f;
-        var gOPD = $GOPD.f;
-        var RangeError1 = global.RangeError;
-        var TypeError1 = global.TypeError;
-        var Uint8Array = global.Uint8Array;
-        var ARRAY_BUFFER = 'ArrayBuffer';
-        var SHARED_BUFFER = 'Shared' + ARRAY_BUFFER;
-        var BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';
-        var PROTOTYPE = 'prototype';
-        var ArrayProto = Array[PROTOTYPE];
-        var $ArrayBuffer = $buffer.ArrayBuffer;
-        var $DataView = $buffer.DataView;
-        var arrayForEach = createArrayMethod(0);
-        var arrayFilter = createArrayMethod(2);
-        var arraySome = createArrayMethod(3);
-        var arrayEvery = createArrayMethod(4);
-        var arrayFind = createArrayMethod(5);
-        var arrayFindIndex = createArrayMethod(6);
-        var arrayIncludes = createArrayIncludes(true);
-        var arrayIndexOf = createArrayIncludes(false);
-        var arrayValues = ArrayIterators.values;
-        var arrayKeys = ArrayIterators.keys;
-        var arrayEntries = ArrayIterators.entries;
-        var arrayLastIndexOf = ArrayProto.lastIndexOf;
-        var arrayReduce = ArrayProto.reduce;
-        var arrayReduceRight = ArrayProto.reduceRight;
-        var arrayJoin = ArrayProto.join;
-        var arraySort = ArrayProto.sort;
-        var arraySlice = ArrayProto.slice;
-        var arrayToString = ArrayProto.toString;
-        var arrayToLocaleString = ArrayProto.toLocaleString;
-        var ITERATOR = wks('iterator');
-        var TAG = wks('toStringTag');
-        var TYPED_CONSTRUCTOR = uid('typed_constructor');
-        var DEF_CONSTRUCTOR = uid('def_constructor');
-        var ALL_CONSTRUCTORS = $typed.CONSTR;
-        var TYPED_ARRAY = $typed.TYPED;
-        var VIEW = $typed.VIEW;
-        var WRONG_LENGTH = 'Wrong length!';
-        var $map = createArrayMethod(1, function(O, length) {
-            return allocate(speciesConstructor(O, O[DEF_CONSTRUCTOR]), length);
-        });
-        var LITTLE_ENDIAN = fails(function() {
-            // eslint-disable-next-line no-undef
-            return new Uint8Array(new Uint16Array([
-                1
-            ]).buffer)[0] === 1;
-        });
-        var FORCED_SET = !!Uint8Array && !!Uint8Array[PROTOTYPE].set && fails(function() {
-            new Uint8Array(1).set({});
-        });
-        var toOffset = function(it, BYTES) {
-            var offset = toInteger(it);
-            if (offset < 0 || offset % BYTES) throw RangeError1('Wrong offset!');
-            return offset;
-        };
-        var validate = function(it) {
-            if (isObject(it) && TYPED_ARRAY in it) return it;
-            throw TypeError1(it + ' is not a typed array!');
-        };
-        var allocate = function(C, length) {
-            if (!(isObject(C) && TYPED_CONSTRUCTOR in C)) throw TypeError1('It is not a typed array constructor!');
-            return new C(length);
-        };
-        var speciesFromList = function(O, list) {
-            return fromList(speciesConstructor(O, O[DEF_CONSTRUCTOR]), list);
-        };
-        var fromList = function(C, list) {
-            var index = 0;
-            var length = list.length;
-            var result = allocate(C, length);
-            while(length > index)result[index] = list[index++];
-            return result;
-        };
-        var addGetter = function(it, key, internal) {
-            dP(it, key, {
-                get: function() {
-                    return this._d[internal];
-                }
-            });
-        };
-        var $from = function from(source /* , mapfn, thisArg */ ) {
-            var O = toObject(source);
-            var aLen = arguments.length;
-            var mapfn = aLen > 1 ? arguments[1] : undefined;
-            var mapping = mapfn !== undefined;
-            var iterFn = getIterFn(O);
-            var i, length, values, result, step, iterator;
-            if (iterFn != undefined && !isArrayIter(iterFn)) {
-                for(iterator = iterFn.call(O), values = [], i = 0; !(step = iterator.next()).done; i++)values.push(step.value);
-                O = values;
-            }
-            if (mapping && aLen > 2) mapfn = ctx(mapfn, arguments[2], 2);
-            for(i = 0, length = toLength(O.length), result = allocate(this, length); length > i; i++)result[i] = mapping ? mapfn(O[i], i) : O[i];
-            return result;
-        };
-        var $of = function of() {
-            var index = 0;
-            var length = arguments.length;
-            var result = allocate(this, length);
-            while(length > index)result[index] = arguments[index++];
-            return result;
-        };
-        // iOS Safari 6.x fails here
-        var TO_LOCALE_BUG = !!Uint8Array && fails(function() {
-            arrayToLocaleString.call(new Uint8Array(1));
-        });
-        var $toLocaleString = function toLocaleString() {
-            return arrayToLocaleString.apply(TO_LOCALE_BUG ? arraySlice.call(validate(this)) : validate(this), arguments);
-        };
-        var proto = {
-            copyWithin: function copyWithin(target, start /* , end */ ) {
-                return arrayCopyWithin.call(validate(this), target, start, arguments.length > 2 ? arguments[2] : undefined);
-            },
-            every: function every(callbackfn /* , thisArg */ ) {
-                return arrayEvery(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
-            },
-            fill: function fill(value /* , start, end */ ) {
-                return arrayFill.apply(validate(this), arguments);
-            },
-            filter: function filter(callbackfn /* , thisArg */ ) {
-                return speciesFromList(this, arrayFilter(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined));
-            },
-            find: function find(predicate /* , thisArg */ ) {
-                return arrayFind(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);
-            },
-            findIndex: function findIndex(predicate /* , thisArg */ ) {
-                return arrayFindIndex(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);
-            },
-            forEach: function forEach(callbackfn /* , thisArg */ ) {
-                arrayForEach(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
-            },
-            indexOf: function indexOf(searchElement /* , fromIndex */ ) {
-                return arrayIndexOf(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);
-            },
-            includes: function includes(searchElement /* , fromIndex */ ) {
-                return arrayIncludes(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);
-            },
-            join: function join(separator) {
-                return arrayJoin.apply(validate(this), arguments);
-            },
-            lastIndexOf: function lastIndexOf(searchElement /* , fromIndex */ ) {
-                return arrayLastIndexOf.apply(validate(this), arguments);
-            },
-            map: function map(mapfn /* , thisArg */ ) {
-                return $map(validate(this), mapfn, arguments.length > 1 ? arguments[1] : undefined);
-            },
-            reduce: function reduce(callbackfn /* , initialValue */ ) {
-                return arrayReduce.apply(validate(this), arguments);
-            },
-            reduceRight: function reduceRight(callbackfn /* , initialValue */ ) {
-                return arrayReduceRight.apply(validate(this), arguments);
-            },
-            reverse: function reverse() {
-                var that = this;
-                var length = validate(that).length;
-                var middle = Math.floor(length / 2);
-                var index = 0;
-                var value;
-                while(index < middle){
-                    value = that[index];
-                    that[index++] = that[--length];
-                    that[length] = value;
-                }
-                return that;
-            },
-            some: function some(callbackfn /* , thisArg */ ) {
-                return arraySome(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
-            },
-            sort: function sort(comparefn) {
-                return arraySort.call(validate(this), comparefn);
-            },
-            subarray: function subarray(begin, end) {
-                var O = validate(this);
-                var length = O.length;
-                var $begin = toAbsoluteIndex(begin, length);
-                return new (speciesConstructor(O, O[DEF_CONSTRUCTOR]))(O.buffer, O.byteOffset + $begin * O.BYTES_PER_ELEMENT, toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - $begin));
-            }
-        };
-        var $slice = function slice(start, end) {
-            return speciesFromList(this, arraySlice.call(validate(this), start, end));
-        };
-        var $set = function set(arrayLike /* , offset */ ) {
-            validate(this);
-            var offset = toOffset(arguments[1], 1);
-            var length = this.length;
-            var src = toObject(arrayLike);
-            var len = toLength(src.length);
-            var index = 0;
-            if (len + offset > length) throw RangeError1(WRONG_LENGTH);
-            while(index < len)this[offset + index] = src[index++];
-        };
-        var $iterators = {
-            entries: function entries() {
-                return arrayEntries.call(validate(this));
-            },
-            keys: function keys() {
-                return arrayKeys.call(validate(this));
-            },
-            values: function values() {
-                return arrayValues.call(validate(this));
-            }
-        };
-        var isTAIndex = function(target, key) {
-            return isObject(target) && target[TYPED_ARRAY] && typeof key != 'symbol' && key in target && String(+key) == String(key);
-        };
-        var $getDesc = function getOwnPropertyDescriptor(target, key) {
-            return isTAIndex(target, key = toPrimitive(key, true)) ? propertyDesc(2, target[key]) : gOPD(target, key);
-        };
-        var $setDesc = function defineProperty(target, key, desc) {
-            if (isTAIndex(target, key = toPrimitive(key, true)) && isObject(desc) && has(desc, 'value') && !has(desc, 'get') && !has(desc, 'set') && !desc.configurable && (!has(desc, 'writable') || desc.writable) && (!has(desc, 'enumerable') || desc.enumerable)) {
-                target[key] = desc.value;
-                return target;
-            }
-            return dP(target, key, desc);
-        };
-        if (!ALL_CONSTRUCTORS) {
-            $GOPD.f = $getDesc;
-            $DP.f = $setDesc;
-        }
-        $export($export.S + $export.F * !ALL_CONSTRUCTORS, 'Object', {
-            getOwnPropertyDescriptor: $getDesc,
-            defineProperty: $setDesc
-        });
-        if (fails(function() {
-            arrayToString.call({});
-        })) arrayToString = arrayToLocaleString = function toString() {
-            return arrayJoin.call(this);
-        };
-        var $TypedArrayPrototype$ = redefineAll({}, proto);
-        redefineAll($TypedArrayPrototype$, $iterators);
-        hide($TypedArrayPrototype$, ITERATOR, $iterators.values);
-        redefineAll($TypedArrayPrototype$, {
-            slice: $slice,
-            set: $set,
-            constructor: function() {},
-            toString: arrayToString,
-            toLocaleString: $toLocaleString
-        });
-        addGetter($TypedArrayPrototype$, 'buffer', 'b');
-        addGetter($TypedArrayPrototype$, 'byteOffset', 'o');
-        addGetter($TypedArrayPrototype$, 'byteLength', 'l');
-        addGetter($TypedArrayPrototype$, 'length', 'e');
-        dP($TypedArrayPrototype$, TAG, {
-            get: function() {
-                return this[TYPED_ARRAY];
-            }
-        });
-        // eslint-disable-next-line max-statements
-        module.exports = function(KEY, BYTES, wrapper, CLAMPED) {
-            CLAMPED = !!CLAMPED;
-            var NAME = KEY + (CLAMPED ? 'Clamped' : '') + 'Array';
-            var GETTER = 'get' + KEY;
-            var SETTER = 'set' + KEY;
-            var TypedArray = global[NAME];
-            var Base = TypedArray || {};
-            var TAC = TypedArray && getPrototypeOf(TypedArray);
-            var FORCED = !TypedArray || !$typed.ABV;
-            var O = {};
-            var TypedArrayPrototype = TypedArray && TypedArray[PROTOTYPE];
-            var getter = function(that, index) {
-                var data = that._d;
-                return data.v[GETTER](index * BYTES + data.o, LITTLE_ENDIAN);
-            };
-            var setter = function(that, index, value) {
-                var data = that._d;
-                if (CLAMPED) value = (value = Math.round(value)) < 0 ? 0 : value > 0xff ? 0xff : value & 0xff;
-                data.v[SETTER](index * BYTES + data.o, value, LITTLE_ENDIAN);
-            };
-            var addElement = function(that, index) {
-                dP(that, index, {
-                    get: function() {
-                        return getter(this, index);
-                    },
-                    set: function(value) {
-                        return setter(this, index, value);
-                    },
-                    enumerable: true
-                });
-            };
-            if (FORCED) {
-                TypedArray = wrapper(function(that, data, $offset, $length) {
-                    anInstance(that, TypedArray, NAME, '_d');
-                    var index = 0;
-                    var offset = 0;
-                    var buffer, byteLength, length, klass;
-                    if (!isObject(data)) {
-                        length = toIndex(data);
-                        byteLength = length * BYTES;
-                        buffer = new $ArrayBuffer(byteLength);
-                    } else if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) {
-                        buffer = data;
-                        offset = toOffset($offset, BYTES);
-                        var $len = data.byteLength;
-                        if ($length === undefined) {
-                            if ($len % BYTES) throw RangeError1(WRONG_LENGTH);
-                            byteLength = $len - offset;
-                            if (byteLength < 0) throw RangeError1(WRONG_LENGTH);
-                        } else {
-                            byteLength = toLength($length) * BYTES;
-                            if (byteLength + offset > $len) throw RangeError1(WRONG_LENGTH);
-                        }
-                        length = byteLength / BYTES;
-                    } else if (TYPED_ARRAY in data) return fromList(TypedArray, data);
-                    else return $from.call(TypedArray, data);
-                    hide(that, '_d', {
-                        b: buffer,
-                        o: offset,
-                        l: byteLength,
-                        e: length,
-                        v: new $DataView(buffer)
-                    });
-                    while(index < length)addElement(that, index++);
-                });
-                TypedArrayPrototype = TypedArray[PROTOTYPE] = create($TypedArrayPrototype$);
-                hide(TypedArrayPrototype, 'constructor', TypedArray);
-            } else if (!fails(function() {
-                TypedArray(1);
-            }) || !fails(function() {
-                new TypedArray(-1); // eslint-disable-line no-new
-            }) || !$iterDetect(function(iter) {
-                new TypedArray(); // eslint-disable-line no-new
-                new TypedArray(null); // eslint-disable-line no-new
-                new TypedArray(1.5); // eslint-disable-line no-new
-                new TypedArray(iter); // eslint-disable-line no-new
-            }, true)) {
-                TypedArray = wrapper(function(that, data, $offset, $length) {
-                    anInstance(that, TypedArray, NAME);
-                    var klass;
-                    // `ws` module bug, temporarily remove validation length for Uint8Array
-                    // https://github.com/websockets/ws/pull/645
-                    if (!isObject(data)) return new Base(toIndex(data));
-                    if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) return $length !== undefined ? new Base(data, toOffset($offset, BYTES), $length) : $offset !== undefined ? new Base(data, toOffset($offset, BYTES)) : new Base(data);
-                    if (TYPED_ARRAY in data) return fromList(TypedArray, data);
-                    return $from.call(TypedArray, data);
-                });
-                arrayForEach(TAC !== Function.prototype ? gOPN(Base).concat(gOPN(TAC)) : gOPN(Base), function(key) {
-                    if (!(key in TypedArray)) hide(TypedArray, key, Base[key]);
-                });
-                TypedArray[PROTOTYPE] = TypedArrayPrototype;
-                if (!LIBRARY) TypedArrayPrototype.constructor = TypedArray;
-            }
-            var $nativeIterator = TypedArrayPrototype[ITERATOR];
-            var CORRECT_ITER_NAME = !!$nativeIterator && ($nativeIterator.name == 'values' || $nativeIterator.name == undefined);
-            var $iterator = $iterators.values;
-            hide(TypedArray, TYPED_CONSTRUCTOR, true);
-            hide(TypedArrayPrototype, TYPED_ARRAY, NAME);
-            hide(TypedArrayPrototype, VIEW, true);
-            hide(TypedArrayPrototype, DEF_CONSTRUCTOR, TypedArray);
-            if (CLAMPED ? new TypedArray(1)[TAG] != NAME : !(TAG in TypedArrayPrototype)) dP(TypedArrayPrototype, TAG, {
-                get: function() {
-                    return NAME;
-                }
-            });
-            O[NAME] = TypedArray;
-            $export($export.G + $export.W + $export.F * (TypedArray != Base), O);
-            $export($export.S, NAME, {
-                BYTES_PER_ELEMENT: BYTES
-            });
-            $export($export.S + $export.F * fails(function() {
-                Base.of.call(TypedArray, 1);
-            }), NAME, {
-                from: $from,
-                of: $of
-            });
-            if (!(BYTES_PER_ELEMENT in TypedArrayPrototype)) hide(TypedArrayPrototype, BYTES_PER_ELEMENT, BYTES);
-            $export($export.P, NAME, proto);
-            setSpecies(NAME);
-            $export($export.P + $export.F * FORCED_SET, NAME, {
-                set: $set
-            });
-            $export($export.P + $export.F * !CORRECT_ITER_NAME, NAME, $iterators);
-            if (!LIBRARY && TypedArrayPrototype.toString != arrayToString) TypedArrayPrototype.toString = arrayToString;
-            $export($export.P + $export.F * fails(function() {
-                new TypedArray(1).slice();
-            }), NAME, {
-                slice: $slice
-            });
-            $export($export.P + $export.F * (fails(function() {
-                return [
-                    1,
-                    2
-                ].toLocaleString() != new TypedArray([
-                    1,
-                    2
-                ]).toLocaleString();
-            }) || !fails(function() {
-                TypedArrayPrototype.toLocaleString.call([
-                    1,
-                    2
-                ]);
-            })), NAME, {
-                toLocaleString: $toLocaleString
-            });
-            Iterators[NAME] = CORRECT_ITER_NAME ? $nativeIterator : $iterator;
-            if (!LIBRARY && !CORRECT_ITER_NAME) hide(TypedArrayPrototype, ITERATOR, $iterator);
-        };
-    } else module.exports = function() {};
-});
-var load232 = __swcpack_require__.bind(void 0, function(module, exports) {
-    load231()('Int8', 1, function(init) {
-        return function Int8Array(data, byteOffset, length) {
-            return init(this, data, byteOffset, length);
-        };
-    });
-});
-var load233 = __swcpack_require__.bind(void 0, function(module, exports) {
-    load231()('Uint8', 1, function(init) {
-        return function Uint8Array(data, byteOffset, length) {
-            return init(this, data, byteOffset, length);
-        };
-    });
-});
-var load234 = __swcpack_require__.bind(void 0, function(module, exports) {
-    load231()('Uint8', 1, function(init) {
-        return function Uint8ClampedArray(data, byteOffset, length) {
-            return init(this, data, byteOffset, length);
-        };
-    }, true);
-});
-var load235 = __swcpack_require__.bind(void 0, function(module, exports) {
-    load231()('Int16', 2, function(init) {
-        return function Int16Array(data, byteOffset, length) {
-            return init(this, data, byteOffset, length);
-        };
-    });
-});
-var load236 = __swcpack_require__.bind(void 0, function(module, exports) {
-    load231()('Uint16', 2, function(init) {
-        return function Uint16Array1(data, byteOffset, length) {
-            return init(this, data, byteOffset, length);
-        };
-    });
-});
-var load237 = __swcpack_require__.bind(void 0, function(module, exports) {
-    load231()('Int32', 4, function(init) {
-        return function Int32Array(data, byteOffset, length) {
-            return init(this, data, byteOffset, length);
-        };
-    });
-});
-var load238 = __swcpack_require__.bind(void 0, function(module, exports) {
-    load231()('Uint32', 4, function(init) {
-        return function Uint32Array(data, byteOffset, length) {
-            return init(this, data, byteOffset, length);
-        };
-    });
-});
-var load239 = __swcpack_require__.bind(void 0, function(module, exports) {
-    load231()('Float32', 4, function(init) {
-        return function Float32Array(data, byteOffset, length) {
-            return init(this, data, byteOffset, length);
-        };
-    });
-});
-var load240 = __swcpack_require__.bind(void 0, function(module, exports) {
-    load231()('Float64', 8, function(init) {
-        return function Float64Array(data, byteOffset, length) {
-            return init(this, data, byteOffset, length);
-        };
-    });
-});
-var load241 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 26.1.1 Reflect.apply(target, thisArgument, argumentsList)
-    var $export = load20();
-    var aFunction = load18();
-    var anObject = load6();
-    var rApply = (load().Reflect || {}).apply;
-    var fApply = Function.apply;
-    // MS Edge argumentsList argument is optional
-    $export($export.S + $export.F * !load2()(function() {
-        rApply(function() {});
-    }), 'Reflect', {
-        apply: function apply(target, thisArgument, argumentsList) {
-            var T = aFunction(target);
-            var L = anObject(argumentsList);
-            return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L);
-        }
-    });
-});
-var load242 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 26.1.2 Reflect.construct(target, argumentsList [, newTarget])
-    var $export = load20();
-    var create = load45();
-    var aFunction = load18();
-    var anObject = load6();
-    var isObject = load5();
-    var fails = load2();
-    var bind = load74();
-    var rConstruct = (load().Reflect || {}).construct;
-    // MS Edge supports only 2 arguments and argumentsList argument is optional
-    // FF Nightly sets third argument as `new.target`, but does not create `this` from it
-    var NEW_TARGET_BUG = fails(function() {
-        function F() {}
-        return !(rConstruct(function() {}, [], F) instanceof F);
-    });
-    var ARGS_BUG = !fails(function() {
-        rConstruct(function() {});
-    });
-    $export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {
-        construct: function construct(Target, args /* , newTarget */ ) {
-            aFunction(Target);
-            anObject(args);
-            var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);
-            if (ARGS_BUG && !NEW_TARGET_BUG) return rConstruct(Target, args, newTarget);
-            if (Target == newTarget) {
-                // w/o altered newTarget, optimization for 0-4 arguments
-                switch(args.length){
-                    case 0:
-                        return new Target();
-                    case 1:
-                        return new Target(args[0]);
-                    case 2:
-                        return new Target(args[0], args[1]);
-                    case 3:
-                        return new Target(args[0], args[1], args[2]);
-                    case 4:
-                        return new Target(args[0], args[1], args[2], args[3]);
-                }
-                // w/o altered newTarget, lot of arguments case
-                var $args = [
-                    null
-                ];
-                $args.push.apply($args, args);
-                return new (bind.apply(Target, $args))();
-            }
-            // with altered newTarget, not support built-in constructors
-            var proto = newTarget.prototype;
-            var instance = create(isObject(proto) ? proto : Object.prototype);
-            var result = Function.apply.call(Target, instance, args);
-            return isObject(result) ? result : instance;
-        }
-    });
-});
-var load243 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 26.1.3 Reflect.defineProperty(target, propertyKey, attributes)
-    var dP = load10();
-    var $export = load20();
-    var anObject = load6();
-    var toPrimitive = load9();
-    // MS Edge has broken Reflect.defineProperty - throwing instead of returning false
-    $export($export.S + $export.F * load2()(function() {
-        // eslint-disable-next-line no-undef
-        Reflect.defineProperty(dP.f({}, 1, {
-            value: 1
-        }), 1, {
-            value: 2
-        });
-    }), 'Reflect', {
-        defineProperty: function defineProperty(target, propertyKey, attributes) {
-            anObject(target);
-            propertyKey = toPrimitive(propertyKey, true);
-            anObject(attributes);
-            try {
-                dP.f(target, propertyKey, attributes);
-                return true;
-            } catch (e) {
-                return false;
-            }
-        }
-    });
-});
-var load244 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 26.1.4 Reflect.deleteProperty(target, propertyKey)
-    var $export = load20();
-    var gOPD = load48().f;
-    var anObject = load6();
-    $export($export.S, 'Reflect', {
-        deleteProperty: function deleteProperty(target, propertyKey) {
-            var desc = gOPD(anObject(target), propertyKey);
-            return desc && !desc.configurable ? false : delete target[propertyKey];
-        }
-    });
-});
-var load245 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    // 26.1.5 Reflect.enumerate(target)
-    var $export = load20();
-    var anObject = load6();
-    var Enumerate = function(iterated) {
-        this._t = anObject(iterated); // target
-        this._i = 0; // next index
-        var keys = this._k = []; // keys
-        var key;
-        for(key in iterated)keys.push(key);
-    };
-    load126()(Enumerate, 'Object', function() {
-        var that = this;
-        var keys = that._k;
-        var key;
-        do {
-            if (that._i >= keys.length) return {
-                value: undefined,
-                done: true
-            };
-        }while (!((key = keys[that._i++]) in that._t))
-        return {
-            value: key,
-            done: false
-        };
-    });
-    $export($export.S, 'Reflect', {
-        enumerate: function enumerate(target) {
-            return new Enumerate(target);
-        }
-    });
-});
-var load246 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 26.1.6 Reflect.get(target, propertyKey [, receiver])
-    var gOPD = load48();
-    var getPrototypeOf = load55();
-    var has = load1();
-    var $export = load20();
-    var isObject = load5();
-    var anObject = load6();
-    function get(target, propertyKey /* , receiver */ ) {
-        var receiver = arguments.length < 3 ? target : arguments[2];
-        var desc, proto;
-        if (anObject(target) === receiver) return target[propertyKey];
-        if (desc = gOPD.f(target, propertyKey)) return has(desc, 'value') ? desc.value : desc.get !== undefined ? desc.get.call(receiver) : undefined;
-        if (isObject(proto = getPrototypeOf(target))) return get(proto, propertyKey, receiver);
-    }
-    $export($export.S, 'Reflect', {
-        get: get
-    });
-});
-var load247 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey)
-    var gOPD = load48();
-    var $export = load20();
-    var anObject = load6();
-    $export($export.S, 'Reflect', {
-        getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) {
-            return gOPD.f(anObject(target), propertyKey);
-        }
-    });
-});
-var load248 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 26.1.8 Reflect.getPrototypeOf(target)
-    var $export = load20();
-    var getProto = load55();
-    var anObject = load6();
-    $export($export.S, 'Reflect', {
-        getPrototypeOf: function getPrototypeOf(target) {
-            return getProto(anObject(target));
-        }
-    });
-});
-var load249 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 26.1.9 Reflect.has(target, propertyKey)
-    var $export = load20();
-    $export($export.S, 'Reflect', {
-        has: function has(target, propertyKey) {
-            return propertyKey in target;
-        }
-    });
-});
-var load250 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 26.1.10 Reflect.isExtensible(target)
-    var $export = load20();
-    var anObject = load6();
-    var $isExtensible = Object.isExtensible;
-    $export($export.S, 'Reflect', {
-        isExtensible: function isExtensible(target) {
-            anObject(target);
-            return $isExtensible ? $isExtensible(target) : true;
-        }
-    });
-});
-var load251 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // all object keys, includes non-enumerable and symbols
-    var gOPN = load46();
-    var gOPS = load38();
-    var anObject = load6();
-    var Reflect1 = load().Reflect;
-    module.exports = Reflect1 && Reflect1.ownKeys || function ownKeys(it) {
-        var keys = gOPN.f(anObject(it));
-        var getSymbols = gOPS.f;
-        return getSymbols ? keys.concat(getSymbols(it)) : keys;
-    };
-});
-var load252 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 26.1.11 Reflect.ownKeys(target)
-    var $export = load20();
-    $export($export.S, 'Reflect', {
-        ownKeys: load251()
-    });
-});
-var load253 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 26.1.12 Reflect.preventExtensions(target)
-    var $export = load20();
-    var anObject = load6();
-    var $preventExtensions = Object.preventExtensions;
-    $export($export.S, 'Reflect', {
-        preventExtensions: function preventExtensions(target) {
-            anObject(target);
-            try {
-                if ($preventExtensions) $preventExtensions(target);
-                return true;
-            } catch (e) {
-                return false;
-            }
-        }
-    });
-});
-var load254 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 26.1.13 Reflect.set(target, propertyKey, V [, receiver])
-    var dP = load10();
-    var gOPD = load48();
-    var getPrototypeOf = load55();
-    var has = load1();
-    var $export = load20();
-    var createDesc = load11();
-    var anObject = load6();
-    var isObject = load5();
-    function set(target, propertyKey, V /* , receiver */ ) {
-        var receiver = arguments.length < 4 ? target : arguments[3];
-        var ownDesc = gOPD.f(anObject(target), propertyKey);
-        var existingDescriptor, proto;
-        if (!ownDesc) {
-            if (isObject(proto = getPrototypeOf(target))) return set(proto, propertyKey, V, receiver);
-            ownDesc = createDesc(0);
-        }
-        if (has(ownDesc, 'value')) {
-            if (ownDesc.writable === false || !isObject(receiver)) return false;
-            if (existingDescriptor = gOPD.f(receiver, propertyKey)) {
-                if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false;
-                existingDescriptor.value = V;
-                dP.f(receiver, propertyKey, existingDescriptor);
-            } else dP.f(receiver, propertyKey, createDesc(0, V));
-            return true;
-        }
-        return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true);
-    }
-    $export($export.S, 'Reflect', {
-        set: set
-    });
-});
-var load255 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // 26.1.14 Reflect.setPrototypeOf(target, proto)
-    var $export = load20();
-    var setProto = load69();
-    if (setProto) $export($export.S, 'Reflect', {
-        setPrototypeOf: function setPrototypeOf(target, proto) {
-            setProto.check(target, proto);
-            try {
-                setProto.set(target, proto);
-                return true;
-            } catch (e) {
-                return false;
-            }
-        }
-    });
-});
-var load256 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    // https://github.com/tc39/Array.prototype.includes
-    var $export = load20();
-    var $includes = load33()(true);
-    $export($export.P, 'Array', {
-        includes: function includes(el /* , fromIndex = 0 */ ) {
-            return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);
-        }
-    });
-    load184()('includes');
-});
-var load257 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    // https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray
-    var isArray = load41();
-    var isObject = load5();
-    var toLength = load31();
-    var ctx = load19();
-    var IS_CONCAT_SPREADABLE = load22()('isConcatSpreadable');
-    function flattenIntoArray(target, original, source, sourceLen, start, depth, mapper, thisArg) {
-        var targetIndex = start;
-        var sourceIndex = 0;
-        var mapFn = mapper ? ctx(mapper, thisArg, 3) : false;
-        var element, spreadable;
-        while(sourceIndex < sourceLen){
-            if (sourceIndex in source) {
-                element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];
-                spreadable = false;
-                if (isObject(element)) {
-                    spreadable = element[IS_CONCAT_SPREADABLE];
-                    spreadable = spreadable !== undefined ? !!spreadable : isArray(element);
-                }
-                if (spreadable && depth > 0) targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;
-                else {
-                    if (targetIndex >= 0x1fffffffffffff) throw TypeError();
-                    target[targetIndex] = element;
-                }
-                targetIndex++;
-            }
-            sourceIndex++;
-        }
-        return targetIndex;
-    }
-    module.exports = flattenIntoArray;
-});
-var load258 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    // https://tc39.github.io/proposal-flatMap/#sec-Array.prototype.flatMap
-    var $export = load20();
-    var flattenIntoArray = load257();
-    var toObject = load42();
-    var toLength = load31();
-    var aFunction = load18();
-    var arraySpeciesCreate = load171();
-    $export($export.P, 'Array', {
-        flatMap: function flatMap(callbackfn /* , thisArg */ ) {
-            var O = toObject(this);
-            var sourceLen, A;
-            aFunction(callbackfn);
-            sourceLen = toLength(O.length);
-            A = arraySpeciesCreate(O, 0);
-            flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments[1]);
-            return A;
-        }
-    });
-    load184()('flatMap');
-});
-var load259 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    // https://tc39.github.io/proposal-flatMap/#sec-Array.prototype.flatten
-    var $export = load20();
-    var flattenIntoArray = load257();
-    var toObject = load42();
-    var toLength = load31();
-    var toInteger = load30();
-    var arraySpeciesCreate = load171();
-    $export($export.P, 'Array', {
-        flatten: function flatten() {
-            var depthArg = arguments[0];
-            var O = toObject(this);
-            var sourceLen = toLength(O.length);
-            var A = arraySpeciesCreate(O, 0);
-            flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));
-            return A;
-        }
-    });
-    load184()('flatten');
-});
-var load260 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    // https://github.com/mathiasbynens/String.prototype.at
-    var $export = load20();
-    var $at = load124()(true);
-    var $fails = load2();
-    var FORCED = $fails(function() {
-        return '𠮷'.at(0) !== '𠮷';
-    });
-    $export($export.P + $export.F * FORCED, 'String', {
-        at: function at(pos) {
-            return $at(this, pos);
-        }
-    });
-});
-var load261 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // https://github.com/tc39/proposal-string-pad-start-end
-    var toLength = load31();
-    var repeat = load87();
-    var defined = load28();
-    module.exports = function(that, maxLength, fillString, left) {
-        var S = String(defined(that));
-        var stringLength = S.length;
-        var fillStr = fillString === undefined ? ' ' : String(fillString);
-        var intMaxLength = toLength(maxLength);
-        if (intMaxLength <= stringLength || fillStr == '') return S;
-        var fillLen = intMaxLength - stringLength;
-        var stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length));
-        if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen);
-        return left ? stringFiller + S : S + stringFiller;
-    };
-});
-var load262 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    // https://github.com/tc39/proposal-string-pad-start-end
-    var $export = load20();
-    var $pad = load261();
-    var userAgent = load214();
-    // https://github.com/zloirock/core-js/issues/280
-    var WEBKIT_BUG = /Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(userAgent);
-    $export($export.P + $export.F * WEBKIT_BUG, 'String', {
-        padStart: function padStart(maxLength /* , fillString = ' ' */ ) {
-            return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);
-        }
-    });
-});
-var load263 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    // https://github.com/tc39/proposal-string-pad-start-end
-    var $export = load20();
-    var $pad = load261();
-    var userAgent = load214();
-    // https://github.com/zloirock/core-js/issues/280
-    var WEBKIT_BUG = /Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(userAgent);
-    $export($export.P + $export.F * WEBKIT_BUG, 'String', {
-        padEnd: function padEnd(maxLength /* , fillString = ' ' */ ) {
-            return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);
-        }
-    });
-});
-var load264 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    // https://github.com/sebmarkbage/ecmascript-string-left-right-trim
-    load79()('trimLeft', function($trim) {
-        return function trimLeft() {
-            return $trim(this, 1);
-        };
-    }, 'trimStart');
-});
-var load265 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    // https://github.com/sebmarkbage/ecmascript-string-left-right-trim
-    load79()('trimRight', function($trim) {
-        return function trimRight() {
-            return $trim(this, 2);
-        };
-    }, 'trimEnd');
-});
-var load266 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    // https://tc39.github.io/String.prototype.matchAll/
-    var $export = load20();
-    var defined = load28();
-    var toLength = load31();
-    var isRegExp = load130();
-    var getFlags = load194();
-    var RegExpProto = RegExp.prototype;
-    var $RegExpStringIterator = function(regexp, string) {
-        this._r = regexp;
-        this._s = string;
-    };
-    load126()($RegExpStringIterator, 'RegExp String', function next() {
-        var match = this._r.exec(this._s);
-        return {
-            value: match,
-            done: match === null
-        };
-    });
-    $export($export.P, 'String', {
-        matchAll: function matchAll(regexp) {
-            defined(this);
-            if (!isRegExp(regexp)) throw TypeError(regexp + ' is not a regexp!');
-            var S = String(this);
-            var flags = 'flags' in RegExpProto ? String(regexp.flags) : getFlags.call(regexp);
-            var rx = new RegExp(regexp.source, ~flags.indexOf('g') ? flags : 'g' + flags);
-            rx.lastIndex = toLength(regexp.lastIndex);
-            return new $RegExpStringIterator(rx, S);
-        }
-    });
-});
-var load267 = __swcpack_require__.bind(void 0, function(module, exports) {
-    load25()('asyncIterator');
-});
-var load268 = __swcpack_require__.bind(void 0, function(module, exports) {
-    load25()('observable');
-});
-var load269 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // https://github.com/tc39/proposal-object-getownpropertydescriptors
-    var $export = load20();
-    var ownKeys = load251();
-    var toIObject = load29();
-    var gOPD = load48();
-    var createProperty = load161();
-    $export($export.S, 'Object', {
-        getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {
-            var O = toIObject(object);
-            var getDesc = gOPD.f;
-            var keys = ownKeys(O);
-            var result = {};
-            var i = 0;
-            var key, desc;
-            while(keys.length > i){
-                desc = getDesc(O, key = keys[i++]);
-                if (desc !== undefined) createProperty(result, key, desc);
-            }
-            return result;
-        }
-    });
-});
-var load270 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var DESCRIPTORS = load3();
-    var getKeys = load37();
-    var toIObject = load29();
-    var isEnum = load39().f;
-    module.exports = function(isEntries) {
-        return function(it) {
-            var O = toIObject(it);
-            var keys = getKeys(O);
-            var length = keys.length;
-            var i = 0;
-            var result = [];
-            var key;
-            while(length > i){
-                key = keys[i++];
-                if (!DESCRIPTORS || isEnum.call(O, key)) result.push(isEntries ? [
-                    key,
-                    O[key]
-                ] : O[key]);
-            }
-            return result;
-        };
-    };
-});
-var load271 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // https://github.com/tc39/proposal-object-values-entries
-    var $export = load20();
-    var $values = load270()(false);
-    $export($export.S, 'Object', {
-        values: function values(it) {
-            return $values(it);
-        }
-    });
-});
-var load272 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // https://github.com/tc39/proposal-object-values-entries
-    var $export = load20();
-    var $entries = load270()(true);
-    $export($export.S, 'Object', {
-        entries: function entries(it) {
-            return $entries(it);
-        }
-    });
-});
-var load273 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    // Forced replacement prototype accessors methods
-    module.exports = load14() || !load2()(function() {
-        var K = Math.random();
-        // In FF throws only define methods
-        // eslint-disable-next-line no-undef, no-useless-call
-        __defineSetter__.call(null, K, function() {});
-        delete load()[K];
-    });
-});
-var load274 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var $export = load20();
-    var toObject = load42();
-    var aFunction = load18();
-    var $defineProperty = load10();
-    // B.2.2.2 Object.prototype.__defineGetter__(P, getter)
-    load3() && $export($export.P + load273(), 'Object', {
-        __defineGetter__: function __defineGetter__(P, getter) {
-            $defineProperty.f(toObject(this), P, {
-                get: aFunction(getter),
-                enumerable: true,
-                configurable: true
-            });
-        }
-    });
-});
-var load275 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var $export = load20();
-    var toObject = load42();
-    var aFunction = load18();
-    var $defineProperty = load10();
-    // B.2.2.3 Object.prototype.__defineSetter__(P, setter)
-    load3() && $export($export.P + load273(), 'Object', {
-        __defineSetter__: function __defineSetter__1(P, setter) {
-            $defineProperty.f(toObject(this), P, {
-                set: aFunction(setter),
-                enumerable: true,
-                configurable: true
-            });
-        }
-    });
-});
-var load276 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var $export = load20();
-    var toObject = load42();
-    var toPrimitive = load9();
-    var getPrototypeOf = load55();
-    var getOwnPropertyDescriptor = load48().f;
-    // B.2.2.4 Object.prototype.__lookupGetter__(P)
-    load3() && $export($export.P + load273(), 'Object', {
-        __lookupGetter__: function __lookupGetter__(P) {
-            var O = toObject(this);
-            var K = toPrimitive(P, true);
-            var D;
-            do {
-                if (D = getOwnPropertyDescriptor(O, K)) return D.get;
-            }while (O = getPrototypeOf(O))
-        }
-    });
-});
-var load277 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var $export = load20();
-    var toObject = load42();
-    var toPrimitive = load9();
-    var getPrototypeOf = load55();
-    var getOwnPropertyDescriptor = load48().f;
-    // B.2.2.5 Object.prototype.__lookupSetter__(P)
-    load3() && $export($export.P + load273(), 'Object', {
-        __lookupSetter__: function __lookupSetter__(P) {
-            var O = toObject(this);
-            var K = toPrimitive(P, true);
-            var D;
-            do {
-                if (D = getOwnPropertyDescriptor(O, K)) return D.set;
-            }while (O = getPrototypeOf(O))
-        }
-    });
-});
-var load278 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var forOf = load209();
-    module.exports = function(iter, ITERATOR) {
-        var result = [];
-        forOf(iter, false, result.push, result, ITERATOR);
-        return result;
-    };
-});
-var load279 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // https://github.com/DavidBruant/Map-Set.prototype.toJSON
-    var classof = load71();
-    var from = load278();
-    module.exports = function(NAME) {
-        return function toJSON() {
-            if (classof(this) != NAME) throw TypeError(NAME + "#toJSON isn't generic");
-            return from(this);
-        };
-    };
-});
-var load280 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // https://github.com/DavidBruant/Map-Set.prototype.toJSON
-    var $export = load20();
-    $export($export.P + $export.R, 'Map', {
-        toJSON: load279()('Map')
-    });
-});
-var load281 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // https://github.com/DavidBruant/Map-Set.prototype.toJSON
-    var $export = load20();
-    $export($export.P + $export.R, 'Set', {
-        toJSON: load279()('Set')
-    });
-});
-var load282 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    // https://tc39.github.io/proposal-setmap-offrom/
-    var $export = load20();
-    module.exports = function(COLLECTION) {
-        $export($export.S, COLLECTION, {
-            of: function of() {
-                var length = arguments.length;
-                var A = new Array(length);
-                while(length--)A[length] = arguments[length];
-                return new this(A);
-            }
-        });
-    };
-});
-var load283 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // https://tc39.github.io/proposal-setmap-offrom/#sec-map.of
-    load282()('Map');
-});
-var load284 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // https://tc39.github.io/proposal-setmap-offrom/#sec-set.of
-    load282()('Set');
-});
-var load285 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.of
-    load282()('WeakMap');
-});
-var load286 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.of
-    load282()('WeakSet');
-});
-var load287 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    // https://tc39.github.io/proposal-setmap-offrom/
-    var $export = load20();
-    var aFunction = load18();
-    var ctx = load19();
-    var forOf = load209();
-    module.exports = function(COLLECTION) {
-        $export($export.S, COLLECTION, {
-            from: function from(source /* , mapFn, thisArg */ ) {
-                var mapFn = arguments[1];
-                var mapping, A, n, cb;
-                aFunction(this);
-                mapping = mapFn !== undefined;
-                if (mapping) aFunction(mapFn);
-                if (source == undefined) return new this();
-                A = [];
-                if (mapping) {
-                    n = 0;
-                    cb = ctx(mapFn, arguments[2], 2);
-                    forOf(source, false, function(nextItem) {
-                        A.push(cb(nextItem, n++));
-                    });
-                } else forOf(source, false, A.push, A);
-                return new this(A);
-            }
-        });
-    };
-});
-var load288 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // https://tc39.github.io/proposal-setmap-offrom/#sec-map.from
-    load287()('Map');
-});
-var load289 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // https://tc39.github.io/proposal-setmap-offrom/#sec-set.from
-    load287()('Set');
-});
-var load290 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.from
-    load287()('WeakMap');
-});
-var load291 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.from
-    load287()('WeakSet');
-});
-var load292 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // https://github.com/tc39/proposal-global
-    var $export = load20();
-    $export($export.G, {
-        global: load()
-    });
-});
-var load293 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // https://github.com/tc39/proposal-global
-    var $export = load20();
-    $export($export.S, 'System', {
-        global: load()
-    });
-});
-var load294 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // https://github.com/ljharb/proposal-is-error
-    var $export = load20();
-    var cof = load26();
-    $export($export.S, 'Error', {
-        isError: function isError(it) {
-            return cof(it) === 'Error';
-        }
-    });
-});
-var load295 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // https://rwaldron.github.io/proposal-math-extensions/
-    var $export = load20();
-    $export($export.S, 'Math', {
-        clamp: function clamp(x, lower, upper) {
-            return Math.min(upper, Math.max(lower, x));
-        }
-    });
-});
-var load296 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // https://rwaldron.github.io/proposal-math-extensions/
-    var $export = load20();
-    $export($export.S, 'Math', {
-        DEG_PER_RAD: Math.PI / 180
-    });
-});
-var load297 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // https://rwaldron.github.io/proposal-math-extensions/
-    var $export = load20();
-    var RAD_PER_DEG = 180 / Math.PI;
-    $export($export.S, 'Math', {
-        degrees: function degrees(radians) {
-            return radians * RAD_PER_DEG;
-        }
-    });
-});
-var load298 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // https://rwaldron.github.io/proposal-math-extensions/
-    module.exports = Math.scale || function scale(x, inLow, inHigh, outLow, outHigh) {
-        if (arguments.length === 0 || x != x || inLow != inLow || inHigh != inHigh || outLow != outLow || outHigh != outHigh) return NaN;
-        if (x === Infinity || x === -Infinity) return x;
-        return (x - inLow) * (outHigh - outLow) / (inHigh - inLow) + outLow;
-    };
-});
-var load299 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // https://rwaldron.github.io/proposal-math-extensions/
-    var $export = load20();
-    var scale = load298();
-    var fround = load110();
-    $export($export.S, 'Math', {
-        fscale: function fscale(x, inLow, inHigh, outLow, outHigh) {
-            return fround(scale(x, inLow, inHigh, outLow, outHigh));
-        }
-    });
-});
-var load300 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // https://gist.github.com/BrendanEich/4294d5c212a6d2254703
-    var $export = load20();
-    $export($export.S, 'Math', {
-        iaddh: function iaddh(x0, x1, y0, y1) {
-            var $x0 = x0 >>> 0;
-            var $x1 = x1 >>> 0;
-            var $y0 = y0 >>> 0;
-            return $x1 + (y1 >>> 0) + (($x0 & $y0 | ($x0 | $y0) & ~($x0 + $y0 >>> 0)) >>> 31) | 0;
-        }
-    });
-});
-var load301 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // https://gist.github.com/BrendanEich/4294d5c212a6d2254703
-    var $export = load20();
-    $export($export.S, 'Math', {
-        isubh: function isubh(x0, x1, y0, y1) {
-            var $x0 = x0 >>> 0;
-            var $x1 = x1 >>> 0;
-            var $y0 = y0 >>> 0;
-            return $x1 - (y1 >>> 0) - ((~$x0 & $y0 | ~($x0 ^ $y0) & $x0 - $y0 >>> 0) >>> 31) | 0;
-        }
-    });
-});
-var load302 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // https://gist.github.com/BrendanEich/4294d5c212a6d2254703
-    var $export = load20();
-    $export($export.S, 'Math', {
-        imulh: function imulh(u, v) {
-            var UINT16 = 0xffff;
-            var $u = +u;
-            var $v = +v;
-            var u0 = $u & UINT16;
-            var v0 = $v & UINT16;
-            var u1 = $u >> 16;
-            var v1 = $v >> 16;
-            var t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);
-            return u1 * v1 + (t >> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >> 16);
-        }
-    });
-});
-var load303 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // https://rwaldron.github.io/proposal-math-extensions/
-    var $export = load20();
-    $export($export.S, 'Math', {
-        RAD_PER_DEG: 180 / Math.PI
-    });
-});
-var load304 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // https://rwaldron.github.io/proposal-math-extensions/
-    var $export = load20();
-    var DEG_PER_RAD = Math.PI / 180;
-    $export($export.S, 'Math', {
-        radians: function radians(degrees) {
-            return degrees * DEG_PER_RAD;
-        }
-    });
-});
-var load305 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // https://rwaldron.github.io/proposal-math-extensions/
-    var $export = load20();
-    $export($export.S, 'Math', {
-        scale: load298()
-    });
-});
-var load306 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // https://gist.github.com/BrendanEich/4294d5c212a6d2254703
-    var $export = load20();
-    $export($export.S, 'Math', {
-        umulh: function umulh(u, v) {
-            var UINT16 = 0xffff;
-            var $u = +u;
-            var $v = +v;
-            var u0 = $u & UINT16;
-            var v0 = $v & UINT16;
-            var u1 = $u >>> 16;
-            var v1 = $v >>> 16;
-            var t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);
-            return u1 * v1 + (t >>> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >>> 16);
-        }
-    });
-});
-var load307 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // http://jfbastien.github.io/papers/Math.signbit.html
-    var $export = load20();
-    $export($export.S, 'Math', {
-        signbit: function signbit(x) {
-            // eslint-disable-next-line no-self-compare
-            return (x = +x) != x ? x : x == 0 ? 1 / x == Infinity : x > 0;
-        }
-    });
-});
-var load308 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // https://github.com/tc39/proposal-promise-finally
-    'use strict';
-    var $export = load20();
-    var core = load4();
-    var global = load();
-    var speciesConstructor = load206();
-    var promiseResolve = load215();
-    $export($export.P + $export.R, 'Promise', {
-        'finally': function(onFinally) {
-            var C = speciesConstructor(this, core.Promise || global.Promise);
-            var isFunction = typeof onFinally == 'function';
-            return this.then(isFunction ? function(x) {
-                return promiseResolve(C, onFinally()).then(function() {
-                    return x;
-                });
-            } : onFinally, isFunction ? function(e) {
-                return promiseResolve(C, onFinally()).then(function() {
-                    throw e;
-                });
-            } : onFinally);
-        }
-    });
-});
-var load309 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    // https://github.com/tc39/proposal-promise-try
-    var $export = load20();
-    var newPromiseCapability = load212();
-    var perform = load213();
-    $export($export.S, 'Promise', {
-        'try': function(callbackfn) {
-            var promiseCapability = newPromiseCapability.f(this);
-            var result = perform(callbackfn);
-            (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v);
-            return promiseCapability.promise;
-        }
-    });
-});
-var load310 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var Map = load221();
-    var $export = load20();
-    var shared = load15()('metadata');
-    var store = shared.store || (shared.store = new (load224())());
-    var getOrCreateMetadataMap = function(target, targetKey, create) {
-        var targetMetadata = store.get(target);
-        if (!targetMetadata) {
-            if (!create) return undefined;
-            store.set(target, targetMetadata = new Map());
-        }
-        var keyMetadata = targetMetadata.get(targetKey);
-        if (!keyMetadata) {
-            if (!create) return undefined;
-            targetMetadata.set(targetKey, keyMetadata = new Map());
-        }
-        return keyMetadata;
-    };
-    var ordinaryHasOwnMetadata = function(MetadataKey, O, P) {
-        var metadataMap = getOrCreateMetadataMap(O, P, false);
-        return metadataMap === undefined ? false : metadataMap.has(MetadataKey);
-    };
-    var ordinaryGetOwnMetadata = function(MetadataKey, O, P) {
-        var metadataMap = getOrCreateMetadataMap(O, P, false);
-        return metadataMap === undefined ? undefined : metadataMap.get(MetadataKey);
-    };
-    var ordinaryDefineOwnMetadata = function(MetadataKey, MetadataValue, O, P) {
-        getOrCreateMetadataMap(O, P, true).set(MetadataKey, MetadataValue);
-    };
-    var ordinaryOwnMetadataKeys = function(target, targetKey) {
-        var metadataMap = getOrCreateMetadataMap(target, targetKey, false);
-        var keys = [];
-        if (metadataMap) metadataMap.forEach(function(_, key) {
-            keys.push(key);
-        });
-        return keys;
-    };
-    var toMetaKey = function(it) {
-        return it === undefined || typeof it == 'symbol' ? it : String(it);
-    };
-    var exp = function(O) {
-        $export($export.S, 'Reflect', O);
-    };
-    module.exports = {
-        store: store,
-        map: getOrCreateMetadataMap,
-        has: ordinaryHasOwnMetadata,
-        get: ordinaryGetOwnMetadata,
-        set: ordinaryDefineOwnMetadata,
-        keys: ordinaryOwnMetadataKeys,
-        key: toMetaKey,
-        exp: exp
-    };
-});
-var load311 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var metadata = load310();
-    var anObject = load6();
-    var toMetaKey = metadata.key;
-    var ordinaryDefineOwnMetadata = metadata.set;
-    metadata.exp({
-        defineMetadata: function defineMetadata(metadataKey, metadataValue, target, targetKey) {
-            ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetaKey(targetKey));
-        }
-    });
-});
-var load312 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var metadata = load310();
-    var anObject = load6();
-    var toMetaKey = metadata.key;
-    var getOrCreateMetadataMap = metadata.map;
-    var store = metadata.store;
-    metadata.exp({
-        deleteMetadata: function deleteMetadata(metadataKey, target /* , targetKey */ ) {
-            var targetKey = arguments.length < 3 ? undefined : toMetaKey(arguments[2]);
-            var metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false);
-            if (metadataMap === undefined || !metadataMap['delete'](metadataKey)) return false;
-            if (metadataMap.size) return true;
-            var targetMetadata = store.get(target);
-            targetMetadata['delete'](targetKey);
-            return !!targetMetadata.size || store['delete'](target);
-        }
-    });
-});
-var load313 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var metadata = load310();
-    var anObject = load6();
-    var getPrototypeOf = load55();
-    var ordinaryHasOwnMetadata = metadata.has;
-    var ordinaryGetOwnMetadata = metadata.get;
-    var toMetaKey = metadata.key;
-    var ordinaryGetMetadata = function(MetadataKey, O, P) {
-        var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);
-        if (hasOwn) return ordinaryGetOwnMetadata(MetadataKey, O, P);
-        var parent = getPrototypeOf(O);
-        return parent !== null ? ordinaryGetMetadata(MetadataKey, parent, P) : undefined;
-    };
-    metadata.exp({
-        getMetadata: function getMetadata(metadataKey, target /* , targetKey */ ) {
-            return ordinaryGetMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));
-        }
-    });
-});
-var load314 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var Set = load222();
-    var from = load278();
-    var metadata = load310();
-    var anObject = load6();
-    var getPrototypeOf = load55();
-    var ordinaryOwnMetadataKeys = metadata.keys;
-    var toMetaKey = metadata.key;
-    var ordinaryMetadataKeys = function(O, P) {
-        var oKeys = ordinaryOwnMetadataKeys(O, P);
-        var parent = getPrototypeOf(O);
-        if (parent === null) return oKeys;
-        var pKeys = ordinaryMetadataKeys(parent, P);
-        return pKeys.length ? oKeys.length ? from(new Set(oKeys.concat(pKeys))) : pKeys : oKeys;
-    };
-    metadata.exp({
-        getMetadataKeys: function getMetadataKeys(target /* , targetKey */ ) {
-            return ordinaryMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));
-        }
-    });
-});
-var load315 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var metadata = load310();
-    var anObject = load6();
-    var ordinaryGetOwnMetadata = metadata.get;
-    var toMetaKey = metadata.key;
-    metadata.exp({
-        getOwnMetadata: function getOwnMetadata(metadataKey, target /* , targetKey */ ) {
-            return ordinaryGetOwnMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));
-        }
-    });
-});
-var load316 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var metadata = load310();
-    var anObject = load6();
-    var ordinaryOwnMetadataKeys = metadata.keys;
-    var toMetaKey = metadata.key;
-    metadata.exp({
-        getOwnMetadataKeys: function getOwnMetadataKeys(target /* , targetKey */ ) {
-            return ordinaryOwnMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));
-        }
-    });
-});
-var load317 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var metadata = load310();
-    var anObject = load6();
-    var getPrototypeOf = load55();
-    var ordinaryHasOwnMetadata = metadata.has;
-    var toMetaKey = metadata.key;
-    var ordinaryHasMetadata = function(MetadataKey, O, P) {
-        var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);
-        if (hasOwn) return true;
-        var parent = getPrototypeOf(O);
-        return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false;
-    };
-    metadata.exp({
-        hasMetadata: function hasMetadata(metadataKey, target /* , targetKey */ ) {
-            return ordinaryHasMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));
-        }
-    });
-});
-var load318 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var metadata = load310();
-    var anObject = load6();
-    var ordinaryHasOwnMetadata = metadata.has;
-    var toMetaKey = metadata.key;
-    metadata.exp({
-        hasOwnMetadata: function hasOwnMetadata(metadataKey, target /* , targetKey */ ) {
-            return ordinaryHasOwnMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));
-        }
-    });
-});
-var load319 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var $metadata = load310();
-    var anObject = load6();
-    var aFunction = load18();
-    var toMetaKey = $metadata.key;
-    var ordinaryDefineOwnMetadata = $metadata.set;
-    $metadata.exp({
-        metadata: function metadata(metadataKey, metadataValue) {
-            return function decorator(target, targetKey) {
-                ordinaryDefineOwnMetadata(metadataKey, metadataValue, (targetKey !== undefined ? anObject : aFunction)(target), toMetaKey(targetKey));
-            };
-        }
-    });
-});
-var load320 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // https://github.com/rwaldron/tc39-notes/blob/master/es6/2014-09/sept-25.md#510-globalasap-for-enqueuing-a-microtask
-    var $export = load20();
-    var microtask = load211()();
-    var process = load().process;
-    var isNode = load26()(process) == 'process';
-    $export($export.G, {
-        asap: function asap(fn) {
-            var domain = isNode && process.domain;
-            microtask(domain ? domain.bind(fn) : fn);
-        }
-    });
-});
-var load321 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    // https://github.com/zenparsing/es-observable
-    var $export = load20();
-    var global = load();
-    var core = load4();
-    var microtask = load211()();
-    var OBSERVABLE = load22()('observable');
-    var aFunction = load18();
-    var anObject = load6();
-    var anInstance = load208();
-    var redefineAll = load216();
-    var hide = load12();
-    var forOf = load209();
-    var RETURN = forOf.RETURN;
-    var getMethod = function(fn) {
-        return fn == null ? undefined : aFunction(fn);
-    };
-    var cleanupSubscription = function(subscription) {
-        var cleanup = subscription._c;
-        if (cleanup) {
-            subscription._c = undefined;
-            cleanup();
-        }
-    };
-    var subscriptionClosed = function(subscription) {
-        return subscription._o === undefined;
-    };
-    var closeSubscription = function(subscription) {
-        if (!subscriptionClosed(subscription)) {
-            subscription._o = undefined;
-            cleanupSubscription(subscription);
-        }
-    };
-    var Subscription = function(observer, subscriber) {
-        anObject(observer);
-        this._c = undefined;
-        this._o = observer;
-        observer = new SubscriptionObserver(this);
-        try {
-            var cleanup = subscriber(observer);
-            var subscription = cleanup;
-            if (cleanup != null) {
-                if (typeof cleanup.unsubscribe === 'function') cleanup = function() {
-                    subscription.unsubscribe();
-                };
-                else aFunction(cleanup);
-                this._c = cleanup;
-            }
-        } catch (e) {
-            observer.error(e);
-            return;
-        }
-        if (subscriptionClosed(this)) cleanupSubscription(this);
-    };
-    Subscription.prototype = redefineAll({}, {
-        unsubscribe: function unsubscribe() {
-            closeSubscription(this);
-        }
-    });
-    var SubscriptionObserver = function(subscription) {
-        this._s = subscription;
-    };
-    SubscriptionObserver.prototype = redefineAll({}, {
-        next: function next(value) {
-            var subscription = this._s;
-            if (!subscriptionClosed(subscription)) {
-                var observer = subscription._o;
-                try {
-                    var m = getMethod(observer.next);
-                    if (m) return m.call(observer, value);
-                } catch (e) {
-                    try {
-                        closeSubscription(subscription);
-                    } finally{
-                        throw e;
-                    }
-                }
-            }
-        },
-        error: function error(value) {
-            var subscription = this._s;
-            if (subscriptionClosed(subscription)) throw value;
-            var observer = subscription._o;
-            subscription._o = undefined;
-            try {
-                var m = getMethod(observer.error);
-                if (!m) throw value;
-                value = m.call(observer, value);
-            } catch (e) {
-                try {
-                    cleanupSubscription(subscription);
-                } finally{
-                    throw e;
-                }
-            }
-            cleanupSubscription(subscription);
-            return value;
-        },
-        complete: function complete(value) {
-            var subscription = this._s;
-            if (!subscriptionClosed(subscription)) {
-                var observer = subscription._o;
-                subscription._o = undefined;
-                try {
-                    var m = getMethod(observer.complete);
-                    value = m ? m.call(observer, value) : undefined;
-                } catch (e) {
-                    try {
-                        cleanupSubscription(subscription);
-                    } finally{
-                        throw e;
-                    }
-                }
-                cleanupSubscription(subscription);
-                return value;
-            }
-        }
-    });
-    var $Observable = function Observable(subscriber) {
-        anInstance(this, $Observable, 'Observable', '_f')._f = aFunction(subscriber);
-    };
-    redefineAll($Observable.prototype, {
-        subscribe: function subscribe(observer) {
-            return new Subscription(observer, this._f);
-        },
-        forEach: function forEach(fn) {
-            var that = this;
-            return new (core.Promise || global.Promise)(function(resolve, reject) {
-                aFunction(fn);
-                var subscription = that.subscribe({
-                    next: function(value) {
-                        try {
-                            return fn(value);
-                        } catch (e) {
-                            reject(e);
-                            subscription.unsubscribe();
-                        }
-                    },
-                    error: reject,
-                    complete: resolve
-                });
-            });
-        }
-    });
-    redefineAll($Observable, {
-        from: function from(x) {
-            var C = typeof this === 'function' ? this : $Observable;
-            var method = getMethod(anObject(x)[OBSERVABLE]);
-            if (method) {
-                var observable = anObject(method.call(x));
-                return observable.constructor === C ? observable : new C(function(observer) {
-                    return observable.subscribe(observer);
-                });
-            }
-            return new C(function(observer) {
-                var done = false;
-                microtask(function() {
-                    if (!done) {
-                        try {
-                            if (forOf(x, false, function(it) {
-                                observer.next(it);
-                                if (done) return RETURN;
-                            }) === RETURN) return;
-                        } catch (e) {
-                            if (done) throw e;
-                            observer.error(e);
-                            return;
-                        }
-                        observer.complete();
-                    }
-                });
-                return function() {
-                    done = true;
-                };
-            });
-        },
-        of: function of() {
-            for(var i = 0, l = arguments.length, items = new Array(l); i < l;)items[i] = arguments[i++];
-            return new (typeof this === 'function' ? this : $Observable)(function(observer) {
-                var done = false;
-                microtask(function() {
-                    if (!done) {
-                        for(var j = 0; j < items.length; ++j){
-                            observer.next(items[j]);
-                            if (done) return;
-                        }
-                        observer.complete();
-                    }
-                });
-                return function() {
-                    done = true;
-                };
-            });
-        }
-    });
-    hide($Observable.prototype, OBSERVABLE, function() {
-        return this;
-    });
-    $export($export.G, {
-        Observable: $Observable
-    });
-    load190()('Observable');
-});
-var load322 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // ie9- setTimeout & setInterval additional parameters fix
-    var global = load();
-    var $export = load20();
-    var userAgent = load214();
-    var slice = [].slice;
-    var MSIE = /MSIE .\./.test(userAgent); // <- dirty ie9- check
-    var wrap = function(set) {
-        return function(fn, time /* , ...args */ ) {
-            var boundArgs = arguments.length > 2;
-            var args = boundArgs ? slice.call(arguments, 2) : false;
-            return set(boundArgs ? function() {
-                // eslint-disable-next-line no-new-func
-                (typeof fn == 'function' ? fn : Function(fn)).apply(this, args);
-            } : fn, time);
-        };
-    };
-    $export($export.G + $export.B + $export.F * MSIE, {
-        setTimeout: wrap(global.setTimeout),
-        setInterval: wrap(global.setInterval)
-    });
-});
-var load323 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var $export = load20();
-    var $task = load210();
-    $export($export.G + $export.B, {
-        setImmediate: $task.set,
-        clearImmediate: $task.clear
-    });
-});
-var load324 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var $iterators = load193();
-    var getKeys = load37();
-    var redefine = load17();
-    var global = load();
-    var hide = load12();
-    var Iterators = load125();
-    var wks = load22();
-    var ITERATOR = wks('iterator');
-    var TO_STRING_TAG = wks('toStringTag');
-    var ArrayValues = Iterators.Array;
-    var DOMIterables = {
-        CSSRuleList: true,
-        CSSStyleDeclaration: false,
-        CSSValueList: false,
-        ClientRectList: false,
-        DOMRectList: false,
-        DOMStringList: false,
-        DOMTokenList: true,
-        DataTransferItemList: false,
-        FileList: false,
-        HTMLAllCollection: false,
-        HTMLCollection: false,
-        HTMLFormElement: false,
-        HTMLSelectElement: false,
-        MediaList: true,
-        MimeTypeArray: false,
-        NamedNodeMap: false,
-        NodeList: true,
-        PaintRequestList: false,
-        Plugin: false,
-        PluginArray: false,
-        SVGLengthList: false,
-        SVGNumberList: false,
-        SVGPathSegList: false,
-        SVGPointList: false,
-        SVGStringList: false,
-        SVGTransformList: false,
-        SourceBufferList: false,
-        StyleSheetList: true,
-        TextTrackCueList: false,
-        TextTrackList: false,
-        TouchList: false
-    };
-    for(var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++){
-        var NAME = collections[i];
-        var explicit = DOMIterables[NAME];
-        var Collection = global[NAME];
-        var proto = Collection && Collection.prototype;
-        var key;
-        if (proto) {
-            if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);
-            if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);
-            Iterators[NAME] = ArrayValues;
-            if (explicit) {
-                for(key in $iterators)if (!proto[key]) redefine(proto, key, $iterators[key], true);
-            }
-        }
-    }
-});
-var load325 = __swcpack_require__.bind(void 0, function(module, exports) {
-    load49();
-    load50();
-    load51();
-    load52();
-    load54();
-    load56();
-    load57();
-    load58();
-    load59();
-    load60();
-    load61();
-    load62();
-    load63();
-    load64();
-    load66();
-    load68();
-    load70();
-    load72();
-    load75();
-    load76();
-    load77();
-    load81();
-    load83();
-    load85();
-    load88();
-    load89();
-    load90();
-    load91();
-    load93();
-    load94();
-    load95();
-    load96();
-    load97();
-    load98();
-    load99();
-    load101();
-    load102();
-    load103();
-    load105();
-    load106();
-    load107();
-    load109();
-    load111();
-    load112();
-    load113();
-    load114();
-    load115();
-    load116();
-    load117();
-    load118();
-    load119();
-    load120();
-    load121();
-    load122();
-    load123();
-    load128();
-    load129();
-    load133();
-    load134();
-    load135();
-    load136();
-    load138();
-    load139();
-    load140();
-    load141();
-    load142();
-    load143();
-    load144();
-    load145();
-    load146();
-    load147();
-    load148();
-    load149();
-    load150();
-    load151();
-    load152();
-    load154();
-    load155();
-    load157();
-    load158();
-    load164();
-    load165();
-    load167();
-    load168();
-    load169();
-    load173();
-    load174();
-    load175();
-    load176();
-    load177();
-    load179();
-    load180();
-    load181();
-    load182();
-    load185();
-    load187();
-    load188();
-    load189();
-    load191();
-    load193();
-    load195();
-    load197();
-    load199();
-    load198();
-    load203();
-    load204();
-    load205();
-    load207();
-    load217();
-    load221();
-    load222();
-    load224();
-    load225();
-    load229();
-    load230();
-    load232();
-    load233();
-    load234();
-    load235();
-    load236();
-    load237();
-    load238();
-    load239();
-    load240();
-    load241();
-    load242();
-    load243();
-    load244();
-    load245();
-    load246();
-    load247();
-    load248();
-    load249();
-    load250();
-    load252();
-    load253();
-    load254();
-    load255();
-    load256();
-    load258();
-    load259();
-    load260();
-    load262();
-    load263();
-    load264();
-    load265();
-    load266();
-    load267();
-    load268();
-    load269();
-    load271();
-    load272();
-    load274();
-    load275();
-    load276();
-    load277();
-    load280();
-    load281();
-    load283();
-    load284();
-    load285();
-    load286();
-    load288();
-    load289();
-    load290();
-    load291();
-    load292();
-    load293();
-    load294();
-    load295();
-    load296();
-    load297();
-    load299();
-    load300();
-    load301();
-    load302();
-    load303();
-    load304();
-    load305();
-    load306();
-    load307();
-    load308();
-    load309();
-    load311();
-    load312();
-    load313();
-    load314();
-    load315();
-    load316();
-    load317();
-    load318();
-    load319();
-    load320();
-    load321();
-    load322();
-    load323();
-    load324();
-    module.exports = load4();
-});
-var load326 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var getKeys = load37();
-    var toIObject = load29();
-    module.exports = function(object, el) {
-        var O = toIObject(object);
-        var keys = getKeys(O);
-        var length = keys.length;
-        var index = 0;
-        var key;
-        while(length > index)if (O[key = keys[index++]] === el) return key;
-    };
-});
-var load327 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var classof = load71();
-    var ITERATOR = load22()('iterator');
-    var Iterators = load125();
-    module.exports = load4().isIterable = function(it) {
-        var O = Object(it);
-        return O[ITERATOR] !== undefined || '@@iterator' in O || Iterators.hasOwnProperty(classof(O));
-    };
-});
-var load328 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var ctx = load19();
-    var $export = load20();
-    var createDesc = load11();
-    var assign = load65();
-    var create = load45();
-    var getPrototypeOf = load55();
-    var getKeys = load37();
-    var dP = load10();
-    var keyOf = load326();
-    var aFunction = load18();
-    var forOf = load209();
-    var isIterable = load327();
-    var $iterCreate = load126();
-    var step = load192();
-    var isObject = load5();
-    var toIObject = load29();
-    var DESCRIPTORS = load3();
-    var has = load1();
-    // 0 -> Dict.forEach
-    // 1 -> Dict.map
-    // 2 -> Dict.filter
-    // 3 -> Dict.some
-    // 4 -> Dict.every
-    // 5 -> Dict.find
-    // 6 -> Dict.findKey
-    // 7 -> Dict.mapPairs
-    var createDictMethod = function(TYPE) {
-        var IS_MAP = TYPE == 1;
-        var IS_EVERY = TYPE == 4;
-        return function(object, callbackfn, that /* = undefined */ ) {
-            var f = ctx(callbackfn, that, 3);
-            var O = toIObject(object);
-            var result = IS_MAP || TYPE == 7 || TYPE == 2 ? new (typeof this == 'function' ? this : Dict)() : undefined;
-            var key, val, res;
-            for(key in O)if (has(O, key)) {
-                val = O[key];
-                res = f(val, key, object);
-                if (TYPE) {
-                    if (IS_MAP) result[key] = res; // map
-                    else if (res) switch(TYPE){
-                        case 2:
-                            result[key] = val;
-                            break; // filter
-                        case 3:
-                            return true; // some
-                        case 5:
-                            return val; // find
-                        case 6:
-                            return key; // findKey
-                        case 7:
-                            result[res[0]] = res[1]; // mapPairs
-                    }
-                    else if (IS_EVERY) return false; // every
-                }
-            }
-            return TYPE == 3 || IS_EVERY ? IS_EVERY : result;
-        };
-    };
-    var findKey = createDictMethod(6);
-    var createDictIter = function(kind) {
-        return function(it) {
-            return new DictIterator(it, kind);
-        };
-    };
-    var DictIterator = function(iterated, kind) {
-        this._t = toIObject(iterated); // target
-        this._a = getKeys(iterated); // keys
-        this._i = 0; // next index
-        this._k = kind; // kind
-    };
-    $iterCreate(DictIterator, 'Dict', function() {
-        var that = this;
-        var O = that._t;
-        var keys = that._a;
-        var kind = that._k;
-        var key;
-        do if (that._i >= keys.length) {
-            that._t = undefined;
-            return step(1);
-        }
-        while (!has(O, key = keys[that._i++]))
-        if (kind == 'keys') return step(0, key);
-        if (kind == 'values') return step(0, O[key]);
-        return step(0, [
-            key,
-            O[key]
-        ]);
-    });
-    function Dict(iterable) {
-        var dict = create(null);
-        if (iterable != undefined) {
-            if (isIterable(iterable)) forOf(iterable, true, function(key, value) {
-                dict[key] = value;
-            });
-            else assign(dict, iterable);
-        }
-        return dict;
-    }
-    Dict.prototype = null;
-    function reduce(object, mapfn, init) {
-        aFunction(mapfn);
-        var O = toIObject(object);
-        var keys = getKeys(O);
-        var length = keys.length;
-        var i = 0;
-        var memo, key;
-        if (arguments.length < 3) {
-            if (!length) throw TypeError('Reduce of empty object with no initial value');
-            memo = O[keys[i++]];
-        } else memo = Object(init);
-        while(length > i)if (has(O, key = keys[i++])) memo = mapfn(memo, O[key], key, object);
-        return memo;
-    }
-    function includes(object, el) {
-        // eslint-disable-next-line no-self-compare
-        return (el == el ? keyOf(object, el) : findKey(object, function(it) {
-            // eslint-disable-next-line no-self-compare
-            return it != it;
-        })) !== undefined;
-    }
-    function get(object, key) {
-        if (has(object, key)) return object[key];
-    }
-    function set(object, key, value) {
-        if (DESCRIPTORS && key in Object) dP.f(object, key, createDesc(0, value));
-        else object[key] = value;
-        return object;
-    }
-    function isDict(it) {
-        return isObject(it) && getPrototypeOf(it) === Dict.prototype;
-    }
-    $export($export.G + $export.F, {
-        Dict: Dict
-    });
-    $export($export.S, 'Dict', {
-        keys: createDictIter('keys'),
-        values: createDictIter('values'),
-        entries: createDictIter('entries'),
-        forEach: createDictMethod(0),
-        map: createDictMethod(1),
-        filter: createDictMethod(2),
-        some: createDictMethod(3),
-        every: createDictMethod(4),
-        find: createDictMethod(5),
-        findKey: findKey,
-        mapPairs: createDictMethod(7),
-        reduce: reduce,
-        keyOf: keyOf,
-        includes: includes,
-        has: has,
-        get: get,
-        set: set,
-        isDict: isDict
-    });
-});
-var load329 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var anObject = load6();
-    var get = load162();
-    module.exports = load4().getIterator = function(it) {
-        var iterFn = get(it);
-        if (typeof iterFn != 'function') throw TypeError(it + ' is not iterable!');
-        return anObject(iterFn.call(it));
-    };
-});
-var load330 = __swcpack_require__.bind(void 0, function(module, exports) {
-    module.exports = load();
-});
-var load331 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var path = load330();
-    var invoke = load73();
-    var aFunction = load18();
-    module.exports = function() {
-        var fn = aFunction(this);
-        var length = arguments.length;
-        var pargs = new Array(length);
-        var i = 0;
-        var _ = path._;
-        var holder = false;
-        while(length > i)if ((pargs[i] = arguments[i++]) === _) holder = true;
-        return function() {
-            var that = this;
-            var aLen = arguments.length;
-            var j = 0;
-            var k = 0;
-            var args;
-            if (!holder && !aLen) return invoke(fn, pargs, that);
-            args = pargs.slice();
-            if (holder) {
-                for(; length > j; j++)if (args[j] === _) args[j] = arguments[k++];
-            }
-            while(aLen > k)args.push(arguments[k++]);
-            return invoke(fn, args, that);
-        };
-    };
-});
-var load332 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var global = load();
-    var core = load4();
-    var $export = load20();
-    var partial = load331();
-    // https://esdiscuss.org/topic/promise-returning-delay-function
-    $export($export.G + $export.F, {
-        delay: function delay(time) {
-            return new (core.Promise || global.Promise)(function(resolve) {
-                setTimeout(partial.call(resolve, true), time);
-            });
-        }
-    });
-});
-var load333 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var path = load330();
-    var $export = load20();
-    // Placeholder
-    load4()._ = path._ = path._ || {};
-    $export($export.P + $export.F, 'Function', {
-        part: load331()
-    });
-});
-var load334 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var $export = load20();
-    $export($export.S + $export.F, 'Object', {
-        isObject: load5()
-    });
-});
-var load335 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var $export = load20();
-    $export($export.S + $export.F, 'Object', {
-        classof: load71()
-    });
-});
-var load336 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var dP = load10();
-    var gOPD = load48();
-    var ownKeys = load251();
-    var toIObject = load29();
-    module.exports = function define(target, mixin) {
-        var keys = ownKeys(toIObject(mixin));
-        var length = keys.length;
-        var i = 0;
-        var key;
-        while(length > i)dP.f(target, key = keys[i++], gOPD.f(mixin, key));
-        return target;
-    };
-});
-var load337 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var $export = load20();
-    var define = load336();
-    $export($export.S + $export.F, 'Object', {
-        define: define
-    });
-});
-var load338 = __swcpack_require__.bind(void 0, function(module, exports) {
-    var $export = load20();
-    var define = load336();
-    var create = load45();
-    $export($export.S + $export.F, 'Object', {
-        make: function(proto, mixin) {
-            return define(create(proto), mixin);
-        }
-    });
-});
-var load339 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    load127()(Number, 'Number', function(iterated) {
-        this._l = +iterated;
-        this._i = 0;
-    }, function() {
-        var i = this._i++;
-        var done = !(i < this._l);
-        return {
-            done: done,
-            value: done ? undefined : i
-        };
-    });
-});
-var load340 = __swcpack_require__.bind(void 0, function(module, exports) {
-    module.exports = function(regExp, replace) {
-        var replacer = replace === Object(replace) ? function(part) {
-            return replace[part];
-        } : replace;
-        return function(it) {
-            return String(it).replace(regExp, replacer);
-        };
-    };
-});
-var load341 = __swcpack_require__.bind(void 0, function(module, exports) {
-    // https://github.com/benjamingr/RexExp.escape
-    var $export = load20();
-    var $re = load340()(/[\\^$*+?.()|[\]{}]/g, '\\$&');
-    $export($export.S, 'RegExp', {
-        escape: function escape(it) {
-            return $re(it);
-        }
-    });
-});
-var load342 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var $export = load20();
-    var $re = load340()(/[&<>"']/g, {
-        '&': '&amp;',
-        '<': '&lt;',
-        '>': '&gt;',
-        '"': '&quot;',
-        "'": '&apos;'
-    });
-    $export($export.P + $export.F, 'String', {
-        escapeHTML: function escapeHTML() {
-            return $re(this);
-        }
-    });
-});
-var load343 = __swcpack_require__.bind(void 0, function(module, exports) {
-    'use strict';
-    var $export = load20();
-    var $re = load340()(/&(?:amp|lt|gt|quot|apos);/g, {
-        '&amp;': '&',
-        '&lt;': '<',
-        '&gt;': '>',
-        '&quot;': '"',
-        '&apos;': "'"
-    });
-    $export($export.P + $export.F, 'String', {
-        unescapeHTML: function unescapeHTML() {
-            return $re(this);
-        }
-    });
-});
-var load344 = __swcpack_require__.bind(void 0, function(module, exports) {
-    load325();
-    load328();
-    load162();
-    load329();
-    load327();
-    load332();
-    load333();
-    load334();
-    load335();
-    load337();
-    load338();
-    load339();
-    load341();
-    load342();
-    load343();
-    module.exports = load4();
-});
-var { default: assign } = load344();