How to use babel-helper-mark-eval-scopes - 7 common examples

To help you get started, we’ve selected a few babel-helper-mark-eval-scopes examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github Tencent / omi / packages / cax-omip / scripts / taro-transformer-wx / lib / src / plugins / remove-dead-code.js View on Github external
exit(path, { opts: { 
                // set defaults
                optimizeRawSize = false, keepFnName = false, keepClassName = false, keepFnArgs = false, tdz = false } = {} } = {}) {
                    (traverse.clearCache || traverse.cache.clear)();
                    path.scope.crawl();
                    markEvalScopes(path);
                    // We need to run this plugin in isolation.
                    path.traverse(main, {
                        functionToBindings: new Map(),
                        optimizeRawSize,
                        keepFnName,
                        keepClassName,
                        keepFnArgs,
                        tdz
                    });
                }
            }
github babel / minify / packages / babel-plugin-minify-dead-code-elimination / src / index.js View on Github external
enter(path) {
        if (path.isProgram()) {
          return;
        }

        if (hasEval(path.scope)) {
          return;
        }

        const { scope } = path;

        // if the scope is created by a function, we obtain its
        // parameter list
        const canRemoveParams = path.isFunction() && path.node.kind !== "set";
        const paramsList = canRemoveParams ? path.get("params") : [];

        for (let i = paramsList.length - 1; i >= 0; i--) {
          const param = paramsList[i];

          if (param.isIdentifier()) {
            const binding = scope.bindings[param.node.name];
            if (!binding) continue;
github babel / minify / packages / babel-plugin-minify-mangle-names / src / index.js View on Github external
mangleScope(scope) {
      const mangler = this;
      const { scopeTracker } = mangler;

      // Unsafe Scope
      if (!mangler.eval && hasEval(scope)) {
        return;
      }

      // Already visited
      // This is because for a function, in Babel, the function and
      // the function body's BlockStatement has the same scope, and will
      // be visited twice by the Scopable handler, and we want to mangle
      // it only once
      if (mangler.visitedScopes.has(scope)) {
        return;
      }
      mangler.visitedScopes.add(scope);

      const bindings = scopeTracker.bindings.get(scope);
      const names = [...bindings.keys()];
github Tencent / omi / packages / cax-omip / scripts / taro-transformer-wx / lib / src / plugins / remove-dead-code.js View on Github external
enter(path) {
                if (path.isProgram()) {
                    return;
                }
                if (hasEval(path.scope)) {
                    return;
                }
                const { scope } = path;
                // if the scope is created by a function, we obtain its
                // parameter list
                const canRemoveParams = path.isFunction() && path.node.kind !== "set";
                const paramsList = canRemoveParams ? path.get("params") : [];
                for (let i = paramsList.length - 1; i >= 0; i--) {
                    const param = paramsList[i];
                    if (param.isIdentifier()) {
                        const binding = scope.bindings[param.node.name];
                        if (!binding)
                            continue;
                        if (binding.referenced) {
                            // when the first binding is referenced (right to left)
                            // exit without marking anything after this
github babel / minify / packages / babel-plugin-minify-dead-code-elimination / src / index.js View on Github external
path,
          {
            opts: {
              // set defaults
              optimizeRawSize = false,
              keepFnName = false,
              keepClassName = false,
              keepFnArgs = false,
              tdz = false
            } = {}
          } = {}
        ) {
          (traverse.clearCache || traverse.cache.clear)();
          path.scope.crawl();

          markEvalScopes(path);

          // We need to run this plugin in isolation.
          path.traverse(main, {
            functionToBindings: new Map(),
            optimizeRawSize,
            keepFnName,
            keepClassName,
            keepFnArgs,
            tdz
          });
        }
      }
github babel / minify / packages / babel-plugin-minify-mangle-names / src / index.js View on Github external
collect() {
      const mangler = this;
      const { scopeTracker } = mangler;

      scopeTracker.addScope(this.program.scope);

      /**
       * Same usage as in DCE, whichever runs first
       */
      if (!isEvalScopesMarked(mangler.program)) {
        markEvalScopes(mangler.program);
      }

      /**
       * The visitors to be used in traversal.
       *
       * Note: BFS traversal supports only the `enter` handlers, `exit`
       * handlers are simply dropped without Errors
       *
       * Collects items defined in the ScopeTracker
       */
      const collectVisitor = {
        Scopable({ scope }) {
          scopeTracker.addScope(scope);

          // Collect bindings defined in the scope
          Object.keys(scope.bindings).forEach(name => {
github babel / minify / packages / babel-plugin-minify-mangle-names / src / index.js View on Github external
collect() {
      const mangler = this;
      const { scopeTracker } = mangler;

      scopeTracker.addScope(this.program.scope);

      /**
       * Same usage as in DCE, whichever runs first
       */
      if (!isEvalScopesMarked(mangler.program)) {
        markEvalScopes(mangler.program);
      }

      /**
       * The visitors to be used in traversal.
       *
       * Note: BFS traversal supports only the `enter` handlers, `exit`
       * handlers are simply dropped without Errors
       *
       * Collects items defined in the ScopeTracker
       */
      const collectVisitor = {
        Scopable({ scope }) {
          scopeTracker.addScope(scope);

          // Collect bindings defined in the scope

babel-helper-mark-eval-scopes

Mark scopes for deopt which contain a direct eval call

MIT
Latest version published 7 years ago

Package Health Score

78 / 100
Full package analysis