@babel/plugin-proposal-function-bind
Advanced tools
Comparing version 7.22.5 to 8.0.0-alpha.0
@@ -1,15 +0,10 @@ | ||
"use strict"; | ||
import { declare } from '@babel/helper-plugin-utils'; | ||
import syntaxFunctionBind from '@babel/plugin-syntax-function-bind'; | ||
import { types } from '@babel/core'; | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
exports.default = void 0; | ||
var _helperPluginUtils = require("@babel/helper-plugin-utils"); | ||
var _pluginSyntaxFunctionBind = require("@babel/plugin-syntax-function-bind"); | ||
var _core = require("@babel/core"); | ||
var _default = (0, _helperPluginUtils.declare)(api => { | ||
var index = declare(api => { | ||
api.assertVersion(7); | ||
function getTempId(scope) { | ||
let id = scope.path.getData("functionBind"); | ||
if (id) return _core.types.cloneNode(id); | ||
if (id) return types.cloneNode(id); | ||
id = scope.generateDeclaredUidIdentifier("context"); | ||
@@ -19,3 +14,3 @@ return scope.path.setData("functionBind", id); | ||
function getObject(bind) { | ||
if (_core.types.isExpression(bind.object)) { | ||
if (types.isExpression(bind.object)) { | ||
return bind.object; | ||
@@ -27,18 +22,18 @@ } | ||
const object = getObject(bind); | ||
return scope.isStatic(object) && (_core.types.isSuper(object) ? _core.types.thisExpression() : object); | ||
return scope.isStatic(object) && (types.isSuper(object) ? types.thisExpression() : object); | ||
} | ||
function inferBindContext(bind, scope) { | ||
const staticContext = getStaticContext(bind, scope); | ||
if (staticContext) return _core.types.cloneNode(staticContext); | ||
if (staticContext) return types.cloneNode(staticContext); | ||
const tempId = getTempId(scope); | ||
if (bind.object) { | ||
bind.callee = _core.types.sequenceExpression([_core.types.assignmentExpression("=", tempId, bind.object), bind.callee]); | ||
} else if (_core.types.isMemberExpression(bind.callee)) { | ||
bind.callee.object = _core.types.assignmentExpression("=", tempId, bind.callee.object); | ||
bind.callee = types.sequenceExpression([types.assignmentExpression("=", tempId, bind.object), bind.callee]); | ||
} else if (types.isMemberExpression(bind.callee)) { | ||
bind.callee.object = types.assignmentExpression("=", tempId, bind.callee.object); | ||
} | ||
return _core.types.cloneNode(tempId); | ||
return types.cloneNode(tempId); | ||
} | ||
return { | ||
name: "proposal-function-bind", | ||
inherits: _pluginSyntaxFunctionBind.default, | ||
inherits: syntaxFunctionBind, | ||
visitor: { | ||
@@ -50,5 +45,5 @@ CallExpression({ | ||
const bind = node.callee; | ||
if (!_core.types.isBindExpression(bind)) return; | ||
if (!types.isBindExpression(bind)) return; | ||
const context = inferBindContext(bind, scope); | ||
node.callee = _core.types.memberExpression(bind.callee, _core.types.identifier("call")); | ||
node.callee = types.memberExpression(bind.callee, types.identifier("call")); | ||
node.arguments.unshift(context); | ||
@@ -62,3 +57,3 @@ }, | ||
const context = inferBindContext(node, scope); | ||
path.replaceWith(_core.types.callExpression(_core.types.memberExpression(node.callee, _core.types.identifier("bind")), [context])); | ||
path.replaceWith(types.callExpression(types.memberExpression(node.callee, types.identifier("bind")), [context])); | ||
} | ||
@@ -68,4 +63,4 @@ } | ||
}); | ||
exports.default = _default; | ||
export { index as default }; | ||
//# sourceMappingURL=index.js.map |
{ | ||
"name": "@babel/plugin-proposal-function-bind", | ||
"version": "7.22.5", | ||
"version": "8.0.0-alpha.0", | ||
"description": "Compile function bind operator to ES5", | ||
@@ -20,17 +20,21 @@ "repository": { | ||
"dependencies": { | ||
"@babel/helper-plugin-utils": "^7.22.5", | ||
"@babel/plugin-syntax-function-bind": "^7.22.5" | ||
"@babel/helper-plugin-utils": "^8.0.0-alpha.0", | ||
"@babel/plugin-syntax-function-bind": "^8.0.0-alpha.0" | ||
}, | ||
"peerDependencies": { | ||
"@babel/core": "^7.0.0-0" | ||
"@babel/core": "^8.0.0-alpha.0" | ||
}, | ||
"devDependencies": { | ||
"@babel/core": "^7.22.5", | ||
"@babel/helper-plugin-test-runner": "^7.22.5" | ||
"@babel/core": "^8.0.0-alpha.0", | ||
"@babel/helper-plugin-test-runner": "^8.0.0-alpha.0" | ||
}, | ||
"engines": { | ||
"node": ">=6.9.0" | ||
"node": "^16.20.0 || ^18.16.0 || >=20.0.0" | ||
}, | ||
"author": "The Babel Team (https://babel.dev/team)", | ||
"type": "commonjs" | ||
"exports": { | ||
".": "./lib/index.js", | ||
"./package.json": "./package.json" | ||
}, | ||
"type": "module" | ||
} |
@@ -5,3 +5,3 @@ # @babel/plugin-proposal-function-bind | ||
See our website [@babel/plugin-proposal-function-bind](https://babeljs.io/docs/en/babel-plugin-proposal-function-bind) for more information. | ||
See our website [@babel/plugin-proposal-function-bind](https://babeljs.io/docs/babel-plugin-proposal-function-bind) for more information. | ||
@@ -8,0 +8,0 @@ ## Install |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Yes
10177
59
1
+ Added@babel/code-frame@8.0.0-alpha.12(transitive)
+ Added@babel/compat-data@8.0.0-alpha.12(transitive)
+ Added@babel/core@8.0.0-alpha.12(transitive)
+ Added@babel/generator@8.0.0-alpha.12(transitive)
+ Added@babel/helper-compilation-targets@8.0.0-alpha.12(transitive)
+ Added@babel/helper-plugin-utils@8.0.0-alpha.12(transitive)
+ Added@babel/helper-string-parser@8.0.0-alpha.12(transitive)
+ Added@babel/helper-validator-identifier@8.0.0-alpha.12(transitive)
+ Added@babel/helper-validator-option@8.0.0-alpha.12(transitive)
+ Added@babel/helpers@8.0.0-alpha.12(transitive)
+ Added@babel/highlight@8.0.0-alpha.12(transitive)
+ Added@babel/parser@8.0.0-alpha.12(transitive)
+ Added@babel/plugin-syntax-function-bind@8.0.0-alpha.12(transitive)
+ Added@babel/template@8.0.0-alpha.12(transitive)
+ Added@babel/traverse@8.0.0-alpha.12(transitive)
+ Added@babel/types@8.0.0-alpha.12(transitive)
+ Addedglobals@15.9.0(transitive)
+ Addedjs-tokens@8.0.3(transitive)
+ Addedjsesc@3.0.2(transitive)
+ Addedlru-cache@7.18.3(transitive)
+ Addedsemver@7.6.3(transitive)
+ Addedto-fast-properties@3.0.1(transitive)
- Removed@babel/code-frame@7.24.7(transitive)
- Removed@babel/compat-data@7.25.4(transitive)
- Removed@babel/core@7.25.2(transitive)
- Removed@babel/generator@7.25.6(transitive)
- Removed@babel/helper-compilation-targets@7.25.2(transitive)
- Removed@babel/helper-module-imports@7.24.7(transitive)
- Removed@babel/helper-module-transforms@7.25.2(transitive)
- Removed@babel/helper-plugin-utils@7.24.8(transitive)
- Removed@babel/helper-simple-access@7.24.7(transitive)
- Removed@babel/helper-string-parser@7.24.8(transitive)
- Removed@babel/helper-validator-identifier@7.24.7(transitive)
- Removed@babel/helper-validator-option@7.24.8(transitive)
- Removed@babel/helpers@7.25.6(transitive)
- Removed@babel/highlight@7.24.7(transitive)
- Removed@babel/parser@7.25.6(transitive)
- Removed@babel/plugin-syntax-function-bind@7.24.7(transitive)
- Removed@babel/template@7.25.0(transitive)
- Removed@babel/traverse@7.25.6(transitive)
- Removed@babel/types@7.25.6(transitive)
- Removedansi-styles@3.2.1(transitive)
- Removedchalk@2.4.2(transitive)
- Removedcolor-convert@1.9.3(transitive)
- Removedcolor-name@1.1.3(transitive)
- Removedescape-string-regexp@1.0.5(transitive)
- Removedglobals@11.12.0(transitive)
- Removedhas-flag@3.0.0(transitive)
- Removedjs-tokens@4.0.0(transitive)
- Removedjsesc@2.5.2(transitive)
- Removedlru-cache@5.1.1(transitive)
- Removedsemver@6.3.1(transitive)
- Removedsupports-color@5.5.0(transitive)
- Removedto-fast-properties@2.0.0(transitive)
- Removedyallist@3.1.1(transitive)