История изменений
Исправление
ckotinko,
(текущая версия)
:
ну там же движок JS есть.
по идее после оптимизации доступ к массиву должен идти либо с проверкой лимитов, либо без проверки если индекс заранее известен и он меньше лимита.
тут возвращается boom, которая работает с буфером размером 256 и доступом по фиксированному адресу. но походу тут оптимизатор немного по другому считает индексы нежели это происходит в асмокоде.
((1-ff(NaN) >>> 0) это (1-int(NaN)) = 1-0x80000000 = 1+0x7fffffff+1=0x80000001. остаток от деления равен fbebebec.
upd: вру. 1-sign(NaN)=NaN к intу 0x80000000 и будет fbebebeb
но видимо оптимизатор считает как-то по другому и он как-то насчитал в допустимых пределах.
что-то не понимаю, как можно было получить валидный индекс.
Исходная версия
ckotinko,
:
ну там же движок JS есть.
по идее после оптимизации доступ к массиву должен идти либо с проверкой лимитов, либо без проверки если индекс заранее известен и он меньше лимита.
тут возвращается boom, которая работает с буфером размером 256 и доступом по фиксированному адресу. но походу тут оптимизатор немного по другому считает индексы нежели это происходит в асмокоде.
((1-ff(NaN) >>> 0) это (1-int(NaN)) = 1-0x80000000 = 1+0x7fffffff+1=0x80000001. остаток от деления равен fbebebec.
но видимо оптимизатор считает как-то по другому и он как-то насчитал в допустимых пределах.