mirror of
https://github.com/fluencelabs/assemblyscript
synced 2025-06-13 06:51:34 +00:00
Parser fixes; Lib updates
This commit is contained in:
@ -7,23 +7,23 @@ module.exports = function(string) {
|
||||
// determine buffer length
|
||||
var length = string.length;
|
||||
if (length) {
|
||||
var n = 0;
|
||||
while (--length % 4 > 1 && string.charCodeAt(p) === 61) ++n;
|
||||
length = Math.ceil(string.length * 3) / 4 - n;
|
||||
var n = 0, p = length;
|
||||
while (--p % 4 > 1 && string.charCodeAt(p) === 61) ++n;
|
||||
length = Math.ceil(length * 3) / 4 - n;
|
||||
}
|
||||
|
||||
// decode to buffer
|
||||
var buffer = new Uint8Array(length);
|
||||
var j = 0, t;
|
||||
var j = 0, o = 0, t;
|
||||
for (var i = 0, k = string.length; i < k;) {
|
||||
var c = string.charCodeAt(i++);
|
||||
if (c === 61 && j > 1) break;
|
||||
if ((c = s64[c]) === undefined) throw Error();
|
||||
switch (j) {
|
||||
case 0: t = c; j = 1; break;
|
||||
case 1: buffer[offset++] = t << 2 | (c & 48) >> 4; t = c; j = 2; break;
|
||||
case 2: buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2; t = c; j = 3; break;
|
||||
case 3: buffer[offset++] = (t & 3) << 6 | c; j = 0; break;
|
||||
case 1: buffer[o++] = t << 2 | (c & 48) >> 4; t = c; j = 2; break;
|
||||
case 2: buffer[o++] = (t & 15) << 4 | (c & 60) >> 2; t = c; j = 3; break;
|
||||
case 3: buffer[o++] = (t & 3) << 6 | c; j = 0; break;
|
||||
}
|
||||
}
|
||||
if (j === 1) throw Error();
|
||||
|
Reference in New Issue
Block a user