@@ -16,7 +16,7 @@ use rustc_hash::{FxHashMap, FxHashSet};
1616use serde:: Deserialize ;
1717use sha1:: { Digest , Sha1 } ;
1818use swc_core:: {
19- atoms:: { atom, Atom } ,
19+ atoms:: { atom, Atom , Wtf8Atom } ,
2020 common:: {
2121 comments:: { Comment , CommentKind , Comments , SingleThreadedComments } ,
2222 errors:: HANDLER ,
@@ -198,15 +198,9 @@ fn generate_server_references_comment(
198198 entry_path_query : Option < ( & str , & str ) > ,
199199) -> String {
200200 // Convert ModuleExportName to string for serialization
201- let export_map: BTreeMap < & Atom , String > = export_names_ordered_by_reference_id
201+ let export_map: BTreeMap < _ , _ > = export_names_ordered_by_reference_id
202202 . iter ( )
203- . map ( |( ref_id, export_name) | {
204- let name_str = match export_name {
205- ModuleExportName :: Ident ( i) => i. sym . to_string ( ) ,
206- ModuleExportName :: Str ( s) => s. value . to_string_lossy ( ) . into_owned ( ) ,
207- } ;
208- ( * ref_id, name_str)
209- } )
203+ . map ( |( ref_id, export_name) | ( * ref_id, export_name. atom ( ) ) )
210204 . collect ( ) ;
211205
212206 format ! (
@@ -284,14 +278,8 @@ impl<C: Comments> ServerActions<C> {
284278 hasher. update ( self . config . hash_salt . as_bytes ( ) ) ;
285279 hasher. update ( self . file_name . as_bytes ( ) ) ;
286280 hasher. update ( b":" ) ;
287-
288- let export_name_bytes = match export_name {
289- ModuleExportName :: Ident ( ident) => & ident. sym . as_bytes ( ) ,
290- ModuleExportName :: Str ( s) => & s. value . as_bytes ( ) ,
291- } ;
292-
293- hasher. update ( export_name_bytes) ;
294-
281+ let export_name_atom = export_name. atom ( ) ;
282+ hasher. update ( export_name_atom. as_bytes ( ) ) ;
295283 let mut result = hasher. finalize ( ) . to_vec ( ) ;
296284
297285 // Prepend an extra byte to the ID, with the following format:
@@ -1725,25 +1713,12 @@ impl<C: Comments> VisitMut for ServerActions<C> {
17251713 match spec {
17261714 ExportSpecifier :: Named ( ExportNamedSpecifier {
17271715 orig : ModuleExportName :: Ident ( orig) ,
1728- exported : Some ( ModuleExportName :: Ident ( exported) ) ,
1729- ..
1730- } ) => {
1731- // export { foo as bar }
1732- self . export_name_by_local_id . insert (
1733- orig. to_id ( ) ,
1734- ModuleExportName :: Ident ( exported. clone ( ) ) ,
1735- ) ;
1736- }
1737- ExportSpecifier :: Named ( ExportNamedSpecifier {
1738- orig : ModuleExportName :: Ident ( orig) ,
1739- exported : Some ( ModuleExportName :: Str ( exported) ) ,
1716+ exported : Some ( exported) ,
17401717 ..
17411718 } ) => {
1742- // export { foo as "📙" }
1743- self . export_name_by_local_id . insert (
1744- orig. to_id ( ) ,
1745- ModuleExportName :: Str ( exported. clone ( ) ) ,
1746- ) ;
1719+ // export { foo as bar } or export { foo as "📙" }
1720+ self . export_name_by_local_id
1721+ . insert ( orig. to_id ( ) , exported. clone ( ) ) ;
17471722 }
17481723 ExportSpecifier :: Named ( ExportNamedSpecifier {
17491724 orig : ModuleExportName :: Ident ( orig) ,
@@ -2004,13 +1979,6 @@ impl<C: Comments> VisitMut for ServerActions<C> {
20041979
20051980 let var_ident = Ident :: new ( var_name. clone ( ) , DUMMY_SP , self . private_ctxt ) ;
20061981
2007- let export_name_str: Atom = match export_name {
2008- ModuleExportName :: Ident ( i) => i. sym . clone ( ) ,
2009- ModuleExportName :: Str ( s) => {
2010- Atom :: from ( s. value . to_string_lossy ( ) . as_ref ( ) )
2011- }
2012- } ;
2013-
20141982 // Determine span for the variable name. In development, we generate these
20151983 // spans for sourcemapping with better logs/errors. For production, this is
20161984 // not generated because it would leak server code to the browser.
@@ -2021,6 +1989,11 @@ impl<C: Comments> VisitMut for ServerActions<C> {
20211989 DUMMY_SP
20221990 } ;
20231991
1992+ let export_name_str: Wtf8Atom = match export_name {
1993+ ModuleExportName :: Ident ( i) => i. sym . clone ( ) . into ( ) ,
1994+ ModuleExportName :: Str ( s) => s. value . clone ( ) ,
1995+ } ;
1996+
20241997 let var_decl = ModuleItem :: Stmt ( Stmt :: Decl ( Decl :: Var ( Box :: new ( VarDecl {
20251998 span : DUMMY_SP ,
20261999 kind : VarDeclKind :: Const ,
0 commit comments