traceur
Version:
ES6 to ES5 compiler
41 lines (40 loc) • 1.43 kB
JavaScript
;
function $__interopRequire(id) {
id = require(id);
return id && id.__esModule && id || {default: id};
}
Object.defineProperties(module.exports, {
__esModule: {value: true},
default: {
enumerable: true,
get: function() {
return bindingsInDestructuringPattern;
}
}
});
var $__createClass = $__interopRequire("traceur/dist/commonjs/runtime/modules/createClass.js").default;
var $__superConstructor = $__interopRequire("traceur/dist/commonjs/runtime/modules/superConstructor.js").default;
var ParseTreeVisitor = require("../syntax/ParseTreeVisitor.js").ParseTreeVisitor;
var StringSet = require("../util/StringSet.js").StringSet;
var BindingsInDestructuringPatternVisitor = function($__super) {
function BindingsInDestructuringPatternVisitor() {
$__superConstructor(BindingsInDestructuringPatternVisitor).call(this);
this.bindings = new StringSet();
}
return ($__createClass)(BindingsInDestructuringPatternVisitor, {
visitBindingIdentifier: function(tree) {
this.bindings.add(tree.getStringValue());
},
visitBindingElement: function(tree) {
this.visitAny(tree.binding);
},
visitVariableDeclaration: function(tree) {
this.visitAny(tree.lvalue);
}
}, {}, $__super);
}(ParseTreeVisitor);
function bindingsInDestructuringPattern(tree) {
var v = new BindingsInDestructuringPatternVisitor();
v.visitAny(tree);
return v.bindings;
}