Socket
Socket
Sign inDemoInstall

@babel/plugin-transform-runtime

Package Overview
Dependencies
Maintainers
6
Versions
139
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@babel/plugin-transform-runtime - npm Package Compare versions

Comparing version 7.0.0-beta.42 to 7.0.0-beta.43

4

lib/definitions.js
"use strict";
exports.__esModule = true;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;

@@ -5,0 +7,0 @@ var _default = {

"use strict";
exports.__esModule = true;
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "definitions", {
enumerable: true,
get: function () {
return _definitions.default;
}
});
exports.default = void 0;
var _helperPluginUtils = require("@babel/helper-plugin-utils");
function _helperPluginUtils() {
const data = require("@babel/helper-plugin-utils");
var _helperModuleImports = require("@babel/helper-module-imports");
_helperPluginUtils = function () {
return data;
};
var _core = require("@babel/core");
return data;
}
function _helperModuleImports() {
const data = require("@babel/helper-module-imports");
_helperModuleImports = function () {
return data;
};
return data;
}
function _core() {
const data = require("@babel/core");
_core = function () {
return data;
};
return data;
}
var _definitions = _interopRequireDefault(require("./definitions"));
exports.definitions = _definitions.default;
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var _default = (0, _helperPluginUtils.declare)(function (api, options) {
var _default = (0, _helperPluginUtils().declare)((api, options) => {
api.assertVersion(7);
var helpers = options.helpers,
_options$moduleName = options.moduleName,
moduleName = _options$moduleName === void 0 ? "@babel/runtime" : _options$moduleName,
polyfill = options.polyfill,
regenerator = options.regenerator,
useBuiltIns = options.useBuiltIns,
useESModules = options.useESModules;
var regeneratorEnabled = regenerator !== false;
var notPolyfillOrDoesUseBuiltIns = polyfill === false || useBuiltIns;
var isPolyfillAndUseBuiltIns = polyfill && useBuiltIns;
var baseHelpersDir = useBuiltIns ? "helpers/builtin" : "helpers";
var helpersDir = useESModules ? baseHelpersDir + "/es6" : baseHelpersDir;
const {
helpers,
moduleName = "@babel/runtime",
polyfill,
regenerator,
useBuiltIns,
useESModules
} = options;
const regeneratorEnabled = regenerator !== false;
const notPolyfillOrDoesUseBuiltIns = polyfill === false || useBuiltIns;
const isPolyfillAndUseBuiltIns = polyfill && useBuiltIns;
const baseHelpersDir = useBuiltIns ? "helpers/builtin" : "helpers";
const helpersDir = useESModules ? `${baseHelpersDir}/es6` : baseHelpersDir;

@@ -37,12 +68,10 @@ function has(obj, key) {

var HEADER_HELPERS = ["interopRequireWildcard", "interopRequireDefault"];
const HEADER_HELPERS = ["interopRequireWildcard", "interopRequireDefault"];
return {
pre: function pre(file) {
var _this = this;
pre(file) {
if (helpers !== false) {
file.set("helperGenerator", function (name) {
var isInteropHelper = HEADER_HELPERS.indexOf(name) !== -1;
var blockHoist = isInteropHelper && !(0, _helperModuleImports.isModule)(file.path) ? 4 : undefined;
return _this.addDefaultImport(moduleName + "/" + helpersDir + "/" + name, name, blockHoist);
file.set("helperGenerator", name => {
const isInteropHelper = HEADER_HELPERS.indexOf(name) !== -1;
const blockHoist = isInteropHelper && !(0, _helperModuleImports().isModule)(file.path) ? 4 : undefined;
return this.addDefaultImport(`${moduleName}/${helpersDir}/${name}`, name, blockHoist);
});

@@ -56,16 +85,16 @@ }

this.moduleName = moduleName;
var cache = new Map();
const cache = new Map();
this.addDefaultImport = function (source, nameHint, blockHoist) {
var cacheKey = (0, _helperModuleImports.isModule)(file.path);
var key = source + ":" + nameHint + ":" + (cacheKey || "");
var cached = cache.get(key);
this.addDefaultImport = (source, nameHint, blockHoist) => {
const cacheKey = (0, _helperModuleImports().isModule)(file.path);
const key = `${source}:${nameHint}:${cacheKey || ""}`;
let cached = cache.get(key);
if (cached) {
cached = _core.types.cloneNode(cached);
cached = _core().types.cloneNode(cached);
} else {
cached = (0, _helperModuleImports.addDefault)(file.path, source, {
cached = (0, _helperModuleImports().addDefault)(file.path, source, {
importedInterop: "uncompiled",
nameHint: nameHint,
blockHoist: blockHoist
nameHint,
blockHoist
});

@@ -78,10 +107,13 @@ cache.set(key, cached);

},
visitor: {
ReferencedIdentifier: function ReferencedIdentifier(path) {
var node = path.node,
parent = path.parent,
scope = path.scope;
ReferencedIdentifier(path) {
const {
node,
parent,
scope
} = path;
if (node.name === "regeneratorRuntime" && regeneratorEnabled) {
path.replaceWith(this.addDefaultImport(this.moduleName + "/regenerator", "regeneratorRuntime"));
path.replaceWith(this.addDefaultImport(`${this.moduleName}/regenerator`, "regeneratorRuntime"));
return;

@@ -91,12 +123,13 @@ }

if (notPolyfillOrDoesUseBuiltIns) return;
if (_core.types.isMemberExpression(parent)) return;
if (_core().types.isMemberExpression(parent)) return;
if (!has(_definitions.default.builtins, node.name)) return;
if (scope.getBindingIdentifier(node.name)) return;
path.replaceWith(this.addDefaultImport(moduleName + "/core-js/" + _definitions.default.builtins[node.name], node.name));
path.replaceWith(this.addDefaultImport(`${moduleName}/core-js/${_definitions.default.builtins[node.name]}`, node.name));
},
CallExpression: function CallExpression(path) {
CallExpression(path) {
if (notPolyfillOrDoesUseBuiltIns) return;
if (path.node.arguments.length) return;
var callee = path.node.callee;
if (!_core.types.isMemberExpression(callee)) return;
const callee = path.node.callee;
if (!_core().types.isMemberExpression(callee)) return;
if (!callee.computed) return;

@@ -108,21 +141,25 @@

path.replaceWith(_core.types.callExpression(this.addDefaultImport(moduleName + "/core-js/get-iterator", "getIterator"), [callee.object]));
path.replaceWith(_core().types.callExpression(this.addDefaultImport(`${moduleName}/core-js/get-iterator`, "getIterator"), [callee.object]));
},
BinaryExpression: function BinaryExpression(path) {
BinaryExpression(path) {
if (notPolyfillOrDoesUseBuiltIns) return;
if (path.node.operator !== "in") return;
if (!path.get("left").matchesPattern("Symbol.iterator")) return;
path.replaceWith(_core.types.callExpression(this.addDefaultImport(moduleName + "/core-js/is-iterable", "isIterable"), [path.node.right]));
path.replaceWith(_core().types.callExpression(this.addDefaultImport(`${moduleName}/core-js/is-iterable`, "isIterable"), [path.node.right]));
},
MemberExpression: {
enter: function enter(path) {
enter(path) {
if (notPolyfillOrDoesUseBuiltIns) return;
if (!path.isReferenced()) return;
var node = path.node;
var obj = node.object;
var prop = node.property;
if (!_core.types.isReferenced(obj, node)) return;
const {
node
} = path;
const obj = node.object;
const prop = node.property;
if (!_core().types.isReferenced(obj, node)) return;
if (node.computed) return;
if (!has(_definitions.default.methods, obj.name)) return;
var methods = _definitions.default.methods[obj.name];
const methods = _definitions.default.methods[obj.name];
if (!has(methods, prop.name)) return;

@@ -132,5 +169,5 @@ if (path.scope.getBindingIdentifier(obj.name)) return;

if (obj.name === "Object" && prop.name === "defineProperty" && path.parentPath.isCallExpression()) {
var call = path.parentPath.node;
const call = path.parentPath.node;
if (call.arguments.length === 3 && _core.types.isLiteral(call.arguments[1])) {
if (call.arguments.length === 3 && _core().types.isLiteral(call.arguments[1])) {
return;

@@ -140,13 +177,17 @@ }

path.replaceWith(this.addDefaultImport(moduleName + "/core-js/" + methods[prop.name], obj.name + "$" + prop.name));
path.replaceWith(this.addDefaultImport(`${moduleName}/core-js/${methods[prop.name]}`, `${obj.name}$${prop.name}`));
},
exit: function exit(path) {
exit(path) {
if (notPolyfillOrDoesUseBuiltIns) return;
if (!path.isReferenced()) return;
var node = path.node;
var obj = node.object;
const {
node
} = path;
const obj = node.object;
if (!has(_definitions.default.builtins, obj.name)) return;
if (path.scope.getBindingIdentifier(obj.name)) return;
path.replaceWith(_core.types.memberExpression(this.addDefaultImport(moduleName + "/core-js/" + _definitions.default.builtins[obj.name], obj.name), node.property, node.computed));
path.replaceWith(_core().types.memberExpression(this.addDefaultImport(`${moduleName}/core-js/${_definitions.default.builtins[obj.name]}`, obj.name), node.property, node.computed));
}
}

@@ -153,0 +194,0 @@ }

{
"name": "@babel/plugin-transform-runtime",
"version": "7.0.0-beta.42",
"version": "7.0.0-beta.43",
"description": "Externalise references to helpers and builtins, automatically polyfilling your code without polluting globals",

@@ -12,12 +12,12 @@ "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-runtime",

"dependencies": {
"@babel/helper-module-imports": "7.0.0-beta.42",
"@babel/helper-plugin-utils": "7.0.0-beta.42"
"@babel/helper-module-imports": "7.0.0-beta.43",
"@babel/helper-plugin-utils": "7.0.0-beta.43"
},
"peerDependencies": {
"@babel/core": "7.0.0-beta.42"
"@babel/core": "7.0.0-beta.43"
},
"devDependencies": {
"@babel/core": "7.0.0-beta.42",
"@babel/helper-plugin-test-runner": "7.0.0-beta.42"
"@babel/core": "7.0.0-beta.43",
"@babel/helper-plugin-test-runner": "7.0.0-beta.43"
}
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc