82 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			82 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # acorn-globals
 | |
| 
 | |
| Detect global variables in JavaScript using acorn
 | |
| 
 | |
| [Get supported acorn-globals with the Tidelift Subscription](https://tidelift.com/subscription/pkg/npm-acorn_globals?utm_source=npm-acorn-globals&utm_medium=referral&utm_campaign=readme)
 | |
| 
 | |
| [](https://travis-ci.org/ForbesLindesay/acorn-globals)
 | |
| [](https://david-dm.org/ForbesLindesay/acorn-globals)
 | |
| [](https://www.npmjs.org/package/acorn-globals)
 | |
| 
 | |
| ## Installation
 | |
| 
 | |
|     npm install acorn-globals
 | |
| 
 | |
| ## Usage
 | |
| 
 | |
| detect.js
 | |
| 
 | |
| ```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
 | |
| 
 | |
| ```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](https://tidelift.com/security). Tidelift will coordinate the fix and disclosure.
 | |
| 
 | |
| ## License
 | |
| 
 | |
|   MIT
 |