Skip to content

Commit

Permalink
Changing how 0 is handled (less wasted ops)
Browse files Browse the repository at this point in the history
  • Loading branch information
avoidwork committed Feb 5, 2013
1 parent 5075979 commit d1428f6
Show file tree
Hide file tree
Showing 4 changed files with 42 additions and 40 deletions.
39 changes: 20 additions & 19 deletions lib/filesize.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
* @license BSD-3 <https://raw.github.com/avoidwork/filesize.js/master/LICENSE>
* @link http://filesizejs.com
* @module filesize
* @version 1.7.8
* @version 1.7.9
*/

(function (global) {
Expand Down Expand Up @@ -46,28 +46,29 @@
// Flipping a negative number to determine the size
if (neg) num = -num;

while (i--) {
size = sizes[i][1];
suffix = sizes[i][0];
if (num >= size) {
result = (num / size).toFixed(pos);
if (short) {
if (bit.test(suffix)) suffix = suffix.toLowerCase();
suffix = suffix.charAt(0);
z = regex.exec(result);
if (z !== null && z[1] !== undefined && zero.test(z[1])) result = parseInt(result, base);
// Zero is now a special case because bytes divide by 1
if (num === 0) {
if (short) pos = 0;
result = Number(0).toFixed(pos) + "B";
}
else {
while (i--) {
size = sizes[i][1];
suffix = sizes[i][0];
if (num >= size) {
result = (num / size).toFixed(pos);
if (short) {
if (bit.test(suffix)) suffix = suffix.toLowerCase();
suffix = suffix.charAt(0);
z = regex.exec(result);
if (z !== null && z[1] !== undefined && zero.test(z[1])) result = parseInt(result, base);
}
result += suffix;
break;
}
result += suffix;
break;
}
}

// Zero
if (result === "") {
if (short) pos = 0;
result = Number(0).toFixed(pos) + suffix;
}

return (neg ? "-" : "") + result;
};

Expand Down
4 changes: 2 additions & 2 deletions lib/filesize.min.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,6 @@
* @license BSD-3 <https://raw.github.com/avoidwork/filesize.js/master/LICENSE>
* @link http://filesizejs.com
* @module filesize
* @version 1.7.8
* @version 1.7.9
*/
(function(e){"use strict";var t=function(e){var t=10,n,r,i,s,o,u,a,f,l,c,h,p,d;arguments[2]!==undefined?(o=arguments[1],f=arguments[2]):typeof arguments[1]=="boolean"?f=arguments[1]:o=arguments[1];if(isNaN(e)||o!==undefined&&isNaN(o))throw Error("Invalid arguments");f=f===!0,o=f?1:o===undefined?2:parseInt(o,t),s=Number(e),i=s<0,c=[["B",1],["Kb",128],["KB",1024],["Mb",131072],["MB",1049e3],["Gb",1342e5],["GB",1074e6],["Tb",1374e8],["TB",11e11],["Pb",1407e11],["PB",1126e12]],r=c.length,a="",u=/\.(.*)/,n=/b$/,d=/^0$/,i&&(s=-s);while(r--){l=c[r][1],h=c[r][0];if(s>=l){a=(s/l).toFixed(o),f&&(n.test(h)&&(h=h.toLowerCase()),h=h.charAt(0),p=u.exec(a),p!==null&&p[1]!==undefined&&d.test(p[1])&&(a=parseInt(a,t))),a+=h;break}}return a===""&&(f&&(o=0),a=Number(0).toFixed(o)+h),(i?"-":"")+a};switch(!0){case typeof exports!="undefined":module.exports=t;break;case typeof define=="function":define(function(){return t});break;default:e.filesize=t}})(this);
(function(e){"use strict";var t=function(e){var t=10,n,r,i,s,o,u,a,f,l,c,h,p,d;arguments[2]!==undefined?(o=arguments[1],f=arguments[2]):typeof arguments[1]=="boolean"?f=arguments[1]:o=arguments[1];if(isNaN(e)||o!==undefined&&isNaN(o))throw Error("Invalid arguments");f=f===!0,o=f?1:o===undefined?2:parseInt(o,t),s=Number(e),i=s<0,c=[["B",1],["Kb",128],["KB",1024],["Mb",131072],["MB",1049e3],["Gb",1342e5],["GB",1074e6],["Tb",1374e8],["TB",11e11],["Pb",1407e11],["PB",1126e12]],r=c.length,a="",u=/\.(.*)/,n=/b$/,d=/^0$/,i&&(s=-s);if(s===0)f&&(o=0),a=Number(0).toFixed(o)+"B";else while(r--){l=c[r][1],h=c[r][0];if(s>=l){a=(s/l).toFixed(o),f&&(n.test(h)&&(h=h.toLowerCase()),h=h.charAt(0),p=u.exec(a),p!==null&&p[1]!==undefined&&d.test(p[1])&&(a=parseInt(a,t))),a+=h;break}}return(i?"-":"")+a};switch(!0){case typeof exports!="undefined":module.exports=t;break;case typeof define=="function":define(function(){return t});break;default:e.filesize=t}})(this);
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "filesize",
"description": "JavaScript library to generate a human readable String describing the file size",
"version": "1.7.8",
"version": "1.7.9",
"homepage": "http://filesizejs.com",
"author": {
"name": "Jason Mulligan",
Expand Down
37 changes: 19 additions & 18 deletions src/filesize.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,28 +35,29 @@
// Flipping a negative number to determine the size
if (neg) num = -num;

while (i--) {
size = sizes[i][1];
suffix = sizes[i][0];
if (num >= size) {
result = (num / size).toFixed(pos);
if (short) {
if (bit.test(suffix)) suffix = suffix.toLowerCase();
suffix = suffix.charAt(0);
z = regex.exec(result);
if (z !== null && z[1] !== undefined && zero.test(z[1])) result = parseInt(result, base);
// Zero is now a special case because bytes divide by 1
if (num === 0) {
if (short) pos = 0;
result = Number(0).toFixed(pos) + "B";
}
else {
while (i--) {
size = sizes[i][1];
suffix = sizes[i][0];
if (num >= size) {
result = (num / size).toFixed(pos);
if (short) {
if (bit.test(suffix)) suffix = suffix.toLowerCase();
suffix = suffix.charAt(0);
z = regex.exec(result);
if (z !== null && z[1] !== undefined && zero.test(z[1])) result = parseInt(result, base);
}
result += suffix;
break;
}
result += suffix;
break;
}
}

// Zero
if (result === "") {
if (short) pos = 0;
result = Number(0).toFixed(pos) + suffix;
}

return (neg ? "-" : "") + result;
};

Expand Down

0 comments on commit d1428f6

Please sign in to comment.