Skip to content
Use acorn to detect global variables in JavaScript
Branch: master
Clone or download
Latest commit 21f0a9e Apr 22, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
example Initial code Sep 22, 2014
test fix: classes are block scoped Apr 21, 2019
.gitignore Initial code Sep 22, 2014
.travis.yml Update to node 10 in .travis.yml (#35) May 14, 2018
LICENSE Initial code Sep 22, 2014
README.md docs: tidelift Apr 12, 2019
index.js fix: classes are block scoped Apr 21, 2019
package.json

README.md

acorn-globals

Detect global variables in JavaScript using acorn

Get supported acorn-globals with the Tidelift Subscription

Build Status Dependency Status NPM version

Installation

npm install acorn-globals

Usage

detect.js

var fs = require('fs');
var detect = require('acorn-globals');

var src = fs.readFileSync(__dirname + '/input.js', 'utf8');

var scope = detect(src);
console.dir(scope);

input.js

var x = 5;
var y = 3, z = 2;

w.foo();
w = 2;

RAWR=444;
RAWR.foo();

BLARG=3;

foo(function () {
    var BAR = 3;
    process.nextTick(function (ZZZZZZZZZZZZ) {
        console.log('beep boop');
        var xyz = 4;
        x += 10;
        x.zzzzzz;
        ZZZ=6;
    });
    function doom () {
    }
    ZZZ.foo();

});

console.log(xyz);

output:

$ node example/detect.js
[ { name: 'BLARG', nodes: [ [Object] ] },
  { name: 'RAWR', nodes: [ [Object], [Object] ] },
  { name: 'ZZZ', nodes: [ [Object], [Object] ] },
  { name: 'console', nodes: [ [Object], [Object] ] },
  { name: 'foo', nodes: [ [Object] ] },
  { name: 'process', nodes: [ [Object] ] },
  { name: 'w', nodes: [ [Object], [Object] ] },
  { name: 'xyz', nodes: [ [Object] ] } ]

Security contact information

To report a security vulnerability, please use the Tidelift security contact. Tidelift will coordinate the fix and disclosure.

License

MIT

You can’t perform that action at this time.