Open Juribiyan opened 6 years ago
Updating to "babel-cli": "^7.0.0-beta.3"
and "babel-preset-env": "^2.0.0-alpha.20"
does not seem to help.
Reduced testcase
Doesn't trigger with var
instead of let
, and doesn't trigger without env or simplify.
function baz() {
let foo = 42;
while (bar) {
}
return foo;
}
Actual
"use strict";function baz(){for(;bar;);return foo}
Expected
"use strict";function baz(){for(;bar;);return 42}
Got a similar issue with the while loop in a method.
_findContainer () {
let view = this.view;
while (view) {
if (view.model && view.model.isSettingsContainer) {
break;
}
view = view.parent;
}
return view;
}
_findContainer: function _findContainer() {
for (var a = this.view; a && !(a.model && a.model.isSettingsContainer); )
a = a.parent;
return view
}
_findContainer: function _findContainer() {
for (var a = this.view; a && !(a.model && a.model.isSettingsContainer); )
a = a.parent;
return a
}
"@babel/core": "^7.0.0-beta.49",
"@babel/preset-env": "^7.0.0-beta.49",
"babel-preset-minify": "^0.4.3",
The issue appears to be fixed on the latest master.
I can still reproduce the problem with my reduced testcase with latest master of babel and babel/minify, although the non-reduced testcases seem to be correct, now.
This comment relates to previous issues with let
and for
loops: https://github.com/babel/minify/issues/485#issuecomment-291024057
minify
unless you turnmangle
off replaces the original variable names with one-letter names. But under some curcumstances it forgets to use the minified variable name and uses the unmodified variable name instead which leads to aReferenceError
since it's not defined.To Reproduce
See configuration below. This does not occur in REPL.
Actual Output
This obviously produces a
ReferenceError: u8arr is not defined
.Expected Output
Here's an actual ouput produced long time ago by
"babel-cli": "6.18.0"
,"babel-preset-latest": "6.16.0"
and"babel-preset-babili": "0.0.9"
Configuration
package.json (excerpt):
.babelrc:
To build, run
npm run build
.