lib/linter.js
function analyzeScope(ast, parserOptions, visitorKeys) {
    const ecmaFeatures = parserOptions.ecmaFeatures || {};
    const ecmaVersion = parserOptions.ecmaVersion || 5;

    return eslintScope.analyze(ast, {
        ignoreEval: true,
        nodejsScope: ecmaFeatures.globalReturn,
        impliedStrict: ecmaFeatures.impliedStrict,
        ecmaVersion,
        sourceType: parserOptions.sourceType || "script",
        childVisitorKeys: visitorKeys || evk.KEYS,
        fallback: Traverser.getKeys
    });
}
function analyzeScope(ast, parserOptions, visitorKeys) {
    const ecmaFeatures = parserOptions.ecmaFeatures || {};
    const ecmaVersion = parserOptions.ecmaVersion || 5;

    return eslintScope.analyze(ast, {
        ignoreEval: true,
        nodejsScope: ecmaFeatures.globalReturn,
        impliedStrict: ecmaFeatures.impliedStrict,
        ecmaVersion,
        sourceType: parserOptions.sourceType || "script",
        childVisitorKeys: visitorKeys || evk.KEYS,
        fallback: Traverser.getKeys
    });
}
function analyzeScope ( ast , parserOptions , visitorKeys ) { const ecmaFeatures = parserOptions . ecmaFeatures || { } ; const ecmaVersion = parserOptions . ecmaVersion || 5 ; return eslintScope . analyze ( ast , { ignoreEval : true , nodejsScope : ecmaFeatures . globalReturn , impliedStrict : ecmaFeatures . impliedStrict , ecmaVersion , sourceType : parserOptions . sourceType || "script" , childVisitorKeys : visitorKeys || evk . KEYS , fallback : Traverser . getKeys } ) ; }
Analyze scope of the given AST.
@param {ASTNode} ast The `Program` node to analyze.
@param {Object} parserOptions The parser options.
@param {Object} visitorKeys The visitor keys.
@returns {ScopeManager} The analysis result.
Analyze scope of the given AST .