diff options
author | Alex Lam S.L <alexlamsl@gmail.com> | 2018-03-07 17:20:38 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-03-07 17:20:38 +0800 |
commit | 10b3752b1e1e16f92b7c6a62ed30d5dc3ac2cb49 (patch) | |
tree | 80f3c500f028d74acc0ffd7017f9500e2b20176e /lib/scope.js | |
parent | fe51a91395f3b0a6ab812f3f42746d39efd9e80c (diff) | |
download | tracifyjs-10b3752b1e1e16f92b7c6a62ed30d5dc3ac2cb49.tar.gz tracifyjs-10b3752b1e1e16f92b7c6a62ed30d5dc3ac2cb49.zip |
fix `mangle` of `AST_SymbolLambda` under `ie8` (#2978)
fixes #2976
Diffstat (limited to 'lib/scope.js')
-rw-r--r-- | lib/scope.js | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/lib/scope.js b/lib/scope.js index 9a8e25cc..baa3e8bd 100644 --- a/lib/scope.js +++ b/lib/scope.js @@ -74,17 +74,12 @@ SymbolDef.prototype = { var cache = options.cache && options.cache.props; if (this.global && cache && cache.has(this.name)) { this.mangled_name = cache.get(this.name); - } - else if (!this.mangled_name && !this.unmangleable(options)) { - var s = this.scope; - var sym = this.orig[0]; - if (options.ie8 && sym instanceof AST_SymbolLambda) - s = s.parent_scope; + } else if (!this.mangled_name && !this.unmangleable(options)) { var def; if (def = this.redefined()) { this.mangled_name = def.mangled_name || def.name; } else { - this.mangled_name = next_mangled_name(s, options, this); + this.mangled_name = next_mangled_name(this.scope, options, this); } if (this.global && cache) { cache.set(this.name, this.mangled_name); @@ -377,6 +372,9 @@ function next_mangled_name(scope, options, def) { holes.push(scope.cname); } scope.names_in_use[name] = true; + if (options.ie8 && def.orig[0] instanceof AST_SymbolLambda) { + names_in_use(scope.parent_scope, options)[name] = true; + } return name; } |