tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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');