var def = sym.definition();
if (!def) return;
if (def.id in in_use_ids) return;
- if (def.scope !== self && self.find_variable(sym) === def) return;
+ if (def.scope !== self) {
+ var d = self.find_variable(sym);
+ if ((d && d.redefined() || d) === def) return;
+ }
log(sym, "Dropping unused loop variable {name}");
if (for_ins[def.id] === node) delete for_ins[def.id];
var body = [];
}
expect_stdout: "undefined"
}
+
+issue_4250: {
+ options = {
+ ie8: true,
+ loops: true,
+ unused: true,
+ }
+ input: {
+ console.log(function f() {
+ (function() {
+ for (f in "f");
+ })();
+ return f;
+ var f;
+ }());
+ }
+ expect: {
+ console.log(function f() {
+ (function() {
+ for (f in "f");
+ })();
+ return f;
+ var f;
+ }());
+ }
+ expect_stdout: "0"
+}