babel-core
Version:
Turn ES6 code into readable vanilla ES5 with source maps
33 lines (24 loc) • 752 B
JavaScript
;
var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; };
var SYNTAX_KEYS = _interopRequire(require("./syntax-keys"));
var traverse = _interopRequire(require("../traversal"));
var visitors = traverse.explode(require("./visitors"));
module.exports = function (ast) {
var stats = {
syntax: {},
builtins: {}
};
var detectedSyntax = function detectedSyntax(name) {
stats.syntax[name] = true;
};
traverse(ast, {
enter: function enter(node, parent) {
if (SYNTAX_KEYS[node.type]) {
detectedSyntax(SYNTAX_KEYS[node.type]);
}
var visitor = visitors[node.type];
if (visitor) visitor(node, parent, detectedSyntax);
}
});
return stats;
};