Merge 5ab2a21b02 into 8c5a899986
This commit is contained in:
commit
72597eaafe
|
|
@ -1029,6 +1029,15 @@ discarded by the compressor as not referenced.
|
|||
The safest comments where to place copyright information (or other info that
|
||||
needs to be kept in the output) are comments attached to toplevel nodes.
|
||||
|
||||
### Specify preferred mangled name in comment annotations
|
||||
|
||||
`/*@mangleTo:X*/` or `/*@mangleTo:X*/` comments allow you to choose the name.
|
||||
|
||||
```javascript
|
||||
(function(one /*#mangleTo:H*/, two /*#mangleTo:i*/) { /*..*/ })(1, 2);
|
||||
// results (function(H,i){ /*..*/ )(1,2);
|
||||
```
|
||||
|
||||
### The `unsafe` `compress` option
|
||||
|
||||
It enables some transformations that *might* break code logic in certain
|
||||
|
|
|
|||
|
|
@ -572,7 +572,13 @@ function next_mangled_name(def, options) {
|
|||
scopes.push(scope);
|
||||
} while (scope = scope.parent_scope);
|
||||
});
|
||||
var name;
|
||||
var comment = def.orig[0].start.comments_after[0]?.value;
|
||||
var preferred_name = comment && /[@#]mangleTo:(.*)/.exec(comment);
|
||||
var name = preferred_name && preferred_name[1];
|
||||
if (name && !names.has(name)) {
|
||||
in_use.set(name, true);
|
||||
return name;
|
||||
}
|
||||
for (var i = 0; i < holes.length; i++) {
|
||||
name = base54(holes[i]);
|
||||
if (names.has(name)) continue;
|
||||
|
|
|
|||
|
|
@ -965,6 +965,20 @@ function_name_mangle: {
|
|||
expect_stdout: "function"
|
||||
}
|
||||
|
||||
function_name_mangle_from_preferred_comment: {
|
||||
options = {
|
||||
keep_fargs: false,
|
||||
}
|
||||
mangle = {}
|
||||
input: {
|
||||
(function(one /*#mangleTo:W*/, two) {
|
||||
console.log(one, two);
|
||||
})(1, 2);
|
||||
}
|
||||
expect_exact: "(function(W,o){console.log(W,o)})(1,2);"
|
||||
expect_stdout: "1 2"
|
||||
}
|
||||
|
||||
function_name_mangle_ie8: {
|
||||
options = {
|
||||
keep_fargs: false,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user