babel-plugin-transform-react-remove-prop-types
babel-plugin-transform-react-remove-prop-types copied to clipboard
Rename wrongly in switch/case statement
I just found out an issue regarding the option "removeImport": true like I got a following snippet function:
function foo(arg, list) {
switch (arg) {
case 0: {
const item = arg.payload;
return list.some(_item => _item.id === item.id);
};
case 1: {
const item = arg.payload;
return list.some(_item => _item.id === item.id);
}
}
}
the results after compile with es5 mode:
function foo(arg, list) {
switch (arg) {
case 0:
{
var item = arg.payload;
return list.some(function (_item) {
return _item.id === item.id;
});
}
;
case 1:
{
var _item = arg.payload;
return list.some(function (_item) {
/* BUG HERE: it renamed wrongly here 2 vars with same name */
return _item.id === _item.id;
});
}
}
}
The issue is at the case 1 where it renames 2 vars with the name name _item in 2 scopes that creating bug.
Seems reprocess the scope causes the issue here:
programPath.scope.crawl()
https://github.com/oliviertassinari/babel-plugin-transform-react-remove-prop-types/blob/master/src/index.js#L364