Amjad Masad a17d62ca2b Convert the constants transform plugin to a validation plugin
A follow up from https://github.com/babel/babel/pull/2969 were we added support for consts in the block-scoping plugin.
2015-11-11 10:45:31 -08:00

17 lines
457 B
JavaScript

export default function ({ messages }) {
return {
visitor: {
Scope({ scope }) {
for (let name in scope.bindings) {
let binding = scope.bindings[name];
if (binding.kind !== "const" && binding.kind !== "module") continue;
for (let violation of (binding.constantViolations: Array)) {
throw violation.buildCodeFrameError(messages.get("readOnly", name));
}
}
},
}
};
}