Files
Monkey-Test/WebDriverAgent/Inspector/node_modules/regexpu/transform-tree.js
T
2019-01-25 17:01:52 +08:00

42 lines
991 B
JavaScript
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
var recast = require('recast');
var rewritePattern = require('./rewrite-pattern.js');
var types = recast.types;
var visitor = types.PathVisitor.fromMethodsObject({
// This method is called for any AST node whose `type` is `Literal`.
'visitLiteral': function(path) {
var node = path.value;
if (!node.regex) {
return false;
}
var flags = node.regex.flags;
if (flags.indexOf('u') == -1) {
return false;
}
var newPattern = rewritePattern(node.regex.pattern, flags);
var newFlags = flags.replace('u', '');
var result = '/' + newPattern + '/' + newFlags;
node.regex = {
'pattern': newPattern,
'flags': newFlags
}
node.raw = result;
node.value = {
'toString': function() {
return result;
}
};
// Return `false` to indicate that the traversal need not continue any
// further down this subtree. (`Literal`s dont have descendants anyway.)
return false;
}
});
module.exports = function(node) {
return types.visit(node, visitor);
};