diff options
| author | ruki <waruqi@gmail.com> | 2018-11-08 00:38:48 +0800 |
|---|---|---|
| committer | ruki <waruqi@gmail.com> | 2018-11-07 21:53:09 +0800 |
| commit | 26105034da4fcce7ac883c899d781f016559310d (patch) | |
| tree | c459a5dc4e3aa0972d9919033ece511ce76dd129 /node_modules/@babel/helper-hoist-variables | |
| parent | 2c77f00f1a7ecb6c8192f9c16d3b2001b254a107 (diff) | |
| download | xmake-docs-26105034da4fcce7ac883c899d781f016559310d.tar.gz xmake-docs-26105034da4fcce7ac883c899d781f016559310d.zip | |
switch to vuepress
Diffstat (limited to 'node_modules/@babel/helper-hoist-variables')
3 files changed, 103 insertions, 0 deletions
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" + } +} |
