Socket
Socket
Sign inDemoInstall

6to5-core

Package Overview
Dependencies
94
Maintainers
1
Versions
73
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 2.13.3 to 2.13.4

lib/6to5/transformation/transformers/optional-undeclared-variable-check.js

11

lib/6to5/generation/generators/statements.js

@@ -172,10 +172,9 @@ "use strict";

var inits = 0;
var noInits = 0;
var hasInits = false;
// don't add whitespace to loop heads
if (!t.isFor(parent)) {
for (var i = 0; i < node.declarations.length; i++) {
if (node.declarations[i].init) {
inits++;
} else {
noInits++;
// has an init so let's split it up over multiple lines
hasInits = true;
}

@@ -186,3 +185,3 @@ }

var sep = ",";
if (inits > noInits) { // more inits than no inits so let's add a newline
if (hasInits) {
sep += "\n" + util.repeat(node.kind.length + 1);

@@ -189,0 +188,0 @@ } else {

@@ -74,4 +74,4 @@ "use strict";

computedPropertyNames: require("./transformers/es6-computed-property-names"),
defaultParameters: require("./transformers/es6-default-parameters"),
destructuring: require("./transformers/es6-destructuring"),
defaultParameters: require("./transformers/es6-default-parameters"),
forOf: require("./transformers/es6-for-of"),

@@ -102,2 +102,3 @@ unicodeRegex: require("./transformers/es6-unicode-regex"),

undefinedToVoid: require("./transformers/optional-undefined-to-void"),
undeclaredVariableCheck: require("./transformers/optional-undeclared-variable-check"),

@@ -104,0 +105,0 @@ // spec

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

var checkTDZ = function (ids) {
var checkTDZ = function (param, def, ids) {
var check = function (node, parent) {
if (!t.isIdentifier(node) || !t.isReferenced(node, parent)) return;
if (!t.isReferencedIdentifier(node, parent)) return;

@@ -33,3 +33,6 @@ if (ids.indexOf(node.name) >= 0) {

check(def, node);
traverse(def, { enter: check });
if (!t.isPattern(param)) {
traverse(def, { enter: check });
}
};

@@ -47,3 +50,3 @@

for (var i2 = 0; i2 < rightIds.length; i2++) {
checkTDZ(rightIds[i2]);
checkTDZ(param, def, rightIds[i2]);
}

@@ -72,3 +75,3 @@

body.push(util.template("default-parameter", {
var defNode = util.template("default-parameter", {
VARIABLE_NAME: node.params[i],

@@ -78,3 +81,5 @@ DEFAULT_VALUE: def,

ARGUMENTS: argsIdentifier
}, true));
}, true);
defNode._blockHoist = node.defaults.length - i;
body.push(defNode);
}

@@ -81,0 +86,0 @@

@@ -11,11 +11,25 @@ "use strict";

var node;
if (op) {
return t.expressionStatement(t.assignmentExpression(op, id, init));
node = t.expressionStatement(t.assignmentExpression(op, id, init));
} else {
return t.variableDeclaration(opts.kind, [
node = t.variableDeclaration(opts.kind, [
t.variableDeclarator(id, init)
]);
}
node._blockHoist = opts.blockHoist;
return node;
};
var buildVariableDeclar = function (opts, id, init) {
var declar = t.variableDeclaration("var", [
t.variableDeclarator(id, init)
]);
declar._blockHoist = opts.blockHoist;
return declar;
};
var push = function (opts, nodes, elem, parentId) {

@@ -104,5 +118,3 @@ if (t.isObjectPattern(elem)) {

var _parentId = opts.scope.generateUidBasedOnNode(parentId, opts.file);
nodes.push(t.variableDeclaration("var", [
t.variableDeclarator(_parentId, toArray)
]));
nodes.push(buildVariableDeclar(opts, _parentId, toArray));
parentId = _parentId;

@@ -143,7 +155,3 @@

var key = scope.generateUidBasedOnNode(parentId, file);
nodes.push(t.variableDeclaration("var", [
t.variableDeclarator(key, parentId)
]));
nodes.push(buildVariableDeclar(opts, key, parentId));
parentId = key;

@@ -187,3 +195,3 @@ }

node.params = node.params.map(function (pattern) {
node.params = node.params.map(function (pattern, i) {
if (!t.isPattern(pattern)) return pattern;

@@ -195,8 +203,9 @@

pushPattern({
kind: "var",
nodes: nodes,
pattern: pattern,
id: parentId,
file: file,
scope: scope
blockHoist: node.params.length - i,
pattern: pattern,
nodes: nodes,
scope: scope,
file: file,
kind: "var",
id: parentId
});

@@ -302,8 +311,8 @@

var opts = {
pattern: pattern,
nodes: nodes,
scope: scope,
kind: node.kind,
nodes: nodes,
pattern: pattern,
file: file,
id: patternId,
file: file,
scope: scope
};

@@ -310,0 +319,0 @@

@@ -33,2 +33,5 @@ "use strict";

// todo: find out why this is necessary? #538
loop._scopeInfo = node._scopeInfo;
return loop;

@@ -35,0 +38,0 @@ };

@@ -120,5 +120,6 @@ "use strict";

LetScoping.prototype.remap = function () {
var letRefs = this.letReferences;
var scope = this.scope;
var file = this.file;
var hasRemaps = false;
var letRefs = this.letReferences;
var scope = this.scope;
var file = this.file;

@@ -140,2 +141,3 @@ // alright, so since we aren't wrapping this block in a closure

hasRemaps = true;
remaps[key] = remaps[uid] = {

@@ -148,7 +150,8 @@ node: ref,

if (!hasRemaps) return;
//
var replace = function (node, parent, scope, context, remaps) {
if (!t.isIdentifier(node)) return;
if (!t.isReferenced(node, parent)) return;
if (!t.isReferencedIdentifier(node, parent)) return;

@@ -272,7 +275,4 @@ var remap = remaps[node.name];

enter: function (node, parent) {
// not an identifier so we have no use
if (!t.isIdentifier(node)) return;
// not a direct reference
if (!t.isReferenced(node, parent)) return;
if (!t.isReferencedIdentifier(node, parent)) return;

@@ -279,0 +279,0 @@ // this scope has a variable with the same name so it couldn't belong

@@ -19,4 +19,3 @@ var traverse = require("../../traverse");

enter: function (node, parent, scope, context, state) {
if (!t.isIdentifier(node)) return;
if (!t.isReferenced(node, parent)) return;
if (!t.isReferencedIdentifier(node, parent)) return;

@@ -23,0 +22,0 @@ var declared = state.letRefs[node.name];

@@ -45,3 +45,3 @@ "use strict";

}
} else if (t.isIdentifier(node) && !t.isMemberExpression(parent) && t.isReferenced(node, parent) && _.contains(ALIASABLE_CONSTRUCTORS, node.name)) {
} else if (t.isReferencedIdentifier(node, parent) && !t.isMemberExpression(parent) && _.contains(ALIASABLE_CONSTRUCTORS, node.name)) {
// Symbol() -> _core.Symbol(); new Promise -> new _core.Promise

@@ -48,0 +48,0 @@ return t.memberExpression(file._coreId, node);

@@ -123,2 +123,3 @@ "use strict";

Scope.prototype.getInfo = function () {
var parent = this.parent;
var block = this.block;

@@ -136,2 +137,6 @@ if (block._scopeInfo) return block._scopeInfo;

if (parent && t.isBlockStatement(block) && t.isFor(parent.block)) {
return info;
}
// ForStatement - left, init

@@ -144,2 +149,6 @@

});
if (t.isBlockStatement(block.body)) {
block = block.body;
}
}

@@ -146,0 +155,0 @@

@@ -269,2 +269,14 @@ "use strict";

*
* @param {Object} node
* @param {Object} parent
* @returns {Boolean}
*/
t.isReferencedIdentifier = function (node, parent) {
return t.isIdentifier(node) && t.isReferenced(node, parent);
};
/**
* Description
*
* @param {String} name

@@ -479,3 +491,4 @@ * @returns {Boolean}

Property: ["value"],
ComprehensionBlock: ["left"]
ComprehensionBlock: ["left"],
AssignmentPattern: ["left"]
};

@@ -482,0 +495,0 @@

{
"name": "6to5-core",
"description": "Turn ES6 code into readable vanilla ES5 with source maps",
"version": "2.13.3",
"version": "2.13.4",
"author": "Sebastian McKenzie <sebmck@gmail.com>",

@@ -6,0 +6,0 @@ "homepage": "https://6to5.org/",

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc