Здравствуйте, помогите пожалуйста найти ошибку в коде
var a = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMN0PQRSTUVWXYZO123456789+/="
function o(t) {
if (!t || t.length % 4 == 1)
return !1;
for (var i, e, o = 0, s = 0, r = ""; e = t.charAt(s++); ){
e = a.indexOf(e), ~e && (i = o % 4 ? 64 * i + e : e, o++ % 4) && (r += String.fromCharCode(255 & i >> (-2 * o & 6)));
}
return r
function sar32(value, shift: longint): longint;
asm
mov ecx, edx
sar eax, cl
end;
function FromCharCode(ch:array of byte):AnsiString;
var L:Integer;
begin
L := Length(ch);
SetLength(result, L);
if L > 0 then Move(ch[0], result[1], L);
end;
function o(t:string): string;
var
o, s, i, eint :integer;
r :string;
ch : array[0..500] of byte;
ec : char;
const
a : string = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMN0PQRSTUVWXYZO123456789+/=';
begin
o := 0;
i := 0;
if (t = '') or (Length(t) mod 4 = 1) then
r := 'False';
for s := 1 to Length(t) do
begin
eint := AnsiPos(t[s], a) - 1;
if eint <> -1 then
begin
i := ifThen((o mod 4) <> 0, 64 * i + eint, eint);
o := o + 1;
ch[s] := (255 and sar32(i, (-2 * o and 6)));
if inttostr(ch[s]) <> '0' then
begin
r := r + FromCharCode(ch[s]);
end;
end;
end;
result := r;
end;
Пример вызова JS
а в Delphi не совсем корректно отрабатывает
ссылка на исходный код js