Comparing version 0.1.4 to 0.2.0
;(function () { | ||
var | ||
object = typeof exports != 'undefined' ? exports : this, // #8: web workers | ||
chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=', | ||
INVALID_CHARACTER_ERR = (function () { | ||
// fabricate a suitable error object | ||
try { document.createElement('$'); } | ||
catch (error) { return error; }}()); | ||
var object = typeof exports != 'undefined' ? exports : this; // #8: web workers | ||
var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; | ||
function InvalidCharacterError(message) { | ||
this.message = message; | ||
} | ||
InvalidCharacterError.prototype = new Error; | ||
InvalidCharacterError.prototype.name = 'InvalidCharacterError'; | ||
// encoder | ||
@@ -26,3 +27,5 @@ // [https://gist.github.com/999166] by [https://github.com/nignag] | ||
charCode = input.charCodeAt(idx += 3/4); | ||
if (charCode > 0xFF) throw INVALID_CHARACTER_ERR; | ||
if (charCode > 0xFF) { | ||
throw new InvalidCharacterError("'btoa' failed: The string to be encoded contains characters outside of the Latin1 range."); | ||
} | ||
block = block << 8 | charCode; | ||
@@ -38,3 +41,5 @@ } | ||
input = input.replace(/=+$/, '') | ||
if (input.length % 4 == 1) throw INVALID_CHARACTER_ERR; | ||
if (input.length % 4 == 1) { | ||
throw new InvalidCharacterError("'atob' failed: The string to be decoded is not correctly encoded."); | ||
} | ||
for ( | ||
@@ -41,0 +46,0 @@ // initialize result and counters |
@@ -1,1 +0,1 @@ | ||
(function(){var t="undefined"!=typeof exports?exports:this,r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",e=function(){try{document.createElement("$")}catch(t){return t}}();t.btoa||(t.btoa=function(t){for(var o,n,a=0,c=r,f="";t.charAt(0|a)||(c="=",a%1);f+=c.charAt(63&o>>8-8*(a%1))){if(n=t.charCodeAt(a+=.75),n>255)throw e;o=o<<8|n}return f}),t.atob||(t.atob=function(t){if(t=t.replace(/=+$/,""),1==t.length%4)throw e;for(var o,n,a=0,c=0,f="";n=t.charAt(c++);~n&&(o=a%4?64*o+n:n,a++%4)?f+=String.fromCharCode(255&o>>(6&-2*a)):0)n=r.indexOf(n);return f})})(); | ||
(function(){function t(t){this.message=t}var e="undefined"!=typeof exports?exports:this,r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";t.prototype=Error(),t.prototype.name="InvalidCharacterError",e.btoa||(e.btoa=function(e){for(var o,n,a=0,i=r,c="";e.charAt(0|a)||(i="=",a%1);c+=i.charAt(63&o>>8-8*(a%1))){if(n=e.charCodeAt(a+=.75),n>255)throw new t("'btoa' failed: The string to be encoded contains characters outside of the Latin1 range.");o=o<<8|n}return c}),e.atob||(e.atob=function(e){if(e=e.replace(/=+$/,""),1==e.length%4)throw new t("'atob' failed: The string to be decoded is not correctly encoded.");for(var o,n,a=0,i=0,c="";n=e.charAt(i++);~n&&(o=a%4?64*o+n:n,a++%4)?c+=String.fromCharCode(255&o>>(6&-2*a)):0)n=r.indexOf(n);return c})})(); |
{ | ||
"name": "Base64", | ||
"version": "0.1.4", | ||
"version": "0.2.0", | ||
"description": "Base64 encoding and decoding", | ||
@@ -5,0 +5,0 @@ "author": "David Chambers <dc@davidchambers.me>", |
# Base64.js | ||
< 500 byte* polyfill for browsers which don't provide [`window.btoa`][1] and | ||
≈ 500 byte* polyfill for browsers which don't provide [`window.btoa`][1] and | ||
[`window.atob`][2]. | ||
@@ -5,0 +5,0 @@ |
Sorry, the diff of this file is not supported yet
7394
55