tor-browser

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

test_oscillatorNode2.html (1324B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <head>
      4  <title>Test OscillatorNode lifetime and sine phase</title>
      5  <script src="/tests/SimpleTest/SimpleTest.js"></script>
      6  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
      7 </head>
      8 <body>
      9 <pre id="test">
     10 <script src="webaudio.js" type="text/javascript"></script>
     11 <script class="testbody" type="text/javascript">
     12 
     13 const signalLength = 2048;
     14 
     15 function createOscillator(context) {
     16  var osc = context.createOscillator();
     17  osc.start(0);
     18  osc.stop(signalLength/context.sampleRate);
     19  return osc;
     20 }
     21 
     22 function connectUnreferencedOscillator(context, destination) {
     23  var osc = createOscillator(context);
     24  osc.connect(destination);
     25 }
     26 
     27 var gTest = {
     28  length: signalLength,
     29  numberOfChannels: 1,
     30  createGraph(context) {
     31    var blend = context.createGain();
     32 
     33    connectUnreferencedOscillator(context, blend);
     34    // Test that the unreferenced oscillator remains alive until it has finished.
     35    SpecialPowers.forceGC();
     36    SpecialPowers.forceCC();
     37 
     38    // Create another sine wave oscillator in negative time, which should
     39    // cancel when mixed with the unreferenced oscillator.
     40    var oscillator = createOscillator(context);
     41    oscillator.frequency.value = -440;
     42    oscillator.connect(blend);
     43 
     44    return blend;
     45  },
     46 };
     47 
     48 runTest();
     49 
     50 </script>
     51 </pre>
     52 </body>
     53 </html>