UNPKG

prepack

Version:

Execute a JS bundle, serialize global state and side effects to a snapshot that can be quickly restored.

49 lines (39 loc) 1.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = traverse; var _babelTypes = require("babel-types"); var t = _interopRequireWildcard(_babelTypes); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } // This is a variation of traverseFast from // https://github.com/babel/babel/blob/28ae47a174f67a8ae6f4527e0a66e88896814170/packages/babel-types/src/index.js // This version... // - takes a callback function that returns a boolean to indicate whether to short-circuit the traversal // - doesn't pass around or allocate an optional parameter value to the callback. /** * Copyright (c) 2017-present, Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ function traverse(node, enter) { if (!node) return; let keys = t.VISITOR_KEYS[node.type]; if (!keys) return; let stop = enter(node); if (stop) return; for (let key of keys) { let subNode = node[key]; if (Array.isArray(subNode)) { for (let elementNode of subNode) { traverse(elementNode, enter); } } else { traverse(subNode, enter); } } } //# sourceMappingURL=traverse-fast.js.map