Fix mangle collision with cache reuse across runs

This commit is contained in:
Dennis Shtatnov 2018-01-04 09:39:58 -05:00
parent 6f3f21233f
commit 58728e1880

View File

@ -114,7 +114,8 @@ function mangle_properties(ast, options) {
if (cache == null) {
cache = {
cname: -1,
props: new Dictionary()
props: new Dictionary(),
props_inv: new Dictionary()
};
}
@ -214,10 +215,11 @@ function mangle_properties(ast, options) {
if (!mangled) {
do {
mangled = base54(++cache.cname);
} while (!can_mangle(mangled));
} while (!can_mangle(mangled) || cache.props_inv.get(mangled));
}
cache.props.set(name, mangled);
cache.props_inv.set(mangled, name);
}
return mangled;
}