"use strict";

// eslint-disable-next-line no-unused-vars
var TestReporter = function (browser) {
  function send(action, json, cb) {
    var r = new XMLHttpRequest();
    // (The POST URI is ignored atm.)
    r.open("POST", action, true);
    r.setRequestHeader("Content-Type", "application/json");
    r.onreadystatechange = function sendTaskResultOnreadystatechange(e) {
      if (r.readyState === 4) {
        // Retry until successful
        if (r.status !== 200) {
          send(action, json, cb);
        } else {
          if (cb) {
            cb();
          }
        }
      }
    };
    json.browser = browser;
    r.send(JSON.stringify(json));
  }

  function sendInfo(message) {
    send("/info", { message });
  }

  function sendResult(status, description, error) {
    var message = {
      status,
      description,
    };
    if (typeof error !== "undefined") {
      message.error = error;
    }
    send("/submit_task_results", message);
  }

  function sendQuitRequest() {
    send(`/tellMeToQuit?browser=${escape(browser)}`, {});
  }

  this.now = function () {
    return new Date().getTime();
  };

  this.jasmineStarted = function (suiteInfo) {
    this.runnerStartTime = this.now();
    sendInfo("Started tests for " + browser + ".");
  };

  this.suiteStarted = function (result) {};

  this.specStarted = function (result) {};

  this.specDone = function (result) {
    if (result.failedExpectations.length === 0) {
      sendResult("TEST-PASSED", result.description);
    } else {
      var failedMessages = "";
      var items = result.failedExpectations;
      for (var i = 0, ii = items.length; i < ii; i++) {
        failedMessages += items[i].message + " ";
      }
      sendResult("TEST-UNEXPECTED-FAIL", result.description, failedMessages);
    }
  };

  this.suiteDone = function (result) {};

  this.jasmineDone = function () {
    // Give the test.py some time process any queued up requests
    setTimeout(sendQuitRequest, 500);
  };
};

@@ -1514,19 +1514,19 @@
 %7B%0A      
-var
+let
  failedM
@@ -1549,19 +1549,26 @@
     
-var
+for (const
  item
-s =
+ of
  res
@@ -1593,62 +1593,8 @@
 ions
-;%0A      for (var i = 0, ii = items.length; i %3C ii; i++
 ) %7B%0A
@@ -1623,24 +1623,23 @@
  += 
+%60$%7B
 item
-s%5Bi%5D
 .message
  + %22
@@ -1638,14 +1638,11 @@
 sage
- + %22 %22
+%7D %60
 ;%0A  
@@ -1838,11 +1838,15 @@
 test
-.py
+ runner
  som
@@ -1875,19 +1875,16 @@
 ued 
-up 
 requests
 %0A   
@@ -1879,16 +1879,17 @@
 requests
+.
 %0A    set

Use a `for...of` loop in the `specDone` handler in the test reporter