Comparing version 2.13.3 to 2.13.4
@@ -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", | ||
"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
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
Mixed license
License(Experimental) Package contains multiple licenses.
Found 1 instance in 1 package
Unidentified License
License(Experimental) Something that seems like a license was found, but its contents could not be matched with a known license.
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
1761092
128
14700
2
80