Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit42e15ae

Browse files
authored
perf(es/minifier): Split frequently used functions (#4352)
1 parent29ff9cb commit42e15ae

File tree

4 files changed

+30
-17
lines changed

4 files changed

+30
-17
lines changed

‎crates/swc_ecma_minifier/src/pass/mangle_names/analyzer/scope.rs

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -69,11 +69,29 @@ impl Scope {
6969
preserved:&FxHashSet<Id>,
7070
preserved_symbols:&FxHashSet<JsWord>,
7171
){
72-
letmut n =0;
7372
letmut queue =self.data.queue.take();
7473
queue.sort_by(|a, b| b.1.cmp(&a.1));
7574

7675
letmut cloned_reverse = reverse.clone();
76+
77+
self.rename_one_scope(to,&mut cloned_reverse, queue, preserved, preserved_symbols);
78+
79+
for childinself.children.iter_mut(){
80+
child.rename(to,&cloned_reverse, preserved, preserved_symbols);
81+
}
82+
}
83+
84+
#[inline(never)]
85+
fnrename_one_scope(
86+
&self,
87+
to:&mutAHashMap<Id,JsWord>,
88+
cloned_reverse:&mutFxHashMap<JsWord,Vec<Id>>,
89+
queue:Vec<(Id,u32)>,
90+
preserved:&FxHashSet<Id>,
91+
preserved_symbols:&FxHashSet<JsWord>,
92+
){
93+
letmut n =0;
94+
7795
for(id, cnt)in queue{
7896
if cnt ==0 || preserved.contains(&id) || to.get(&id).is_some(){
7997
continue;
@@ -82,14 +100,12 @@ impl Scope {
82100
loop{
83101
let sym = base54::encode(&mut n,true);
84102

85-
let sym:JsWord = sym.into();
86-
87103
// TODO: Use base54::decode
88104
if preserved_symbols.contains(&sym){
89105
continue;
90106
}
91107

92-
ifself.can_rename(&id,&sym,&cloned_reverse){
108+
ifself.can_rename(&id,&sym, cloned_reverse){
93109
to.insert(id.clone(), sym.clone());
94110
cloned_reverse.entry(sym).or_default().push(id.clone());
95111
// self.data.decls.remove(&id);
@@ -99,10 +115,6 @@ impl Scope {
99115
}
100116
}
101117
}
102-
103-
for childinself.children.iter_mut(){
104-
child.rename(to,&cloned_reverse, preserved, preserved_symbols);
105-
}
106118
}
107119

108120
#[inline(never)]

‎crates/swc_ecma_minifier/src/pass/mangle_names/private_name.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,6 @@ impl PrivateNameMangler {
3030
}else{
3131
let sym = base54::encode(&mutself.private_n,true);
3232

33-
let sym:JsWord = sym.into();
34-
3533
self.renamed_private.insert(id.clone(), sym.clone());
3634

3735
sym

‎crates/swc_ecma_minifier/src/pass/mangle_props.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,9 +86,8 @@ impl ManglePropertiesState {
8686
ifletSome(cached) =self.cache.get(name){
8787
Some(cached.clone())
8888
}else{
89-
letsym = base54::encode(&mutself.n,true);
89+
letmangled_name = base54::encode(&mutself.n,true);
9090

91-
let mangled_name:JsWord = sym.into();
9291
self.cache.insert(name.clone(), mangled_name.clone());
9392
Some(mangled_name)
9493
}

‎crates/swc_ecma_minifier/src/util/base54.rs

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1+
use swc_atoms::JsWord;
2+
13
staticBASE54_DEFAULT_CHARS:&[u8;64] =
24
b"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_0123456789";
35

46
/// givin a number, return a base54 encoded string
57
/// `usize -> [a-zA-Z$_][a-zA-Z$_0-9]*`
6-
pub(crate)fnencode(init:&mutusize,skip_reserved:bool) ->String{
8+
pub(crate)fnencode(init:&mutusize,skip_reserved:bool) ->JsWord{
79
if skip_reserved{
810
while init.is_reserved()
911
|| init.is_reserved_in_strict_bind()
@@ -38,10 +40,12 @@ pub(crate) fn encode(init: &mut usize, skip_reserved: bool) -> String {
3840
ret.push(c);
3941
}
4042

41-
unsafe{
43+
let s =unsafe{
4244
// Safety: We are only using ascii characters
4345
String::from_utf8_unchecked(ret)
44-
}
46+
};
47+
48+
s.into()
4549
}
4650

4751
#[allow(unused)]
@@ -175,7 +179,7 @@ mod tests {
175179

176180
fngen(&mutself,expected:&str){
177181
let generated =encode(&mutself.n,true);
178-
assert_eq!(generated, expected);
182+
assert_eq!(&*generated, expected);
179183
}
180184
}
181185

@@ -342,7 +346,7 @@ mod tests {
342346
letmut init =RESERVED[0];
343347
let target = init +2;
344348
let gen =encode(&mut init,true);
345-
assert_eq!(gen,"dp");
349+
assert_eq!(&*gen,"dp");
346350
assert_eq!(init, target);
347351
}
348352

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp