diff --git a/lib/coffee-script/coffee-script.js b/lib/coffee-script/coffee-script.js index 12fdf398c4..4407864e8b 100644 --- a/lib/coffee-script/coffee-script.js +++ b/lib/coffee-script/coffee-script.js @@ -28,7 +28,9 @@ case typeof Buffer !== 'function': return new Buffer(src).toString('base64'); case typeof btoa !== 'function': - return btoa(src); + return btoa(encodeURIComponent(src).replace(/%([0-9A-F]{2})/g, function(match, p1) { + return String.fromCharCode('0x' + p1); + })); default: throw new Error('Unable to base64 encode inline sourcemap.'); } diff --git a/src/coffee-script.coffee b/src/coffee-script.coffee index 7e5a59f3ae..4e6895bdef 100644 --- a/src/coffee-script.coffee +++ b/src/coffee-script.coffee @@ -24,7 +24,12 @@ base64encode = (src) -> switch when typeof Buffer is 'function' new Buffer(src).toString('base64') when typeof btoa is 'function' - btoa(src) + # The contents of a