var buf = new ArrayBuffer(BUF_MIN); var f64 = new Float64Array(buf); var i32 = new Int32Array(buf); var u32 = new Uint32Array(buf); var f = asmLink(asmCompile('glob', 'imp', 'b', USE_ASM + HEAP_IMPORTS + 'function f() { return +f64[0] } return f'), this, null, buf);
f64[0] = 0;
assertEq(f(), 0);
f64[0] = -1;
assertEq(f(), -1);
f64[0] = 1;
assertEq(f(), 1);
f64[0] = Infinity;
assertEq(f(), Infinity);
f64[0] = -Infinity;
assertEq(f(), -Infinity);
function ffi(d) { str = String(d) } var g = asmLink(asmCompile('glob', 'imp', 'b', USE_ASM + HEAP_IMPORTS + 'var ffi=imp.ffi; function g() { ffi(+f64[0]) } return g'), this, {ffi:ffi}, buf); var h = asmLink(asmCompile('glob', 'imp', 'b', USE_ASM + HEAP_IMPORTS + 'function g() { return +(+f64[0] < 0.0 ? -+f64[0] : +f64[0]) } return g'), this, null, buf)
function ffi1() { return 2.6 }
assertEq(asmLink(asmCompile('glob', 'imp', USE_ASM + "var ffi1=imp.ffi1; function g() { var i=0,j=0.0; i=ffi1()|0; j=+ffi1(); return +(+(i|0)+j) } return g"), null, {ffi1:ffi1})(), 2+2.6);
// that sounds dangerous! var a = [0,1,0xffff0000,0x7fff0000,0xfff80000,0x7ff80000,0xfffc0000,0x7ffc0000,0xffffffff,0x0000ffff,0x00008fff7]; for (i of a) { for (j of a) {
u32[0] = i;
u32[1] = j;
assertEq(f(), f64[0]);
g();
assertEq(str, String(f64[0]));
assertEq(h(), Math.abs(f64[0]));
}
}
Messung V0.5
¤ Dauer der Verarbeitung: 0.21 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.