def.fixed = false;
}
}, true);
- } else if (init instanceof AST_SymbolRef && !init.is_immutable()) {
+ } else if (init instanceof AST_SymbolRef) {
var def = init.definition();
def.assignments++;
- def.fixed = false;
+ if (!init.is_immutable()) def.fixed = false;
}
this.body.walk(tw);
pop(tw);
console.log(typeof a);
}
expect: {
- function a() {
- for (a in a);
+ var a = function b() {
+ for (b in b);
}
a();
console.log(typeof a);
expect_exact: 'new function(a,b){console.log(b,a)}(42,"PASS");'
expect_stdout: "PASS 42"
}
+
+issue_4451: {
+ options = {
+ functions: true,
+ reduce_vars: true,
+ toplevel: true,
+ unused: true,
+ }
+ input: {
+ var a = function f() {
+ for (f in "foo")
+ return f;
+ };
+ while (console.log(typeof a()));
+ }
+ expect: {
+ var a = function f() {
+ for (f in "foo")
+ return f;
+ };
+ while (console.log(typeof a()));
+ }
+ expect_stdout: "function"
+}