// Should *not* be possible to serialize and deserialize memories that are not // shared, whether we transfer them or not.
for ( let memtype of memtypes ) {
let mem1 = new WebAssembly.Memory(makeMemoryDesc(memtype, {initial: Idx(memtype, 2), maximum: Idx(memtype, 4)}));
assertErrorMessage(() => serialize(mem1),
TypeError,
/unsupported type for structured data/);
assertErrorMessage(() => serialize(mem1, [mem1]),
TypeError,
/invalid transferable array for structured clone/);
}
// Should be possible to serialize and deserialize memories that are shared, and // observe shared effects.
for ( let memtype of memtypes ) {
let ptrtype = memtype == 'i64' ? memtype : 'i32';
let mem1 = new WebAssembly.Memory(makeMemoryDesc(memtype, {initial: Idx(memtype, 2), maximum: Idx(memtype, 4), shared: true}));
let buf1 = mem1.buffer;
// Serialization and deserialization of shared memories work:
// after growing mem1, mem2 can be accessed at index
assertEq(access(), Zero(memtype));
}
// Should not be possible to transfer a shared memory
for ( let memtype of memtypes ) {
let mem1 = new WebAssembly.Memory(makeMemoryDesc(memtype, {initial: Idx(memtype, 2), maximum: Idx(memtype, 4), shared: true}));
assertErrorMessage(() => serialize(mem1, [mem1]),
TypeError,
/Shared memory objects must not be in the transfer list/);
}
// When serializing and deserializing a SAB extracted from a memory, the length // of the SAB should not change even if the memory was grown after serialization // and before deserialization.
for ( let memtype of memtypes ) {
let mem = new WebAssembly.Memory(makeMemoryDesc(memtype, {initial: Idx(memtype, 2), maximum: Idx(memtype, 4), shared: true}));
let buf = mem.buffer;
let clonedbuf = serialize(buf, [], {SharedArrayBuffer: 'allow'});
mem.grow(Idx(memtype, 1));
let buf2 = deserialize(clonedbuf, {SharedArrayBuffer: 'allow'});
assertEq(buf.byteLength, buf2.byteLength);
}
Messung V0.5
¤ Dauer der Verarbeitung: 0.16 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.