Socket
Socket
Sign inDemoInstall

@babel/plugin-transform-for-of

Package Overview
Dependencies
Maintainers
6
Versions
86
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@babel/plugin-transform-for-of - npm Package Compare versions

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

184

lib/index.js

@@ -9,5 +9,5 @@ "use strict";

function _helperPluginUtils() {
const data = require("@babel/helper-plugin-utils");
var data = require("@babel/helper-plugin-utils");
_helperPluginUtils = function () {
_helperPluginUtils = function _helperPluginUtils() {
return data;

@@ -20,5 +20,5 @@ };

function _core() {
const data = require("@babel/core");
var data = require("@babel/core");
_core = function () {
_core = function _core() {
return data;

@@ -30,11 +30,9 @@ };

var _default = (0, _helperPluginUtils().declare)((api, options) => {
var _default = (0, _helperPluginUtils().declare)(function (api, options) {
api.assertVersion(7);
const {
loose,
assumeArray
} = options;
var loose = options.loose,
assumeArray = options.assumeArray;
if (loose === true && assumeArray === true) {
throw new Error(`The loose and assumeArray options cannot be used together in @babel/plugin-transform-for-of`);
throw new Error("The loose and assumeArray options cannot be used together in @babel/plugin-transform-for-of");
}

@@ -45,14 +43,11 @@

visitor: {
ForOfStatement(path) {
const {
scope
} = path;
const {
left,
right,
body
} = path.node;
const i = scope.generateUidIdentifier("i");
let array = scope.maybeGenerateMemoised(right, true);
const inits = [_core().types.variableDeclarator(i, _core().types.numericLiteral(0))];
ForOfStatement: function ForOfStatement(path) {
var scope = path.scope;
var _path$node = path.node,
left = _path$node.left,
right = _path$node.right,
body = _path$node.body;
var i = scope.generateUidIdentifier("i");
var array = scope.maybeGenerateMemoised(right, true);
var inits = [_core().types.variableDeclarator(i, _core().types.numericLiteral(0))];

@@ -65,5 +60,5 @@ if (array) {

const item = _core().types.memberExpression(_core().types.cloneNode(array), _core().types.cloneNode(i), true);
var item = _core().types.memberExpression(_core().types.cloneNode(array), _core().types.cloneNode(i), true);
let assignment;
var assignment;

@@ -77,3 +72,3 @@ if (_core().types.isVariableDeclaration(left)) {

const block = _core().types.toBlock(body);
var block = _core().types.toBlock(body);

@@ -83,3 +78,2 @@ block.body.unshift(assignment);

}
}

@@ -89,58 +83,15 @@ };

const pushComputedProps = loose ? pushComputedPropsLoose : pushComputedPropsSpec;
const buildForOfArray = (0, _core().template)(`
for (var KEY = 0; KEY < ARR.length; KEY++) BODY;
`);
const buildForOfLoose = (0, _core().template)(`
for (var LOOP_OBJECT = OBJECT,
IS_ARRAY = Array.isArray(LOOP_OBJECT),
INDEX = 0,
LOOP_OBJECT = IS_ARRAY ? LOOP_OBJECT : LOOP_OBJECT[Symbol.iterator]();;) {
INTERMEDIATE;
if (IS_ARRAY) {
if (INDEX >= LOOP_OBJECT.length) break;
ID = LOOP_OBJECT[INDEX++];
} else {
INDEX = LOOP_OBJECT.next();
if (INDEX.done) break;
ID = INDEX.value;
}
}
`);
const buildForOf = (0, _core().template)(`
var ITERATOR_COMPLETION = true;
var ITERATOR_HAD_ERROR_KEY = false;
var ITERATOR_ERROR_KEY = undefined;
try {
for (
var ITERATOR_KEY = OBJECT[Symbol.iterator](), STEP_KEY;
!(ITERATOR_COMPLETION = (STEP_KEY = ITERATOR_KEY.next()).done);
ITERATOR_COMPLETION = true
) {}
} catch (err) {
ITERATOR_HAD_ERROR_KEY = true;
ITERATOR_ERROR_KEY = err;
} finally {
try {
if (!ITERATOR_COMPLETION && ITERATOR_KEY.return != null) {
ITERATOR_KEY.return();
}
} finally {
if (ITERATOR_HAD_ERROR_KEY) {
throw ITERATOR_ERROR_KEY;
}
}
}
`);
var pushComputedProps = loose ? pushComputedPropsLoose : pushComputedPropsSpec;
var buildForOfArray = (0, _core().template)("\n for (var KEY = 0; KEY < ARR.length; KEY++) BODY;\n ");
var buildForOfLoose = (0, _core().template)("\n for (var LOOP_OBJECT = OBJECT,\n IS_ARRAY = Array.isArray(LOOP_OBJECT),\n INDEX = 0,\n LOOP_OBJECT = IS_ARRAY ? LOOP_OBJECT : LOOP_OBJECT[Symbol.iterator]();;) {\n INTERMEDIATE;\n if (IS_ARRAY) {\n if (INDEX >= LOOP_OBJECT.length) break;\n ID = LOOP_OBJECT[INDEX++];\n } else {\n INDEX = LOOP_OBJECT.next();\n if (INDEX.done) break;\n ID = INDEX.value;\n }\n }\n ");
var buildForOf = (0, _core().template)("\n var ITERATOR_COMPLETION = true;\n var ITERATOR_HAD_ERROR_KEY = false;\n var ITERATOR_ERROR_KEY = undefined;\n try {\n for (\n var ITERATOR_KEY = OBJECT[Symbol.iterator](), STEP_KEY;\n !(ITERATOR_COMPLETION = (STEP_KEY = ITERATOR_KEY.next()).done);\n ITERATOR_COMPLETION = true\n ) {}\n } catch (err) {\n ITERATOR_HAD_ERROR_KEY = true;\n ITERATOR_ERROR_KEY = err;\n } finally {\n try {\n if (!ITERATOR_COMPLETION && ITERATOR_KEY.return != null) {\n ITERATOR_KEY.return();\n }\n } finally {\n if (ITERATOR_HAD_ERROR_KEY) {\n throw ITERATOR_ERROR_KEY;\n }\n }\n }\n ");
function _ForOfStatementArray(path) {
const {
node,
scope
} = path;
const nodes = [];
let right = node.right;
var node = path.node,
scope = path.scope;
var nodes = [];
var right = node.right;
if (!_core().types.isIdentifier(right) || !scope.hasBinding(right.name)) {
const uid = scope.generateUid("arr");
var uid = scope.generateUid("arr");
nodes.push(_core().types.variableDeclaration("var", [_core().types.variableDeclarator(_core().types.identifier(uid), right)]));

@@ -150,4 +101,4 @@ right = _core().types.identifier(uid);

const iterationKey = scope.generateUidIdentifier("i");
let loop = buildForOfArray({
var iterationKey = scope.generateUidIdentifier("i");
var loop = buildForOfArray({
BODY: node.body,

@@ -162,5 +113,5 @@ KEY: iterationKey,

const iterationValue = _core().types.memberExpression(_core().types.cloneNode(right), _core().types.cloneNode(iterationKey), true);
var iterationValue = _core().types.memberExpression(_core().types.cloneNode(right), _core().types.cloneNode(iterationKey), true);
const left = node.left;
var left = node.left;

@@ -192,4 +143,4 @@ if (_core().types.isVariableDeclaration(left)) {

visitor: {
ForOfStatement(path, state) {
const right = path.get("right");
ForOfStatement: function ForOfStatement(path, state) {
var right = path.get("right");

@@ -201,9 +152,7 @@ if (right.isArrayExpression() || right.isGenericType("Array") || _core().types.isArrayTypeAnnotation(right.getTypeAnnotation())) {

const {
node
} = path;
const build = pushComputedProps(path, state);
const declar = build.declar;
const loop = build.loop;
const block = loop.body;
var node = path.node;
var build = pushComputedProps(path, state);
var declar = build.declar;
var loop = build.loop;
var block = loop.body;
path.ensureBlock();

@@ -228,3 +177,2 @@

}
}

@@ -234,11 +182,7 @@ };

function pushComputedPropsLoose(path, file) {
const {
node,
scope,
parent
} = path;
const {
left
} = node;
let declar, id, intermediate;
var node = path.node,
scope = path.scope,
parent = path.parent;
var left = node.left;
var declar, id, intermediate;

@@ -253,8 +197,8 @@ if (_core().types.isIdentifier(left) || _core().types.isPattern(left) || _core().types.isMemberExpression(left)) {

} else {
throw file.buildCodeFrameError(left, `Unknown node type ${left.type} in ForStatement`);
throw file.buildCodeFrameError(left, "Unknown node type " + left.type + " in ForStatement");
}
const iteratorKey = scope.generateUidIdentifier("iterator");
const isArrayKey = scope.generateUidIdentifier("isArray");
const loop = buildForOfLoose({
var iteratorKey = scope.generateUidIdentifier("iterator");
var isArrayKey = scope.generateUidIdentifier("isArray");
var loop = buildForOfLoose({
LOOP_OBJECT: iteratorKey,

@@ -268,5 +212,5 @@ IS_ARRAY: isArrayKey,

const isLabeledParent = _core().types.isLabeledStatement(parent);
var isLabeledParent = _core().types.isLabeledStatement(parent);
let labeled;
var labeled;

@@ -286,12 +230,10 @@ if (isLabeledParent) {

function pushComputedPropsSpec(path, file) {
const {
node,
scope,
parent
} = path;
const left = node.left;
let declar;
const stepKey = scope.generateUid("step");
var node = path.node,
scope = path.scope,
parent = path.parent;
var left = node.left;
var declar;
var stepKey = scope.generateUid("step");
const stepValue = _core().types.memberExpression(_core().types.identifier(stepKey), _core().types.identifier("value"));
var stepValue = _core().types.memberExpression(_core().types.identifier(stepKey), _core().types.identifier("value"));

@@ -303,6 +245,6 @@ if (_core().types.isIdentifier(left) || _core().types.isPattern(left) || _core().types.isMemberExpression(left)) {

} else {
throw file.buildCodeFrameError(left, `Unknown node type ${left.type} in ForStatement`);
throw file.buildCodeFrameError(left, "Unknown node type " + left.type + " in ForStatement");
}
const template = buildForOf({
var template = buildForOf({
ITERATOR_HAD_ERROR_KEY: scope.generateUidIdentifier("didIteratorError"),

@@ -316,6 +258,6 @@ ITERATOR_COMPLETION: scope.generateUidIdentifier("iteratorNormalCompletion"),

const isLabeledParent = _core().types.isLabeledStatement(parent);
var isLabeledParent = _core().types.isLabeledStatement(parent);
const tryBody = template[3].block.body;
const loop = tryBody[0];
var tryBody = template[3].block.body;
var loop = tryBody[0];

@@ -322,0 +264,0 @@ if (isLabeledParent) {

{
"name": "@babel/plugin-transform-for-of",
"version": "7.0.0-beta.43",
"version": "7.0.0-beta.44",
"description": "Compile ES2015 for...of to ES5",

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

"dependencies": {
"@babel/helper-plugin-utils": "7.0.0-beta.43"
"@babel/helper-plugin-utils": "7.0.0-beta.44"
},
"peerDependencies": {
"@babel/core": "7.0.0-beta.43"
"@babel/core": "7.0.0-beta.44"
},
"devDependencies": {
"@babel/core": "7.0.0-beta.43",
"@babel/helper-plugin-test-runner": "7.0.0-beta.43"
"@babel/core": "7.0.0-beta.44",
"@babel/helper-plugin-test-runner": "7.0.0-beta.44"
}
}
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