tor-browser

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

Worker-simultaneous-errors.html (951B)


      1 <!DOCTYPE html>
      2 <title>Test simultaneous errors on workers.</title>
      3 <script src="/resources/testharness.js"></script>
      4 <script src="/resources/testharnessreport.js"></script>
      5 <script>
      6 promise_test(t => {
      7    var workers = 4;
      8    var promises = [];
      9 
     10    for (i = 0; i < workers; ++i) {
     11        var worker = new Worker('support/throw-on-message-Worker.js');
     12        promises.push(new Promise(function(resolve, reject) {
     13            var error = 0;
     14            worker.onmessage = function(event) {
     15                if (event.data === 'second')
     16                    resolve(error);
     17                else if (event.data === 'error')
     18                    ++error;
     19            }
     20        }));
     21        worker.postMessage('first');
     22        worker.postMessage('second');
     23    }
     24 
     25    return Promise.all(promises).then(e => {
     26        var sum = 0;
     27        for (var key in e) {
     28            sum += e[key]
     29        }
     30        assert_equals(sum, workers);
     31    });
     32 });
     33 </script>