From 26105034da4fcce7ac883c899d781f016559310d Mon Sep 17 00:00:00 2001 From: ruki Date: Thu, 8 Nov 2018 00:38:48 +0800 Subject: switch to vuepress --- .../@babel/helper-hoist-variables/README.md | 17 +++++ .../@babel/helper-hoist-variables/lib/index.js | 75 ++++++++++++++++++++++ .../@babel/helper-hoist-variables/package.json | 11 ++++ 3 files changed, 103 insertions(+) create mode 100644 node_modules/@babel/helper-hoist-variables/README.md create mode 100644 node_modules/@babel/helper-hoist-variables/lib/index.js create mode 100644 node_modules/@babel/helper-hoist-variables/package.json (limited to 'node_modules/@babel/helper-hoist-variables') diff --git a/node_modules/@babel/helper-hoist-variables/README.md b/node_modules/@babel/helper-hoist-variables/README.md new file mode 100644 index 00000000..a00b8559 --- /dev/null +++ b/node_modules/@babel/helper-hoist-variables/README.md @@ -0,0 +1,17 @@ +# @babel/helper-hoist-variables + +## Installation + +```sh +npm install @babel/helper-hoist-variables --save +``` + +## API + +```javascript +declare export default hoistVariables(path: NodePath, emit: Function, kind: "var" | "let" = "var"); +``` + +## Usage + +TODO diff --git a/node_modules/@babel/helper-hoist-variables/lib/index.js b/node_modules/@babel/helper-hoist-variables/lib/index.js new file mode 100644 index 00000000..45eef222 --- /dev/null +++ b/node_modules/@babel/helper-hoist-variables/lib/index.js @@ -0,0 +1,75 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = _default; + +function t() { + const data = _interopRequireWildcard(require("@babel/types")); + + t = function t() { + return data; + }; + + return data; +} + +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)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } } + +const visitor = { + Scope(path, state) { + if (state.kind === "let") path.skip(); + }, + + Function(path) { + path.skip(); + }, + + VariableDeclaration(path, state) { + if (state.kind && path.node.kind !== state.kind) return; + const nodes = []; + const declarations = path.get("declarations"); + let firstId; + + for (var _iterator = declarations, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) { + var _ref; + + if (_isArray) { + if (_i >= _iterator.length) break; + _ref = _iterator[_i++]; + } else { + _i = _iterator.next(); + if (_i.done) break; + _ref = _i.value; + } + + const declar = _ref; + firstId = declar.node.id; + + if (declar.node.init) { + nodes.push(t().expressionStatement(t().assignmentExpression("=", declar.node.id, declar.node.init))); + } + + for (const name in declar.getBindingIdentifiers()) { + state.emit(t().identifier(name), name); + } + } + + if (path.parentPath.isFor({ + left: path.node + })) { + path.replaceWith(firstId); + } else { + path.replaceWithMultiple(nodes); + } + } + +}; + +function _default(path, emit, kind = "var") { + path.traverse(visitor, { + kind, + emit + }); +} \ No newline at end of file diff --git a/node_modules/@babel/helper-hoist-variables/package.json b/node_modules/@babel/helper-hoist-variables/package.json new file mode 100644 index 00000000..94bf68f6 --- /dev/null +++ b/node_modules/@babel/helper-hoist-variables/package.json @@ -0,0 +1,11 @@ +{ + "name": "@babel/helper-hoist-variables", + "version": "7.0.0-beta.47", + "description": "Helper function to hoist variables", + "repository": "https://github.com/babel/babel/tree/master/packages/babel-helper-hoist-variables", + "license": "MIT", + "main": "lib/index.js", + "dependencies": { + "@babel/types": "7.0.0-beta.47" + } +} -- cgit v1.2.3