tor-browser

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

pannernode-setposition-throws.html (1459B)


      1 <!doctype html>
      2 <meta charset=utf-8>
      3 <title>Test PannerNode.setPosition() throws with parameter out of range of float</title>
      4 <script src=/resources/testharness.js></script>
      5 <script src=/resources/testharnessreport.js></script>
      6 <script>
      7 // https://webaudio.github.io/web-audio-api/#dom-pannernode-setposition
      8 // setPosition(x, y, z) "is equivalent to setting positionX.value,
      9 // positionY.value, and positionZ.value directly with the given x, y, and z
     10 // values, respectively."  setPosition() parameters are double, but the
     11 // AudioParam value setter has a float parameter, so out of range values
     12 // throw.
     13 const FLT_MAX = 3.40282e+38;
     14 let panner;
     15 setup(() => {
     16  const ctx = new OfflineAudioContext({length: 1, sampleRate: 24000});
     17  panner = ctx.createPanner();
     18 });
     19 test(() => {
     20  assert_throws_js(TypeError, () => panner.setPosition(2 * FLT_MAX, 0, 0));
     21 }, "setPosition x");
     22 test(() => {
     23  assert_throws_js(TypeError, () => panner.setPosition(0, -2 * FLT_MAX, 0));
     24 }, "setPosition y");
     25 test(() => {
     26  assert_throws_js(TypeError, () => panner.setPosition(0, 0, 2 * FLT_MAX));
     27 }, "setPosition z");
     28 test(() => {
     29  assert_throws_js(TypeError, () => panner.setOrientation(-2 * FLT_MAX, 0, 0));
     30 }, "setOrientation x");
     31 test(() => {
     32  assert_throws_js(TypeError, () => panner.setOrientation(0, 2 * FLT_MAX, 0));
     33 }, "setOrientation y");
     34 test(() => {
     35  assert_throws_js(TypeError, () => panner.setOrientation(0, 0, -2 * FLT_MAX));
     36 }, "setOrientation z");
     37 </script>