workaround Safari quirks (#4314)

fixes #1753
This commit is contained in:
Alex Lam S.L
2020-11-21 02:30:46 +00:00
committed by GitHub
parent cf120c7cea
commit 645d5a348b
5 changed files with 70 additions and 3 deletions

View File

@@ -486,6 +486,7 @@ function _default_mangler_options(options) {
keep_fnames : false,
reserved : [],
toplevel : false,
webkit : false,
});
if (!Array.isArray(options.reserved)) options.reserved = [];
// Never mangle arguments
@@ -520,6 +521,21 @@ AST_Toplevel.DEFMETHOD("mangle_names", function(options) {
return true;
}
if (node instanceof AST_BlockScope) {
if (options.webkit && node instanceof AST_IterationStatement && node.init instanceof AST_Let) {
node.init.definitions.forEach(function(defn) {
defn.name.match_symbol(function(sym) {
if (!(sym instanceof AST_SymbolLet)) return;
var def = sym.definition();
var scope = sym.scope.parent_scope;
var redef = scope.def_variable(sym);
sym.thedef = def;
scope.to_mangle.push(redef);
def.redefined = function() {
return redef;
};
});
}, true);
}
node.to_mangle = [];
node.variables.each(function(def) {
if (!defer_redef(def)) node.to_mangle.push(def);