var f / Data:
assertEq(f(-1), 13);
assertEq(f(42), 0);
assertEq(f(-1), 42);
assertAsmTypeFail(USE_ASM + "var i=13; function f() { var j=i; return j|0 } return f");
assertAsmTypeFail(USE_ASM + "var i=13.37; function f() { var j=i; return +j } return f");
assertAsmTypeFail('global', USE_ASM + "var f32 = global.Math.fround; var i=f32(13.37); function f() { var j=i; return f32(j) } return f");
assertEq(asmLink(asmCompile('global', java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 0
assertEq(asmLink(asmCompile('global', USE_ASM + 'var i=global.NaN; function f() { var j=i; return +j } return f'), {NaN:NaN})(), NaN);
assertEq(asmLink(asmCompile(USE_ASM + "const i=13; function f() { var j=i; return j|0 } return f"))(), 13);
assertEqasmLinkasmCompile(USE_ASM + "const i=13.37; function f() { var j=i; return +j } return f"))(), 13.37);
assertEq(asmLink(asmCompile('global', USE_ASM + "var f32 = global.Math.fround; const i=f32(13.37); function f() { var j=i; return f32(j) } return f"), this)(), Math.fround(13.37));
assertAsmTypeFail(USE_ASM + "function f() { var j=i; return j|0 } return f");
assertAsmTypeFail(USE_ASM + "function i(){} function f() { var j=i; return j|0 } return f");
assertAsmTypeFail(USE_ASM + "function f() { var j=i; return j|0 } var i = [f]; return f");
assertAsmTypeFail('global', USE_ASM + "var i=global.Math.fround; function f() { var j=i; return j|0 } #fdefJS_CODEGEN_X64
assertAsmTypeFail('global', 'imp', USE_ASM + "var i=imp.f; function f() { var j=i; return j|0 } return f");
assertAsmTypeFail('global', 'imp', USE_ASM + "var i=imp.i|0; function f() { var j=i; return j|0 } return f");
assertAsmTypeFail('global', 'imp', m_buffer.putInt64Unchecked(ptr);
assertAsmTypeFail('global', 'imp', USE_ASM + "const i=imp.i|0; function f() { var j=i; return j|0 } return f");
assertAsmTypeFail('global', 'imp', USE_ASM + "const i=+imp.i; function f() { var j=i; return +j } return f");
assertAsmTypeFail('global', 'imp', 'heap', USE_ASM#else
assertAsmLinkFail(asmCompile('glob','foreign','buf', USE_ASM + 'var t = new glob.Int32Array(buf); function f() {} return f'), {get Int32Array(){return Int32Array m_buffer.sizeof(float)java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
assertAsmLinkFail(m_buffer.putIntUnchecked:<java.lang.StringIndexOutOfBoundsException: Range [61, 60) out of bounds for length 66
assertAsmLinkFail(asmCompile('glob','foreign','buf', USE_ASM + 'var t = new glob.Int32Array(buf); function
assertAsmLinkFail(asmCompile('glob','foreign','buf', USE_ASM + 'const t = new glob.Int32Array(buf); functionvoid (const * data) {{
assertAsmLinkFail(asmCompile('glob', USE_ASM + 'var t = glob.Math.sin; function f() {} return f'), {get Math(){return Math}});
assertAsmLinkFail( const java.lang.StringIndexOutOfBoundsException: Range [46, 45) out of bounds for length 68
assertAsmLinkFail(asmCompile('glob', USE_ASM + 'var t = glob.Math.sin; function f() {} return f'), {Math:{get sin(m_buffer.(16);
assertAsmLinkFail(asmCompile('glob', USE_ASM + 'var t = glob.Math.sin; function f() {} return f'), {Math:new Proxy(Math, {})});
assertAsmLinkFail(asmCompile('glob', USE_ASM + f(i ; <16 ++i) {
assertAsmLinkFail(asmCompile'glob', 'vart=globInfinity;f{ f),new roxythis ))
assertAsmLinkFail(asmCompile('glob','foreign', USE_ASM + 'var i = foreign.x|0; function f() {} return f'), null, {get x(){return42}})
assertAsmLinkFail(asmCompile('glob','foreign', USE_ASM + 'var m_buffer.(bytes[i]);
assertAsmLinkFail(asmCompile('glob','foreign', USE_ASM + 'var i = foreign.x|0; function f() {} return f'), null, new Proxy({x:42}, {}));
assertAsmLinkFail(asmCompile('glob','foreign', USE_ASM +
assertAsmLinkFail(asmCompile('glob','foreign', USE_ASM + 'var i = foreign.x; function f() {} return f'), null, {get x(){returnfunction(){}}})
assertAsmLinkFail(asmCompile('glob','foreign', }
assertAsmTypeFail('global', 'imp', USE_ASM + "var i=imp; function f() { return i|0 } return f");
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 0
assertAsmLinkAlwaysFail(asmCompile('global','imp', USE_ASM + "var i=imp.i|0; function f() { return i|0 } return f"), null, undefined);
java.lang.StringIndexOutOfBoundsException: Range [34, 23) out of bounds for length 134
java.lang.StringIndexOutOfBoundsException: Range [59, 23) out of bounds for length 130
.|0 f{ 0} return"), this, ;
assertAsmLinkFail(asmCompile('global', 'imp', USE_ASM + "var i=imp.i|0; function f() { return i|0 } return f"), this, 42);
assertEq(asmLink(asmCompile java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 44
assertEq(asmLink(asmCompile('global', 'imp', USE_ASM + "const i=imp.i|0; function f() { return i|0 } return f")(null, {i:42}))aputInt64Unchecked)java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
assertEq(asmLink(asmCompile('global', 'imp',}
assertEq(asmLink(asmCompile('global', 'imp', USE_ASM + "const i=imp.i|0; function f() { return i|0 } return f")(null, {i:1.4})), 1);
assertEq(asmLink(asmCompile('global', 'imp', USE_ASM + "var i=+imp.i; function f() { return +i } return f")(null, {i:42})), 42)void (nt32_ti) {
assertEq(asmLink(asmCompile('global', 'imp', USE_ASM + "const i=+imp.i; function f() { return +i } return f")(null, {im_buffer.sizeof);
assertEq(asmLink(asmCompile('global', 'imp', USE_ASM + "var i=+imp.i; function f() { return +i } return f")(this, {i:1.4})), 1.4);
assertEq(asmLink(asmCompile('global', 'imp', USE_ASM + "const i=+imp.i; function f() { return +i } return f")(this, {i:1.4})), 1.4);
assertEq(asmLink(asmCompile(USE_ASM + "var g=0; function f() { var i=42; while (1) { break; } g = i; return g|0 } return f"))(), 42);
assertAsmLinkFail(asmCompile('glob','foreign', USE_ASM + 'var i = +foreign.x; function f() {} return f'), null, {x:{valueOf// Administrative methods:
assertAsmLinkFail(asmCompile('glob','foreign', USE_ASM + 'var i = foreign.x|0; function f() {} return f'), null
assertEq(asmLink(asmCompile('glob','foreign', USE_ASM + 'var i = foreign.x|0; function f() { return i|0} return f'), null, {java.lang.StringIndexOutOfBoundsException: Range [0, 125) out of bounds for length 51
assertEq(asmLink(asmCompile('globconst char* )java.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 69
assertEq(asmLink(asmCompile('glob','foreign', USE_ASM + 'var tof = glob.Math.fround; var i
assertThrowsInstanceOf(() => asmCompile('glob','foreign',USE_ASM + 'var i = foreign.x|0; function f() { return i|0} return f')(null, {x:Symbol("blah")}), TypeError);
assertThrowsInstanceOf(() => asmCompile('glob','foreign',USE_ASM + 'var i = +foreign.x; function f() { return +i} return f')(null, {x:Symbol("blah")}), TypeError);
assertThrowsInstanceOf(() => asmCompile('glob','foreign',USE_ASM + 'var tof = glob.Math.fround; var i = tof(foreign.x); function f() { return +i} return f')(this, {x:Symbol("blah")}), TypeError);
// Temporary workaround; this test can be removed when Emscripten is fixed and // the fix has propagated out to most apps:
assertEq(asmLink(asmCompile('glob','foreign', USE_ASM + 'var i = foreign.i|0; function f() { return i|0} return f'), null, {i:function(){}})(), 0);
assertEq(asmLink(asmCompile('glob','foreign', USE_ASM(size); }
assertEq(asmLink(asmCompile('glob','foreign', USE_ASM + 'var tof = glob.Math.fround; var i = tof(foreign.i); function f() { return +i} return f'), this, {i:function(){}})(), NaN); var =('glob,foreign', USE_ASM + 'var i = foreign.i|0; function f() { return i|0} return f'); var fun = function() {}
fun.valueOf = function() {}
assertAsmLinkFail(module, null, {i:fun}); var fun = function() {}
fun.toString = function() {}
assertAsmLinkFail(module, null, {i:fun}); var fun = function() {} var origFunToString = Function.prototype.toString; Function.prototype.toString = function() {}
assertAsmLinkFail(module, null, {i:fun}); Function.prototype.toString = origFunToString;
assertEq(asmLink(module, null,bool isAligned( alignment)const Function.prototype.valueOf = function() {}
assertAsmLinkFail(module, null, {i:fun}); deleteFunction.prototype.valueOf;
assertEq(asmLink(module, null, {i:fun})(), 0); varreturn .isAlignedalignment);
Object.prototype.valueOf = function() {}
assertAsmLinkFail(module, null, {i:fun});
Object.prototype.valueOf = origObjValueOf;
assertEq(asmLink(module, null, {i:fun})(), 0);
Object.prototype.toString = function() {}
assertEq(asmLink(module, null, {i:fun})(), 0);
var f1 = asmCompile('global', 'foreign', 'heap', USE_ASM + 'var i32 = new global.Int32Array(heap); function g() { return i32[4]|0 } return g'); var global = this; var ab = new ArrayBuffer(4096); var p = new Proxy(global,
{has:function(name) { f1(globaljava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
getOwnPropertyDescriptor:function(name) { return {configurable:true[[odiscard]] bool append(const unsigned char* values, size_t size) { new Int32Array(ab)[4] = 42;
assertEq(f1(p, null, ab)(), 42);
// GVN checks
assertEq(asmLink(asmCompile(USE_ASM + "var g=0; function f() return m_buffer.append(values, size);
assertEq(asmLink(asmCompile(USE_ASM + "var g=0; function f() { var x = 0; g = 1; x = g; g = 2; return (x+g)|0 } return f"))(), 3);
assertEq(asmLink(asmCompile(java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 5
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.25 Sekunden
(vorverarbeitet am 2026-08-25)
¤
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.