Addresses #597, Don't iterate Array with for...in

This commit is contained in:
Simon Kornblith 2011-09-05 01:55:54 +00:00
parent dc2d417c3d
commit 31f3733cbf
4 changed files with 11 additions and 9 deletions

View File

@ -57,7 +57,7 @@ Zotero.Translate.ItemSaver.prototype = {
*/ */
"_saveToServer":function(items, callback) { "_saveToServer":function(items, callback) {
var newItems = []; var newItems = [];
for(var i in items) { for(var i=0, n=items.length; i<n; i++) {
newItems.push(Zotero.Utilities.itemToServerJSON(items[i])); newItems.push(Zotero.Utilities.itemToServerJSON(items[i]));
} }

View File

@ -344,7 +344,7 @@ Zotero.Date = new function(){
if (Zotero.locale != 'en-US') { if (Zotero.locale != 'en-US') {
Zotero.Date.getMonths(); Zotero.Date.getMonths();
months = months.concat(_months['short']).concat(_months['long']); months = months.concat(_months['short']).concat(_months['long']);
for(var i in months) months[i] = months[i].toLowerCase(); for(var i=0, n=months.length; i<n; i++) months[i] = months[i].toLowerCase();
} }
if(!_monthRe) { if(!_monthRe) {

View File

@ -825,7 +825,7 @@ Zotero.Translate.Base.prototype = {
args.push(arguments[i]); args.push(arguments[i]);
} }
for(var i in this._handlers[type]) { for(var i=0, n=this._handlers[type].length; i<n; i++) {
Zotero.debug("Translate: Running handler "+i+" for "+type, 5); Zotero.debug("Translate: Running handler "+i+" for "+type, 5);
try { try {
returnValue = this._handlers[type][i].apply(null, args); returnValue = this._handlers[type][i].apply(null, args);
@ -891,7 +891,7 @@ Zotero.Translate.Base.prototype = {
this._properToProxyFunctions = properToProxyFunctions ? properToProxyFunctions : null; this._properToProxyFunctions = properToProxyFunctions ? properToProxyFunctions : null;
this._waitingForRPC = false; this._waitingForRPC = false;
for(var i in allPotentialTranslators) { for(var i=0, n=allPotentialTranslators.length; i<n; i++) {
var translator = allPotentialTranslators[i]; var translator = allPotentialTranslators[i];
if(translator.runMode === Zotero.Translator.RUN_MODE_IN_BROWSER) { if(translator.runMode === Zotero.Translator.RUN_MODE_IN_BROWSER) {
this._potentialTranslators.push(translator); this._potentialTranslators.push(translator);
@ -1202,7 +1202,7 @@ Zotero.Translate.Base.prototype = {
"Zotero.Item = function (itemType) {"+ "Zotero.Item = function (itemType) {"+
"const createArrays = "+createArrays+";"+ "const createArrays = "+createArrays+";"+
"this.itemType = itemType;"+ "this.itemType = itemType;"+
"for(var i in createArrays) {"+ "for(var i=0, n=createArrays.length; i<n; i++) {"+
"this[createArrays[i]] = [];"+ "this[createArrays[i]] = [];"+
"}"+ "}"+
"};"; "};";
@ -1454,7 +1454,7 @@ Zotero.Translate.Web.prototype._translateRPCComplete = function(obj, failureCode
); );
} else { } else {
// if we don't have to select items, continue // if we don't have to select items, continue
for(var i in obj.items) { for(var i=0, n=obj.items.length; i<n; i++) {
this._runHandler("itemDone", null, obj.items[i]); this._runHandler("itemDone", null, obj.items[i]);
} }
this.newItems = obj.items; this.newItems = obj.items;
@ -1815,7 +1815,7 @@ Zotero.Translate.Search.prototype.setTranslator = function(translator) {
// accept a list of objects // accept a list of objects
this.translator = []; this.translator = [];
for(var i in translator) { for(var i=0, n=translator.length; i<n; i++) {
this.translator.push(translator[i]); this.translator.push(translator[i]);
} }
return true; return true;

View File

@ -719,6 +719,8 @@ Zotero.Utilities = {
"deepCopy":function(obj) { "deepCopy":function(obj) {
var obj2 = (obj instanceof Array ? [] : {}); var obj2 = (obj instanceof Array ? [] : {});
for(var i in obj) { for(var i in obj) {
if(!obj.hasOwnProperty(i)) continue;
if(typeof obj[i] === "object") { if(typeof obj[i] === "object") {
obj2[i] = Zotero.Utilities.deepCopy(obj[i]); obj2[i] = Zotero.Utilities.deepCopy(obj[i]);
} else { } else {
@ -813,7 +815,7 @@ Zotero.Utilities = {
if(!(elements instanceof Array)) elements = [elements]; if(!(elements instanceof Array)) elements = [elements];
var results = []; var results = [];
for(var i in elements) { for(var i=0, n=elements.length; i<n; i++) {
var element = elements[i]; var element = elements[i];
// Firefox 5 hack, so we will preserve Fx5DOMWrappers // Firefox 5 hack, so we will preserve Fx5DOMWrappers
@ -861,7 +863,7 @@ Zotero.Utilities = {
if(!elements.length) return null; if(!elements.length) return null;
var strings = new Array(elements.length); var strings = new Array(elements.length);
for(var i in elements) { for(var i=0, n=elements.length; i<n; i++) {
strings[i] = elements[i].textContent; strings[i] = elements[i].textContent;
} }