diff --git a/lib/filesize.js b/lib/filesize.js index cceadd3..4ac2538 100644 --- a/lib/filesize.js +++ b/lib/filesize.js @@ -6,7 +6,7 @@ * @license BSD-3 * @link http://filesizejs.com * @module filesize - * @version 1.7.8 + * @version 1.7.9 */ (function (global) { @@ -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; }; diff --git a/lib/filesize.min.js b/lib/filesize.min.js index d8cf6e3..3e7234e 100644 --- a/lib/filesize.min.js +++ b/lib/filesize.min.js @@ -6,6 +6,6 @@ * @license BSD-3 * @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); \ No newline at end of file +(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); \ No newline at end of file diff --git a/package.json b/package.json index b54f877..2210f91 100644 --- a/package.json +++ b/package.json @@ -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", diff --git a/src/filesize.js b/src/filesize.js index 1bb53ba..f43aaf7 100644 --- a/src/filesize.js +++ b/src/filesize.js @@ -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; };