@@ -145,8 +145,10 @@ impl<'a, 'ctx> Traverse<'a> for HelperLoader<'a, 'ctx> {
145145 }
146146}
147147
148- // (helper_name, (path, bound_ident))
149- type LoadedHelper < ' a > = FxHashMap < Atom < ' a > , ( Atom < ' a > , BoundIdentifier < ' a > ) > ;
148+ struct Helper < ' a > {
149+ source : Atom < ' a > ,
150+ local : BoundIdentifier < ' a > ,
151+ }
150152
151153/// Stores the state of the helper loader in [`TransformCtx`].
152154pub struct HelperLoaderStore < ' a > {
@@ -155,7 +157,7 @@ pub struct HelperLoaderStore<'a> {
155157 /// Symbol ID for the `babelHelpers`.
156158 babel_helpers_symbol_id : Cell < Option < SymbolId > > ,
157159 /// Loaded helpers, determined what helpers are loaded and what imports should be added.
158- loaded_helpers : RefCell < LoadedHelper < ' a > > ,
160+ loaded_helpers : RefCell < FxHashMap < Atom < ' a > , Helper < ' a > > > ,
159161}
160162
161163// Public methods
@@ -225,12 +227,12 @@ impl<'a> HelperLoaderStore<'a> {
225227 ctx : & mut TraverseCtx < ' a > ,
226228 ) -> Expression < ' a > {
227229 let mut loaded_helpers = self . loaded_helpers . borrow_mut ( ) ;
228- let ( _ , binding ) = loaded_helpers. entry ( helper_name) . or_insert_with_key ( |helper_name| {
230+ let helper = loaded_helpers. entry ( helper_name) . or_insert_with_key ( |helper_name| {
229231 let source = ctx. ast . atom ( & format ! ( "{}/helpers/{helper_name}" , self . module_name) ) ;
230- let binding = ctx. generate_uid_in_root_scope ( helper_name, SymbolFlags :: Import ) ;
231- ( source, binding )
232+ let local = ctx. generate_uid_in_root_scope ( helper_name, SymbolFlags :: Import ) ;
233+ Helper { source, local }
232234 } ) ;
233- binding . create_read_expression ( ctx)
235+ helper . local . create_read_expression ( ctx)
234236 }
235237
236238 fn transform_for_external_helper (
@@ -258,8 +260,8 @@ impl<'a> HelperLoaderStore<'a> {
258260
259261 fn add_imports ( & self , transform_ctx : & TransformCtx < ' a > ) {
260262 let mut loaded_helpers = self . loaded_helpers . borrow_mut ( ) ;
261- loaded_helpers . drain ( ) . for_each ( | ( _, ( source , import ) ) | {
262- transform_ctx. module_imports . add_default_import ( source, import , false ) ;
263- } ) ;
263+ for ( _, helper ) in loaded_helpers . drain ( ) {
264+ transform_ctx. module_imports . add_default_import ( helper . source , helper . local , false ) ;
265+ }
264266 }
265267}
0 commit comments