/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
/* eslint-disable no-shadow, max-nested-callbacks */
"use strict" ;
/**
* Verify if client can receive binary wasm
*/
var gDebuggee;
var gThreadFront;
add_task(
threadFrontTest(
async ({ threadFront, debuggee }) => {
gThreadFront = threadFront;
gDebuggee = debuggee;
await gThreadFront.reconfigure({
observeAsmJS:
true ,
observeWasm:
true ,
});
test_source();
},
{ waitForFinish:
true , doNotRunWorker:
true }
)
);
const EXPECTED_CONTENT = String.fromCharCode(
0 ,
97 ,
115 ,
109 ,
1 ,
0 ,
0 ,
0 ,
1 ,
132 ,
128 ,
128 ,
128 ,
0 ,
1 ,
96 ,
0 ,
0 ,
3 ,
130 ,
128 ,
128 ,
128 ,
0 ,
1 ,
0 ,
6 ,
129 ,
128 ,
128 ,
128 ,
0 ,
0 ,
7 ,
133 ,
128 ,
128 ,
128 ,
0 ,
1 ,
1 ,
102 ,
0 ,
0 ,
10 ,
136 ,
128 ,
128 ,
128 ,
0 ,
1 ,
130 ,
128 ,
128 ,
128 ,
0 ,
0 ,
11
);
function test_source() {
gThreadFront.once(
"paused" ,
function () {
gThreadFront.getSources().then(
function (response) {
Assert .ok(!!response);
Assert .ok(!!response.sources);
const source = response.sources.filter(
function (s) {
return s.introductionType ===
"wasm" ;
})[
0 ];
Assert .ok(!!source);
const sourceFront = gThreadFront.source(source);
sourceFront.source().then(
function (response) {
Assert .ok(!!response);
Assert .ok(!!response.contentType);
Assert .ok(response.contentType.includes(
"wasm" ));
const sourceContent = response.source;
Assert .ok(!!sourceContent);
Assert .equal(
typeof sourceContent,
"object" );
Assert .ok(
"binary" in sourceContent);
Assert .equal(EXPECTED_CONTENT, sourceContent.binary);
gThreadFront.resume().then(
function () {
threadFrontTestFinished();
});
});
});
});
/* eslint-disable comma-spacing, max-len */
gDebuggee.eval(
"(" +
function () {
// WebAssembly bytecode was generated by running:
// js -e 'print(wasmTextToBinary("(module(func(export \"f\")))"))'
const m =
new WebAssembly.Module(
new Uint8Array([
0 ,
97 ,
115 ,
109 ,
1 ,
0 ,
0 ,
0 ,
1 ,
132 ,
128 ,
128 ,
128 ,
0 ,
1 ,
96 ,
0 ,
0 ,
3 ,
130 ,
128 ,
128 ,
128 ,
0 ,
1 ,
0 ,
6 ,
129 ,
128 ,
128 ,
128 ,
0 ,
0 ,
7 ,
133 ,
128 ,
128 ,
128 ,
0 ,
1 ,
1 ,
102 ,
0 ,
0 ,
10 ,
136 ,
128 ,
128 ,
128 ,
0 ,
1 ,
130 ,
128 ,
128 ,
128 ,
0 ,
0 ,
11 ,
])
);
const i =
new WebAssembly.Instance(m);
debugger;
i.exports.f();
} +
")()"
);
}
Messung V0.5 in Prozent C=86 H=99 G=92
¤ Dauer der Verarbeitung: 0.11 Sekunden
(vorverarbeitet am 2026-06-08)
¤
*© Formatika GbR, Deutschland