audioworklet-denormals.https.window.js (1056B)
1 'use strict'; 2 3 // Test if the JS code execution in AudioWorkletGlobalScope can handle the 4 // denormals properly. For more details, see: 5 // https://esdiscuss.org/topic/float-denormal-issue-in-javascript-processor-node-in-web-audio-api 6 promise_test(async () => { 7 // In the main thread, the denormals should be non-zeros. 8 assert_not_equals(Number.MIN_VALUE, 0.0, 9 'The denormals should be non-zeros.'); 10 11 const context = new AudioContext(); 12 await context.audioWorklet.addModule( 13 './processors/denormal-test-processor.js'); 14 15 const denormalTestProcessor = new AudioWorkletNode(context, 'denormal-test'); 16 17 return new Promise(resolve => { 18 denormalTestProcessor.port.onmessage = resolve; 19 denormalTestProcessor.connect(context.destination); 20 }).then(event => { 21 // In the AudioWorkletGlobalScope, the denormals should be non-zeros too. 22 assert_true( 23 event.data.result, 24 'The denormals should be non-zeros in AudioWorkletGlobalScope.'); 25 }); 26 }, 'Test denormal behavior in AudioWorkletGlobalScope');