123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177 |
- 'use strict';
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.ScopeManager = exports.Scope = exports.Variable = exports.Reference = exports.version = undefined;
- var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; };
- exports.analyze = analyze;
- var _assert = require('assert');
- var _assert2 = _interopRequireDefault(_assert);
- var _scopeManager = require('./scope-manager');
- var _scopeManager2 = _interopRequireDefault(_scopeManager);
- var _referencer = require('./referencer');
- var _referencer2 = _interopRequireDefault(_referencer);
- var _reference = require('./reference');
- var _reference2 = _interopRequireDefault(_reference);
- var _variable = require('./variable');
- var _variable2 = _interopRequireDefault(_variable);
- var _scope = require('./scope');
- var _scope2 = _interopRequireDefault(_scope);
- var _package = require('../package.json');
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
- function defaultOptions() {
- return {
- optimistic: false,
- directive: false,
- nodejsScope: false,
- impliedStrict: false,
- sourceType: 'script',
- ecmaVersion: 5,
- childVisitorKeys: null,
- fallback: 'iteration'
- };
- }
- function updateDeeply(target, override) {
- var key, val;
- function isHashObject(target) {
- return (typeof target === 'undefined' ? 'undefined' : _typeof(target)) === 'object' && target instanceof Object && !(target instanceof Array) && !(target instanceof RegExp);
- }
- for (key in override) {
- if (override.hasOwnProperty(key)) {
- val = override[key];
- if (isHashObject(val)) {
- if (isHashObject(target[key])) {
- updateDeeply(target[key], val);
- } else {
- target[key] = updateDeeply({}, val);
- }
- } else {
- target[key] = val;
- }
- }
- }
- return target;
- }
- function analyze(tree, providedOptions) {
- var scopeManager, referencer, options;
- options = updateDeeply(defaultOptions(), providedOptions);
- scopeManager = new _scopeManager2.default(options);
- referencer = new _referencer2.default(options, scopeManager);
- referencer.visit(tree);
- (0, _assert2.default)(scopeManager.__currentScope === null, 'currentScope should be null.');
- return scopeManager;
- }
- exports.
- version = _package.version;
- exports.
- Reference = _reference2.default;
- exports.
- Variable = _variable2.default;
- exports.
- Scope = _scope2.default;
- exports.
- ScopeManager = _scopeManager2.default;
|