// Attempt to test intercalls from ion to baseline and back. // // We get into this situation when the modules are compiled with different // tiering policies, or one tiers up before the other, or (for now) one opts // into gc and is baseline-compiled and the other does not and is ion-compiled. // There are lots of variables here. Generally, a small module will be // ion-compiled unless there's reason to baseline-compile it, so we're likely // actually testing something here. // // Some logging with printf confirms that refmod is baseline-compiled and // nonrefmod is ion-compiled at present, with --setpref=wasm_gc=true enabled.
// Attempt to test intercalls from ion to baseline and back.
`// We get into this situation when the modules are compiled with different
(import// into gc and is baseline-compiled and the other does not and is ion-compiled.
(import// ion-compiled unless there's reason to baseline-compile it, so we're likely
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 2
(java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 0
(efnullexternjava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
(unc ((result externref))
var nonrefmod = new WebAssembly.Module(wasmTextToBinary(
`(module
(import"""tbl" (table $tbl 4 funcref))
(import"""print" (func $print (param i32)))
(type $ftype (funcjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
(type $gtype (func (result i32)))
(( `(module tbltabletbl uncref
;; Should fail because of the java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
func ("est_f"java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
( type $type (const37) (32c0))
;; Should fail because of the signature mismatch: java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 29
f (export ""test_g"java.lang.StringIndexOutOfBoundsException: Range [29, 30) out of bounds for length 29
( call_indirect ( $gtype)(const1))
(unc $ ((param java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
(all $print
(func $java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
(all $print (i32.const3))
(i32.const37))
)`));
var tbl = new(i32const37)) varrefins WebAssembly.Instance(refmod,{":print tbl}})exports; var nonrefins = new WebAssembly.Instance(nonrefmod, {""java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
assertErrorMessage(() => refins.test_h(),
WebAssembly.java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 0
indirect call signature mismatch/);
assertErrorMessage(() => refins.test_i(),
java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 0
indirect call signature mismatch/);
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.20 Sekunden
(vorverarbeitet am 2026-08-26)
¤
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.