diff --git a/lib/6to5/transformation/transformers/es6/constants.js b/lib/6to5/transformation/transformers/es6/constants.js index 1030a290ec..394bf7a49d 100644 --- a/lib/6to5/transformation/transformers/es6/constants.js +++ b/lib/6to5/transformation/transformers/es6/constants.js @@ -6,7 +6,7 @@ var t = require("../../../types"); var visitor = { enter: function (node, parent, scope, context, state) { if (t.isDeclaration(node) || t.isAssignmentExpression(node)) { - var ids = t.getDeclarations(node); + var ids = t.getBindingIdentifiers(node); for (var key in ids) { var id = ids[key]; @@ -21,6 +21,9 @@ var visitor = { // constant so we can just ignore it if (id === constant) continue; + var localBinding = scope.get(key, true); + if (localBinding !== constant) continue; + throw state.file.errorWithNode(id, key + " is read-only"); } } else if (t.isScope(node)) {