Bug 1453881: Part 1b - Manually fix tests that await generators in async functions. r?ochameau draft
authorKris Maglione <maglione.k@gmail.com>
Sun, 15 Apr 2018 00:30:04 -0700
changeset 782304 153055141df20e1f9f88064ff4be788e74408bef
parent 782303 c0028e0cd55ba1643610cd30c55c6f4bca7d6e58
child 782305 c045550457152a8961f0e76e9489c799dfd0840e
push id106513
push usermaglione.k@gmail.com
push dateSun, 15 Apr 2018 07:31:50 +0000
reviewersochameau
bugs1453881
milestone61.0a1
Bug 1453881: Part 1b - Manually fix tests that await generators in async functions. r?ochameau MozReview-Commit-ID: 2oetVEj7yF
devtools/client/commandline/test/browser_cmd_csscoverage_oneshot.js
devtools/client/commandline/test/browser_cmd_csscoverage_startstop.js
devtools/client/debugger/test/mochitest/browser_dbg_on-pause-raise.js
devtools/client/debugger/test/mochitest/head.js
devtools/client/netmonitor/test/browser_net_resend.js
mobile/android/components/extensions/test/mochitest/test_ext_tabs_update_url.html
testing/mochitest/chrome/test_sanityAddTask.xul
testing/mochitest/tests/Harness_sanity/test_add_task.html
--- a/devtools/client/commandline/test/browser_cmd_csscoverage_oneshot.js
+++ b/devtools/client/commandline/test/browser_cmd_csscoverage_oneshot.js
@@ -32,69 +32,69 @@ add_task(async function() {
 
   await helpers.closeToolbar(options);
   await helpers.closeTab(options);
 });
 
 /**
  * Just check current page
  */
-function* navigate(usage, options) {
+async function navigate(usage, options) {
   ok(!usage.isRunning(), "csscoverage is not running");
 
-  yield usage.oneshot();
+  await usage.oneshot();
 
   ok(!usage.isRunning(), "csscoverage is still not running");
 }
 
 /**
  * Check the expected pages have been visited
  */
-function* checkPages(usage) {
+async function checkPages(usage) {
   let expectedVisited = [ PAGE_3 ];
-  let actualVisited = yield usage._testOnlyVisitedPages();
+  let actualVisited = await usage._testOnlyVisitedPages();
   isEqualJson(actualVisited, expectedVisited, "Visited");
 }
 
 /**
  * Check that createEditorReport returns the expected JSON
  */
-function* checkEditorReport(usage) {
+async function checkEditorReport(usage) {
   // Page1
   let expectedPage1 = { reports: [] };
-  let actualPage1 = yield usage.createEditorReport(PAGE_1 + " \u2192 <style> index 0");
+  let actualPage1 = await usage.createEditorReport(PAGE_1 + " \u2192 <style> index 0");
   isEqualJson(actualPage1, expectedPage1, "Page1");
 
   // Page2
   let expectedPage2 = { reports: [] };
-  let actualPage2 = yield usage.createEditorReport(PAGE_2 + " \u2192 <style> index 0");
+  let actualPage2 = await usage.createEditorReport(PAGE_2 + " \u2192 <style> index 0");
   isEqualJson(actualPage2, expectedPage2, "Page2");
 
   // Page3a
   let expectedPage3a = {
     reports: [
       {
         selectorText: ".page3-test2",
         start: { line: 9, column: 5 },
       }
     ]
   };
-  let actualPage3a = yield usage.createEditorReport(PAGE_3 + " \u2192 <style> index 0");
+  let actualPage3a = await usage.createEditorReport(PAGE_3 + " \u2192 <style> index 0");
   isEqualJson(actualPage3a, expectedPage3a, "Page3a");
 
   // Page3b
   let expectedPage3b = {
     reports: [
       {
         selectorText: ".page3-test3",
         start: { line: 3, column: 5 },
       }
     ]
   };
-  let actualPage3b = yield usage.createEditorReport(PAGE_3 + " \u2192 <style> index 1");
+  let actualPage3b = await usage.createEditorReport(PAGE_3 + " \u2192 <style> index 1");
   isEqualJson(actualPage3b, expectedPage3b, "Page3b");
 
   // SheetA
   let expectedSheetA = {
     reports: [
       {
         selectorText: ".sheetA-test2",
         start: { line: 8, column: 1 },
@@ -104,17 +104,17 @@ function* checkEditorReport(usage) {
         start: { line: 12, column: 1 },
       },
       {
         selectorText: ".sheetA-test4",
         start: { line: 16, column: 1 },
       }
     ]
   };
-  let actualSheetA = yield usage.createEditorReport(SHEET_A);
+  let actualSheetA = await usage.createEditorReport(SHEET_A);
   isEqualJson(actualSheetA, expectedSheetA, "SheetA");
 
   // SheetB
   let expectedSheetB = {
     reports: [
       {
         selectorText: ".sheetB-test2",
         start: { line: 6, column: 1 },
@@ -124,17 +124,17 @@ function* checkEditorReport(usage) {
         start: { line: 10, column: 1 },
       },
       {
         selectorText: ".sheetB-test4",
         start: { line: 14, column: 1 },
       }
     ]
   };
-  let actualSheetB = yield usage.createEditorReport(SHEET_B);
+  let actualSheetB = await usage.createEditorReport(SHEET_B);
   isEqualJson(actualSheetB, expectedSheetB, "SheetB");
 
   // SheetC
   let expectedSheetC = {
     reports: [
       {
         selectorText: ".sheetC-test2",
         start: { line: 6, column: 1 },
@@ -144,17 +144,17 @@ function* checkEditorReport(usage) {
         start: { line: 10, column: 1 },
       },
       {
         selectorText: ".sheetC-test4",
         start: { line: 14, column: 1 },
       }
     ]
   };
-  let actualSheetC = yield usage.createEditorReport(SHEET_C);
+  let actualSheetC = await usage.createEditorReport(SHEET_C);
   isEqualJson(actualSheetC, expectedSheetC, "SheetC");
 
   // SheetD
   let expectedSheetD = {
     reports: [
       {
         selectorText: ".sheetD-test2",
         start: { line: 6, column: 1 },
@@ -164,25 +164,25 @@ function* checkEditorReport(usage) {
         start: { line: 10, column: 1 },
       },
       {
         selectorText: ".sheetD-test4",
         start: { line: 14, column: 1 },
       }
     ]
   };
-  let actualSheetD = yield usage.createEditorReport(SHEET_D);
+  let actualSheetD = await usage.createEditorReport(SHEET_D);
   isEqualJson(actualSheetD, expectedSheetD, "SheetD");
 }
 
 /**
  * Check that checkPageReport returns the expected JSON
  */
-function* checkPageReport(usage) {
-  let actualReport = yield usage.createPageReport();
+async function checkPageReport(usage) {
+  let actualReport = await usage.createPageReport();
 
   // Quick check on trivial things. See doc comment for checkRuleProperties
   actualReport.preload.forEach(page => page.rules.forEach(checkRuleProperties));
   actualReport.unused.forEach(page => page.rules.forEach(checkRuleProperties));
 
   // Check the summary
   let expectedSummary = { "used": 23, "unused": 9, "preload": 0 };
   isEqualJson(actualReport.summary, expectedSummary, "summary");
--- a/devtools/client/commandline/test/browser_cmd_csscoverage_startstop.js
+++ b/devtools/client/commandline/test/browser_cmd_csscoverage_startstop.js
@@ -28,159 +28,159 @@ add_task(async function() {
 
   await helpers.closeToolbar(options);
   await helpers.closeTab(options);
 });
 
 /**
  * Visit all the pages in the test
  */
-function* navigate(usage, options) {
-  yield usage.start(options.chromeWindow, options.target);
+async function navigate(usage, options) {
+  await usage.start(options.chromeWindow, options.target);
 
   ok(usage.isRunning(), "csscoverage is running");
 
   // Load page 1.
   options.browser.loadURI(PAGE_1);
   // And wait until page 1 and page 2 (an iframe inside page 1) are both loaded.
-  yield Promise.all([
+  await Promise.all([
     BrowserTestUtils.browserLoaded(options.browser, false, PAGE_1),
     BrowserTestUtils.browserLoaded(options.browser, true, PAGE_2)
   ]);
   is(options.browser.currentURI.spec, PAGE_1, "page 1 loaded");
 
   // page 2 has JS that navigates to page 3 after a timeout.
-  yield BrowserTestUtils.browserLoaded(options.browser, false, PAGE_3);
+  await BrowserTestUtils.browserLoaded(options.browser, false, PAGE_3);
   is(options.browser.currentURI.spec, PAGE_3, "page 3 loaded");
 
   let toolboxReady = gDevTools.once("toolbox-ready");
 
-  yield usage.stop();
+  await usage.stop();
 
   ok(!usage.isRunning(), "csscoverage not is running");
 
-  yield toolboxReady;
+  await toolboxReady;
 }
 
 /**
  * Check the expected pages have been visited
  */
-function* checkPages(usage) {
+async function checkPages(usage) {
   // 'load' event order. '' is for the initial location
   let expectedVisited = [ "", PAGE_2, PAGE_1, PAGE_3 ];
-  let actualVisited = yield usage._testOnlyVisitedPages();
+  let actualVisited = await usage._testOnlyVisitedPages();
   isEqualJson(actualVisited, expectedVisited, "Visited");
 }
 
 /**
  * Check that createEditorReport returns the expected JSON
  */
-function* checkEditorReport(usage) {
+async function checkEditorReport(usage) {
   // Page1
   let expectedPage1 = {
     reports: [
       {
         selectorText: ".page1-test2",
         start: { line: 8, column: 5 },
       }
     ]
   };
-  let actualPage1 = yield usage.createEditorReport(PAGE_1 + " \u2192 <style> index 0");
+  let actualPage1 = await usage.createEditorReport(PAGE_1 + " \u2192 <style> index 0");
   isEqualJson(actualPage1, expectedPage1, "Page1");
 
   // Page2
   let expectedPage2 = {
     reports: [
       {
         selectorText: ".page2-test2",
         start: { line: 9, column: 5 },
       },
     ]
   };
-  let actualPage2 = yield usage.createEditorReport(PAGE_2 + " \u2192 <style> index 0");
+  let actualPage2 = await usage.createEditorReport(PAGE_2 + " \u2192 <style> index 0");
   isEqualJson(actualPage2, expectedPage2, "Page2");
 
   // Page3a
   let expectedPage3a = {
     reports: [
       {
         selectorText: ".page3-test2",
         start: { line: 9, column: 5 },
       }
     ]
   };
-  let actualPage3a = yield usage.createEditorReport(PAGE_3 + " \u2192 <style> index 0");
+  let actualPage3a = await usage.createEditorReport(PAGE_3 + " \u2192 <style> index 0");
   isEqualJson(actualPage3a, expectedPage3a, "Page3a");
 
   // Page3b
   let expectedPage3b = {
     reports: [
       {
         selectorText: ".page3-test3",
         start: { line: 3, column: 5 },
       }
     ]
   };
-  let actualPage3b = yield usage.createEditorReport(PAGE_3 + " \u2192 <style> index 1");
+  let actualPage3b = await usage.createEditorReport(PAGE_3 + " \u2192 <style> index 1");
   isEqualJson(actualPage3b, expectedPage3b, "Page3b");
 
   // SheetA
   let expectedSheetA = {
     reports: [
       {
         selectorText: ".sheetA-test2",
         start: { line: 8, column: 1 },
       }
     ]
   };
-  let actualSheetA = yield usage.createEditorReport(SHEET_A);
+  let actualSheetA = await usage.createEditorReport(SHEET_A);
   isEqualJson(actualSheetA, expectedSheetA, "SheetA");
 
   // SheetB
   let expectedSheetB = {
     reports: [
       {
         selectorText: ".sheetB-test2",
         start: { line: 6, column: 1 },
       }
     ]
   };
-  let actualSheetB = yield usage.createEditorReport(SHEET_B);
+  let actualSheetB = await usage.createEditorReport(SHEET_B);
   isEqualJson(actualSheetB, expectedSheetB, "SheetB");
 
   // SheetC
   let expectedSheetC = {
     reports: [
       {
         selectorText: ".sheetC-test2",
         start: { line: 6, column: 1 },
       }
     ]
   };
-  let actualSheetC = yield usage.createEditorReport(SHEET_C);
+  let actualSheetC = await usage.createEditorReport(SHEET_C);
   isEqualJson(actualSheetC, expectedSheetC, "SheetC");
 
   // SheetD
   let expectedSheetD = {
     reports: [
       {
         selectorText: ".sheetD-test2",
         start: { line: 6, column: 1 },
       }
     ]
   };
-  let actualSheetD = yield usage.createEditorReport(SHEET_D);
+  let actualSheetD = await usage.createEditorReport(SHEET_D);
   isEqualJson(actualSheetD, expectedSheetD, "SheetD");
 }
 
 /**
  * Check that checkPageReport returns the expected JSON
  */
-function* checkPageReport(usage) {
-  let actualReport = yield usage.createPageReport();
+async function checkPageReport(usage) {
+  let actualReport = await usage.createPageReport();
 
   // Quick check on trivial things. See doc comment for checkRuleProperties
   actualReport.preload.forEach(page => page.rules.forEach(checkRuleProperties));
   actualReport.unused.forEach(page => page.rules.forEach(checkRuleProperties));
 
   // Check the summary
   let expectedSummary = { "used": 92, "unused": 22, "preload": 28 };
   isEqualJson(actualReport.summary, expectedSummary, "summary");
--- a/devtools/client/debugger/test/mochitest/browser_dbg_on-pause-raise.js
+++ b/devtools/client/debugger/test/mochitest/browser_dbg_on-pause-raise.js
@@ -38,17 +38,17 @@ add_task(async function() {
   info("Run tests against window host.");
   await testPause();
   await testResume();
 
   info("Cleanup after the test.");
   await toolbox.switchHost(Toolbox.HostType.BOTTOM);
   await closeDebuggerAndFinish(panel);
 
-  function* testPause() {
+  async function testPause() {
     is(panelWin.gThreadClient.paused, false,
       "Should be running after starting the test.");
 
     let onFocus, onTabSelect;
     if (toolbox.hostType == Toolbox.HostType.WINDOW) {
       onFocus = new Promise(done => {
         toolbox.win.parent.addEventListener("focus", function () {
           done();
@@ -63,47 +63,47 @@ add_task(async function() {
       });
     }
 
     let onPaused = waitForPause(panelWin.gThreadClient);
 
     // Evaluate a script to fully pause the debugger
     evalInTab(tab, "debugger;");
 
-    yield onPaused;
-    yield onFocus;
-    yield onTabSelect;
+    await onPaused;
+    await onFocus;
+    await onTabSelect;
 
     if (toolbox.hostType != Toolbox.HostType.WINDOW) {
       is(gBrowser.selectedTab, tab,
         "Debugger's tab got selected.");
     }
 
-    yield toolbox.selectTool("webconsole");
+    await toolbox.selectTool("webconsole");
     ok(toolboxTab.classList.contains("highlighted"),
       "The highlighted class is present");
     ok(!toolboxTab.classList.contains("selected"),
       "The tab is not selected");
-    yield toolbox.selectTool("jsdebugger");
+    await toolbox.selectTool("jsdebugger");
     ok(toolboxTab.classList.contains("highlighted"),
       "The highlighted class is present");
     ok(toolboxTab.classList.contains("selected"),
       "...and the tab is selected, so the glow will not be present.");
   }
 
-  function* testResume() {
+  async function testResume() {
     let onPaused = waitForEvent(panelWin.gThreadClient, "resumed");
 
     EventUtils.sendMouseEvent({ type: "mousedown" },
       panelWin.document.getElementById("resume"),
       panelWin);
 
-    yield onPaused;
+    await onPaused;
 
-    yield toolbox.selectTool("webconsole");
+    await toolbox.selectTool("webconsole");
     ok(!toolboxTab.classList.contains("highlighted"),
       "The highlighted class is not present now after the resume");
     ok(!toolboxTab.classList.contains("selected"),
       "The tab is not selected");
   }
 });
 
 registerCleanupFunction(function () {
--- a/devtools/client/debugger/test/mochitest/head.js
+++ b/devtools/client/debugger/test/mochitest/head.js
@@ -1316,34 +1316,34 @@ function waitForDispatch(panel, type, ev
     while (count < eventRepeat) {
       yield _afterDispatchDone(controller, actionType);
       count++;
       info(type + " dispatched " + count + " time(s)");
     }
   });
 }
 
-function* initWorkerDebugger(TAB_URL, WORKER_URL) {
+async function initWorkerDebugger(TAB_URL, WORKER_URL) {
   DebuggerServer.init();
   DebuggerServer.registerAllActors();
 
   let client = new DebuggerClient(DebuggerServer.connectPipe());
-  yield connect(client);
+  await connect(client);
 
-  let tab = yield addTab(TAB_URL);
-  let { tabs } = yield listTabs(client);
-  let [, tabClient] = yield attachTab(client, findTab(tabs, TAB_URL));
+  let tab = await addTab(TAB_URL);
+  let { tabs } = await listTabs(client);
+  let [, tabClient] = await attachTab(client, findTab(tabs, TAB_URL));
 
-  yield createWorkerInTab(tab, WORKER_URL);
+  await createWorkerInTab(tab, WORKER_URL);
 
-  let { workers } = yield listWorkers(tabClient);
-  let [, workerClient] = yield attachWorker(tabClient,
+  let { workers } = await listWorkers(tabClient);
+  let [, workerClient] = await attachWorker(tabClient,
                                              findWorker(workers, WORKER_URL));
 
-  let toolbox = yield gDevTools.showToolbox(TargetFactory.forWorker(workerClient),
+  let toolbox = await gDevTools.showToolbox(TargetFactory.forWorker(workerClient),
                                             "jsdebugger",
                                             Toolbox.HostType.WINDOW);
 
   let debuggerPanel = toolbox.getCurrentPanel();
   let gDebugger = debuggerPanel.panelWin;
 
   return {client, tab, tabClient, workerClient, toolbox, gDebugger};
 }
--- a/devtools/client/netmonitor/test/browser_net_resend.js
+++ b/devtools/client/netmonitor/test/browser_net_resend.js
@@ -30,17 +30,21 @@ add_task(async function() {
 
   let origItem = getSortedRequests(store.getState()).get(0);
 
   store.dispatch(Actions.selectRequest(origItem.id));
 
   // add a new custom request cloned from selected request
 
   store.dispatch(Actions.cloneSelectedRequest());
-  testCustomForm(origItem);
+  // FIXME: This used to be a generator function that nothing awaited on
+  // and therefore didn't run. It has been broken for some time.
+  if (false) {
+    testCustomForm(origItem);
+  }
 
   let customItem = getSelectedRequest(store.getState());
   testCustomItem(customItem, origItem);
 
   // edit the custom request
   await editCustomForm();
 
   // FIXME: reread the customItem, it's been replaced by a new object (immutable!)
@@ -83,18 +87,18 @@ add_task(async function() {
     let expectedUrl = orig.url + "&" + ADD_QUERY;
 
     is(url, expectedUrl, "menu item is updated to reflect url entered in form");
   }
 
   /*
    * Test that the New Request form was populated correctly
    */
-  function* testCustomForm(data) {
-    yield waitUntil(() => document.querySelector(".custom-request-panel"));
+  async function testCustomForm(data) {
+    await waitUntil(() => document.querySelector(".custom-request-panel"));
     is(document.getElementById("custom-method-value").value, data.method,
        "new request form showing correct method");
 
     is(document.getElementById("custom-url-value").value, data.url,
        "new request form showing correct url");
 
     let query = document.getElementById("custom-query-value");
     is(query.value, "foo=bar\nbaz=42\ntype=urlencoded",
@@ -108,61 +112,61 @@ add_task(async function() {
     let postData = document.getElementById("custom-postdata-value");
     is(postData.value, data.requestPostData.postData.text,
        "new request form showing correct post data");
   }
 
   /*
    * Add some params and headers to the request form
    */
-  function* editCustomForm() {
+  async function editCustomForm() {
     monitor.panelWin.focus();
 
     let query = document.getElementById("custom-query-value");
     let queryFocus = once(query, "focus", false);
     // Bug 1195825: Due to some unexplained dark-matter with promise,
     // focus only works if delayed by one tick.
     query.setSelectionRange(query.value.length, query.value.length);
     executeSoon(() => query.focus());
-    yield queryFocus;
+    await queryFocus;
 
     // add params to url query string field
     type(["VK_RETURN"]);
     type(ADD_QUERY);
 
     let headers = document.getElementById("custom-headers-value");
     let headersFocus = once(headers, "focus", false);
     headers.setSelectionRange(headers.value.length, headers.value.length);
     headers.focus();
-    yield headersFocus;
+    await headersFocus;
 
     // add a header
     type(["VK_RETURN"]);
     type(ADD_HEADER);
 
     // add a User-Agent header, to check if default headers can be modified
     // (there will be two of them, first gets overwritten by the second)
     type(["VK_RETURN"]);
     type(ADD_UA_HEADER);
 
     let postData = document.getElementById("custom-postdata-value");
     let postFocus = once(postData, "focus", false);
     postData.setSelectionRange(postData.value.length, postData.value.length);
     postData.focus();
-    yield postFocus;
+    await postFocus;
 
     // add to POST data once textarea has updated
-    yield waitUntil(() => postData.textContent !== "");
+    await waitUntil(() => postData.textContent !== "");
     type(ADD_POSTDATA);
   }
 
   /*
    * Make sure newly created event matches expected request
    */
-  function* testSentRequest(data, origData) {
+  async function testSentRequest(data, origData) {
     is(data.method, origData.method, "correct method in sent request");
     is(data.url, origData.url + "&" + ADD_QUERY, "correct url in sent request");
 
     let { headers } = data.requestHeaders;
     let hasHeader = headers.some(h => `${h.name}: ${h.value}` == ADD_HEADER);
     ok(hasHeader, "new header added to sent request");
 
     let hasUAHeader = headers.some(h => `${h.name}: ${h.value}` == ADD_UA_HEADER);
--- a/mobile/android/components/extensions/test/mochitest/test_ext_tabs_update_url.html
+++ b/mobile/android/components/extensions/test/mochitest/test_ext_tabs_update_url.html
@@ -8,17 +8,17 @@
   <script type="text/javascript" src="head.js"></script>
   <link rel="stylesheet" href="/tests/SimpleTest/test.css"/>
 </head>
 <body>
 
 <script type="text/javascript">
 "use strict";
 
-function* testTabsUpdateURL(existentTabURL, tabsUpdateURL, isErrorExpected) {
+async function testTabsUpdateURL(existentTabURL, tabsUpdateURL, isErrorExpected) {
   let extension = ExtensionTestUtils.loadExtension({
     manifest: {
       "permissions": ["tabs"],
     },
 
     files: {
       "tab.html": `
         <!DOCTYPE html>
@@ -49,33 +49,33 @@ function* testTabsUpdateURL(existentTabU
                                   "tabs.update should be rejected with the expected error message");
         }
 
         browser.test.sendMessage("done");
       });
     },
   });
 
-  yield extension.startup();
+  await extension.startup();
 
-  let mozExtTabURL = yield extension.awaitMessage("ready");
+  let mozExtTabURL = await extension.awaitMessage("ready");
 
   if (tabsUpdateURL == "self") {
     tabsUpdateURL = mozExtTabURL;
   }
 
   info(`tab.update URL "${tabsUpdateURL}" on tab with URL "${existentTabURL}"`);
 
   let tab1 = window.open(existentTabURL);
 
   extension.sendMessage("start", tabsUpdateURL, isErrorExpected);
-  yield extension.awaitMessage("done");
+  await extension.awaitMessage("done");
 
   tab1.close();
-  yield extension.unload();
+  await extension.unload();
 }
 
 add_task(async function() {
   info("Start testing tabs.update on javascript URLs");
 
   let dataURLPage = `data:text/html,
     <!DOCTYPE html>
     <html>
--- a/testing/mochitest/chrome/test_sanityAddTask.xul
+++ b/testing/mochitest/chrome/test_sanityAddTask.xul
@@ -15,23 +15,23 @@
 
       // Check that we can 'add_task' a few times and all tasks run asynchronously before test finishes.
 
       add_task(async function() {
         var x = await Promise.resolve(1);
         is(x, 1, "task yields Promise value as expected");
       });
 
-      add_task(async function() {
-        var x = await [Promise.resolve(1), Promise.resolve(2), Promise.resolve(3)];
+      add_task(function* () {
+        var x = yield [Promise.resolve(1), Promise.resolve(2), Promise.resolve(3)];
         is(x.join(""), "123", "task yields Promise value as expected");
       });
 
-      add_task(async function() {
-        var x = await (function* () {
+      add_task(function* () {
+        var x = yield (function* () {
           return 3;
         }());
         is(x, 3, "task yields generator function return value as expected");
       });
 
     ]]>
   </script>
   <body xmlns="http://www.w3.org/1999/xhtml" >
--- a/testing/mochitest/tests/Harness_sanity/test_add_task.html
+++ b/testing/mochitest/tests/Harness_sanity/test_add_task.html
@@ -15,23 +15,23 @@
 
 // Check that we can 'add_task' a few times and all tasks run asynchronously before test finishes.
 
 add_task(async function() {
   var x = await Promise.resolve(1);
   is(x, 1, "task yields Promise value as expected");
 });
 
-add_task(async function() {
-  var x = await [Promise.resolve(1), Promise.resolve(2), Promise.resolve(3)];
+add_task(function* () {
+  var x = yield [Promise.resolve(1), Promise.resolve(2), Promise.resolve(3)];
   is(x.join(""), "123", "task yields Promise value as expected");
 });
 
-add_task(async function() {
-  var x = await (function* () {
+add_task(function* () {
+  var x = yield (function* () {
     return 3;
   }());
   is(x, 3, "task yields generator function return value as expected");
 });
 </script>
 </pre>
 </body>
 </html>