commit 9e8559b4be4fdc9e1b407a4639356fe4fc5366a4 parent 35f1720b086675f1fc8cf9a3eab190015d030a71 Author: Dan Stillman <dstillman@zotero.org> Date: Wed, 1 May 2013 18:23:09 -0400 Speed up flattenArguments() Diffstat:
| M | chrome/content/zotero/xpcom/zotero.js | | | 16 | +++++++--------- |
1 file changed, 7 insertions(+), 9 deletions(-)
diff --git a/chrome/content/zotero/xpcom/zotero.js b/chrome/content/zotero/xpcom/zotero.js @@ -1435,28 +1435,26 @@ Components.utils.import("resource://gre/modules/Services.jsm"); * values and/or an arbitrary number of individual values */ function flattenArguments(args){ - var isArguments = args.callee && args.length; - // Put passed scalar values into an array - if (args === null || (args.constructor.name != 'Array' && !isArguments)) { + if (args === null || typeof args == 'string' || typeof args.length == 'undefined') { args = [args]; } var returns = []; for (var i=0; i<args.length; i++){ - if (!args[i] && args[i] !== 0) { + var arg = args[i]; + if (!arg && arg !== 0) { continue; } - if (args[i].constructor.name == 'Array') { - for (var j=0; j<args[i].length; j++){ - returns.push(args[i][j]); + if (Array.isArray(arg)) { + for (var j=0; j<arg.length; j++){ + returns.push(arg[j]); } } else { - returns.push(args[i]); + returns.push(arg); } } - return returns; }