turn array for ins into fors

This commit is contained in:
Sebastian McKenzie 2015-01-16 02:25:41 +11:00
parent 71879d6e8f
commit 0627cd94d4
18 changed files with 45 additions and 43 deletions

View File

@ -169,7 +169,7 @@ exports.VariableDeclaration = function (node, print, parent) {
var inits = 0; var inits = 0;
var noInits = 0; var noInits = 0;
for (var i in node.declarations) { for (var i = 0; i < node.declarations.length; i++) {
if (node.declarations[i].init) { if (node.declarations[i].init) {
inits++; inits++;
} else { } else {

View File

@ -244,13 +244,13 @@ DefaultFormatter.prototype.exportDeclaration = function (node, nodes) {
var assign; var assign;
if (t.isVariableDeclaration(declar)) { if (t.isVariableDeclaration(declar)) {
for (var i in declar.declarations) { for (var i = 0; i < declar.declarations.length; i++) {
var decl = declar.declarations[i]; var decl = declar.declarations[i];
decl.init = this._exportsAssign(decl.id, decl.init, node).expression; decl.init = this._exportsAssign(decl.id, decl.init, node).expression;
var newDeclar = t.variableDeclaration(declar.kind, [decl]); var newDeclar = t.variableDeclaration(declar.kind, [decl]);
if (i === "0") t.inherits(newDeclar, declar); if (i === 0) t.inherits(newDeclar, declar);
nodes.push(newDeclar); nodes.push(newDeclar);
} }
} else { } else {

View File

@ -20,7 +20,7 @@ transform.fromAst = function (ast, code, opts) {
}; };
transform._ensureTransformerNames = function (type, keys) { transform._ensureTransformerNames = function (type, keys) {
for (var i in keys) { for (var i = 0; i < keys.length; i++) {
var key = keys[i]; var key = keys[i];
if (!_.has(transform.transformers, key)) { if (!_.has(transform.transformers, key)) {
throw new ReferenceError("unknown transformer " + key + " specified in " + type); throw new ReferenceError("unknown transformer " + key + " specified in " + type);

View File

@ -12,7 +12,7 @@ exports.BlockStatement =
exports.Program = { exports.Program = {
exit: function (node) { exit: function (node) {
var hasChange = false; var hasChange = false;
for (var i in node.body) { for (var i = 0; i < node.body.length; i++) {
var bodyNode = node.body[i]; var bodyNode = node.body[i];
if (bodyNode && bodyNode._blockHoist != null) hasChange = true; if (bodyNode && bodyNode._blockHoist != null) hasChange = true;
} }

View File

@ -5,6 +5,8 @@ exports.secondPass = true;
exports.BlockStatement = exports.BlockStatement =
exports.Program = function (node) { exports.Program = function (node) {
if (!node._declarations) return;
var kinds = {}; var kinds = {};
var kind; var kind;

View File

@ -132,7 +132,7 @@ Class.prototype.buildBody = function () {
var classBody = this.node.body.body; var classBody = this.node.body.body;
var body = this.body; var body = this.body;
for (var i in classBody) { for (var i = 0; i < classBody.length; i++) {
var node = classBody[i]; var node = classBody[i];
if (t.isMethodDefinition(node)) { if (t.isMethodDefinition(node)) {
this.replaceSuperReferences(node); this.replaceSuperReferences(node);

View File

@ -3,7 +3,7 @@ var t = require("../../types");
exports.ObjectExpression = function (node, parent, file, scope) { exports.ObjectExpression = function (node, parent, file, scope) {
var hasComputed = false; var hasComputed = false;
for (var i in node.properties) { for (var i = 0; i < node.properties.length; i++) {
hasComputed = t.isProperty(node.properties[i], { computed: true, kind: "init" }); hasComputed = t.isProperty(node.properties[i], { computed: true, kind: "init" });
if (hasComputed) break; if (hasComputed) break;
} }
@ -39,7 +39,7 @@ exports.ObjectExpression = function (node, parent, file, scope) {
}; };
var loose = function (node, body, objId) { var loose = function (node, body, objId) {
for (var i in node.properties) { for (var i = 0; i < node.properties.length; i++) {
var prop = node.properties[i]; var prop = node.properties[i];
body.push(t.expressionStatement( body.push(t.expressionStatement(
@ -58,7 +58,7 @@ var spec = function (node, body, objId, initProps, file) {
// normalise key // normalise key
for (var i in props) { for (var i = 0; i < props.length; i++) {
prop = props[i]; prop = props[i];
if (prop.kind !== "init") continue; if (prop.kind !== "init") continue;
@ -73,7 +73,7 @@ var spec = function (node, body, objId, initProps, file) {
var broken = false; var broken = false;
for (i in props) { for (i = 0; i < props.length; i++) {
prop = props[i]; prop = props[i];
if (prop.computed) { if (prop.computed) {
@ -89,7 +89,7 @@ var spec = function (node, body, objId, initProps, file) {
// add a simple assignment for all Symbol member expressions due to symbol polyfill limitations // add a simple assignment for all Symbol member expressions due to symbol polyfill limitations
// otherwise use Object.defineProperty // otherwise use Object.defineProperty
for (i in props) { for (i = 0; i < props.length; i++) {
prop = props[i]; prop = props[i];
if (!prop) continue; if (!prop) continue;

View File

@ -44,7 +44,7 @@ exports.ForStatement = function (node, parent, file) {
} }
if (t.isVariableDeclaration(child, { kind: "const" })) { if (t.isVariableDeclaration(child, { kind: "const" })) {
for (var i in child.declarations) { for (var i = 0; i < child.declarations.length; i++) {
var declar = child.declarations[i]; var declar = child.declarations[i];
var ids = getIds(declar); var ids = getIds(declar);

View File

@ -31,7 +31,7 @@ exports.Function = function (node, parent, file, scope) {
traverse(def, { enter: check }); traverse(def, { enter: check });
}; };
for (i in node.defaults) { for (i = 0; i < node.defaults.length; i++) {
def = node.defaults[i]; def = node.defaults[i];
if (!def) continue; if (!def) continue;
@ -40,7 +40,7 @@ exports.Function = function (node, parent, file, scope) {
// temporal dead zone check - here we prevent accessing of params that // temporal dead zone check - here we prevent accessing of params that
// are to the right - ie. uninitialized parameters // are to the right - ie. uninitialized parameters
var rightIds = ids.slice(i); var rightIds = ids.slice(i);
for (i in rightIds) { for (i = 0; i < rightIds.length; i++) {
checkTDZ(rightIds[i]); checkTDZ(rightIds[i]);
} }
@ -58,7 +58,7 @@ exports.Function = function (node, parent, file, scope) {
var lastNonDefaultParam = 0; var lastNonDefaultParam = 0;
for (i in node.defaults) { for (i = 0; i < node.defaults.length; i++) {
def = node.defaults[i]; def = node.defaults[i];
if (!def) { if (!def) {
lastNonDefaultParam = +i + 1; lastNonDefaultParam = +i + 1;

View File

@ -46,12 +46,12 @@ var pushAssignmentPattern = function (opts, nodes, pattern, parentId) {
}; };
var pushObjectPattern = function (opts, nodes, pattern, parentId) { var pushObjectPattern = function (opts, nodes, pattern, parentId) {
for (var i in pattern.properties) { for (var i = 0; i < pattern.properties.length; i++) {
var prop = pattern.properties[i]; var prop = pattern.properties[i];
if (t.isSpreadProperty(prop)) { if (t.isSpreadProperty(prop)) {
// get all the keys that appear in this object before the current spread // get all the keys that appear in this object before the current spread
var keys = []; var keys = [];
for (var i2 in pattern.properties) { for (var i2 = 0; i2 < pattern.properties.length; i2++) {
var prop2 = pattern.properties[i2]; var prop2 = pattern.properties[i2];
if (i2 >= i) break; if (i2 >= i) break;
@ -88,7 +88,7 @@ var pushArrayPattern = function (opts, nodes, pattern, parentId) {
var i; var i;
var hasSpreadElement = false; var hasSpreadElement = false;
for (i in pattern.elements) { for (i = 0; i < pattern.elements.length; i++) {
if (t.isSpreadElement(pattern.elements[i])) { if (t.isSpreadElement(pattern.elements[i])) {
hasSpreadElement = true; hasSpreadElement = true;
break; break;
@ -103,7 +103,7 @@ var pushArrayPattern = function (opts, nodes, pattern, parentId) {
])); ]));
parentId = _parentId; parentId = _parentId;
for (i in pattern.elements) { for (i = 0; i < pattern.elements.length; i++) {
var elem = pattern.elements[i]; var elem = pattern.elements[i];
if (!elem) continue; if (!elem) continue;
@ -278,7 +278,7 @@ exports.VariableDeclaration = function (node, parent, file, scope) {
var declar; var declar;
var hasPattern = false; var hasPattern = false;
for (i in node.declarations) { for (i = 0; i < node.declarations.length; i++) {
declar = node.declarations[i]; declar = node.declarations[i];
if (t.isPattern(declar.id)) { if (t.isPattern(declar.id)) {
hasPattern = true; hasPattern = true;
@ -287,7 +287,7 @@ exports.VariableDeclaration = function (node, parent, file, scope) {
} }
if (!hasPattern) return; if (!hasPattern) return;
for (i in node.declarations) { for (i = 0; i < node.declarations.length; i++) {
declar = node.declarations[i]; declar = node.declarations[i];
var patternId = declar.init; var patternId = declar.init;
@ -317,7 +317,7 @@ exports.VariableDeclaration = function (node, parent, file, scope) {
if (!t.isProgram(parent) && !t.isBlockStatement(parent)) { if (!t.isProgram(parent) && !t.isBlockStatement(parent)) {
declar = null; declar = null;
for (i in nodes) { for (i = 0; i < nodes.length; i++) {
node = nodes[i]; node = nodes[i];
declar = declar || t.variableDeclaration(node.kind, []); declar = declar || t.variableDeclaration(node.kind, []);

View File

@ -25,7 +25,7 @@ var isVar = function (node, parent) {
}; };
var standardiseLets = function (declars) { var standardiseLets = function (declars) {
for (var i in declars) { for (var i = 0; i < declars.length; i++) {
delete declars[i]._let; delete declars[i]._let;
} }
}; };
@ -246,7 +246,7 @@ LetScoping.prototype.getInfo = function () {
opts.keys = opts.keys.concat(keys); opts.keys = opts.keys.concat(keys);
} }
for (i in block.body) { for (i = 0; i < block.body.length; i++) {
declar = block.body[i]; declar = block.body[i];
if (!isLet(declar, block)) continue; if (!isLet(declar, block)) continue;
@ -412,7 +412,7 @@ LetScoping.prototype.pushDeclar = function (node) {
var replace = []; var replace = [];
for (var i in node.declarations) { for (var i = 0; i < node.declarations.length; i++) {
var declar = node.declarations[i]; var declar = node.declarations[i];
if (!declar.init) continue; if (!declar.init) continue;

View File

@ -10,7 +10,7 @@ exports.ImportDeclaration = function (node, parent, file) {
var nodes = []; var nodes = [];
if (node.specifiers.length) { if (node.specifiers.length) {
for (var i in node.specifiers) { for (var i = 0; i < node.specifiers.length; i++) {
file.moduleFormatter.importSpecifier(node.specifiers[i], node, nodes, parent); file.moduleFormatter.importSpecifier(node.specifiers[i], node, nodes, parent);
} }
} else { } else {
@ -39,7 +39,7 @@ exports.ExportDeclaration = function (node, parent, file) {
file.moduleFormatter.exportDeclaration(node, nodes, parent); file.moduleFormatter.exportDeclaration(node, nodes, parent);
} else { } else {
for (var i in node.specifiers) { for (var i = 0; i < node.specifiers.length; i++) {
file.moduleFormatter.exportSpecifier(node.specifiers[i], node, nodes, parent); file.moduleFormatter.exportSpecifier(node.specifiers[i], node, nodes, parent);
} }
} }

View File

@ -6,7 +6,7 @@ var getSpreadLiteral = function (spread, file) {
}; };
var hasSpread = function (nodes) { var hasSpread = function (nodes) {
for (var i in nodes) { for (var i = 0; i < nodes.length; i++) {
if (t.isSpreadElement(nodes[i])) { if (t.isSpreadElement(nodes[i])) {
return true; return true;
} }
@ -25,7 +25,7 @@ var build = function (props, file) {
_props = []; _props = [];
}; };
for (var i in props) { for (var i = 0; i < props.length; i++) {
var prop = props[i]; var prop = props[i];
if (t.isSpreadElement(prop)) { if (t.isSpreadElement(prop)) {
push(); push();

View File

@ -11,7 +11,7 @@ exports.TaggedTemplateExpression = function (node, parent, file) {
var strings = []; var strings = [];
var raw = []; var raw = [];
for (var i in quasi.quasis) { for (var i = 0; i < quasi.quasis.length; i++) {
var elem = quasi.quasis[i]; var elem = quasi.quasis[i];
strings.push(t.literal(elem.value.cooked)); strings.push(t.literal(elem.value.cooked));
raw.push(t.literal(elem.value.raw)); raw.push(t.literal(elem.value.raw));
@ -33,7 +33,7 @@ exports.TemplateLiteral = function (node) {
var nodes = []; var nodes = [];
var i; var i;
for (i in node.quasis) { for (i = 0; i < node.quasis.length; i++) {
var elem = node.quasis[i]; var elem = node.quasis[i];
nodes.push(t.literal(elem.value.cooked)); nodes.push(t.literal(elem.value.cooked));
@ -49,7 +49,7 @@ exports.TemplateLiteral = function (node) {
var root = buildBinaryExpression(nodes.shift(), nodes.shift()); var root = buildBinaryExpression(nodes.shift(), nodes.shift());
for (i in nodes) { for (i = 0; i < nodes.length; i++) {
root = buildBinaryExpression(root, nodes[i]); root = buildBinaryExpression(root, nodes[i]);
} }

View File

@ -8,7 +8,7 @@ exports.ObjectExpression = function (node, parent, file) {
var hasSpread = false; var hasSpread = false;
var i; var i;
var prop; var prop;
for (i in node.properties) { for (i = 0; i < node.properties.length; i++) {
prop = node.properties[i]; prop = node.properties[i];
if (t.isSpreadProperty(prop)) { if (t.isSpreadProperty(prop)) {
hasSpread = true; hasSpread = true;
@ -26,7 +26,7 @@ exports.ObjectExpression = function (node, parent, file) {
props = []; props = [];
}; };
for (i in node.properties) { for (i = 0; i < node.properties.length; i++) {
prop = node.properties[i]; prop = node.properties[i];
if (t.isSpreadProperty(prop)) { if (t.isSpreadProperty(prop)) {
push(); push();

View File

@ -44,7 +44,7 @@ exports.ExpressionStatement = function (node, parent, file) {
exports.ObjectExpression = function (node, parent, file) { exports.ObjectExpression = function (node, parent, file) {
var proto; var proto;
for (var i in node.properties) { for (var i = 0; i < node.properties.length; i++) {
var prop = node.properties[i]; var prop = node.properties[i];
if (isProtoKey(prop)) { if (isProtoKey(prop)) {

View File

@ -136,17 +136,17 @@ exports.XJSElement = {
var callExpr = node.openingElement; var callExpr = node.openingElement;
var i; var i;
for (i in node.children) { for (i = 0; i < node.children.length; i++) {
var child = node.children[i]; var child = node.children[i];
if (t.isLiteral(child) && _.isString(child.value)) { if (t.isLiteral(child) && _.isString(child.value)) {
var lines = child.value.split(/\r\n|\n|\r/); var lines = child.value.split(/\r\n|\n|\r/);
for (i in lines) { for (i2 = 0; i2 < lines.length; i2++) {
var line = lines[i]; var line = lines[i2];
var isFirstLine = i === "0"; var isFirstLine = i2 === 0;
var isLastLine = +i === lines.length - 1; var isLastLine = i2 === lines.length - 1;
// replace rendered whitespace tabs with spaces // replace rendered whitespace tabs with spaces
var trimmedLine = line.replace(/\t/g, " "); var trimmedLine = line.replace(/\t/g, " ");
@ -209,7 +209,7 @@ var addDisplayName = function (id, call) {
var props = first.properties; var props = first.properties;
var safe = true; var safe = true;
for (var i in props) { for (var i = 0; i < props.length; i++) {
prop = props[i]; prop = props[i];
if (t.isIdentifier(prop.key, { name: "displayName" })) { if (t.isIdentifier(prop.key, { name: "displayName" })) {
safe = false; safe = false;

View File

@ -440,7 +440,7 @@ t.getIds = function (node, map, ignoreTypes) {
if (t.isIdentifier(id)) { if (t.isIdentifier(id)) {
ids[id.name] = id; ids[id.name] = id;
} else if (nodeKeys) { } else if (nodeKeys) {
for (i in nodeKeys) { for (i = 0; i < nodeKeys.length; i++) {
key = nodeKeys[i]; key = nodeKeys[i];
if (id[key]) { if (id[key]) {
search.push(id[key]); search.push(id[key]);
@ -448,7 +448,7 @@ t.getIds = function (node, map, ignoreTypes) {
} }
} }
} else if (arrKeys) { } else if (arrKeys) {
for (i in arrKeys) { for (i = 0; i < arrKeys.length; i++) {
key = arrKeys[i]; key = arrKeys[i];
search = search.concat(id[key] || []); search = search.concat(id[key] || []);
} }