-
Notifications
You must be signed in to change notification settings - Fork 153
Open
Description
Line 183 in b0f6711
| scope.$declar(kind, name, value) |
这里不应该是设置父级的作用域。
应该是设置for循环里的新作用域new_scope
亲测, 下面这个例子跑不痛。
import test from "ava";
import * as fs from "fs";
import vm from "../src/vm";
test("ForInStatement-1", t => {
const sandbox: any = vm.createContext({});
const obj: any = vm.runInContext(
`
const obj = {
1: false,
2: false
};
for (let attr in obj) {
obj[attr] = true;
}
module.exports = obj;
`,
sandbox
);
t.true(obj[1]);
t.true(obj[2]);
});attr应该是 0、1,但实际上,永远是1,因为for循环里面的作用域没有attr变量。
只有父级作用域有attr,而且attr=1
Metadata
Metadata
Assignees
Labels
No labels