55 lines
1.2 KiB
JavaScript
55 lines
1.2 KiB
JavaScript
var t = require("../types");
|
|
var includes = require("lodash/collection/includes");
|
|
|
|
exports.AssignmentExpression = function (node, parent, detected) {
|
|
if (node.operator === "**=") {
|
|
detected("es6.exponentation");
|
|
}
|
|
};
|
|
|
|
exports.BinaryExpression = function (node, parent, detected) {
|
|
if (node.operator === "**") {
|
|
detected("es6.exponentation");
|
|
}
|
|
};
|
|
|
|
exports.VariableDeclaration = function (node, parent, detected) {
|
|
if (node.kind === "let" || node.kind === "const") {
|
|
detected("es6.blockScoping");
|
|
}
|
|
|
|
if (node.kind === "const") {
|
|
detected("es6.constants");
|
|
}
|
|
};
|
|
|
|
exports.Property = function (node, parent, detected) {
|
|
if (node.shorthand || node.method) {
|
|
detected("es6.properties.shorthand");
|
|
}
|
|
|
|
if (node.kind === "set" || node.kind === "get") {
|
|
detected("es5.properties.mutators");
|
|
}
|
|
|
|
if (node.computed) {
|
|
detected("es6.properties.computed");
|
|
}
|
|
};
|
|
|
|
exports.AssignmentPattern = function (node, parent, detected) {
|
|
if (t.isFunction(parent) && includes(parent.params, node)) {
|
|
detected("es6.parameters.default");
|
|
}
|
|
};
|
|
|
|
exports.Function = function (node, parent, detected) {
|
|
if (node.generator) {
|
|
detected("es6.generators");
|
|
}
|
|
|
|
if (node.async) {
|
|
detected("es7.asyncFunctions");
|
|
}
|
|
};
|