| module.exports = { |
| meta: { |
| docs: {}, |
| schema: [] |
| }, |
| |
| create(context) { |
| return { |
| Program() { |
| const scope = context.getScope() |
| |
| for (const variable of scope.variables) { |
| if (variable.writeable) { |
| return |
| } |
| |
| for (const def of variable.defs) { |
| if ( |
| def.type === 'FunctionName' || |
| def.type === 'ClassName' || |
| (def.type === 'Variable' && def.parent.kind === 'const') || |
| (def.type === 'Variable' && def.parent.kind === 'let') |
| ) { |
| context.report(def.node, 'Implicit global variable, assign as global property instead.') |
| } |
| } |
| } |
| } |
| } |
| } |
| } |