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) {
var newItems = [];
for(var i in items) {
for(var i=0, n=items.length; i<n; i++) {
newItems.push(Zotero.Utilities.itemToServerJSON(items[i]));
}

View File

@ -344,7 +344,7 @@ Zotero.Date = new function(){
if (Zotero.locale != 'en-US') {
Zotero.Date.getMonths();
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) {

View File

@ -825,7 +825,7 @@ Zotero.Translate.Base.prototype = {
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);
try {
returnValue = this._handlers[type][i].apply(null, args);
@ -891,7 +891,7 @@ Zotero.Translate.Base.prototype = {
this._properToProxyFunctions = properToProxyFunctions ? properToProxyFunctions : null;
this._waitingForRPC = false;
for(var i in allPotentialTranslators) {
for(var i=0, n=allPotentialTranslators.length; i<n; i++) {
var translator = allPotentialTranslators[i];
if(translator.runMode === Zotero.Translator.RUN_MODE_IN_BROWSER) {
this._potentialTranslators.push(translator);
@ -1202,7 +1202,7 @@ Zotero.Translate.Base.prototype = {
"Zotero.Item = function (itemType) {"+
"const createArrays = "+createArrays+";"+
"this.itemType = itemType;"+
"for(var i in createArrays) {"+
"for(var i=0, n=createArrays.length; i<n; i++) {"+
"this[createArrays[i]] = [];"+
"}"+
"};";
@ -1454,7 +1454,7 @@ Zotero.Translate.Web.prototype._translateRPCComplete = function(obj, failureCode
);
} else {
// 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.newItems = obj.items;
@ -1815,7 +1815,7 @@ Zotero.Translate.Search.prototype.setTranslator = function(translator) {
// accept a list of objects
this.translator = [];
for(var i in translator) {
for(var i=0, n=translator.length; i<n; i++) {
this.translator.push(translator[i]);
}
return true;

View File

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