Skip to content

attachScopes doesn't recognize for loop correctly #113

@eight04

Description

@eight04
  • Rollup Plugin Name: pluginutils
  • Rollup Plugin Version: 3.0.1
  • Rollup Version:
  • Operating System (or Browser): Windows 7
  • Node Version: 13.5.0

How Do We Reproduce?

const {parse} = require("acorn");
const {attachScopes} = require("@rollup/pluginutils");

const code = `
for (const foo of []) {
  const bar = 1;
  var baz = 2;
}
for (var bak of []);
`;

const ast = parse(code);
let scope = attachScopes(ast, "scope");
console.log(scope.contains("foo"));
console.log(scope.contains("bar"));
console.log(scope.contains("baz"));
console.log(scope.contains("bak"));

https://repl.it/@eight041/attachScopes-and-for-scope?language=nodejs

Expected Behavior

false
false
true
true

Actual Behavior

true
false
true
true

I'm a little surprised that we didn't find this bug earlier. This breaks a lot of stuff IMHO.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions