function check(node){var isTemplateElement=node.type==="TemplateElement";if(isTemplateElement&&node.parent&&node.parent.parent&&node.parent.parent.type==="TaggedTemplateExpression"&&node.parent===node.parent.parent.quasi){// Don't report tagged template literals, because the backslash character is accessible to the tag function.
return;}if(typeof node.value==="string"||isTemplateElement){/*
                 * JSXAttribute doesn't have any escape sequence: https://facebook.github.io/jsx/.
                 * In addition, backticks are not supported by JSX yet: https://github.com/facebook/jsx/issues/25.
                 */if(node.parent.type==="JSXAttribute"||node.parent.type==="JSXElement"){return;}var value=isTemplateElement?node.value.raw:node.raw.slice(1,-1);var pattern=/\\[^\d]/g;var match=void 0;while(match=pattern.exec(value)){validateString(node,match);}}else if(node.regex){parseRegExp(node.regex.pattern)/*
                 * The '-' character is a special case, because it's only valid to escape it if it's in a character
                 * class, and is not at either edge of the character class. To account for this, don't consider '-'
                 * characters to be valid in general, and filter out '-' characters that appear in the middle of a
                 * character class.
                 */.filter(function(charInfo){return!(charInfo.text==="-"&&charInfo.inCharClass&&!charInfo.startsCharClass&&!charInfo.endsCharClass);})/*
                 * The '^' character is also a special case; it must always be escaped outside of character classes, but
                 * it only needs to be escaped in character classes if it's at the beginning of the character class. To
                 * account for this, consider it to be a valid escape character outside of character classes, and filter
                 * out '^' characters that appear at the start of a character class.
                 */.filter(function(charInfo){return!(charInfo.text==="^"&&charInfo.startsCharClass);})// Filter out characters that aren't escaped.
.filter(function(charInfo){return charInfo.escaped;})// Filter out characters that are valid to escape, based on their position in the regular expression.
.filter(function(charInfo){return!(charInfo.inCharClass?REGEX_GENERAL_ESCAPES:REGEX_NON_CHARCLASS_ESCAPES).has(charInfo.text);})// Report all the remaining characters.
.forEach(function(charInfo){return report(node,charInfo.index,charInfo.text);});}}
Checks if a node has an escape.

@param {ASTNode} node - node to check.
@returns {void}