Bug 891806 - part 4 - replace 'yield;' with 'yield undefined;' in dom/; r=smaug
authorTim Taubert <ttaubert@mozilla.com>
Wed, 10 Jul 2013 23:52:35 +0200
changeset 138090 c6ecfbeb6553f84a823f2d1f23b126df18bce952
parent 138089 3e5ac7b98a732518423529d3ff08bde69296774e
child 138091 78e13e80e2b216ceea29edbce8ed5688b5ee84bf
push id24942
push useremorley@mozilla.com
push dateThu, 11 Jul 2013 09:25:57 +0000
treeherdermozilla-central@c0e5481972eb [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerssmaug
bugs891806
milestone25.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 891806 - part 4 - replace 'yield;' with 'yield undefined;' in dom/; r=smaug
dom/apps/tests/test_app_update.html
dom/devicestorage/test/test_app_permissions.html
dom/file/test/test_append_read_data.html
dom/file/test/test_archivereader.html
dom/file/test/test_archivereader_nonUnicode.html
dom/file/test/test_archivereader_zip_in_zip.html
dom/file/test/test_getFileId.html
dom/file/test/test_location.html
dom/file/test/test_lockedfile_lifetimes.html
dom/file/test/test_lockedfile_lifetimes_nested.html
dom/file/test/test_lockedfile_ordering.html
dom/file/test/test_overlapping_lockedfiles.html
dom/file/test/test_progress_events.html
dom/file/test/test_readonly_lockedfiles.html
dom/file/test/test_request_readyState.html
dom/file/test/test_stream_tracking.html
dom/file/test/test_success_events_after_abort.html
dom/file/test/test_truncate.html
dom/file/test/test_workers.html
dom/file/test/test_write_read_data.html
dom/indexedDB/test/browser_forgetThisSiteAdd.html
dom/indexedDB/test/browser_forgetThisSiteGet.html
dom/indexedDB/test/browser_permissionsPrompt.html
dom/indexedDB/test/browser_quotaPrompt.html
dom/indexedDB/test/browser_quotaPromptDatabases.html
dom/indexedDB/test/browser_quotaPromptDelete.html
dom/indexedDB/test/error_events_abort_transactions_iframe.html
dom/indexedDB/test/event_propagation_iframe.html
dom/indexedDB/test/exceptions_in_events_iframe.html
dom/indexedDB/test/file_app_isolation.js
dom/indexedDB/test/test_bfcache.html
dom/indexedDB/test/test_blob_archive.html
dom/indexedDB/test/test_blob_simple.html
dom/indexedDB/test/test_file_array.html
dom/indexedDB/test/test_file_cross_database_copying.html
dom/indexedDB/test/test_file_delete.html
dom/indexedDB/test/test_file_os_delete.html
dom/indexedDB/test/test_file_put_get_object.html
dom/indexedDB/test/test_file_put_get_values.html
dom/indexedDB/test/test_file_quota.html
dom/indexedDB/test/test_file_replace.html
dom/indexedDB/test/test_file_resurrection_delete.html
dom/indexedDB/test/test_file_resurrection_transaction_abort.html
dom/indexedDB/test/test_file_sharing.html
dom/indexedDB/test/test_file_transaction_abort.html
dom/indexedDB/test/test_filehandle_quota.html
dom/indexedDB/test/test_filehandle_serialization.html
dom/indexedDB/test/test_filehandle_store_snapshot.html
dom/indexedDB/test/test_get_filehandle.html
dom/indexedDB/test/test_leaving_page.html
dom/indexedDB/test/test_open_for_principal.html
dom/indexedDB/test/unit/test_add_put.js
dom/indexedDB/test/unit/test_add_twice_failure.js
dom/indexedDB/test/unit/test_advance.js
dom/indexedDB/test/unit/test_autoIncrement.js
dom/indexedDB/test/unit/test_autoIncrement_indexes.js
dom/indexedDB/test/unit/test_clear.js
dom/indexedDB/test/unit/test_complex_keyPaths.js
dom/indexedDB/test/unit/test_count.js
dom/indexedDB/test/unit/test_create_index.js
dom/indexedDB/test/unit/test_create_index_with_integer_keys.js
dom/indexedDB/test/unit/test_create_objectStore.js
dom/indexedDB/test/unit/test_cursor_mutation.js
dom/indexedDB/test/unit/test_cursor_update_updates_indexes.js
dom/indexedDB/test/unit/test_cursors.js
dom/indexedDB/test/unit/test_deleteDatabase.js
dom/indexedDB/test/unit/test_deleteDatabase_interactions.js
dom/indexedDB/test/unit/test_event_source.js
dom/indexedDB/test/unit/test_getAll.js
dom/indexedDB/test/unit/test_global_data.js
dom/indexedDB/test/unit/test_index_empty_keyPath.js
dom/indexedDB/test/unit/test_index_getAll.js
dom/indexedDB/test/unit/test_index_getAllObjects.js
dom/indexedDB/test/unit/test_index_object_cursors.js
dom/indexedDB/test/unit/test_index_update_delete.js
dom/indexedDB/test/unit/test_indexes.js
dom/indexedDB/test/unit/test_indexes_bad_values.js
dom/indexedDB/test/unit/test_indexes_funny_things.js
dom/indexedDB/test/unit/test_invalid_version.js
dom/indexedDB/test/unit/test_key_requirements.js
dom/indexedDB/test/unit/test_keys.js
dom/indexedDB/test/unit/test_lowDiskSpace.js
dom/indexedDB/test/unit/test_multientry.js
dom/indexedDB/test/unit/test_names_sorted.js
dom/indexedDB/test/unit/test_objectCursors.js
dom/indexedDB/test/unit/test_objectStore_inline_autoincrement_key_added_on_put.js
dom/indexedDB/test/unit/test_objectStore_remove_values.js
dom/indexedDB/test/unit/test_object_identity.js
dom/indexedDB/test/unit/test_odd_result_order.js
dom/indexedDB/test/unit/test_open_empty_db.js
dom/indexedDB/test/unit/test_open_for_principal.js
dom/indexedDB/test/unit/test_open_objectStore.js
dom/indexedDB/test/unit/test_optionalArguments.js
dom/indexedDB/test/unit/test_overlapping_transactions.js
dom/indexedDB/test/unit/test_put_get_values.js
dom/indexedDB/test/unit/test_put_get_values_autoIncrement.js
dom/indexedDB/test/unit/test_readonly_transactions.js
dom/indexedDB/test/unit/test_remove_index.js
dom/indexedDB/test/unit/test_remove_objectStore.js
dom/indexedDB/test/unit/test_request_readyState.js
dom/indexedDB/test/unit/test_setVersion.js
dom/indexedDB/test/unit/test_setVersion_abort.js
dom/indexedDB/test/unit/test_setVersion_events.js
dom/indexedDB/test/unit/test_setVersion_exclusion.js
dom/indexedDB/test/unit/test_success_events_after_abort.js
dom/indexedDB/test/unit/test_traffic_jam.js
dom/indexedDB/test/unit/test_transaction_abort.js
dom/indexedDB/test/unit/test_transaction_abort_hang.js
dom/indexedDB/test/unit/test_transaction_lifetimes.js
dom/indexedDB/test/unit/test_transaction_lifetimes_nested.js
dom/indexedDB/test/unit/test_transaction_ordering.js
dom/indexedDB/test/unit/test_unique_index_update.js
dom/indexedDB/test/unit/test_writer_starvation.js
dom/indexedDB/test/webapp_clearBrowserData.js
dom/indexedDB/test/webapp_clearBrowserData_appFrame.html
dom/indexedDB/test/webapp_clearBrowserData_browserFrame.html
dom/permission/tests/file_framework.js
dom/tests/browser/browser_ConsoleAPITests.js
dom/tests/mochitest/general/test_bug504220.html
dom/tests/mochitest/general/test_domWindowUtils.html
dom/tests/mochitest/localstorage/test_appIsolation.html
dom/tests/mochitest/webapps/file_bug_779982.js
dom/tests/mochitest/whatwg/test_bug500328.html
--- a/dom/apps/tests/test_app_update.html
+++ b/dom/apps/tests/test_app_update.html
@@ -40,132 +40,132 @@ https://bugzilla.mozilla.org/show_bug.cg
 
   function runTest() {
     // Set up.
 
     launchableValue = SpecialPowers.setAllAppsLaunchable(true);
     SpecialPowers.setBoolPref("dom.mozBrowserFramesEnabled", true);
 
     setAppVersion(1, continueTest);
-    yield;
+    yield undefined;
     SpecialPowers.autoConfirmAppInstall(continueTest);
-    yield;
+    yield undefined;
 
     // Load the app, uninstalled.
     checkAppState(null, false, 1, continueTest);
-    yield;
+    yield undefined;
 
     // Bump the version and install the app.
     setAppVersion(2, continueTest);
-    yield;
+    yield undefined;
 
     var request = navigator.mozApps.install(gHostedManifestURL);
     request.onerror = cbError;
     request.onsuccess = continueTest;
-    yield;
+    yield undefined;
     var app = request.result;
     ok(app, "App is non-null");
     ok(app.manifest.description == "Updated even faster than Firefox, just to annoy slashdotters.",
        "Manifest is HTML-sanitized");
 
     // Check the app a few times.
     checkAppState(app, true, 2, continueTest);
-    yield;
+    yield undefined;
     checkAppState(app, true, 2, continueTest);
-    yield;
+    yield undefined;
 
     // Bump the version and check the app again. The app is not cached, so the
     // version bump takes effect.
     setAppVersion(3, continueTest);
-    yield;
+    yield undefined;
     checkAppState(app, true, 3, continueTest);
-    yield;
+    yield undefined;
 
     // check for update
     var icons = app.manifest.icons;
     var oldIcon = icons[Object.keys(icons)[0]];
     var oldUpdateTime = app.updateTime;
     setAppIcon('new_icon', continueTest);
-    yield;
+    yield undefined;
 
     app.ondownloadavailable = function() {
       ok(false, 'Got a downloadavailable event for non-cached hosted apps');
     };
 
     app.ondownloadapplied = function() {
       ok(true, 'Got a downloadapplied when checking for update');
       app.ondownloadapplied = app.ondownloadavailable = null;
       continueTest();
     };
     app.checkForUpdate();
-    yield;
+    yield undefined;
 
     icons = app.manifest.icons;
     var newIcon = icons[Object.keys(icons)[0]];
     var newUpdateTime = app.updateTime;
     isnot(oldIcon, newIcon, 'The icon should be updated');
     isnot(oldUpdateTime, newUpdateTime, 'The update time should be updated');
 
     // Uninstall the app.
     request = navigator.mozApps.mgmt.uninstall(app);
     request.onerror = cbError;
     request.onsuccess = continueTest;
-    yield;
+    yield undefined;
 
     // Check the uninstalled app.
     checkAppState(app, false, 3, continueTest);
-    yield;
+    yield undefined;
 
     // Install the cached app.
     setAppVersion(3, continueTest);
-    yield;
+    yield undefined;
     ok(true, "Installing cached app");
     var request = navigator.mozApps.install(gCachedManifestURL);
     request.onerror = cbError;
     request.onsuccess = continueTest;
-    yield;
+    yield undefined;
     var app = request.result;
     ok(app, "App is non-null");
     if (app.installState == "pending") {
       ok(true, "App is pending. Waiting for progress");
       app.onprogress = function() ok(true, "Got download progress");
       app.ondownloadsuccess = continueTest;
       app.ondownloaderror = cbError;
-      yield;
+      yield undefined;
     }
     is(app.installState, "installed", "App is installed");
 
     // Check the cached app.
     checkAppState(app, true, 3, continueTest);
-    yield;
+    yield undefined;
 
     // Check for updates. The current infrastructure always returns a new appcache
     // manifest, so there should always be an update.
     var lastCheck = app.lastUpdateCheck;
     ok(true, "Setting callbacks");
     app.ondownloadapplied = function() ok(true, "downloadapplied fired.");
     app.ondownloadavailable = function() ok(false, "downloadavailable fired");
     ok(true, "Checking for updates");
     var request = app.checkForUpdate();
     request.onerror = cbError;
     request.onsuccess = continueTest;
-    yield;
+    yield undefined;
     todo(app.lastUpdateCheck > lastCheck, "lastUpdateCheck updated appropriately");
 
 
     // Uninstall the app.
     request = navigator.mozApps.mgmt.uninstall(app);
     request.onerror = cbError;
     request.onsuccess = continueTest;
-    yield;
+    yield undefined;
     ok(true, "Uninstalled app");
 
     // Check the uninstalled app.
     checkAppState(app, false, 3, continueTest);
-    yield;
+    yield undefined;
 
     // All done.
     ok(true, "All done");
     finish();
   }
 
   function setAppVersion(version, cb) {
     var xhr = new XMLHttpRequest();
--- a/dom/devicestorage/test/test_app_permissions.html
+++ b/dom/devicestorage/test/test_app_permissions.html
@@ -617,17 +617,17 @@ function runTest() {
     iframe.src = gTestUri;
 
     iframe.addEventListener('load', function(e) {
       setupTest(iframe, data)
       data.test(iframe, data);
     });
 
     document.getElementById('content').appendChild(iframe);
-    yield;
+    yield undefined;
   }
 }
 
 function createTestFile(extension) {
 try {
   const Cc = SpecialPowers.Cc;
   const Ci = SpecialPowers.Ci;
   var directoryService = Cc["@mozilla.org/file/directory_service;1"].getService(Ci.nsIProperties);
--- a/dom/file/test/test_append_read_data.html
+++ b/dom/file/test/test_append_read_data.html
@@ -20,81 +20,81 @@
     var testBuffer = getRandomBuffer(100000);
 
     var testBlob = getBlob("binary/random", testBuffer);
 
     for each (let fileStorage in fileStorages) {
       let request = getFileHandle(fileStorage.key, "test.txt");
       request.onerror = errorHandler;
       request.onsuccess = grabEventAndContinueHandler;
-      let event = yield;
+      let event = yield undefined;
 
       let fileHandle = event.target.result;
       fileHandle.onerror = errorHandler;
 
       let location = 0;
 
       let lockedFile = fileHandle.open("readwrite");
       is(lockedFile.location, location, "Correct location");
 
       request = lockedFile.append(testString);
       ok(lockedFile.location === null, "Correct location");
       request.onsuccess = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       lockedFile.location = 0;
       request = lockedFile.readAsText(testString.length);
       location += testString.length
       is(lockedFile.location, location, "Correct location");
       request.onsuccess = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       let resultString = event.target.result;
       ok(resultString == testString, "Correct string data");
 
       request = lockedFile.append(testBuffer);
       ok(lockedFile.location === null, "Correct location");
       request.onsuccess = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       lockedFile.location = location;
       request = lockedFile.readAsArrayBuffer(testBuffer.byteLength);
       location += testBuffer.byteLength;
       is(lockedFile.location, location, "Correct location");
       request.onsuccess = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       let resultBuffer = event.target.result;
       ok(compareBuffers(resultBuffer, testBuffer), "Correct array buffer data");
 
       request = lockedFile.append(testBlob);
       ok(lockedFile.location === null, "Correct location");
       request.onsuccess = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       lockedFile.location = location;
       request = lockedFile.readAsArrayBuffer(testBlob.size);
       location += testBlob.size;
       is(lockedFile.location, location, "Correct location");
       request.onsuccess = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       resultBuffer = event.target.result;
       ok(compareBuffers(resultBuffer, testBuffer), "Correct blob data");
 
       request = lockedFile.getMetadata({ size: true });
       request.onsuccess = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       let result = event.target.result;
       is(result.size, location, "Correct size");
     }
 
     finishTest();
-    yield;
+    yield undefined;
   }
   </script>
   <script type="text/javascript;version=1.7" src="helpers.js"></script>
 
 </head>
 
 <body onload="runTest();"></body>
 
--- a/dom/file/test/test_archivereader.html
+++ b/dom/file/test/test_archivereader.html
@@ -240,17 +240,17 @@
       is(this.result[1].type, "text/plain", "ArchiveReader.getFile('test/a.txt') the type MUST be 'text/plain'");
 
       markTestDone();
     }
     handle5.onerror = function() {
       ok(false, "ArchiveReader.getFiles() should not return an 'error'");
       markTestDone();
     }
-    yield;
+    yield undefined;
   }
 
   </script>
   <script type="text/javascript;version=1.7" src="helpers.js"></script>
 </head>
 
 <body onload="runTest();">
 <p id="display">
--- a/dom/file/test/test_archivereader_nonUnicode.html
+++ b/dom/file/test/test_archivereader_nonUnicode.html
@@ -72,17 +72,17 @@
       ok(this.reader, r, "ArchiveRequest.reader should be == ArchiveReader");
       finishTest();
     }
   }
 
   function testSteps()
   {
     test1();
-    yield;
+    yield undefined;
   }
 
 
   </script>
   <script type="text/javascript;version=1.7" src="helpers.js"></script>
 
 </head>
 
--- a/dom/file/test/test_archivereader_zip_in_zip.html
+++ b/dom/file/test/test_archivereader_zip_in_zip.html
@@ -37,17 +37,17 @@
 
   function testSteps()
   {
     var binaryFile = createZipInZipData();
 
     // The input is 4 nested zip archives:
     doLoop(binaryFile, 4);
 
-    yield;
+    yield undefined;
   }
 
   function doLoop(blob, loop)
   {
     var r = new ArchiveReader(blob);
     isnot(r, null, "ArchiveReader cannot be null");
 
     // GetFilename
--- a/dom/file/test/test_getFileId.html
+++ b/dom/file/test/test_getFileId.html
@@ -14,17 +14,17 @@
   {
     let id = getFileId(null);
     ok(id == -1, "Correct id");
 
     id = getFileId(getRandomBlob(100));
     ok(id == -1, "Correct id");
 
     finishTest();
-    yield;
+    yield undefined;
   }
   </script>
   <script type="text/javascript;version=1.7" src="helpers.js"></script>
 
 </head>
 
 <body onload="runTest();"></body>
 
--- a/dom/file/test/test_location.html
+++ b/dom/file/test/test_location.html
@@ -11,17 +11,17 @@
 
   <script type="text/javascript;version=1.7">
   function testSteps()
   {
     for each (let fileStorage in fileStorages) {
       let request = getFileHandle(fileStorage.key, "test.txt");
       request.onerror = errorHandler;
       request.onsuccess = grabEventAndContinueHandler;
-      let event = yield;
+      let event = yield undefined;
 
       let fileHandle = event.target.result;
       fileHandle.onerror = errorHandler;
 
       let lockedFile = fileHandle.open("readwrite");
       is(lockedFile.location, 0, "Correct location");
 
       lockedFile.location = 100000;
@@ -57,39 +57,39 @@
       catch (e) {
         ok(e instanceof DOMException, "Got exception.");
         is(e.name, "InvalidStateError", "Good error.");
         is(e.code, DOMException.INVALID_STATE_ERR, "Good error code.");
       }
 
       request = lockedFile.append("foo");
       request.onsuccess = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       ok(lockedFile.location === null, "Correct location");
 
       try {
         lockedFile.truncate();
         ok(false, "Should have thrown!");
       }
       catch (e) {
         ok(e instanceof DOMException, "Got exception.");
         is(e.name, "InvalidStateError", "Good error.");
         is(e.code, DOMException.INVALID_STATE_ERR, "Good error code.");
       }
 
       request = lockedFile.truncate(0);
       request.onsuccess = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       is(lockedFile.location, 0, "Correct location");
     }
 
     finishTest();
-    yield;
+    yield undefined;
   }
   </script>
   <script type="text/javascript;version=1.7" src="helpers.js"></script>
 
 </head>
 
 <body onload="runTest();"></body>
 
--- a/dom/file/test/test_lockedfile_lifetimes.html
+++ b/dom/file/test/test_lockedfile_lifetimes.html
@@ -11,38 +11,38 @@
 
   <script type="text/javascript;version=1.7">
   function testSteps()
   {
     for each (let fileStorage in fileStorages) {
       let request = getFileHandle(fileStorage.key, "test.txt");
       request.onerror = errorHandler;
       request.onsuccess = grabEventAndContinueHandler;
-      let event = yield;
+      let event = yield undefined;
 
       let fileHandle = event.target.result;
       fileHandle.onerror = errorHandler;
 
       let lockedFile = fileHandle.open();
       continueToNextStep();
-      yield;
+      yield undefined;
 
       try {
         lockedFile.getMetadata({ size: true });
         ok(false, "Should have thrown!");
       }
       catch (e) {
         ok(e instanceof DOMException, "Got exception.");
         is(e.name, "LockedFileInactiveError", "Good error.");
         is(e.code, 0, "Good error code.");
       }
     }
 
     finishTest();
-    yield;
+    yield undefined;
   }
   </script>
   <script type="text/javascript;version=1.7" src="helpers.js"></script>
 
 </head>
 
 <body onload="runTest();"></body>
 
--- a/dom/file/test/test_lockedfile_lifetimes_nested.html
+++ b/dom/file/test/test_lockedfile_lifetimes_nested.html
@@ -11,17 +11,17 @@
 
   <script type="text/javascript;version=1.7">
   function testSteps()
   {
     for each (let fileStorage in fileStorages) {
       let request = getFileHandle(fileStorage.key, "test.txt");
       request.onerror = errorHandler;
       request.onsuccess = grabEventAndContinueHandler;
-      let event = yield;
+      let event = yield undefined;
 
       let fileHandle = event.target.result;
       fileHandle.onerror = errorHandler;
 
       let lockedFile = fileHandle.open();
 
       let lockedFile2;
 
@@ -40,21 +40,21 @@
 
       while (!eventHasRun) {
         thread.processNextEvent(false);
       }
 
       ok(lockedFile2, "Non-null lockedFile2");
 
       continueToNextStep();
-      yield;
+      yield undefined;
     }
 
     finishTest();
-    yield;
+    yield undefined;
   }
   </script>
   <script type="text/javascript;version=1.7" src="helpers.js"></script>
 
 </head>
 
 <body onload="runTest();"></body>
 
--- a/dom/file/test/test_lockedfile_ordering.html
+++ b/dom/file/test/test_lockedfile_ordering.html
@@ -11,43 +11,43 @@
 
   <script type="text/javascript;version=1.7">
   function testSteps()
   {
     for each (let fileStorage in fileStorages) {
       let request = getFileHandle(fileStorage.key, "test.txt");
       request.onerror = errorHandler;
       request.onsuccess = grabEventAndContinueHandler;
-      let event = yield;
+      let event = yield undefined;
 
       let fileHandle = event.target.result;
       fileHandle.onerror = errorHandler;
 
       let lockedFile1 = fileHandle.open("readwrite");
       let lockedFile2 = fileHandle.open("readwrite");
 
       let request1 = lockedFile2.write("2");
       let request2 = lockedFile1.write("1");
 
       lockedFile1.oncomplete = grabEventAndContinueHandler;
       lockedFile2.oncomplete = grabEventAndContinueHandler;
 
-      yield;
-      yield;
+      yield undefined;
+      yield undefined;
 
       let lockedFile3 = fileHandle.open("readonly");
       let request3 = lockedFile3.readAsText(1);
       request3.onsuccess = grabEventAndContinueHandler;
 
-      event = yield;
+      event = yield undefined;
       is(event.target.result, "2", "Locked files were ordered properly.");
     }
 
     finishTest();
-    yield;
+    yield undefined;
   }
   </script>
   <script type="text/javascript;version=1.7" src="helpers.js"></script>
 
 </head>
 
 <body onload="runTest();"></body>
 
--- a/dom/file/test/test_overlapping_lockedfiles.html
+++ b/dom/file/test/test_overlapping_lockedfiles.html
@@ -11,17 +11,17 @@
 
   <script type="text/javascript;version=1.7">
   function testSteps()
   {
     for each (let fileStorage in fileStorages) {
       let request = getFileHandle(fileStorage.key, "test.txt");
       request.onerror = errorHandler;
       request.onsuccess = grabEventAndContinueHandler;
-      let event = yield;
+      let event = yield undefined;
 
       let fileHandle = event.target.result;
       fileHandle.onerror = errorHandler;
 
       for (let i = 0; i < 50; i++) {
         let stepNumber = 0;
 
         request = fileHandle.open("readwrite").append("string1");
@@ -41,24 +41,24 @@
         request = fileHandle.open("readwrite").append("string3");
         request.onsuccess = function(event) {
           is(stepNumber, 3, "This callback came third");
           stepNumber++;
           event.target.lockedFile.oncomplete = grabEventAndContinueHandler;
         }
 
         stepNumber++;
-        yield; yield; yield;;
+        yield undefined; yield undefined; yield undefined;;
 
         is(stepNumber, 4, "All callbacks received");
       }
     }
 
     finishTest();
-    yield;
+    yield undefined;
   }
   </script>
   <script type="text/javascript;version=1.7" src="helpers.js"></script>
 
 </head>
 
 <body onload="runTest();"></body>
 
--- a/dom/file/test/test_progress_events.html
+++ b/dom/file/test/test_progress_events.html
@@ -13,17 +13,17 @@
   function testSteps()
   {
     var testBuffer = getRandomBuffer(100000);
 
     for each (let fileStorage in fileStorages) {
       let request = getFileHandle(fileStorage.key, "test.txt");
       request.onerror = errorHandler;
       request.onsuccess = grabEventAndContinueHandler;
-      let event = yield;
+      let event = yield undefined;
 
       let fileHandle = event.target.result;
       fileHandle.onerror = errorHandler;
 
       let lockedFile = fileHandle.open("readwrite");
 
       let sum = 0;
 
@@ -31,39 +31,39 @@
       request.onprogress = function(event) {
         let loaded = event.loaded;
         let total = event.total;
         ok(loaded >= 0 && loaded <= total, "Correct loaded progress");
         is(total, testBuffer.byteLength, "Correct total progress");
         sum += event.loaded - sum;
       }
       request.onsuccess = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       is(sum, testBuffer.byteLength, "Correct loaded progress sum");
 
       sum = 0;
 
       lockedFile.location = 0;
       request = lockedFile.readAsArrayBuffer(testBuffer.byteLength);
       request.onprogress = function(event) {
         let loaded = event.loaded;
         let total = event.total;
         ok(loaded >= 0 && loaded <= total, "Correct loaded progress");
         is(total, testBuffer.byteLength, "Correct total progress");
         sum += event.loaded - sum;
       }
       request.onsuccess = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       is(sum, testBuffer.byteLength, "Correct loaded progress sum");
     }
 
     finishTest();
-    yield;
+    yield undefined;
   }
   </script>
   <script type="text/javascript;version=1.7" src="helpers.js"></script>
 
 </head>
 
 <body onload="runTest();"></body>
 
--- a/dom/file/test/test_readonly_lockedfiles.html
+++ b/dom/file/test/test_readonly_lockedfiles.html
@@ -11,24 +11,24 @@
 
   <script type="text/javascript;version=1.7">
   function testSteps()
   {
     for each (let fileStorage in fileStorages) {
       let request = getFileHandle(fileStorage.key, "test.txt");
       request.onerror = errorHandler;
       request.onsuccess = grabEventAndContinueHandler;
-      let event = yield;
+      let event = yield undefined;
 
       let fileHandle = event.target.result;
       fileHandle.onerror = errorHandler;
 
       request = fileHandle.open("readwrite").write({});
       request.onsuccess = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       is(event.target.lockedFile.mode, "readwrite", "Correct mode");
 
       try {
         fileHandle.open().write({});
         ok(false, "Writing to a readonly locked file should fail!");
       }
       catch (e) {
@@ -56,17 +56,17 @@
         ok(false, "Flushing a readonly locked file should fail!");
       }
       catch (e) {
         ok(true, "Flushing a readonly locked file failed");
       }
     }
 
     finishTest();
-    yield;
+    yield undefined;
   }
   </script>
   <script type="text/javascript;version=1.7" src="helpers.js"></script>
 
 </head>
 
 <body onload="runTest();"></body>
 
--- a/dom/file/test/test_request_readyState.html
+++ b/dom/file/test/test_request_readyState.html
@@ -13,44 +13,44 @@
   function testSteps()
   {
     for each (let fileStorage in fileStorages) {
       let request = getFileHandle(fileStorage.key, "test.txt");
       is(request.readyState, "pending", "Correct readyState");
 
       request.onerror = errorHandler;
       request.onsuccess = grabEventAndContinueHandler;
-      let event = yield;
+      let event = yield undefined;
 
       is(request.readyState, "done", "Correct readyState");
 
       let fileHandle = event.target.result;
       fileHandle.onerror = errorHandler;
 
       let lockedFile = fileHandle.open("readwrite");
       request = lockedFile.write("string");
       is(request.readyState, "pending", "Correct readyState");
 
       request.onsuccess = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       is(request.readyState, "done", "Correct readyState");
 
       lockedFile.location = 0;
       request = lockedFile.readAsText(6);
       request.onsuccess = grabEventAndContinueHandler;
       is(request.readyState, "pending", "Correct readyState");
-      event = yield;
+      event = yield undefined;
 
       ok(event.target.result, "Got something");
       is(request.readyState, "done", "Correct readyState");
     }
 
     finishTest();
-    yield;
+    yield undefined;
   }
   </script>
   <script type="text/javascript;version=1.7" src="helpers.js"></script>
 
 </head>
 
 <body onload="runTest();"></body>
 
--- a/dom/file/test/test_stream_tracking.html
+++ b/dom/file/test/test_stream_tracking.html
@@ -13,30 +13,30 @@
   function testSteps()
   {
     var testBuffer = getRandomBuffer(100000);
 
     for each (let fileStorage in fileStorages) {
       let request = getFileHandle(fileStorage.key, "test.txt");
       request.onerror = errorHandler;
       request.onsuccess = grabEventAndContinueHandler;
-      let event = yield;
+      let event = yield undefined;
 
       let fileHandle = event.target.result;
       fileHandle.onerror = errorHandler;
 
       let lockedFile = fileHandle.open("readwrite");
 
       request = lockedFile.write(testBuffer);
       request.onsuccess = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       request = fileHandle.getFile();
       request.onsuccess = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       let file = event.target.result;
 
       let resultBuffer1;
       let resultBuffer2;
 
       let reader1 = new FileReader();
       reader1.readAsArrayBuffer(file);
@@ -79,24 +79,24 @@
           is(e.code, 0, "Good error code.");
         }
 
         if (resultBuffer1) {
           testGenerator.next();
         }
       }
 
-      yield;
+      yield undefined;
 
       ok(compareBuffers(resultBuffer1, testBuffer), "Correct data");
       ok(compareBuffers(resultBuffer2, testBuffer), "Correct data");
     }
 
     finishTest();
-    yield;
+    yield undefined;
   }
   </script>
   <script type="text/javascript;version=1.7" src="helpers.js"></script>
 
 </head>
 
 <body onload="runTest();"></body>
 
--- a/dom/file/test/test_success_events_after_abort.html
+++ b/dom/file/test/test_success_events_after_abort.html
@@ -11,17 +11,17 @@
 
   <script type="text/javascript;version=1.7">
   function testSteps()
   {
     for each (let fileStorage in fileStorages) {
       let request = getFileHandle(fileStorage.key, "test.txt");
       request.onerror = errorHandler;
       request.onsuccess = grabEventAndContinueHandler;
-      let event = yield;
+      let event = yield undefined;
 
       let fileHandle = event.target.result;
       fileHandle.onerror = errorHandler;
 
       let lockedFile = fileHandle.open();
 
       lockedFile.oncomplete = unexpectedSuccessHandler;
       lockedFile.onabort = grabEventAndContinueHandler;
@@ -33,33 +33,33 @@
       request.onerror = function(event) {
         is(event.target.error.name, "AbortError", "Good error");
         sawError = true;
         event.stopPropagation();
       }
 
       lockedFile.abort();
 
-      event = yield;
+      event = yield undefined;
 
       is(event.type, "abort", "Got abort event");
       is(sawError, true, "Saw getMetadata() error");
 
       // Make sure the success event isn't queued somehow.
       let comp = SpecialPowers.wrap(SpecialPowers.Components);
       var thread = comp.classes["@mozilla.org/thread-manager;1"]
                        .getService(comp.interfaces.nsIThreadManager)
                        .currentThread;
       while (thread.hasPendingEvents()) {
         thread.processNextEvent(false);
       }
     }
 
     finishTest();
-    yield;
+    yield undefined;
   }
   </script>
   <script type="text/javascript;version=1.7" src="helpers.js"></script>
 
 </head>
 
 <body onload="runTest();"></body>
 
--- a/dom/file/test/test_truncate.html
+++ b/dom/file/test/test_truncate.html
@@ -13,69 +13,69 @@
   function testSteps()
   {
     var testBuffer = getRandomBuffer(100000);
 
     for each (let fileStorage in fileStorages) {
       let request = getFileHandle(fileStorage.key, "test.bin");
       request.onerror = errorHandler;
       request.onsuccess = grabEventAndContinueHandler;
-      let event = yield;
+      let event = yield undefined;
 
       let fileHandle = event.target.result;
       fileHandle.onerror = errorHandler;
 
       let lockedFile = fileHandle.open("readwrite");
       request = lockedFile.write(testBuffer);
       request.onsuccess = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       is(lockedFile.location, 100000, "Correct location");
 
       for (let i = 0; i < 10; i++) {
         let location = lockedFile.location - 10000;
         lockedFile.location = location;
 
         request = lockedFile.truncate();
         request.onsuccess = grabEventAndContinueHandler;
-        event = yield;
+        event = yield undefined;
 
         is(lockedFile.location, location, "Correct location");
 
         request = lockedFile.getMetadata({ size: true });
         request.onsuccess = grabEventAndContinueHandler;
-        event = yield;
+        event = yield undefined;
 
         is(event.target.result.size, location, "Correct size");
       }
 
       request = lockedFile.write(testBuffer);
       request.onsuccess = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       let location = lockedFile.location;
       for (let i = 0; i < 10; i++) {
         location -= 10000;
 
         request = lockedFile.truncate(location);
         request.onsuccess = grabEventAndContinueHandler;
-        event = yield;
+        event = yield undefined;
 
         is(lockedFile.location, location, "Correct location");
 
         request = lockedFile.getMetadata({ size: true });
         request.onsuccess = grabEventAndContinueHandler;
-        event = yield;
+        event = yield undefined;
 
         is(event.target.result.size, location, "Correct size");
       }
     }
 
     finishTest();
-    yield;
+    yield undefined;
   }
   </script>
   <script type="text/javascript;version=1.7" src="helpers.js"></script>
 
 </head>
 
 <body onload="runTest();"></body>
 
--- a/dom/file/test/test_workers.html
+++ b/dom/file/test/test_workers.html
@@ -13,30 +13,30 @@
   function testSteps()
   {
     var testBuffer = getRandomBuffer(100000);
 
     for each (let fileStorage in fileStorages) {
       let request = getFileHandle(fileStorage.key, "test.txt");
       request.onerror = errorHandler;
       request.onsuccess = grabEventAndContinueHandler;
-      let event = yield;
+      let event = yield undefined;
 
       let fileHandle = event.target.result;
       fileHandle.onerror = errorHandler;
 
       let lockedFile = fileHandle.open("readwrite");
 
       request = lockedFile.write(testBuffer);
       request.onsuccess = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       request = fileHandle.getFile();
       request.onsuccess = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       let file = event.target.result;
 
       var worker = new Worker("dummy_worker.js");
       try {
         worker.postMessage(file);
         ok(false, "Should have thrown!");
       }
@@ -44,17 +44,17 @@
         ok(e instanceof DOMException, "Got exception.");
         is(e.name, "DataCloneError", "Good error.");
         is(e.code, DOMException.DATA_CLONE_ERR, "Good error code.")
       }
       worker.terminate();
     }
 
     finishTest();
-    yield;
+    yield undefined;
   }
   </script>
   <script type="text/javascript;version=1.7" src="helpers.js"></script>
 
 </head>
 
 <body onload="runTest();"></body>
 
--- a/dom/file/test/test_write_read_data.html
+++ b/dom/file/test/test_write_read_data.html
@@ -20,81 +20,81 @@
     var testBuffer = getRandomBuffer(100000);
 
     var testBlob = getBlob("binary/random", testBuffer);
 
     for each (let fileStorage in fileStorages) {
       let request = getFileHandle(fileStorage.key, "test.txt");
       request.onerror = errorHandler;
       request.onsuccess = grabEventAndContinueHandler;
-      let event = yield;
+      let event = yield undefined;
 
       let fileHandle = event.target.result;
       fileHandle.onerror = errorHandler;
 
       let location = 0;
 
       let lockedFile = fileHandle.open("readwrite");
       is(lockedFile.location, location, "Correct location");
 
       request = lockedFile.write(testString);
       location += testString.length;
       is(lockedFile.location, location, "Correct location");
       request.onsuccess = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       lockedFile.location = 0;
       request = lockedFile.readAsText(testString.length);
       is(lockedFile.location, location, "Correct location");
       request.onsuccess = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       let resultString = event.target.result;
       ok(resultString == testString, "Correct string data");
 
       request = lockedFile.write(testBuffer);
       location += testBuffer.byteLength;
       is(lockedFile.location, location, "Correct location");
       request.onsuccess = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       lockedFile.location -= testBuffer.byteLength;
       request = lockedFile.readAsArrayBuffer(testBuffer.byteLength);
       is(lockedFile.location, location, "Correct location");
       request.onsuccess = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       let resultBuffer = event.target.result;
       ok(compareBuffers(resultBuffer, testBuffer), "Correct array buffer data");
 
       request = lockedFile.write(testBlob);
       location += testBlob.size;
       is(lockedFile.location, location, "Correct location");
       request.onsuccess = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       lockedFile.location -= testBlob.size;
       request = lockedFile.readAsArrayBuffer(testBlob.size);
       is(lockedFile.location, location, "Correct location");
       request.onsuccess = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       resultBuffer = event.target.result;
       ok(compareBuffers(resultBuffer, testBuffer), "Correct blob data");
 
       request = lockedFile.getMetadata({ size: true });
       request.onsuccess = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       let result = event.target.result;
       is(result.size, location, "Correct size");
     }
 
     finishTest();
-    yield;
+    yield undefined;
   }
   </script>
   <script type="text/javascript;version=1.7" src="helpers.js"></script>
 
 </head>
 
 <body onload="runTest();"></body>
 
--- a/dom/indexedDB/test/browser_forgetThisSiteAdd.html
+++ b/dom/indexedDB/test/browser_forgetThisSiteAdd.html
@@ -7,31 +7,31 @@
     <title>Indexed Database Test</title>
 
     <script type="text/javascript;version=1.7">
       function testSteps()
       {
         let request = indexedDB.open("browser_forgetThisSite.js", 11);
         request.onerror = grabEventAndContinueHandler;
         request.onupgradeneeded = grabEventAndContinueHandler;
-        let event = yield;
+        let event = yield undefined;
 
         if (event.type == "error") {
           testException = event.target.error.name;
         }
         else {
           let db = event.target.result;
 
           testResult = db.version;
 
           event.target.transaction.oncomplete = finishTest;
-          yield;
+          yield undefined;
         }
 
-        yield;
+        yield undefined;
       }
     </script>
 
     <script type="text/javascript;version=1.7" src="browserHelpers.js"></script>
 
   </head>
 
   <body onload="runTest();" onunload="finishTestNow();"></body>
--- a/dom/indexedDB/test/browser_forgetThisSiteGet.html
+++ b/dom/indexedDB/test/browser_forgetThisSiteGet.html
@@ -7,28 +7,28 @@
     <title>Indexed Database Test</title>
 
     <script type="text/javascript;version=1.7">
       function testSteps()
       {
         let request = indexedDB.open("browser_forgetThisSite.js");
         request.onerror = grabEventAndContinueHandler;
         request.onsuccess = grabEventAndContinueHandler;
-        let event = yield;
+        let event = yield undefined;
 
         if (event.type == "error") {
           testException = event.target.error.name;
         }
         else {
           let db = event.target.result;
           testResult = db.version;
         }
 
         finishTest()
-        yield;
+        yield undefined;
       }
     </script>
 
     <script type="text/javascript;version=1.7" src="browserHelpers.js"></script>
 
   </head>
 
   <body onload="runTest();" onunload="finishTestNow();"></body>
--- a/dom/indexedDB/test/browser_permissionsPrompt.html
+++ b/dom/indexedDB/test/browser_permissionsPrompt.html
@@ -9,29 +9,29 @@
     <script type="text/javascript;version=1.7">
       function testSteps()
       {
         const name = window.location.pathname;
 
         let request = indexedDB.open(name, 1);
         request.onerror = grabEventAndContinueHandler;
         request.onsuccess = grabEventAndContinueHandler;
-        let event = yield;
+        let event = yield undefined;
 
         if (event.type == "success") {
           testResult = event.target.result;
         }
         else {
           testException = event.target.error.name;
         }
 
         event.preventDefault();
 
         finishTest()
-        yield;
+        yield undefined;
       }
     </script>
 
     <script type="text/javascript;version=1.7" src="browserHelpers.js"></script>
 
   </head>
 
   <body onload="runTest();" onunload="finishTestNow();"></body>
--- a/dom/indexedDB/test/browser_quotaPrompt.html
+++ b/dom/indexedDB/test/browser_quotaPrompt.html
@@ -53,29 +53,29 @@
         const name = window.location.pathname;
 
         window.addEventListener("indexedDB-addMore", onAddMore, true);
         window.addEventListener("indexedDB-done", onDone, true);
 
         let request = indexedDB.open(name, version++);
         request.onerror = errorHandler;
         request.onupgradeneeded = grabEventAndContinueHandler;
-        let event = yield;
+        let event = yield undefined;
 
         db = event.target.result;
 
         db.onversionchange = function () { db.close(); };
 
         db.createObjectStore("foo", { autoIncrement: true });
 
         request.onsuccess = grabEventAndContinueHandler;
-        yield;
+        yield undefined;
 
         setTimeout(testFinishedCallback, 0, "ready");
-        yield;
+        yield undefined;
       }
     </script>
 
     <script type="text/javascript;version=1.7" src="browserHelpers.js"></script>
 
   </head>
 
   <body onload="runTest();" onunload="finishTestNow();"></body>
--- a/dom/indexedDB/test/browser_quotaPromptDatabases.html
+++ b/dom/indexedDB/test/browser_quotaPromptDatabases.html
@@ -35,17 +35,17 @@
       }
 
       function testSteps()
       {
         window.addEventListener("indexedDB-addMore", onAddMore, true);
         window.addEventListener("indexedDB-done", onDone, true);
 
         setTimeout(testFinishedCallback, 0, "ready");
-        yield;
+        yield undefined;
       }
     </script>
 
     <script type="text/javascript;version=1.7" src="browserHelpers.js"></script>
 
   </head>
 
   <body onload="runTest();" onunload="finishTestNow();"></body>
--- a/dom/indexedDB/test/browser_quotaPromptDelete.html
+++ b/dom/indexedDB/test/browser_quotaPromptDelete.html
@@ -65,29 +65,29 @@
       {
         window.addEventListener("indexedDB-addMore", onAddMore, true);
         window.addEventListener("indexedDB-reset", onReset, true);
         window.addEventListener("indexedDB-done", onDone, true);
 
         let request = indexedDB.open(name, 1);
         request.onerror = errorHandler;
         request.onupgradeneeded = grabEventAndContinueHandler;
-        let event = yield;
+        let event = yield undefined;
 
         db = event.target.result;
 
         db.onversionchange = function () { db.close(); };
 
         db.createObjectStore("foo", { autoIncrement: true });
 
         request.onsuccess = grabEventAndContinueHandler;
-        yield;
+        yield undefined;
 
         setTimeout(testFinishedCallback, 0, "ready");
-        yield;
+        yield undefined;
       }
     </script>
 
     <script type="text/javascript;version=1.7" src="browserHelpers.js"></script>
 
   </head>
 
   <body onload="runTest();" onunload="finishTestNow();"></body>
--- a/dom/indexedDB/test/error_events_abort_transactions_iframe.html
+++ b/dom/indexedDB/test/error_events_abort_transactions_iframe.html
@@ -48,17 +48,17 @@
       is(message, "ConstraintError", "Expect a constraint error");
     };
 
     function testSteps() {
       let request = indexedDB.open(window.location.pathname, 1);
       request.onsuccess = unexpectedSuccessHandler;
       request.onerror = grabEventAndContinueHandler;
       request.onupgradeneeded = grabEventAndContinueHandler;
-      let event = yield;
+      let event = yield undefined;
 
       let db = event.target.result;
 
       is(db.version, 1, "Correct version");
       is(db.objectStoreNames.length, 0, "Correct objectStoreNames length");
 
       let trans = event.target.transaction;
 
@@ -69,42 +69,42 @@
 
       is(db.objectStoreNames.length, 1, "Correct objectStoreNames length");
       ok(db.objectStoreNames.contains("foo"), "Has correct objectStore");
 
       let originalRequest = request;
       request = objectStore.add({}, 1);
       request.onsuccess = grabEventAndContinueHandler;
       request.onerror = errorHandler;
-      event = yield;
+      event = yield undefined;
 
       request = objectStore.add({}, 1);
       request.onsuccess = unexpectedSuccessHandler;
       request.onerror = function(event) {
         // Don't do anything! We want this error.
       }
-      event = yield;
+      event = yield undefined;
 
       is(event.type, "abort", "Got a transaction abort event");
       is(db.version, 0, "Correct version");
       is(db.objectStoreNames.length, 0, "Correct objectStoreNames length");
       is(trans.error.name, "ConstraintError", "Right error");
       ok(trans.error === request.error, "Object identity holds");
       is(originalRequest.transaction, trans, "request.transaction should still be set");
 
-      event = yield;
+      event = yield undefined;
       is(event.type, "error", "Got request error event");
       is(event.target, originalRequest, "error event has right target");
       is(event.target.error.name, "ConstraintError", "Right error");
       is(originalRequest.transaction, null, "request.transaction should now be null");
 
       let request = indexedDB.open(window.location.pathname, 1);
       request.onerror = errorHandler;
       request.onupgradeneeded = grabEventAndContinueHandler;
-      let event = yield;
+      let event = yield undefined;
 
       let db = event.target.result;
 
       event.target.transaction.oncomplete = grabEventAndContinueHandler;
       event.target.transaction.onabort = unexpectedSuccessHandler;
 
       is(db.version, "1", "Correct version");
       is(db.objectStoreNames.length, 0, "Correct objectStoreNames length");
@@ -129,39 +129,39 @@
       objectStoreForDeletion.createIndex("foo", "key.path");
 
       is(objectStoreForDeletion.indexNames.length, 1, "Correct indexNames length");
       ok(objectStoreForDeletion.indexNames.contains("foo"), "Has correct index");
 
       request = objectStore.add({}, 1);
       request.onsuccess = grabEventAndContinueHandler;
       request.onerror = errorHandler;
-      event = yield;
+      event = yield undefined;
 
       request = objectStore.add({}, 1);
       request.onsuccess = unexpectedSuccessHandler;
       request.onerror = function(event) {
         // Expected, but prevent the abort.
         event.preventDefault();
       }
-      event = yield;
+      event = yield undefined;
 
       is(event.type, "complete", "Got a transaction complete event");
 
       is(db.version, "1", "Correct version");
       is(db.objectStoreNames.length, 2, "Correct objectStoreNames length");
       ok(db.objectStoreNames.contains("foo"), "Has correct objectStore");
       ok(db.objectStoreNames.contains("bar"), "Has correct objectStore");
 
       db.close();
 
       let request = indexedDB.open(window.location.pathname, 2);
       request.onerror = errorHandler;
       request.onupgradeneeded = grabEventAndContinueHandler;
-      let event = yield;
+      let event = yield undefined;
 
       let db = event.target.result;
 
       let trans = event.target.transaction;
       trans.oncomplete = unexpectedSuccessHandler;
 
       is(db.version, "2", "Correct version");
       is(db.objectStoreNames.length, 2, "Correct objectStoreNames length");
@@ -187,17 +187,17 @@
 
       is(objectStore.indexNames.length, 2, "Correct indexNames length");
       ok(objectStore.indexNames.contains("dontDeleteMe"), "Has correct index");
       ok(objectStore.indexNames.contains("newIndex"), "Has correct index");
 
       objectStore.add({}, 1);
       trans.onabort = grabEventAndContinueHandler;
 
-      event = yield;
+      event = yield undefined;
 
       // Test that the world has been restored.
       is(db.version, "1", "Correct version");
       is(db.objectStoreNames.length, 2, "Correct objectStoreNames length");
       ok(db.objectStoreNames.contains("foo"), "Has correct objectStore");
       ok(db.objectStoreNames.contains("bar"), "Has correct objectStore");
 
       is(objectStore.indexNames.length, 2, "Correct indexNames length");
@@ -206,20 +206,20 @@
 
       is(createdObjectStore.indexNames.length, 0, "Correct indexNames length");
 
       is(deletedObjectStore.indexNames.length, 1, "Correct indexNames length");
       ok(deletedObjectStore.indexNames.contains("foo"), "Has correct index");
 
       request.onerror = grabEventAndContinueHandler;
 
-      event = yield;
+      event = yield undefined;
 
       finishTest();
-      yield;
+      yield undefined;
     }
   </script>
 
 </head>
 
 <body onload="testGenerator.next();"></body>
 
 </html>
--- a/dom/indexedDB/test/event_propagation_iframe.html
+++ b/dom/indexedDB/test/event_propagation_iframe.html
@@ -85,62 +85,62 @@
         }
       }
     }
 
     function testSteps() {
       let request = indexedDB.open(window.location.pathname, 1);
       request.onerror = errorHandler;
       request.onupgradeneeded = grabEventAndContinueHandler;
-      let event = yield;
+      let event = yield undefined;
 
       let db = event.target.result;
       db.onerror = errorEventCounter;
       db.addEventListener("error", errorEventCounter, true);
 
       event.target.onsuccess = grabEventAndContinueHandler;
 
       db.createObjectStore("foo", { autoIncrement: true });
-      yield;
+      yield undefined;
 
       let transaction = db.transaction("foo", IDBTransaction.READ_WRITE);
       transaction.addEventListener("error", errorEventCounter, false);
       transaction.addEventListener("error", errorEventCounter, true);
 
       let objectStore = transaction.objectStore("foo");
 
       request = objectStore.add({}, 1);
       request.onsuccess = grabEventAndContinueHandler;
       request.onerror = errorHandler;
-      event = yield;
+      event = yield undefined;
 
       request = objectStore.add({}, 1);
       request.onsuccess = function(event) {
         ok(false, "Did not expect second add to succeed.");
       };
       request.onerror = errorEventCounter;
-      yield;
+      yield undefined;
 
       transaction = db.transaction("foo", IDBTransaction.READ_WRITE);
       transaction.addEventListener("error", errorEventCounter, false);
       transaction.addEventListener("error", errorEventCounter, true);
 
       objectStore = transaction.objectStore("foo");
 
       request = objectStore.add({}, 1);
       request.onsuccess = grabEventAndContinueHandler;
       request.onerror = errorHandler;
-      event = yield;
+      event = yield undefined;
 
       request = objectStore.add({}, 1);
       request.onsuccess = function(event) {
         ok(false, "Did not expect second add to succeed.");
       };
       request.onerror = errorEventCounter;
-      yield;
+      yield undefined;
     }
   </script>
 
 </head>
 
 <body onload="testGenerator.next();"></body>
 
 </html>
--- a/dom/indexedDB/test/exceptions_in_events_iframe.html
+++ b/dom/indexedDB/test/exceptions_in_events_iframe.html
@@ -58,36 +58,36 @@
       request.onsuccess = unexpectedSuccessHandler;
       request.onupgradeneeded = function () {
         let transaction = request.transaction;
         transaction.oncomplete = unexpectedSuccessHandler;
         transaction.onabort = grabEventAndContinueHandler
         throw "STOP";
       };
 
-      let event = yield;
+      let event = yield undefined;
       is(event.type, "abort",
          "Throwing during an upgradeneeded event should abort the transaction.");
       is(event.target.error.name, "AbortError", "Got AbortError object");
 
       request.onerror = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       is(event.type, "error",
          "Throwing during an upgradeneeded event should fire an error.");
 
       // Test 2: Throwing during a request's success handler should abort the
       // transaction.
       let request = indexedDB.open(window.location.pathname, 1);
       request.onerror = errorHandler;
       request.onblocked = errorHandler;
       request.onupgradeneeded = grabEventAndContinueHandler;
       request.onsuccess = unexpectedSuccessHandler;
       let openrequest = request;
-      let event = yield;
+      let event = yield undefined;
 
       request.onupgradeneeded = unexpectedSuccessHandler;
 
       let db = event.target.result;
       db.onerror = function(event) {
         event.preventDefault();
       };
 
@@ -102,37 +102,37 @@
       is(db.objectStoreNames.length, 1, "Correct objectStoreNames length");
       ok(db.objectStoreNames.contains("foo"), "Has correct objectStore");
 
       request = objectStore.add({}, 1);
       request.onsuccess = function(event) {
         throw "foo";
       };
 
-      event = yield;
+      event = yield undefined;
 
       is(event.type, "abort", "Got transaction abort event");
       is(event.target.error.name, "AbortError", "Got AbortError object");
       openrequest.onerror = grabEventAndContinueHandler;
 
-      event = yield;
+      event = yield undefined;
 
       is(event.type, "error", "Got IDBOpenDBRequest error event");
       is(event.target, openrequest, "Right event target");
       is(event.target.error.name, "AbortError", "Right error name");
 
       // Test 3: Throwing during a request's error handler should abort the
       // transaction, even if preventDefault is called on the error event.
       let request = indexedDB.open(window.location.pathname, 1);
       request.onerror = errorHandler;
       request.onblocked = errorHandler;
       request.onupgradeneeded = grabEventAndContinueHandler;
       request.onsuccess = unexpectedSuccessHandler;
       let openrequest = request;
-      let event = yield;
+      let event = yield undefined;
 
       request.onupgradeneeded = unexpectedSuccessHandler;
 
       let db = event.target.result;
       db.onerror = function(event) {
         event.preventDefault();
       };
 
@@ -151,30 +151,30 @@
       request.onerror = errorHandler;
       request = objectStore.add({}, 1);
       request.onsuccess = unexpectedSuccessHandler;
       request.onerror = function (event) {
         event.preventDefault();
         throw "STOP";
       };
 
-      event = yield;
+      event = yield undefined;
 
       is(event.type, "abort", "Got transaction abort event");
       is(event.target.error.name, "AbortError", "Got AbortError object");
       openrequest.onerror = grabEventAndContinueHandler;
 
-      event = yield;
+      event = yield undefined;
 
       is(event.type, "error", "Got IDBOpenDBRequest error event");
       is(event.target, openrequest, "Right event target");
       is(event.target.error.name, "AbortError", "Right error name");
 
       finishTest();
-      yield;
+      yield undefined;
     }
   </script>
 
 </head>
 
 <body onload="testGenerator.next();"></body>
 
 </html>
--- a/dom/indexedDB/test/file_app_isolation.js
+++ b/dom/indexedDB/test/file_app_isolation.js
@@ -113,17 +113,17 @@ function runTest() {
         }
       });
     }
 
     iframe.src = data.src + '?' + data.action;
 
     document.getElementById('content').appendChild(iframe);
 
-    yield;
+    yield undefined;
   }
 }
 
 var gTestRunner = runTest();
 
 function startTest() {
   var request = window.indexedDB.open('AppIsolationTest');
   var created = false;
--- a/dom/indexedDB/test/test_bfcache.html
+++ b/dom/indexedDB/test/test_bfcache.html
@@ -54,30 +54,30 @@
 
     function testSteps()
     {
       var iframe = $("iframe");
       setCachePref(true);
       window.onmessage = grabEventAndContinueHandler;
 
       iframe.src = "bfcache_iframe1.html";
-      var event = yield;
+      var event = yield undefined;
       is(event.data, "go", "set up database successfully");
 
       iframe.src = "bfcache_iframe2.html";
       res = JSON.parse((yield).data);
       is(res.version, 2, "version was set correctly");
       is(res.storeCount, 1, "correct set of stores");
       ok(!("blockedFired" in res), "blocked shouldn't fire");
       is(res.value, JSON.stringify({ hello: "world" }),
          "correct value found in store");
 
       setCachePref(false);
       finishTest();
-      yield;
+      yield undefined;
     }
   </script>
   <script type="text/javascript;version=1.7" src="helpers.js"></script>
 
 </head>
 
 <body onload="_runTest();">
   <iframe id="iframe"></iframe>
--- a/dom/indexedDB/test/test_blob_archive.html
+++ b/dom/indexedDB/test/test_blob_archive.html
@@ -44,83 +44,83 @@
       let hex = BLOB_DATA[i * 2] + BLOB_DATA[i * 2 + 1];
       binaryData[i] = parseInt(hex, 16);
     }
 
     let request = indexedDB.open(window.location.pathname, 1);
     request.onerror = errorHandler;
     request.onupgradeneeded = grabEventAndContinueHandler;
     request.onsuccess = unexpectedSuccessHandler;
-    let event = yield;
+    let event = yield undefined;
 
     let db = event.target.result;
     db.onerror = errorHandler;
 
     let objectStore = db.createObjectStore("foo", { autoIncrement: true });
     let index = objectStore.createIndex("foo", "index");
 
     request.onsuccess = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
     let data = new Blob([binaryData]);
 
     objectStore = db.transaction("foo", "readwrite").objectStore("foo");
     objectStore.add(data).onsuccess = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
     let key = event.target.result;
 
     objectStore = db.transaction("foo").objectStore("foo");
     objectStore.get(key).onsuccess = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
     let archiveReader = new ArchiveReader(event.target.result);
     ok(archiveReader, "Got an ArchiveReader");
 
     request = archiveReader.getFilenames();
     request.onsuccess = grabEventAndContinueHandler;
     request.onerror = errorHandler;
-    event = yield;
+    event = yield undefined;
 
     is(event.target.result.length, 2, "Got 2 archive items");
     is(event.target.result[0], TEST_FILE_1,
        "First file is '" + TEST_FILE_1 + "'");
     is(event.target.result[1], TEST_FILE_2,
        "Second file is '" + TEST_FILE_2 + "'");
 
     request = archiveReader.getFile(TEST_FILE_1);
     request.onsuccess = grabEventAndContinueHandler;
     request.onerror = errorHandler;
-    event = yield;
+    event = yield undefined;
 
     let fileReader = new FileReader();
     fileReader.readAsText(event.target.result);
     fileReader.onload = grabEventAndContinueHandler;
     fileReader.onerror = errorHandler;
-    event = yield;
+    event = yield undefined;
 
     // Don't use is() because it prints out 100 lines of text...
     ok(event.target.result == TEST_FILE_1_CONTENTS, "Correct text");
 
     request = archiveReader.getFile(TEST_FILE_2);
     request.onsuccess = grabEventAndContinueHandler;
     request.onerror = errorHandler;
-    event = yield;
+    event = yield undefined;
 
     fileReader = new FileReader();
     fileReader.readAsText(event.target.result);
     fileReader.onload = grabEventAndContinueHandler;
     fileReader.onerror = errorHandler;
-    event = yield;
+    event = yield undefined;
 
     // Don't use is() because it prints out a newline...
     ok(event.target.result == TEST_FILE_2_CONTENTS, "Correct text");
 
     finishTest();
-    yield;
+    yield undefined;
   }
   </script>
   <script type="text/javascript;version=1.7" src="helpers.js"></script>
 
 </head>
 
 <body onload="runTest();"></body>
 
--- a/dom/indexedDB/test/test_blob_simple.html
+++ b/dom/indexedDB/test/test_blob_simple.html
@@ -13,185 +13,185 @@
   function testSteps()
   {
     info("Setting up test fixtures: create an IndexedDB database and object store.");
 
     let request = indexedDB.open(window.location.pathname, 1);
     request.onerror = errorHandler;
     request.onupgradeneeded = grabEventAndContinueHandler;
     request.onsuccess = unexpectedSuccessHandler;
-    let event = yield;
+    let event = yield undefined;
 
     let db = event.target.result;
     db.onerror = errorHandler;
 
     let objectStore = db.createObjectStore("foo", { autoIncrement: true });
     let index = objectStore.createIndex("foo", "index");
 
     request.onsuccess = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
 
     info("Let's create a blob and store it in IndexedDB twice.");
 
     const BLOB_DATA = ["fun ", "times ", "all ", "around!"];
     const INDEX_KEY = 5;
     let blob = new Blob(BLOB_DATA, { type: "text/plain" });
     let data = { blob: blob, index: INDEX_KEY };
 
     objectStore = db.transaction("foo", "readwrite").objectStore("foo");
     objectStore.add(data).onsuccess = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
     let key = event.target.result;
 
     objectStore.add(data).onsuccess = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
 
     info("Let's retrieve the blob again and verify the contents is the same.");
 
     objectStore = db.transaction("foo").objectStore("foo");
     objectStore.get(key).onsuccess = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
     let fileReader = new FileReader();
     fileReader.onload = grabEventAndContinueHandler;
     fileReader.readAsText(event.target.result.blob);
-    event = yield;
+    event = yield undefined;
 
     is(event.target.result, BLOB_DATA.join(""), "Correct text");
 
 
     info("Let's retrieve it again, create an object URL for the blob, load" +
          "it via an XMLHttpRequest, and verify the contents is the same.");
 
     objectStore = db.transaction("foo").objectStore("foo");
     objectStore.get(key).onsuccess = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
     let blobURL = URL.createObjectURL(event.target.result.blob);
 
     let xhr = new XMLHttpRequest();
     xhr.open("GET", blobURL);
     xhr.onload = grabEventAndContinueHandler;
     xhr.send();
-    yield;
+    yield undefined;
 
     URL.revokeObjectURL(blobURL);
 
     is(xhr.responseText, BLOB_DATA.join(""), "Correct responseText");
 
 
     info("Retrieve both blob entries from the database and verify contents.");
 
     objectStore = db.transaction("foo").objectStore("foo");
     objectStore.mozGetAll().onsuccess = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
     is(event.target.result.length, 2, "Got right number of items");
 
     fileReader = new FileReader();
     fileReader.onload = grabEventAndContinueHandler;
     fileReader.readAsText(event.target.result[0].blob);
-    event = yield;
+    event = yield undefined;
 
     is(event.target.result, BLOB_DATA.join(""), "Correct text");
 
     let cursorResults = [];
 
     objectStore = db.transaction("foo").objectStore("foo");
     objectStore.openCursor().onsuccess = function(event) {
       let cursor = event.target.result;
       if (cursor) {
         cursorResults.push(cursor.value);
         cursor.continue();
       }
       else {
         continueToNextStep();
       }
     };
-    yield;
+    yield undefined;
 
     is(cursorResults.length, 2, "Got right number of items");
 
     fileReader = new FileReader();
     fileReader.onload = grabEventAndContinueHandler;
     fileReader.readAsText(cursorResults[0].blob);
-    event = yield;
+    event = yield undefined;
 
     is(event.target.result, BLOB_DATA.join(""), "Correct text");
 
 
     info("Retrieve blobs from database via index and verify contents.");
 
     let index = db.transaction("foo").objectStore("foo").index("foo");
     index.get(INDEX_KEY).onsuccess = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
     fileReader = new FileReader();
     fileReader.onload = grabEventAndContinueHandler;
     fileReader.readAsText(event.target.result.blob);
-    event = yield;
+    event = yield undefined;
 
     is(event.target.result, BLOB_DATA.join(""), "Correct text");
 
     index = db.transaction("foo").objectStore("foo").index("foo");
     index.mozGetAll().onsuccess = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
     is(event.target.result.length, 2, "Got right number of items");
 
     fileReader = new FileReader();
     fileReader.onload = grabEventAndContinueHandler;
     fileReader.readAsText(event.target.result[0].blob);
-    event = yield;
+    event = yield undefined;
 
     is(event.target.result, BLOB_DATA.join(""), "Correct text");
 
     cursorResults = [];
 
     index = db.transaction("foo").objectStore("foo").index("foo");
     index.openCursor().onsuccess = function(event) {
       let cursor = event.target.result;
       if (cursor) {
         cursorResults.push(cursor.value);
         cursor.continue();
       }
       else {
         continueToNextStep();
       }
     };
-    yield;
+    yield undefined;
 
     is(cursorResults.length, 2, "Got right number of items");
 
     fileReader = new FileReader();
     fileReader.onload = grabEventAndContinueHandler;
     fileReader.readAsText(cursorResults[0].blob);
-    event = yield;
+    event = yield undefined;
 
     is(event.target.result, BLOB_DATA.join(""), "Correct text");
 
     fileReader = new FileReader();
     fileReader.onload = grabEventAndContinueHandler;
     fileReader.readAsText(cursorResults[1].blob);
-    event = yield;
+    event = yield undefined;
 
     is(event.target.result, BLOB_DATA.join(""), "Correct text");
 
 
     info("Slice the the retrieved blob and verify its contents.");
 
     let slice = cursorResults[1].blob.slice(0, BLOB_DATA[0].length);
 
     fileReader = new FileReader();
     fileReader.onload = grabEventAndContinueHandler;
     fileReader.readAsText(slice);
-    event = yield;
+    event = yield undefined;
 
     is(event.target.result, BLOB_DATA[0], "Correct text");
 
 
     info("Send blob to a worker, read its contents there, and verify results.");
 
     function workerScript() {
       onmessage = function(event) {
@@ -205,59 +205,59 @@
     }
 
     let url =
       URL.createObjectURL(new Blob(["(", workerScript.toSource(), ")()"]));
 
     let worker = new Worker(url);
     worker.postMessage(slice);
     worker.onmessage = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
     is(event.data, BLOB_DATA[0], "Correct text");
-    event = yield;
+    event = yield undefined;
 
     is(event.data, BLOB_DATA[0][1], "Correct text");
 
 
     info("Store a blob back in the database, and keep holding on to the " +
          "blob, verifying that it still can be read.");
 
     objectStore = db.transaction("foo").objectStore("foo");
     objectStore.get(key).onsuccess = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
     let blobFromDB = event.target.result.blob;
     let txn = db.transaction("foo", "readwrite");
     txn.objectStore("foo").put(event.target.result, key);
     txn.oncomplete = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
     let fileReader = new FileReader();
     fileReader.onload = grabEventAndContinueHandler;
     fileReader.readAsText(blobFromDB);
-    event = yield;
+    event = yield undefined;
 
     is(event.target.result, BLOB_DATA.join(""), "Correct text");
 
     let blobURL = URL.createObjectURL(blobFromDB);
 
     let xhr = new XMLHttpRequest();
     xhr.open("GET", blobURL);
     xhr.onload = grabEventAndContinueHandler;
     xhr.send();
-    yield;
+    yield undefined;
 
     URL.revokeObjectURL(blobURL);
 
     is(xhr.responseText, BLOB_DATA.join(""), "Correct responseText");
 
 
     finishTest();
-    yield;
+    yield undefined;
   }
   </script>
   <script type="text/javascript;version=1.7" src="helpers.js"></script>
 
 </head>
 
 <body onload="runTest();"></body>
 
--- a/dom/indexedDB/test/test_file_array.html
+++ b/dom/indexedDB/test/test_file_array.html
@@ -33,49 +33,49 @@
       { key: 3, blobs: [ b3[0], b3[0], b3[1], b3[2], b3[2], b3[0], b3[0] ],
         expectedFileIds: [9, 9, 10, 11, 11, 9, 9] }
     ];
 
     let request = indexedDB.open(name, 1);
     request.onerror = errorHandler;
     request.onupgradeneeded = grabEventAndContinueHandler;
     request.onsuccess = grabEventAndContinueHandler;
-    let event = yield;
+    let event = yield undefined;
 
     is(event.type, "upgradeneeded", "Got correct event type");
 
     let db = event.target.result;
     db.onerror = errorHandler;
 
     let objectStore = db.createObjectStore(objectStoreName, { });
 
     for each (let data in objectStoreData) {
       objectStore.add(data.blobs, data.key);
     }
 
-    event = yield;
+    event = yield undefined;
 
     is(event.type, "success", "Got correct event type");
 
     for each (let data in objectStoreData) {
       objectStore = db.transaction([objectStoreName])
                       .objectStore(objectStoreName);
 
       request = objectStore.get(data.key);
       request.onsuccess = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       verifyBlobArray(event.target.result, data.blobs, data.expectedFileIds);
-      yield;
+      yield undefined;
     }
 
     is(bufferCache.length, 11, "Correct length");
 
     finishTest();
-    yield;
+    yield undefined;
   }
   </script>
   <script type="text/javascript;version=1.7" src="file.js"></script>
   <script type="text/javascript;version=1.7" src="helpers.js"></script>
 
 </head>
 
 <body onload="runTest();"></body>
--- a/dom/indexedDB/test/test_file_cross_database_copying.html
+++ b/dom/indexedDB/test/test_file_cross_database_copying.html
@@ -24,43 +24,43 @@
     const fileData = { key: 1, file: getRandomFile("random.bin", 100000) };
 
     let databases = [];
     for each (let info in databaseInfo) {
       let request = indexedDB.open(info.name, 1);
       request.onerror = errorHandler;
       request.onupgradeneeded = grabEventAndContinueHandler;
       request.onsuccess = grabEventAndContinueHandler;
-      let event = yield;
+      let event = yield undefined;
 
       is(event.type, "upgradeneeded", "Got correct event type");
 
       let db = event.target.result;
       db.onerror = errorHandler;
 
       let objectStore = db.createObjectStore(objectStoreName, { });
       objectStore.add(fileData.file, fileData.key);
 
-      event = yield;
+      event = yield undefined;
 
       is(event.type, "success", "Got correct event type");
 
       databases.push(db);
     }
 
     let refResult;
     for each (let db in databases) {
       let request = db.transaction([objectStoreName])
                       .objectStore(objectStoreName).get(fileData.key);
       request.onsuccess = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       let result = event.target.result;
       verifyBlob(result, fileData.file, 1);
-      yield;
+      yield undefined;
 
       if (!refResult) {
         refResult = result;
         continue;
       }
 
       isnot(SpecialPowers.getMozFullPath(result),
             SpecialPowers.getMozFullPath(refResult), "Different os files");
@@ -69,36 +69,36 @@
     for (let i = 1; i < databases.length; i++) {
       let db = databases[i];
 
       let objectStore = db.transaction([objectStoreName], READ_WRITE)
                           .objectStore(objectStoreName);
 
       request = objectStore.add(refResult, 2);
       request.onsuccess = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       is(event.target.result, 2, "Got correct key");
 
       request = objectStore.get(2);
       request.onsuccess = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       let result = event.target.result;
       verifyBlob(result, refResult, 2);
-      yield;
+      yield undefined;
 
       isnot(SpecialPowers.getMozFullPath(result),
             SpecialPowers.getMozFullPath(refResult), "Different os files");
     }
 
     is(bufferCache.length, 2, "Correct length");
 
     finishTest();
-    yield;
+    yield undefined;
   }
   </script>
   <script type="text/javascript;version=1.7" src="file.js"></script>
   <script type="text/javascript;version=1.7" src="helpers.js"></script>
 
 </head>
 
 <body onload="runTest();"></body>
--- a/dom/indexedDB/test/test_file_delete.html
+++ b/dom/indexedDB/test/test_file_delete.html
@@ -22,110 +22,110 @@
     const fileData2 = { key: 2, file: getRandomFile("random2.bin", 120000) };
     const fileData3 = { key: 3, file: getRandomFile("random3.bin", 130000) };
 
     {
       let request = indexedDB.open(name, 1);
       request.onerror = errorHandler;
       request.onupgradeneeded = grabEventAndContinueHandler;
       request.onsuccess = grabEventAndContinueHandler;
-      let event = yield;
+      let event = yield undefined;
 
       is(event.type, "upgradeneeded", "Got correct event type");
 
       let db = event.target.result;
       db.onerror = errorHandler;
 
       let objectStore = db.createObjectStore(objectStoreName, { });
 
       objectStore.add(fileData1.file, fileData1.key);
       objectStore.add(fileData2.file, fileData2.key);
       objectStore.add(fileData3.file, fileData3.key);
 
-      event = yield;
+      event = yield undefined;
 
       is(event.type, "success", "Got correct event type");
 
       let trans = db.transaction([objectStoreName], READ_WRITE);
       trans.objectStore(objectStoreName).delete(fileData1.key);
       trans.oncomplete = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       is(event.type, "complete", "Got correct event type");
 
       is(getFileDBRefCount(name, 1), 0, "Correct db ref count");
 
       fileData1.file = null;
       fileData2.file = null;
       fileData3.file = null;
     }
 
     scheduleGC();
-    yield;
+    yield undefined;
 
     ok(!hasFileInfo(name, 1), "Correct ref count");
     ok(hasFileInfo(name, 2), "Correct ref count");
     ok(hasFileInfo(name, 3), "Correct ref count");
 
     {
       let request = indexedDB.open(name, 1);
       request.onerror = errorHandler;
       request.onsuccess = grabEventAndContinueHandler;
-      let event = yield;
+      let event = yield undefined;
 
       is(event.type, "success", "Got correct event type");
 
       let db = event.target.result;
       db.onerror = errorHandler;
 
       trans = db.transaction([objectStoreName], READ_WRITE);
       objectStore = trans.objectStore(objectStoreName);
 
       request = objectStore.get(fileData2.key);
       request.onsuccess = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       let result = event.target.result;
       ok(result, "Got result");
 
       objectStore.delete(fileData2.key);
 
       trans.oncomplete = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       is(event.type, "complete", "Got correct event type");
 
       is(getFileDBRefCount(name, 2), 0, "Correct db ref count");
 
 
       trans = db.transaction([objectStoreName], READ_WRITE);
       objectStore = trans.objectStore(objectStoreName);
 
       objectStore.delete(fileData3.key);
 
       trans.oncomplete = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       is(event.type, "complete", "Got correct event type");
 
       is(getFileDBRefCount(name, 3), -1, "Correct db ref count");
 
       event = null;
       result = null;
     }
 
     scheduleGC();
-    yield;
+    yield undefined;
 
     ok(!hasFileInfo(name, 1), "Correct ref count");
     ok(!hasFileInfo(name, 2), "Correct ref count");
     ok(!hasFileInfo(name, 3), "Correct ref count");
 
     finishTest();
-    yield;
+    yield undefined;
   }
   </script>
   <script type="text/javascript;version=1.7" src="file.js"></script>
   <script type="text/javascript;version=1.7" src="helpers.js"></script>
 
 </head>
 
 <body onload="runTest();"></body>
--- a/dom/indexedDB/test/test_file_os_delete.html
+++ b/dom/indexedDB/test/test_file_os_delete.html
@@ -14,70 +14,70 @@
   {
     const READ_WRITE = IDBTransaction.READ_WRITE;
 
     const name = window.location.pathname;
 
     const objectStoreName = "Blobs";
 
     getUsage(grabFileUsageAndContinueHandler);
-    let startUsage = yield;
+    let startUsage = yield undefined;
 
     const fileData = { key: 1, file: getRandomFile("random.bin", 100000) };
 
     {
       let request = indexedDB.open(name, 1);
       request.onerror = errorHandler;
       request.onupgradeneeded = grabEventAndContinueHandler;
       request.onsuccess = grabEventAndContinueHandler;
-      let event = yield;
+      let event = yield undefined;
 
       is(event.type, "upgradeneeded", "Got correct event type");
 
       let db = event.target.result;
       db.onerror = errorHandler;
 
       let objectStore = db.createObjectStore(objectStoreName, { });
 
       objectStore.add(fileData.file, fileData.key);
 
-      event = yield;
+      event = yield undefined;
 
       is(event.type, "success", "Got correct event type");
 
       getUsage(grabFileUsageAndContinueHandler);
-      let usage = yield;
+      let usage = yield undefined;
 
       is(usage, startUsage + fileData.file.size, "Correct file usage");
 
       let trans = db.transaction([objectStoreName], READ_WRITE);
       trans.objectStore(objectStoreName).delete(fileData.key);
       trans.oncomplete = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       is(event.type, "complete", "Got correct event type");
 
       getUsage(grabFileUsageAndContinueHandler);
-      usage = yield;
+      usage = yield undefined;
 
       is(usage, startUsage + fileData.file.size, "OS file exists");
 
       fileData.file = null;
     }
 
     scheduleGC();
-    yield;
+    yield undefined;
 
     getUsage(grabFileUsageAndContinueHandler);
-    let endUsage = yield;
+    let endUsage = yield undefined;
 
     is(endUsage, startUsage, "OS file deleted");
 
     finishTest();
-    yield;
+    yield undefined;
   }
   </script>
   <script type="text/javascript;version=1.7" src="file.js"></script>
   <script type="text/javascript;version=1.7" src="helpers.js"></script>
 
 </head>
 
 <body onload="runTest();"></body>
--- a/dom/indexedDB/test/test_file_put_get_object.html
+++ b/dom/indexedDB/test/test_file_put_get_object.html
@@ -23,62 +23,62 @@
 
     const objectData1 = { key: 1, object: { foo: blob, bar: blob } };
     const objectData2 = { key: 2, object: { foo: file, bar: file } };
 
     let request = indexedDB.open(name, 1);
     request.onerror = errorHandler;
     request.onupgradeneeded = grabEventAndContinueHandler;
     request.onsuccess = grabEventAndContinueHandler;
-    let event = yield;
+    let event = yield undefined;
 
     is(event.type, "upgradeneeded", "Got correct event type");
 
     let db = event.target.result;
     db.onerror = errorHandler;
 
     let objectStore = db.createObjectStore(objectStoreName, { });
 
     objectStore.add(objectData1.object, objectData1.key);
     objectStore.add(objectData2.object, objectData2.key);
 
-    event = yield;
+    event = yield undefined;
 
     is(event.type, "success", "Got correct event type");
 
     objectStore = db.transaction([objectStoreName])
                     .objectStore(objectStoreName);
     request = objectStore.get(objectData1.key);
     request.onsuccess = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
     let result = event.target.result;
 
     verifyBlob(result.foo, blob, 1);
-    yield;
+    yield undefined;
 
     verifyBlob(result.bar, blob, 1);
-    yield;
+    yield undefined;
 
     objectStore = db.transaction([objectStoreName])
                     .objectStore(objectStoreName);
     request = objectStore.get(objectData2.key);
     request.onsuccess = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
     result = event.target.result;
 
     verifyBlob(result.foo, file, 2);
-    yield;
+    yield undefined;
 
     verifyBlob(result.bar, file, 2);
-    yield;
+    yield undefined;
 
     finishTest();
-    yield;
+    yield undefined;
   }
   </script>
   <script type="text/javascript;version=1.7" src="file.js"></script>
   <script type="text/javascript;version=1.7" src="helpers.js"></script>
 
 </head>
 
 <body onload="runTest();"></body>
--- a/dom/indexedDB/test/test_file_put_get_values.html
+++ b/dom/indexedDB/test/test_file_put_get_values.html
@@ -20,79 +20,79 @@
 
     const blobData = { key: 1, blob: getRandomBlob(10000) };
     const fileData = { key: 2, file: getRandomFile("random.bin", 100000) };
 
     let request = indexedDB.open(name, 1);
     request.onerror = errorHandler;
     request.onupgradeneeded = grabEventAndContinueHandler;
     request.onsuccess = grabEventAndContinueHandler;
-    let event = yield;
+    let event = yield undefined;
 
     is(event.type, "upgradeneeded", "Got correct event type");
 
     let db = event.target.result;
     db.onerror = errorHandler;
 
     db.createObjectStore(objectStoreName, { });
 
-    event = yield;
+    event = yield undefined;
 
     is(event.type, "success", "Got correct event type");
 
     let objectStore = db.transaction([objectStoreName], READ_WRITE)
                         .objectStore(objectStoreName);
     request = objectStore.add(blobData.blob, blobData.key);
     request.onsuccess = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
     is(event.target.result, blobData.key, "Got correct key");
 
     request = objectStore.get(blobData.key);
     request.onsuccess = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
     verifyBlob(event.target.result, blobData.blob, 1);
-    yield;
+    yield undefined;
 
     request = db.transaction([objectStoreName])
                 .objectStore(objectStoreName).get(blobData.key);
     request.onsuccess = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
     verifyBlob(event.target.result, blobData.blob, 1);
-    yield;
+    yield undefined;
 
     objectStore = db.transaction([objectStoreName], READ_WRITE)
                     .objectStore(objectStoreName);
     request = objectStore.add(fileData.file, fileData.key);
     request.onsuccess = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
     is(event.target.result, fileData.key, "Got correct key");
 
     request = objectStore.get(fileData.key);
     request.onsuccess = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
     verifyBlob(event.target.result, fileData.file, 2);
-    yield;
+    yield undefined;
 
     request = db.transaction([objectStoreName])
                 .objectStore(objectStoreName).get(fileData.key);
     request.onsuccess = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
     verifyBlob(event.target.result, fileData.file, 2);
-    yield;
+    yield undefined;
 
     is(bufferCache.length, 2, "Correct length");
 
     finishTest();
-    yield;
+    yield undefined;
   }
   </script>
   <script type="text/javascript;version=1.7" src="file.js"></script>
   <script type="text/javascript;version=1.7" src="helpers.js"></script>
 
 </head>
 
 <body onload="runTest();"></body>
--- a/dom/indexedDB/test/test_file_quota.html
+++ b/dom/indexedDB/test/test_file_quota.html
@@ -19,43 +19,43 @@
     const objectStoreName = "Blobs";
 
     const fileData = { key: 1, file: getNullFile("random.bin", DEFAULT_QUOTA) };
 
     let request = indexedDB.open(name, 1);
     request.onerror = errorHandler;
     request.onupgradeneeded = grabEventAndContinueHandler;
     request.onsuccess = grabEventAndContinueHandler;
-    let event = yield;
+    let event = yield undefined;
 
     is(event.type, "upgradeneeded", "Got correct event type");
 
     let db = event.target.result;
 
     db.createObjectStore(objectStoreName, { });
 
-    event = yield;
+    event = yield undefined;
 
     is(event.type, "success", "Got correct event type");
 
     trans = db.transaction([objectStoreName], READ_WRITE);
     let objectStore = trans.objectStore(objectStoreName);
 
     request = objectStore.add(fileData.file, fileData.key);
     request.addEventListener("error", new ExpectError("UnknownError", true));
     request.onsuccess = unexpectedSuccessHandler;
-    event = yield;
+    event = yield undefined;
 
     trans.oncomplete = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
     is(event.type, "complete", "Got correct event type");
 
     finishTest();
-    yield;
+    yield undefined;
   }
   </script>
   <script type="text/javascript;version=1.7" src="file.js"></script>
   <script type="text/javascript;version=1.7" src="helpers.js"></script>
 
 </head>
 
 <body onload="runTest(true);"></body>
--- a/dom/indexedDB/test/test_file_replace.html
+++ b/dom/indexedDB/test/test_file_replace.html
@@ -21,44 +21,44 @@
     for (let i = 0; i < 100; i++) {
       blobData.blobs[i] = getRandomBlob(i);
     }
 
     let request = indexedDB.open(name, 1);
     request.onerror = errorHandler;
     request.onupgradeneeded = grabEventAndContinueHandler;
     request.onsuccess = grabEventAndContinueHandler;
-    let event = yield;
+    let event = yield undefined;
 
     is(event.type, "upgradeneeded", "Got correct event type");
 
     let db = event.target.result;
     db.onerror = errorHandler;
 
     let objectStore = db.createObjectStore(objectStoreName, { });
 
     for (let i = 0; i < blobData.blobs.length; i++) {
       objectStore.put(blobData.blobs[i], blobData.key);
     }
 
-    event = yield;
+    event = yield undefined;
 
     is(event.type, "success", "Got correct event type");
 
     for (let id = 1; id <= 100; id++) {
       let refs = {};
       let dbRefs = {};
       let hasFileInfo = utils.getFileReferences(name, id, refs, dbRefs);
       ok(hasFileInfo, "Has file info");
       is(refs.value, 1, "Correct ref count");
       is(dbRefs.value, id / 100 >> 0, "Correct db ref count");
     }
 
     finishTest();
-    yield;
+    yield undefined;
   }
   </script>
   <script type="text/javascript;version=1.7" src="file.js"></script>
   <script type="text/javascript;version=1.7" src="helpers.js"></script>
 
 </head>
 
 <body onload="runTest();"></body>
--- a/dom/indexedDB/test/test_file_resurrection_delete.html
+++ b/dom/indexedDB/test/test_file_resurrection_delete.html
@@ -20,112 +20,112 @@
 
     const fileData = { key: 1, file: getRandomFile("random.bin", 100000) };
 
     {
       let request = indexedDB.open(name, 1);
       request.onerror = errorHandler;
       request.onupgradeneeded = grabEventAndContinueHandler;
       request.onsuccess = grabEventAndContinueHandler;
-      let event = yield;
+      let event = yield undefined;
 
       is(event.type, "upgradeneeded", "Got correct event type");
 
       let db = event.target.result;
       db.onerror = errorHandler;
 
       let objectStore = db.createObjectStore(objectStoreName, { });
 
       objectStore.add(fileData.file, fileData.key);
 
-      event = yield;
+      event = yield undefined;
 
       is(event.type, "success", "Got correct event type");
 
       let trans = db.transaction([objectStoreName], READ_WRITE);
       objectStore = trans.objectStore(objectStoreName);
 
       objectStore.delete(fileData.key);
 
       trans.oncomplete = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       is(getFileDBRefCount(name, 1), 0, "Correct db ref count");
 
       trans = db.transaction([objectStoreName], READ_WRITE);
       objectStore = trans.objectStore(objectStoreName);
 
       request = objectStore.add(fileData.file, fileData.key);
       request.onsuccess = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       trans.oncomplete = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       is(getFileDBRefCount(name, 1), 1, "Correct db ref count");
 
       fileData.file = null;
     }
 
     scheduleGC();
-    yield;
+    yield undefined;
 
     is(getFileRefCount(name, 1), 0, "Correct ref count");
 
     {
       let request = indexedDB.open(name, 1);
       request.onerror = errorHandler;
       request.onsuccess = grabEventAndContinueHandler;
-      let event = yield;
+      let event = yield undefined;
 
       is(event.type, "success", "Got correct event type");
 
       let db = event.target.result;
       db.onerror = errorHandler;
 
       let trans = db.transaction([objectStoreName], READ_WRITE);
       objectStore = trans.objectStore(objectStoreName);
 
       request = objectStore.get(fileData.key);
       request.onsuccess = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       let result = event.target.result;
       ok(result, "Got result");
 
       objectStore.delete(fileData.key);
 
       trans.oncomplete = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       is(getFileDBRefCount(name, 1), 0, "Correct db ref count");
 
       trans = db.transaction([objectStoreName], READ_WRITE);
       objectStore = trans.objectStore(objectStoreName);
 
       request = objectStore.add(result, fileData.key);
       request.onsuccess = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       trans.oncomplete = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       is(getFileDBRefCount(name, 1), 1, "Correct db ref count");
 
       event = null;
       result = null;
     }
 
     scheduleGC();
-    yield;
+    yield undefined;
 
     is(getFileRefCount(name, 1), 0, "Correct ref count");
 
     finishTest();
-    yield;
+    yield undefined;
   }
   </script>
   <script type="text/javascript;version=1.7" src="file.js"></script>
   <script type="text/javascript;version=1.7" src="helpers.js"></script>
 
 </head>
 
 <body onload="runTest();"></body>
--- a/dom/indexedDB/test/test_file_resurrection_transaction_abort.html
+++ b/dom/indexedDB/test/test_file_resurrection_transaction_abort.html
@@ -20,71 +20,71 @@
 
     const fileData = { key: 1, file: getRandomFile("random.bin", 100000) };
 
     {
       let request = indexedDB.open(name, 1);
       request.onerror = errorHandler;
       request.onupgradeneeded = grabEventAndContinueHandler;
       request.onsuccess = grabEventAndContinueHandler;
-      let event = yield;
+      let event = yield undefined;
 
       is(event.type, "upgradeneeded", "Got correct event type");
 
       let db = event.target.result;
       db.onerror = errorHandler;
 
       let objectStore = db.createObjectStore(objectStoreName, { });
 
-      event = yield;
+      event = yield undefined;
 
       is(event.type, "success", "Got correct event type");
 
       let trans = db.transaction([objectStoreName], READ_WRITE);
       objectStore = trans.objectStore(objectStoreName);
 
       request = objectStore.add(fileData.file, fileData.key);
       request.onsuccess = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       request = objectStore.get(fileData.key);
       request.onsuccess = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       let result = event.target.result;
       ok(result, "Got result");
 
       trans.onabort = grabEventAndContinueHandler;
       trans.abort();
-      event = yield;
+      event = yield undefined;
 
       is(getFileDBRefCount(name, 1), 0, "Correct db ref count");
 
       trans = db.transaction([objectStoreName], READ_WRITE);
       objectStore = trans.objectStore(objectStoreName);
 
       request = objectStore.add(result, fileData.key);
       request.onsuccess = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       trans.oncomplete = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       is(getFileDBRefCount(name, 1), 1, "Correct db ref count");
 
       fileData.file = null;
     }
 
     scheduleGC();
-    yield;
+    yield undefined;
 
     is(getFileRefCount(name, 1), 0, "Correct ref count");
 
     finishTest();
-    yield;
+    yield undefined;
   }
   </script>
   <script type="text/javascript;version=1.7" src="file.js"></script>
   <script type="text/javascript;version=1.7" src="helpers.js"></script>
 
 </head>
 
 <body onload="runTest();"></body>
--- a/dom/indexedDB/test/test_file_sharing.html
+++ b/dom/indexedDB/test/test_file_sharing.html
@@ -22,44 +22,44 @@
     ];
 
     const fileData = { key: 1, file: getRandomFile("random.bin", 100000) };
 
     let request = indexedDB.open(name, 1);
     request.onerror = errorHandler;
     request.onupgradeneeded = grabEventAndContinueHandler;
     request.onsuccess = grabEventAndContinueHandler;
-    let event = yield;
+    let event = yield undefined;
 
     is(event.type, "upgradeneeded", "Got correct event type");
 
     let db = event.target.result;
     db.onerror = errorHandler;
 
     for each (let info in objectStoreInfo) {
       let objectStore = db.createObjectStore(info.name, info.options);
       objectStore.add(fileData.file, fileData.key);
     }
 
-    event = yield;
+    event = yield undefined;
 
     is(event.type, "success", "Got correct event type");
 
     let refResult;
     for each (let info in objectStoreInfo) {
       let objectStore = db.transaction([info.name])
                           .objectStore(info.name);
 
       request = objectStore.get(fileData.key);
       request.onsuccess = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       let result = event.target.result;
       verifyBlob(result, fileData.file, 1);
-      yield;
+      yield undefined;
 
       if (!refResult) {
         refResult = result;
         continue;
       }
 
       is(SpecialPowers.getMozFullPath(result),
          SpecialPowers.getMozFullPath(refResult), "The same os file");
@@ -68,36 +68,36 @@
     for (let i = 1; i < objectStoreInfo.length; i++) {
       let info = objectStoreInfo[i];
 
       let objectStore = db.transaction([info.name], READ_WRITE)
                           .objectStore(info.name);
 
       request = objectStore.add(refResult, 2);
       request.onsuccess = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       is(event.target.result, 2, "Got correct key");
 
       request = objectStore.get(2);
       request.onsuccess = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       let result = event.target.result;
       verifyBlob(result, refResult, 1);
-      yield;
+      yield undefined;
 
       is(SpecialPowers.getMozFullPath(result),
          SpecialPowers.getMozFullPath(refResult), "The same os file");
     }
 
     is(bufferCache.length, 2, "Correct length");
 
     finishTest();
-    yield;
+    yield undefined;
   }
   </script>
   <script type="text/javascript;version=1.7" src="file.js"></script>
   <script type="text/javascript;version=1.7" src="helpers.js"></script>
 
 </head>
 
 <body onload="runTest();"></body>
--- a/dom/indexedDB/test/test_file_transaction_abort.html
+++ b/dom/indexedDB/test/test_file_transaction_abort.html
@@ -20,56 +20,56 @@
 
     const fileData = { key: 1, file: getRandomFile("random.bin", 100000) };
 
     {
       let request = indexedDB.open(name, 1);
       request.onerror = errorHandler;
       request.onupgradeneeded = grabEventAndContinueHandler;
       request.onsuccess = grabEventAndContinueHandler;
-      let event = yield;
+      let event = yield undefined;
 
       is(event.type, "upgradeneeded", "Got correct event type");
 
       let db = event.target.result;
       db.onerror = errorHandler;
 
       objectStore = db.createObjectStore(objectStoreName, { });
 
-      event = yield;
+      event = yield undefined;
 
       is(event.type, "success", "Got correct event type");
 
       let trans = db.transaction([objectStoreName], READ_WRITE);
       let objectStore = trans.objectStore(objectStoreName);
 
       request = objectStore.add(fileData.file, fileData.key);
       request.onsuccess = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       is(event.target.result, fileData.key, "Got correct key");
 
       trans.onabort = grabEventAndContinueHandler;
       trans.abort();
-      event = yield;
+      event = yield undefined;
 
       is(event.type, "abort", "Got correct event type");
 
       is(getFileDBRefCount(name, 1), 0, "Correct db ref count");
 
       fileData.file = null;
     }
 
     scheduleGC();
-    yield;
+    yield undefined;
 
     ok(!hasFileInfo(name, 1), "Correct ref count");
 
     finishTest();
-    yield;
+    yield undefined;
   }
   </script>
   <script type="text/javascript;version=1.7" src="file.js"></script>
   <script type="text/javascript;version=1.7" src="helpers.js"></script>
 
 </head>
 
 <body onload="runTest();"></body>
--- a/dom/indexedDB/test/test_filehandle_quota.html
+++ b/dom/indexedDB/test/test_filehandle_quota.html
@@ -15,48 +15,48 @@
     const READ_WRITE = IDBTransaction.READ_WRITE;
 
     const name = window.location.pathname;
 
     let request = indexedDB.open(name, 1);
     request.onerror = errorHandler;
     request.onupgradeneeded = grabEventAndContinueHandler;
     request.onsuccess = grabEventAndContinueHandler;
-    let event = yield;
+    let event = yield undefined;
 
     is(event.type, "upgradeneeded", "Got correct event type");
 
     let db = event.target.result;
     db.onerror = errorHandler;
 
-    event = yield;
+    event = yield undefined;
 
     request = db.mozCreateFileHandle("test.bin", "binary");
     request.onsuccess = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
     let fileHandle = event.target.result;
     fileHandle.onerror = errorHandler;
 
     let lockedFile = fileHandle.open("readwrite");
 
     let blob = getNullBlob(DEFAULT_QUOTA);
 
     request = lockedFile.write(blob);
     request.addEventListener("error", new ExpectError("UnknownError", true));
     request.onsuccess = unexpectedSuccessHandler;
-    event = yield;
+    event = yield undefined;
 
     lockedFile.oncomplete = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
     is(event.type, "complete", "Got correct event type");
 
     finishTest();
-    yield;
+    yield undefined;
   }
   </script>
   <script type="text/javascript;version=1.7" src="file.js"></script>
   <script type="text/javascript;version=1.7" src="helpers.js"></script>
 
 </head>
 
 <body onload="runTest(true);"></body>
--- a/dom/indexedDB/test/test_filehandle_serialization.html
+++ b/dom/indexedDB/test/test_filehandle_serialization.html
@@ -24,53 +24,53 @@
     const testFile = getRandomFile("random.bin", 100000);
 
     let databases = [];
     for each (let info in databaseInfo) {
       let request = indexedDB.open(info.name, 1);
       request.onerror = errorHandler;
       request.onupgradeneeded = grabEventAndContinueHandler;
       request.onsuccess = grabEventAndContinueHandler;
-      let event = yield;
+      let event = yield undefined;
 
       is(event.type, "upgradeneeded", "Got correct event type");
 
       let db = event.target.result;
       db.onerror = errorHandler;
 
       db.createObjectStore(objectStoreName, { });
 
-      event = yield;
+      event = yield undefined;
 
       is(event.type, "success", "Got correct event type");
 
       databases.push(db);
     }
 
     let db1 = databases[0];
 
     let request = db1.mozCreateFileHandle("random.bin", "binary/random");
     request.onsuccess = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
     let fileHandle = event.target.result;
     is(getFileId(fileHandle), 1, "Correct file id");
     is(fileHandle.name, "random.bin", "Correct name");
     is(fileHandle.type, "binary/random", "Correct type");
 
     let trans = db1.transaction([objectStoreName], READ_WRITE);
     let objectStore = trans.objectStore(objectStoreName);
 
     request = objectStore.add(fileHandle, 42);
     request.onsuccess = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
     request = objectStore.get(42);
     request.onsuccess = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
     let result = event.target.result;
     is(getFileId(result), 1, "Correct file id");
     is(result.name, fileHandle.name, "Correct name");
     is(result.type, fileHandle.type, "Correct type");
 
     let db2 = databases[1];
 
@@ -83,17 +83,17 @@
     }
     catch (e) {
       ok(e instanceof DOMException, "Got exception.");
       is(e.name, "DataCloneError", "Good error.");
       is(e.code, DOMException.DATA_CLONE_ERR, "Good error code.");
     }
 
     finishTest();
-    yield;
+    yield undefined;
   }
   </script>
   <script type="text/javascript;version=1.7" src="file.js"></script>
   <script type="text/javascript;version=1.7" src="helpers.js"></script>
 
 </head>
 
 <body onload="runTest();"></body>
--- a/dom/indexedDB/test/test_filehandle_store_snapshot.html
+++ b/dom/indexedDB/test/test_filehandle_store_snapshot.html
@@ -19,78 +19,78 @@
     const objectStoreName = "Blobs";
 
     const testFile = getRandomFile("random.bin", 100000);
 
     let request = indexedDB.open(name, 1);
     request.onerror = errorHandler;
     request.onupgradeneeded = grabEventAndContinueHandler;
     request.onsuccess = grabEventAndContinueHandler;
-    let event = yield;
+    let event = yield undefined;
 
     is(event.type, "upgradeneeded", "Got correct event type");
 
     let db = event.target.result;
     db.onerror = errorHandler;
 
     let objectStore = db.createObjectStore(objectStoreName, { });
 
-    event = yield;
+    event = yield undefined;
 
     is(event.type, "success", "Got correct event type");
 
     request = db.mozCreateFileHandle("random.bin", "binary/random");
     request.onsuccess = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
     let fileHandle = event.target.result;
     fileHandle.onerror = errorHandler;
 
     let lockedFile = fileHandle.open("readwrite");
 
     is(getFileId(fileHandle), 1, "Correct file id");
 
     request = lockedFile.write(testFile);
     request.onsuccess = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
     request = fileHandle.getFile();
     request.onsuccess = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
     let file = event.target.result;
 
     let trans = db.transaction([objectStoreName], READ_WRITE);
     let objectStore = trans.objectStore(objectStoreName);
 
     request = objectStore.add(file, 42);
     request.onsuccess = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
     // At this moment, the file should not be readable anymore.
     let reader = new FileReader();
     try {
       reader.readAsArrayBuffer(file);
       ok(false, "Should have thrown!");
     }
     catch (e) {
       ok(e instanceof DOMException, "Got exception.");
       is(e.name, "LockedFileInactiveError", "Good error.");
       is(e.code, 0, "Good error code.");
     }
 
     request = objectStore.get(42);
     request.onsuccess = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
     verifyBlob(event.target.result, testFile, 2);
-    yield;
+    yield undefined;
 
     finishTest();
-    yield;
+    yield undefined;
   }
   </script>
   <script type="text/javascript;version=1.7" src="file.js"></script>
   <script type="text/javascript;version=1.7" src="helpers.js"></script>
 
 </head>
 
 <body onload="runTest();"></body>
--- a/dom/indexedDB/test/test_get_filehandle.html
+++ b/dom/indexedDB/test/test_get_filehandle.html
@@ -12,41 +12,41 @@
   <script type="text/javascript;version=1.7">
   function testSteps()
   {
     const name = window.location.pathname;
 
     let request = indexedDB.open(name, 1);
     request.onerror = errorHandler;
     request.onsuccess = grabEventAndContinueHandler;
-    let event = yield;
+    let event = yield undefined;
 
     let db = event.target.result;
     db.onerror = errorHandler;
 
     if (SpecialPowers.isMainProcess()) {
       request = db.mozCreateFileHandle("random.bin", "binary/random");
       request.onsuccess = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       let fileHandle = event.target.result;
       ok(fileHandle, "Got filehandle");
     }
     else {
       try {
         db.mozCreateFileHandle("random.bin", "binary/random");
         ok(false, "Should have thrown!");
       }
       catch (ex) {
         ok(true, "MozCreateFileHandle threw");
       }
     }
 
     finishTest();
-    yield;
+    yield undefined;
   }
   </script>
   <script type="text/javascript;version=1.7" src="helpers.js"></script>
 
 </head>
 
 <body onload="runTest();"></body>
 
--- a/dom/indexedDB/test/test_leaving_page.html
+++ b/dom/indexedDB/test/test_leaving_page.html
@@ -26,31 +26,31 @@
       ok(false, "gotmessage: " + e.data);
     }
 
     function testSteps()
     {
       var iframe = $("inner");
       iframe.src = "leaving_page_iframe.html";
       iframe.onload = continueToNextStep;
-      yield;
+      yield undefined;
       is(iframe.contentWindow.location.href, $("a").href,
          "should navigate to iframe page");
-      yield;
+      yield undefined;
       is(iframe.contentWindow.location.href, "about:blank",
          "should nagivate to about:blank");
          
       let request = indexedDB.open(location, 1);
       request.onsuccess = grabEventAndContinueHandler;
-      let event = yield;
+      let event = yield undefined;
 
       let db = event.target.result;
       db.transaction(["mystore"]).objectStore("mystore").get(42).onsuccess =
         grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
       is(event.target.result.hello, "world", "second modification rolled back");
 
       finishTest();
-      yield;
+      yield undefined;
     }
   </script>
   <script type="text/javascript;version=1.7" src="helpers.js"></script>
 </html>
--- a/dom/indexedDB/test/test_open_for_principal.html
+++ b/dom/indexedDB/test/test_open_for_principal.html
@@ -14,17 +14,17 @@
   {
     is("open" in indexedDB, true, "open() defined");
     is("openForPrincipal" in indexedDB, false, "openForPrincipal() not defined");
 
     is("deleteDatabase" in indexedDB, true, "deleteDatabase() defined");
     is("deleteForPrincipal" in indexedDB, false, "deleteForPrincipal() not defined");
 
     finishTest();
-    yield;
+    yield undefined;
   }
   </script>
   <script type="text/javascript;version=1.7" src="helpers.js"></script>
 
 </head>
 
 <body onload="runTest();"></body>
 
--- a/dom/indexedDB/test/unit/test_add_put.js
+++ b/dom/indexedDB/test/unit/test_add_put.js
@@ -7,17 +7,17 @@ var testGenerator = testSteps();
 
 function testSteps()
 {
   const name = this.window ? window.location.pathname : "Splendid Test";
   let openRequest = indexedDB.open(name, 1);
   openRequest.onerror = errorHandler;
   openRequest.onupgradeneeded = grabEventAndContinueHandler;
   openRequest.onsuccess = unexpectedSuccessHandler;
-  let event = yield;
+  let event = yield undefined;
   let db = event.target.result;
   let trans = event.target.transaction;
 
   for each (let autoincrement in [true, false]) {
     for each (let keypath in [false, true, "missing", "invalid"]) {
       for each (let method in ["put", "add"]) {
         for each (let explicit in [true, false, undefined, "invalid"]) {
           for each (let existing in [true, false]) {
@@ -44,17 +44,17 @@ function testSteps()
 
             // Insert "existing" data if needed
             if (existing) {
               if (keypath)
                 store.add({ existing: "data", id: 5 }).onsuccess = grabEventAndContinueHandler;
               else
                 store.add({ existing: "data" }, 5).onsuccess = grabEventAndContinueHandler;
 
-              let e = yield;
+              let e = yield undefined;
               is(e.type, "success", "success inserting existing" + test);
               is(e.target.result, 5, "inserted correct key" + test);
             }
 
             // Set up value to be inserted
             let value = { theObj: true };
             if (keypath === true) {
               value.id = 5;
@@ -97,17 +97,17 @@ function testSteps()
               continue;
             }
 
             // Make non-throwing function call
             let req = store[method].apply(store, args);
             is(JSON.stringify(value), valueJSON, "call didn't modify value" + test);
 
             req.onsuccess = req.onerror = grabEventAndContinueHandler;
-            let e = yield;
+            let e = yield undefined;
 
             // Figure out what key we used
             let key = 5;
             if (autoincrement && speccedNoKey) {
               key = 1;
             }
 
             // Adjust value if expected
@@ -122,17 +122,17 @@ function testSteps()
               e.stopPropagation();
               continue;
             }
 
             is(e.type, "success", "write should succeed" + test);
             is(e.target.result, key, "write should return correct key" + test);
 
             store.get(key).onsuccess = grabEventAndContinueHandler;
-            e = yield;
+            e = yield undefined;
             is(e.type, "success", "read back should succeed" + test);
             is(JSON.stringify(e.target.result),
                JSON.stringify(value),
                "read back should return correct value" + test);
           }
         }
       }
     }
@@ -153,13 +153,13 @@ function testSteps()
 
     if (method == "add" && existing)
       return "error";
 
     return "success";
   }
 
   openRequest.onsuccess = grabEventAndContinueHandler;
-  yield;
+  yield undefined;
 
   finishTest();
-  yield;
+  yield undefined;
 }
--- a/dom/indexedDB/test/unit/test_add_twice_failure.js
+++ b/dom/indexedDB/test/unit/test_add_twice_failure.js
@@ -7,33 +7,33 @@ var testGenerator = testSteps();
 
 function testSteps()
 {
   const name = this.window ? window.location.pathname : "Splendid Test";
 
   let request = indexedDB.open(name, 1);
   request.onerror = errorHandler;
   request.onupgradeneeded = grabEventAndContinueHandler;
-  let event = yield;
+  let event = yield undefined;
 
   let db = request.result;
 
   ok(event.target === request, "Good event target");
 
   let objectStore = db.createObjectStore("foo", { keyPath: null });
   let key = 10;
 
   request = objectStore.add({}, key);
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(request.result, key, "Correct key");
 
   request = objectStore.add({}, key);
   request.addEventListener("error", new ExpectError("ConstraintError", true));
   request.onsuccess = unexpectedSuccessHandler;
-  yield;
+  yield undefined;
 
   finishTest();
-  yield;
+  yield undefined;
 }
 
--- a/dom/indexedDB/test/unit/test_advance.js
+++ b/dom/indexedDB/test/unit/test_advance.js
@@ -7,30 +7,30 @@ var testGenerator = testSteps();
 
 function testSteps()
 {
   const dataCount = 30;
 
   let request = indexedDB.open(this.window ? window.location.pathname : "Splendid Test", 1);
   request.onerror = errorHandler;
   request.onupgradeneeded = grabEventAndContinueHandler;
-  let event = yield;
+  let event = yield undefined;
 
   let db = event.target.result;
   db.onerror = errorHandler;
 
   event.target.onsuccess = continueToNextStep;
 
   let objectStore = db.createObjectStore("", { keyPath: "key" });
   objectStore.createIndex("", "index");
 
   for (let i = 0; i < dataCount; i++) {
     objectStore.add({ key: i, index: i });
   }
-  yield;
+  yield undefined;
 
   function getObjectStore() {
     return db.transaction("").objectStore("");
   }
 
   function getIndex() {
     return db.transaction("").objectStore("").index("");
   }
@@ -42,17 +42,17 @@ function testSteps()
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       continueToNextStep();
     }
   };
-  yield;
+  yield undefined;
 
   is(count, dataCount, "Saw all data");
 
   count = 0;
 
   getObjectStore().openCursor().onsuccess = function(event) {
     let cursor = event.target.result;
     if (cursor) {
@@ -65,17 +65,17 @@ function testSteps()
         count = 10;
         cursor.advance(10);
       }
     }
     else {
       continueToNextStep();
     }
   };
-  yield;
+  yield undefined;
 
   is(count, dataCount, "Saw all data");
 
   count = 0;
 
   getIndex().openCursor().onsuccess = function(event) {
     let cursor = event.target.result;
     if (cursor) {
@@ -88,17 +88,17 @@ function testSteps()
         count = 10;
         cursor.advance(10);
       }
     }
     else {
       continueToNextStep();
     }
   };
-  yield;
+  yield undefined;
 
   is(count, dataCount, "Saw all data");
 
   count = 0;
 
   getIndex().openKeyCursor().onsuccess = function(event) {
     let cursor = event.target.result;
     if (cursor) {
@@ -111,17 +111,17 @@ function testSteps()
         count = 10;
         cursor.advance(10);
       }
     }
     else {
       continueToNextStep();
     }
   };
-  yield;
+  yield undefined;
 
   is(count, dataCount, "Saw all data");
 
   count = 0;
 
   getObjectStore().openCursor().onsuccess = function(event) {
     let cursor = event.target.result;
     if (cursor) {
@@ -133,17 +133,17 @@ function testSteps()
         ok(false, "Should never get here!");
         cursor.continue();
       }
     }
     else {
       continueToNextStep();
     }
   };
-  yield;
+  yield undefined;
 
   is(count, 0, "Saw all data");
 
   count = dataCount - 1;
 
   getObjectStore().openCursor(null, "prev").onsuccess = function(event) {
     let cursor = event.target.result;
     if (cursor) {
@@ -156,17 +156,17 @@ function testSteps()
       else {
         cursor.continue();
       }
     }
     else {
       continueToNextStep();
     }
   };
-  yield;
+  yield undefined;
 
   is(count, -1, "Saw all data");
 
   count = dataCount - 1;
 
   getObjectStore().openCursor(null, "prev").onsuccess = function(event) {
     let cursor = event.target.result;
     if (cursor) {
@@ -178,15 +178,15 @@ function testSteps()
         ok(false, "Should never get here!");
         cursor.continue();
       }
     }
     else {
       continueToNextStep();
     }
   };
-  yield;
+  yield undefined;
 
   is(count, dataCount - 1, "Saw all data");
 
   finishTest();
-  yield;
+  yield undefined;
 }
--- a/dom/indexedDB/test/unit/test_autoIncrement.js
+++ b/dom/indexedDB/test/unit/test_autoIncrement.js
@@ -37,17 +37,17 @@ function testSteps()
   const RW = "readwrite";
   let c1 = 1;
   let c2 = 1;
 
   let openRequest = indexedDB.open(dbname, 1);
   openRequest.onerror = errorHandler;
   openRequest.onupgradeneeded = grabEventAndContinueHandler;
   openRequest.onsuccess = unexpectedSuccessHandler;
-  let event = yield;
+  let event = yield undefined;
   let db = event.target.result;
   let trans = event.target.transaction;
 
   // Create test stores
   let store1 = db.createObjectStore("store1", { autoIncrement: true });
   let store2 = db.createObjectStore("store2", { autoIncrement: true, keyPath: "id" });
   let store3 = db.createObjectStore("store3", { autoIncrement: false });
   is(store1.autoIncrement, true, "store1 .autoIncrement");
@@ -59,340 +59,340 @@ function testSteps()
 
   // Test simple inserts
   let test = " for test simple insert"
   store1.add({ foo: "value1" }).onsuccess =
     genCheck(c1++, { foo: "value1" }, "first" + test);
   store1.add({ foo: "value2" }).onsuccess =
     genCheck(c1++, { foo: "value2" }, "second" + test);
 
-  yield;
-  yield;
+  yield undefined;
+  yield undefined;
 
   store2.put({ bar: "value1" }).onsuccess =
     genCheck(c2, { bar: "value1", id: c2 }, "first in store2" + test,
              { store: store2 });
   c2++;
   store1.put({ foo: "value3" }).onsuccess =
     genCheck(c1++, { foo: "value3" }, "third" + test,
              { store: store1 });
 
-  yield;
-  yield;
+  yield undefined;
+  yield undefined;
 
   store2.get(IDBKeyRange.lowerBound(c2)).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
   is(event.target.result, undefined, "no such value" + test);
 
   // Close version_change transaction
   openRequest.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target, openRequest, "succeeded to open" + test);
   is(event.type, "success", "succeeded to open" + test);
 
   // Test inserting explicit keys
   test = " for test explicit keys";
   trans = db.transaction("store1", RW);
   trans.objectStore("store1").add({ explicit: 1 }, 100).onsuccess =
     genCheck(100, { explicit: 1 }, "first" + test);
   c1 = 101;
   trans = db.transaction("store1", RW);
   trans.objectStore("store1").add({ explicit: 2 }).onsuccess =
     genCheck(c1++, { explicit: 2 }, "second" + test);
-  yield; yield;
+  yield undefined; yield undefined;
 
   trans = db.transaction("store1", RW);
   trans.objectStore("store1").add({ explicit: 3 }, 200).onsuccess =
     genCheck(200, { explicit: 3 }, "third" + test);
   c1 = 201;
   trans.objectStore("store1").add({ explicit: 4 }).onsuccess =
     genCheck(c1++, { explicit: 4 }, "fourth" + test);
-  yield; yield;
+  yield undefined; yield undefined;
 
   trans = db.transaction("store1", RW);
   trans.objectStore("store1").add({ explicit: 5 }, 150).onsuccess =
     genCheck(150, { explicit: 5 }, "fifth" + test);
-  yield;
+  yield undefined;
   trans.objectStore("store1").add({ explicit: 6 }).onsuccess =
     genCheck(c1++, { explicit: 6 }, "sixth" + test);
-  yield;
+  yield undefined;
 
   trans = db.transaction("store1", RW);
   trans.objectStore("store1").add({ explicit: 7 }, "key").onsuccess =
     genCheck("key", { explicit: 7 }, "seventh" + test);
-  yield;
+  yield undefined;
   trans.objectStore("store1").add({ explicit: 8 }).onsuccess =
     genCheck(c1++, { explicit: 8 }, "eighth" + test);
-  yield;
+  yield undefined;
 
   trans = db.transaction("store1", RW);
   trans.objectStore("store1").add({ explicit: 7 }, [100000]).onsuccess =
     genCheck([100000], { explicit: 7 }, "seventh" + test);
-  yield;
+  yield undefined;
   trans.objectStore("store1").add({ explicit: 8 }).onsuccess =
     genCheck(c1++, { explicit: 8 }, "eighth" + test);
-  yield;
+  yield undefined;
 
   trans = db.transaction("store1", RW);
   trans.objectStore("store1").add({ explicit: 9 }, -100000).onsuccess =
     genCheck(-100000, { explicit: 9 }, "ninth" + test);
-  yield;
+  yield undefined;
   trans.objectStore("store1").add({ explicit: 10 }).onsuccess =
     genCheck(c1++, { explicit: 10 }, "tenth" + test);
-  yield;
+  yield undefined;
 
 
   trans = db.transaction("store2", RW);
   trans.objectStore("store2").add({ explicit2: 1, id: 300 }).onsuccess =
     genCheck(300, { explicit2: 1, id: 300 }, "first store2" + test);
   c2 = 301;
   trans = db.transaction("store2", RW);
   trans.objectStore("store2").add({ explicit2: 2 }).onsuccess =
     genCheck(c2, { explicit2: 2, id: c2 }, "second store2" + test);
   c2++;
-  yield; yield;
+  yield undefined; yield undefined;
 
   trans = db.transaction("store2", RW);
   trans.objectStore("store2").add({ explicit2: 3, id: 400 }).onsuccess =
     genCheck(400, { explicit2: 3, id: 400 }, "third store2" + test);
   c2 = 401;
   trans.objectStore("store2").add({ explicit2: 4 }).onsuccess =
     genCheck(c2, { explicit2: 4, id: c2 }, "fourth store2" + test);
   c2++;
-  yield; yield;
+  yield undefined; yield undefined;
 
   trans = db.transaction("store2", RW);
   trans.objectStore("store2").add({ explicit: 5, id: 150 }).onsuccess =
     genCheck(150, { explicit: 5, id: 150 }, "fifth store2" + test);
-  yield;
+  yield undefined;
   trans.objectStore("store2").add({ explicit: 6 }).onsuccess =
     genCheck(c2, { explicit: 6, id: c2 }, "sixth store2" + test);
   c2++;
-  yield;
+  yield undefined;
 
   trans = db.transaction("store2", RW);
   trans.objectStore("store2").add({ explicit: 7, id: "key" }).onsuccess =
     genCheck("key", { explicit: 7, id: "key" }, "seventh store2" + test);
-  yield;
+  yield undefined;
   trans.objectStore("store2").add({ explicit: 8 }).onsuccess =
     genCheck(c2, { explicit: 8, id: c2 }, "eighth store2" + test);
   c2++;
-  yield;
+  yield undefined;
 
   trans = db.transaction("store2", RW);
   trans.objectStore("store2").add({ explicit: 7, id: [100000] }).onsuccess =
     genCheck([100000], { explicit: 7, id: [100000] }, "seventh store2" + test);
-  yield;
+  yield undefined;
   trans.objectStore("store2").add({ explicit: 8 }).onsuccess =
     genCheck(c2, { explicit: 8, id: c2 }, "eighth store2" + test);
   c2++;
-  yield;
+  yield undefined;
 
   trans = db.transaction("store2", RW);
   trans.objectStore("store2").add({ explicit: 9, id: -100000 }).onsuccess =
     genCheck(-100000, { explicit: 9, id: -100000 }, "ninth store2" + test);
-  yield;
+  yield undefined;
   trans.objectStore("store2").add({ explicit: 10 }).onsuccess =
     genCheck(c2, { explicit: 10, id: c2 }, "tenth store2" + test);
   c2++;
-  yield;
+  yield undefined;
 
 
   // Test separate transactions doesn't generate overlapping numbers
   test = " for test non-overlapping counts";
   trans = db.transaction("store1", RW);
   trans2 = db.transaction("store1", RW);
   trans2.objectStore("store1").put({ over: 2 }).onsuccess =
     genCheck(c1 + 1, { over: 2 }, "first" + test,
              { trans: trans2 });
   trans.objectStore("store1").put({ over: 1 }).onsuccess =
     genCheck(c1, { over: 1 }, "second" + test,
              { trans: trans });
   c1 += 2;
-  yield; yield;
+  yield undefined; yield undefined;
 
   trans = db.transaction("store2", RW);
   trans2 = db.transaction("store2", RW);
   trans2.objectStore("store2").put({ over: 2 }).onsuccess =
     genCheck(c2 + 1, { over: 2, id: c2 + 1 }, "third" + test,
              { trans: trans2 });
   trans.objectStore("store2").put({ over: 1 }).onsuccess =
     genCheck(c2, { over: 1, id: c2 }, "fourth" + test,
              { trans: trans });
   c2 += 2;
-  yield; yield;
+  yield undefined; yield undefined;
 
   // Test that error inserts doesn't increase generator
   test = " for test error inserts";
   trans = db.transaction(["store1", "store2"], RW);
   trans.objectStore("store1").add({ unique: 1 }, -1);
   trans.objectStore("store2").add({ unique: 1, id: "unique" });
 
   trans.objectStore("store1").add({ error: 1, unique: 1 }).
     addEventListener("error", new ExpectError("ConstraintError", true));
   trans.objectStore("store1").add({ error: 2 }).onsuccess =
     genCheck(c1++, { error: 2 }, "first" + test);
-  yield; yield;
+  yield undefined; yield undefined;
 
   trans.objectStore("store2").add({ error: 3, unique: 1 }).
     addEventListener("error", new ExpectError("ConstraintError", true));
   trans.objectStore("store2").add({ error: 4 }).onsuccess =
     genCheck(c2, { error: 4, id: c2 }, "second" + test);
   c2++;
-  yield; yield;
+  yield undefined; yield undefined;
 
   trans.objectStore("store1").add({ error: 5, unique: 1 }, 100000).
     addEventListener("error", new ExpectError("ConstraintError", true));
   trans.objectStore("store1").add({ error: 6 }).onsuccess =
     genCheck(c1++, { error: 6 }, "third" + test);
-  yield; yield;
+  yield undefined; yield undefined;
 
   trans.objectStore("store2").add({ error: 7, unique: 1, id: 100000 }).
     addEventListener("error", new ExpectError("ConstraintError", true));
   trans.objectStore("store2").add({ error: 8 }).onsuccess =
     genCheck(c2, { error: 8, id: c2 }, "fourth" + test);
   c2++;
-  yield; yield;
+  yield undefined; yield undefined;
 
   // Test that aborts doesn't increase generator
   test = " for test aborted transaction";
   trans = db.transaction(["store1", "store2"], RW);
   trans.objectStore("store1").add({ abort: 1 }).onsuccess =
     genCheck(c1, { abort: 1 }, "first" + test);
   trans.objectStore("store2").put({ abort: 2 }).onsuccess =
     genCheck(c2, { abort: 2, id: c2 }, "second" + test);
-  yield; yield;
+  yield undefined; yield undefined;
 
   trans.objectStore("store1").add({ abort: 3 }, 500).onsuccess =
     genCheck(500, { abort: 3 }, "third" + test);
   trans.objectStore("store2").put({ abort: 4, id: 600 }).onsuccess =
     genCheck(600, { abort: 4, id: 600 }, "fourth" + test);
-  yield; yield;
+  yield undefined; yield undefined;
 
   trans.objectStore("store1").add({ abort: 5 }).onsuccess =
     genCheck(501, { abort: 5 }, "fifth" + test);
   trans.objectStore("store2").put({ abort: 6 }).onsuccess =
     genCheck(601, { abort: 6, id: 601 }, "sixth" + test);
-  yield; yield;
+  yield undefined; yield undefined;
 
   trans.abort();
   trans.onabort = grabEventAndContinueHandler;
   event = yield
   is(event.type, "abort", "transaction aborted");
   is(event.target, trans, "correct transaction aborted");
 
   trans = db.transaction(["store1", "store2"], RW);
   trans.objectStore("store1").add({ abort: 1 }).onsuccess =
     genCheck(c1++, { abort: 1 }, "re-first" + test);
   trans.objectStore("store2").put({ abort: 2 }).onsuccess =
     genCheck(c2, { abort: 2, id: c2 }, "re-second" + test);
   c2++;
-  yield; yield;
+  yield undefined; yield undefined;
 
   // Test that delete doesn't decrease generator
   test = " for test delete items"
   trans = db.transaction(["store1", "store2"], RW);
   trans.objectStore("store1").add({ delete: 1 }).onsuccess =
     genCheck(c1++, { delete: 1 }, "first" + test);
   trans.objectStore("store2").put({ delete: 2 }).onsuccess =
     genCheck(c2, { delete: 2, id: c2 }, "second" + test);
   c2++;
-  yield; yield;
+  yield undefined; yield undefined;
 
   trans.objectStore("store1").delete(c1 - 1).onsuccess =
     grabEventAndContinueHandler;
   trans.objectStore("store2").delete(c2 - 1).onsuccess =
     grabEventAndContinueHandler;
-  yield; yield;
+  yield undefined; yield undefined;
 
   trans.objectStore("store1").add({ delete: 3 }).onsuccess =
     genCheck(c1++, { delete: 3 }, "first" + test);
   trans.objectStore("store2").put({ delete: 4 }).onsuccess =
     genCheck(c2, { delete: 4, id: c2 }, "second" + test);
   c2++;
-  yield; yield;
+  yield undefined; yield undefined;
 
   trans.objectStore("store1").delete(c1 - 1).onsuccess =
     grabEventAndContinueHandler;
   trans.objectStore("store2").delete(c2 - 1).onsuccess =
     grabEventAndContinueHandler;
-  yield; yield;
+  yield undefined; yield undefined;
 
   trans = db.transaction(["store1", "store2"], RW);
   trans.objectStore("store1").add({ delete: 5 }).onsuccess =
     genCheck(c1++, { delete: 5 }, "first" + test);
   trans.objectStore("store2").put({ delete: 6 }).onsuccess =
     genCheck(c2, { delete: 6, id: c2 }, "second" + test);
   c2++;
-  yield; yield;
+  yield undefined; yield undefined;
 
   // Test that clears doesn't decrease generator
   test = " for test clear stores";
   trans = db.transaction(["store1", "store2"], RW);
   trans.objectStore("store1").add({ clear: 1 }).onsuccess =
     genCheck(c1++, { clear: 1 }, "first" + test);
   trans.objectStore("store2").put({ clear: 2 }).onsuccess =
     genCheck(c2, { clear: 2, id: c2 }, "second" + test);
   c2++;
-  yield; yield;
+  yield undefined; yield undefined;
 
   trans.objectStore("store1").clear().onsuccess =
     grabEventAndContinueHandler;
   trans.objectStore("store2").clear().onsuccess =
     grabEventAndContinueHandler;
-  yield; yield;
+  yield undefined; yield undefined;
 
   trans.objectStore("store1").add({ clear: 3 }).onsuccess =
     genCheck(c1++, { clear: 3 }, "third" + test);
   trans.objectStore("store2").put({ clear: 4 }).onsuccess =
     genCheck(c2, { clear: 4, id: c2 }, "forth" + test);
   c2++;
-  yield; yield;
+  yield undefined; yield undefined;
 
   trans.objectStore("store1").clear().onsuccess =
     grabEventAndContinueHandler;
   trans.objectStore("store2").clear().onsuccess =
     grabEventAndContinueHandler;
-  yield; yield;
+  yield undefined; yield undefined;
 
   trans = db.transaction(["store1", "store2"], RW);
   trans.objectStore("store1").add({ clear: 5 }).onsuccess =
     genCheck(c1++, { clear: 5 }, "fifth" + test);
   trans.objectStore("store2").put({ clear: 6 }).onsuccess =
     genCheck(c2, { clear: 6, id: c2 }, "sixth" + test);
   c2++;
-  yield; yield;
+  yield undefined; yield undefined;
 
 
   // Test that close/reopen doesn't decrease generator
   test = " for test clear stores";
   trans = db.transaction(["store1", "store2"], RW);
   trans.objectStore("store1").clear().onsuccess =
     grabEventAndContinueHandler;
   trans.objectStore("store2").clear().onsuccess =
     grabEventAndContinueHandler;
-  yield; yield;
+  yield undefined; yield undefined;
   db.close();
 
   SpecialPowers.gc();
 
   openRequest = indexedDB.open(dbname, 2);
   openRequest.onerror = errorHandler;
   openRequest.onupgradeneeded = grabEventAndContinueHandler;
   openRequest.onsuccess = unexpectedSuccessHandler;
-  event = yield;
+  event = yield undefined;
   db = event.target.result;
   trans = event.target.transaction;
 
   trans.objectStore("store1").add({ reopen: 1 }).onsuccess =
     genCheck(c1++, { reopen: 1 }, "first" + test);
   trans.objectStore("store2").put({ reopen: 2 }).onsuccess =
     genCheck(c2, { reopen: 2, id: c2 }, "second" + test);
   c2++;
-  yield; yield;
+  yield undefined; yield undefined;
 
   openRequest.onsuccess = grabEventAndContinueHandler;
-  yield;
+  yield undefined;
 
   finishTest();
-  yield;
+  yield undefined;
 }
--- a/dom/indexedDB/test/unit/test_autoIncrement_indexes.js
+++ b/dom/indexedDB/test/unit/test_autoIncrement_indexes.js
@@ -5,52 +5,52 @@
 
 var testGenerator = testSteps();
 
 function testSteps()
 {
   let request = indexedDB.open(this.window ? window.location.pathname : "Splendid Test", 1);
   request.onerror = errorHandler;
   request.onupgradeneeded = grabEventAndContinueHandler;
-  let event = yield;
+  let event = yield undefined;
 
   let db = request.result;
   db.onerror = errorHandler;
 
   let objectStore = db.createObjectStore("foo", { keyPath: "id",
                                                   autoIncrement: true });
   objectStore.createIndex("first","first");
   objectStore.createIndex("second","second");
   objectStore.createIndex("third","third");
 
   let data = { first: "foo", second: "foo", third: "foo" };
 
   objectStore.add(data).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, 1, "Added entry");
   request.onsuccess = grabEventAndContinueHandler;
 
-  event = yield;
+  event = yield undefined;
 
   let objectStore = db.transaction("foo").objectStore("foo");
   let first = objectStore.index("first");
   let second = objectStore.index("second");
   let third = objectStore.index("third");
 
   first.get("foo").onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is (event.target.result.id, 1, "Entry in first");
 
   second.get("foo").onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is (event.target.result.id, 1, "Entry in second");
 
   third.get("foo").onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is (event.target.result.id, 1, "Entry in third");
 
   finishTest();
-  yield;
+  yield undefined;
 }
--- a/dom/indexedDB/test/unit/test_clear.js
+++ b/dom/indexedDB/test/unit/test_clear.js
@@ -8,17 +8,17 @@ var testGenerator = testSteps();
 function testSteps()
 {
   const name = this.window ? window.location.pathname : "Splendid Test";
   const entryCount = 1000;
 
   let request = indexedDB.open(name, 1);
   request.onerror = errorHandler;
   request.onupgradeneeded = grabEventAndContinueHandler;
-  let event = yield;
+  let event = yield undefined;
 
   let db = request.result;
 
   event.target.onsuccess = continueToNextStep;
 
   let objectStore = db.createObjectStore("foo", { autoIncrement: true });
 
   let firstKey;
@@ -26,17 +26,17 @@ function testSteps()
     request = objectStore.add({});
     request.onerror = errorHandler;
     if (!i) {
       request.onsuccess = function(event) {
         firstKey = event.target.result;
       };
     }
   }
-  yield;
+  yield undefined;
 
   isnot(firstKey, undefined, "got first key");
 
   let seenEntryCount = 0;
 
   request = db.transaction("foo").objectStore("foo").openCursor();
   request.onerror = errorHandler;
   request.onsuccess = function(event) {
@@ -44,50 +44,50 @@ function testSteps()
     if (cursor) {
       seenEntryCount++;
       cursor.continue();
     }
     else {
       continueToNextStep();
     }
   }
-  yield;
+  yield undefined;
 
   is(seenEntryCount, entryCount, "Correct entry count");
 
   try {
     db.transaction("foo").objectStore("foo").clear();
     ok(false, "clear should throw on READ_ONLY transactions");
   }
   catch (e) {
     ok(true, "clear should throw on READ_ONLY transactions");
   }
 
   request = db.transaction("foo", "readwrite").objectStore("foo").clear();
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   ok(event.target.result === undefined, "Correct event.target.result");
   ok(request.result === undefined, "Correct request.result");
   ok(request === event.target, "Correct event.target");
 
   request = db.transaction("foo").objectStore("foo").openCursor();
   request.onerror = errorHandler;
   request.onsuccess = function(event) {
     let cursor = request.result;
     if (cursor) {
       ok(false, "Shouldn't have any entries");
     }
     continueToNextStep();
   }
-  yield;
+  yield undefined;
 
   request = db.transaction("foo", "readwrite").objectStore("foo").add({});
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   isnot(event.target.result, firstKey, "Got a different key");
 
   finishTest();
-  yield;
+  yield undefined;
 }
--- a/dom/indexedDB/test/unit/test_complex_keyPaths.js
+++ b/dom/indexedDB/test/unit/test_complex_keyPaths.js
@@ -66,17 +66,17 @@ function testSteps()
     { keyPath: [".x", "y", "z"],      exception: true },
     { keyPath: ["x", "y ", "z"],      exception: true },
   ];
 
   let openRequest = indexedDB.open(name, 1);
   openRequest.onerror = errorHandler;
   openRequest.onupgradeneeded = grabEventAndContinueHandler;
   openRequest.onsuccess = unexpectedSuccessHandler;
-  let event = yield;
+  let event = yield undefined;
   let db = event.target.result;
 
   let stores = {};
 
   // Test creating object stores and inserting data
   for (let i = 0; i < keyPaths.length; i++) {
     let info = keyPaths[i];
 
@@ -111,36 +111,36 @@ function testSteps()
       is(e.name, "DataError", "expect a DataError" + test);
       is(e.code, 0, "expect zero" + test);
       continue;
     }
 
     request.onerror = errorHandler;
     request.onsuccess = grabEventAndContinueHandler;
 
-    let e = yield;
+    let e = yield undefined;
     is(e.type, "success", "inserted successfully" + test);
     is(e.target, request, "expected target" + test);
     ok(compareKeys(request.result, info.key), "found correct key" + test);
     is(indexedDB.cmp(request.result, info.key), 0, "returned key compares correctly" + test);
 
     store.get(info.key).onsuccess = grabEventAndContinueHandler;
-    e = yield;
+    e = yield undefined;
     isnot(e.target.result, undefined, "Did find entry");
 
     // Check that cursor.update work as expected
     request = store.openCursor();
     request.onerror = errorHandler;
     request.onsuccess = grabEventAndContinueHandler;
-    e = yield;
+    e = yield undefined;
     let cursor = e.target.result;
     request = cursor.update(info.value);
     request.onerror = errorHandler;
     request.onsuccess = grabEventAndContinueHandler;
-    yield;
+    yield undefined;
     ok(true, "Successfully updated cursor" + test);
 
     // Check that cursor.update throws as expected when key is changed
     let newValue = cursor.value;
     let destProp = Array.isArray(info.keyPath) ? info.keyPath[0] : info.keyPath;
     if (destProp) {
       eval("newValue." + destProp + " = 'newKeyValue'");
     }
@@ -155,17 +155,17 @@ function testSteps()
       didThrow = ex;
     }
     ok(didThrow instanceof DOMException, "Got a DOMException" + test);
     is(didThrow.name, "DataError", "expect a DataError" + test);
     is(didThrow.code, 0, "expect zero" + test);
 
     // Clear object store to prepare for next test
     store.clear().onsuccess = grabEventAndContinueHandler;
-    yield;
+    yield undefined;
   }
 
   // Attempt to create indexes and insert data
   let store = db.createObjectStore("indexStore");
   let indexes = {};
   for (let i = 0; i < keyPaths.length; i++) {
     let test = " for index test " + JSON.stringify(info);
     let info = keyPaths[i];
@@ -188,27 +188,27 @@ function testSteps()
       }
     }
     
     let index = indexes[indexName];
 
     request = store.add(info.value, 1);
     if ("key" in info) {
       index.getKey(info.key).onsuccess = grabEventAndContinueHandler;
-      e = yield;
+      e = yield undefined;
       is(e.target.result, 1, "found value when reading" + test);
     }
     else {
       index.count().onsuccess = grabEventAndContinueHandler;
-      e = yield;
+      e = yield undefined;
       is(e.target.result, 0, "should be empty" + test);
     }
 
     store.clear().onsuccess = grabEventAndContinueHandler;
-    yield;
+    yield undefined;
   }
 
   // Autoincrement and complex key paths
   let aitests = [{ v: {},                           k: 1, res: { foo: { id: 1 }} },
                  { v: { value: "x" },               k: 2, res: { value: "x", foo: { id: 2 }} },
                  { v: { value: "x", foo: {} },      k: 3, res: { value: "x", foo: { id: 3 }} },
                  { v: { v: "x", foo: { x: "y" } },  k: 4, res: { v: "x", foo: { x: "y", id: 4 }} },
                  { v: { value: 2, foo: { id: 10 }}, k: 10 },
@@ -247,23 +247,23 @@ function testSteps()
         is(e.code, 0, "expect zero" + test);
 
         is(JSON.stringify(info.v), preValue, "failing put didn't modify value" + test);
 
         continue;
       }
     }
 
-    let e = yield;
+    let e = yield undefined;
     is(e.target.result, info.k, "got correct return key" + test);
 
     store.get(info.k).onsuccess = grabEventAndContinueHandler;
-    e = yield;
+    e = yield undefined;
     is(JSON.stringify(e.target.result), JSON.stringify(info.res || info.v),
        "expected value stored" + test);
   }
 
   openRequest.onsuccess = grabEventAndContinueHandler;
-  yield;
+  yield undefined;
 
   finishTest();
-  yield;
+  yield undefined;
 }
--- a/dom/indexedDB/test/unit/test_count.js
+++ b/dom/indexedDB/test/unit/test_count.js
@@ -28,327 +28,327 @@ function testSteps()
   };
 
   const weightSort = [1, 0, 3, 7, 4, 2];
 
   let request = indexedDB.open(name, 1);
   request.onerror = errorHandler;
   request.onupgradeneeded = grabEventAndContinueHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  let event = yield;
+  let event = yield undefined;
 
   is(event.type, "upgradeneeded", "Got correct event type");
 
   let db = event.target.result;
   db.onerror = errorHandler;
 
   let objectStore = db.createObjectStore(objectStoreName, { });
   objectStore.createIndex(indexData.name, indexData.keyPath,
                           indexData.options);
 
   for each (let data in objectStoreData) {
     objectStore.add(data.value, data.key);
   }
 
-  event = yield;
+  event = yield undefined;
 
   is(event.type, "success", "Got correct event type");
 
   objectStore = db.transaction(db.objectStoreNames)
                   .objectStore(objectStoreName);
 
   objectStore.count().onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, objectStoreData.length,
      "Correct number of object store entries for all keys");
 
   objectStore.count(null).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, objectStoreData.length,
      "Correct number of object store entries for null key");
 
   objectStore.count(objectStoreData[2].key).onsuccess =
     grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, 1,
      "Correct number of object store entries for single existing key");
 
   objectStore.count("foo").onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, 0,
      "Correct number of object store entries for single non-existing key");
 
   let keyRange = IDBKeyRange.only(objectStoreData[2].key);
   objectStore.count(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, 1,
      "Correct number of object store entries for existing only keyRange");
 
   keyRange = IDBKeyRange.only("foo");
   objectStore.count(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, 0,
      "Correct number of object store entries for non-existing only keyRange");
 
   keyRange = IDBKeyRange.lowerBound(objectStoreData[2].key);
   objectStore.count(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, objectStoreData.length - 2,
      "Correct number of object store entries for lowerBound keyRange");
 
   keyRange = IDBKeyRange.lowerBound(objectStoreData[2].key, true);
   objectStore.count(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, objectStoreData.length - 3,
      "Correct number of object store entries for lowerBound keyRange");
 
   keyRange = IDBKeyRange.lowerBound("foo");
   objectStore.count(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, 0,
      "Correct number of object store entries for lowerBound keyRange");
 
   keyRange = IDBKeyRange.upperBound(objectStoreData[2].key, false);
   objectStore.count(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, 3,
      "Correct number of object store entries for upperBound keyRange");
 
   keyRange = IDBKeyRange.upperBound(objectStoreData[2].key, true);
   objectStore.count(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, 2,
      "Correct number of object store entries for upperBound keyRange");
 
   keyRange = IDBKeyRange.upperBound("foo", true);
   objectStore.count(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, objectStoreData.length,
      "Correct number of object store entries for upperBound keyRange");
 
   keyRange = IDBKeyRange.bound(objectStoreData[0].key,
                                objectStoreData[objectStoreData.length - 1].key);
   objectStore.count(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, objectStoreData.length,
      "Correct number of object store entries for bound keyRange");
 
   keyRange = IDBKeyRange.bound(objectStoreData[0].key,
                                objectStoreData[objectStoreData.length - 1].key,
                                true);
   objectStore.count(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, objectStoreData.length - 1,
      "Correct number of object store entries for bound keyRange");
 
   keyRange = IDBKeyRange.bound(objectStoreData[0].key,
                                objectStoreData[objectStoreData.length - 1].key,
                                true, true);
   objectStore.count(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, objectStoreData.length - 2,
      "Correct number of object store entries for bound keyRange");
 
   keyRange = IDBKeyRange.bound("foo", "foopy", true, true);
   objectStore.count(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, 0,
      "Correct number of object store entries for bound keyRange");
 
   keyRange = IDBKeyRange.bound(objectStoreData[0].key, "foo", true, true);
   objectStore.count(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, objectStoreData.length - 1,
      "Correct number of object store entries for bound keyRange");
 
   let index = objectStore.index(indexData.name);
 
   index.count().onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, weightSort.length,
      "Correct number of index entries for no key");
 
   index.count(objectStoreData[7].value.weight).onsuccess =
     grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, 2,
      "Correct number of index entries for duplicate key");
 
   index.count(objectStoreData[0].value.weight).onsuccess =
     grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, 1,
      "Correct number of index entries for single key");
 
   keyRange = IDBKeyRange.only(objectStoreData[0].value.weight);
   index.count(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, 1,
      "Correct number of index entries for only existing keyRange");
 
   keyRange = IDBKeyRange.only("foo");
   index.count(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, 0,
      "Correct number of index entries for only non-existing keyRange");
 
   keyRange = IDBKeyRange.only(objectStoreData[7].value.weight);
   index.count(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, 2,
      "Correct number of index entries for only duplicate keyRange");
 
   keyRange = IDBKeyRange.lowerBound(objectStoreData[weightSort[0]].value.weight);
   index.count(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, weightSort.length,
      "Correct number of index entries for lowerBound keyRange");
 
   keyRange = IDBKeyRange.lowerBound(objectStoreData[weightSort[1]].value.weight);
   index.count(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, weightSort.length - 1,
      "Correct number of index entries for lowerBound keyRange");
 
   keyRange = IDBKeyRange.lowerBound(objectStoreData[weightSort[0]].value.weight - 1);
   index.count(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, weightSort.length,
      "Correct number of index entries for lowerBound keyRange");
 
   keyRange = IDBKeyRange.lowerBound(objectStoreData[weightSort[0]].value.weight,
                                     true);
   index.count(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, weightSort.length - 1,
      "Correct number of index entries for lowerBound keyRange");
 
   keyRange = IDBKeyRange.lowerBound(objectStoreData[weightSort[weightSort.length - 1]].value.weight);
   index.count(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, 1,
      "Correct number of index entries for lowerBound keyRange");
 
   keyRange = IDBKeyRange.lowerBound(objectStoreData[weightSort[weightSort.length - 1]].value.weight,
                                     true);
   index.count(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, 0,
      "Correct number of index entries for lowerBound keyRange");
 
   keyRange = IDBKeyRange.lowerBound(objectStoreData[weightSort[weightSort.length - 1]].value.weight + 1,
                                     true);
   index.count(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, 0,
      "Correct number of index entries for lowerBound keyRange");
 
   keyRange = IDBKeyRange.upperBound(objectStoreData[weightSort[0]].value.weight);
   index.count(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, 1,
      "Correct number of index entries for upperBound keyRange");
 
   keyRange = IDBKeyRange.upperBound(objectStoreData[weightSort[0]].value.weight,
                                     true);
   index.count(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, 0,
      "Correct number of index entries for upperBound keyRange");
 
   keyRange = IDBKeyRange.upperBound(objectStoreData[weightSort[weightSort.length - 1]].value.weight);
   index.count(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, weightSort.length,
      "Correct number of index entries for upperBound keyRange");
 
   keyRange = IDBKeyRange.upperBound(objectStoreData[weightSort[weightSort.length - 1]].value.weight,
                                     true);
   index.count(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, weightSort.length - 1,
      "Correct number of index entries for upperBound keyRange");
 
   keyRange = IDBKeyRange.upperBound(objectStoreData[weightSort[weightSort.length - 1]].value.weight,
                                     true);
   index.count(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, weightSort.length - 1,
      "Correct number of index entries for upperBound keyRange");
 
   keyRange = IDBKeyRange.upperBound("foo");
   index.count(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, weightSort.length,
      "Correct number of index entries for upperBound keyRange");
 
   keyRange = IDBKeyRange.bound("foo", "foopy");
   index.count(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, 0,
      "Correct number of index entries for bound keyRange");
 
   keyRange = IDBKeyRange.bound(objectStoreData[weightSort[0]].value.weight,
                                objectStoreData[weightSort[weightSort.length - 1]].value.weight);
   index.count(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, weightSort.length,
      "Correct number of index entries for bound keyRange");
 
   keyRange = IDBKeyRange.bound(objectStoreData[weightSort[0]].value.weight,
                                objectStoreData[weightSort[weightSort.length - 1]].value.weight,
                                true);
   index.count(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, weightSort.length - 1,
      "Correct number of index entries for bound keyRange");
 
   keyRange = IDBKeyRange.bound(objectStoreData[weightSort[0]].value.weight,
                                objectStoreData[weightSort[weightSort.length - 1]].value.weight,
                                true, true);
   index.count(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, weightSort.length - 2,
      "Correct number of index entries for bound keyRange");
 
   finishTest();
-  yield;
+  yield undefined;
 }
--- a/dom/indexedDB/test/unit/test_create_index.js
+++ b/dom/indexedDB/test/unit/test_create_index.js
@@ -20,17 +20,17 @@ function testSteps()
     { name: null, keyPath: "value", options: { unique: false } },
     { name: undefined, keyPath: "value", options: { unique: false } },
   ];
 
   let request = indexedDB.open(name, 1);
   request.onerror = errorHandler;
   request.onupgradeneeded = grabEventAndContinueHandler;
   request.onsuccess = unexpectedSuccessHandler;
-  let event = yield;
+  let event = yield undefined;
   let db = event.target.result;
 
   for (let i = 0; i < objectStoreInfo.length; i++) {
     let info = objectStoreInfo[i];
     let objectStore = info.hasOwnProperty("options") ?
                       db.createObjectStore(info.name, info.options) :
                       db.createObjectStore(info.name);
 
@@ -109,13 +109,13 @@ function testSteps()
       ok(event.target.transaction.objectStoreNames.contains(objectStoreName),
          "transaction has the correct object store");
     }
   }
 
   request.onsuccess = grabEventAndContinueHandler;
   request.onupgradeneeded = unexpectedSuccessHandler;
 
-  event = yield;
+  event = yield undefined;
 
   finishTest();
-  yield;
+  yield undefined;
 }
--- a/dom/indexedDB/test/unit/test_create_index_with_integer_keys.js
+++ b/dom/indexedDB/test/unit/test_create_index_with_integer_keys.js
@@ -8,42 +8,42 @@ var testGenerator = testSteps();
 function testSteps()
 {
   const data = { id: new Date().getTime(),
                  num: parseInt(Math.random() * 1000) };
 
   let request = indexedDB.open(this.window ? window.location.pathname : "Splendid Test", 1);
   request.onerror = errorHandler;
   request.onupgradeneeded = grabEventAndContinueHandler;
-  let event = yield;
+  let event = yield undefined;
 
   let db = event.target.result;
   db.onerror = errorHandler;
 
   event.target.onsuccess = continueToNextStep;
 
   // Make object store, add data.
   let objectStore = db.createObjectStore("foo", { keyPath: "id" });
   objectStore.add(data);
-  yield;
+  yield undefined;
   db.close();
 
   let request = indexedDB.open(this.window ? window.location.pathname : "Splendid Test", 2);
   request.onerror = errorHandler;
   request.onupgradeneeded = grabEventAndContinueHandler;
-  let event = yield;
+  let event = yield undefined;
 
   let db2 = event.target.result;
   db2.onerror = errorHandler;
 
   event.target.onsuccess = continueToNextStep;
 
   // Create index.
   event.target.transaction.objectStore("foo").createIndex("foo", "num");
-  yield;
+  yield undefined;
 
   // Make sure our object made it into the index.
   let seenCount = 0;
 
 
   db2.transaction("foo").objectStore("foo").index("foo")
      .openKeyCursor().onsuccess = function(event) {
     let cursor = event.target.result;
@@ -52,15 +52,15 @@ function testSteps()
       is(cursor.primaryKey, data.id, "Good value");
       seenCount++;
       cursor.continue();
     }
     else {
       continueToNextStep();
     }
   };
-  yield;
+  yield undefined;
 
   is(seenCount, 1, "Saw our entry");
 
   finishTest();
-  yield;
+  yield undefined;
 }
--- a/dom/indexedDB/test/unit/test_create_objectStore.js
+++ b/dom/indexedDB/test/unit/test_create_objectStore.js
@@ -24,17 +24,17 @@ function testSteps()
     { name: null },
     { name: undefined }
   ];
 
   let request = indexedDB.open(name, 1);
   request.onerror = errorHandler;
   request.onupgradeneeded = grabEventAndContinueHandler;
   request.onsuccess = unexpectedSuccessHandler;
-  let event = yield;
+  let event = yield undefined;
 
   let db = event.target.result;
 
   let count = db.objectStoreNames.length;
   is(count, 0, "correct objectStoreNames length");
 
   try {
     db.createObjectStore("foo", "bar");
@@ -123,13 +123,13 @@ function testSteps()
   ok(ex, "createObjectStore with array keyPath and autoIncrement should throw");
   is(ex.name, "InvalidAccessError", "should throw right exception");
   ok(ex instanceof DOMException, "should throw right exception");
   is(ex.code, DOMException.INVALID_ACCESS_ERR, "should throw right exception");
 
   request.onsuccess = grabEventAndContinueHandler;
   request.onupgradeneeded = unexpectedSuccessHandler;
 
-  event = yield;
+  event = yield undefined;
 
   finishTest();
-  yield;
+  yield undefined;
 }
--- a/dom/indexedDB/test/unit/test_cursor_mutation.js
+++ b/dom/indexedDB/test/unit/test_cursor_mutation.js
@@ -22,28 +22,28 @@ function testSteps()
   ];
 
   // Post-add and post-remove data ordered by name.
   const objectStoreDataNameSort = [ 1, 4, 5, 2, 3 ];
 
   let request = indexedDB.open(this.window ? window.location.pathname : "Splendid Test", 1);
   request.onerror = errorHandler;
   request.onupgradeneeded = grabEventAndContinueHandler;
-  let event = yield;
+  let event = yield undefined;
 
   let db = event.target.result;
   event.target.onsuccess = continueToNextStep;
 
   let objectStore = db.createObjectStore("foo", { keyPath: "ss" });
   objectStore.createIndex("name", "name", { unique: true });
 
   for (let i = 0; i < objectStoreData.length - 1; i++) {
     objectStore.add(objectStoreData[i]);
   }
-  yield;
+  yield undefined;
 
   let count = 0;
 
   let sawAdded = false;
   let sawRemoved = false;
 
   db.transaction("foo").objectStore("foo").openCursor().onsuccess =
     function(event) {
@@ -56,17 +56,17 @@ function testSteps()
         if (cursor.value.name ==
             objectStoreData[objectStoreData.length - 1].name) {
           sawAdded = true;
         }
         cursor.continue();
         count++;
       }
     };
-  yield;
+  yield undefined;
 
   is(count, objectStoreData.length - 1, "Good initial count");
   is(sawAdded, false, "Didn't see item that is about to be added");
   is(sawRemoved, true, "Saw item that is about to be removed");
 
   count = 0;
   sawAdded = false;
   sawRemoved = false;
@@ -99,17 +99,17 @@ function testSteps()
               };
           };
         }
         else {
           cursor.continue();
         }
       }
     };
-  yield;
+  yield undefined;
 
   is(count, objectStoreData.length - 1, "Good final count");
   is(sawAdded, true, "Saw item that was added");
   is(sawRemoved, false, "Didn't see item that was removed");
 
   finishTest();
-  yield;
+  yield undefined;
 }
--- a/dom/indexedDB/test/unit/test_cursor_update_updates_indexes.js
+++ b/dom/indexedDB/test/unit/test_cursor_update_updates_indexes.js
@@ -24,17 +24,17 @@ function testSteps()
   for (let i = 0; i < objectStoreInfo.length; i++) {
     // Create our object stores.
     let info = objectStoreInfo[i];
 
     ok(true, "1");
     request = indexedDB.open(name, i + 1);
     request.onerror = errorHandler;
     request.onupgradeneeded = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
     let db = event.target.result;
 
     ok(true, "2");
     let objectStore = info.hasOwnProperty("options") ?
                       db.createObjectStore(info.name, info.options) :
                       db.createObjectStore(info.name);
 
@@ -44,51 +44,51 @@ function testSteps()
     let uniqueIndex = objectStore.createIndex("unique_data_index", "data",
                                               { unique: true });
     // Populate the object store with one entry of data.
     request = info.hasOwnProperty("key") ?
               objectStore.add(info.entry, info.key) :
               objectStore.add(info.entry);
     request.onerror = errorHandler;
     request.onsuccess = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
     ok(true, "3");
 
     // Use a cursor to update 'data' to END_DATA.
     request = objectStore.openCursor();
     request.onerror = errorHandler;
     request.onsuccess = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
     ok(true, "4");
 
     let cursor = request.result;
     let obj = cursor.value;
     obj.data = END_DATA;
     request = cursor.update(obj);
     request.onerror = errorHandler;
     request.onsuccess = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
     ok(true, "5");
 
     // Check both indexes to make sure that they were updated.
     request = index.get(END_DATA);
     request.onerror = errorHandler;
     request.onsuccess = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
     ok(true, "6");
     ok(obj.data, event.target.result.data,
                   "Non-unique index was properly updated.");
 
     request = uniqueIndex.get(END_DATA);
     request.onerror = errorHandler;
     request.onsuccess = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
     ok(true, "7");
     ok(obj.data, event.target.result.data,
                   "Unique index was properly updated.");
     db.close();
   }
 
   finishTest();
-  yield;
+  yield undefined;
 }
 
--- a/dom/indexedDB/test/unit/test_cursors.js
+++ b/dom/indexedDB/test/unit/test_cursors.js
@@ -11,75 +11,75 @@ function testSteps()
   const keys = [1, -1, 0, 10, 2000, "q", "z", "two", "b", "a"];
   const sortedKeys = [-1, 0, 1, 10, 2000, "a", "b", "q", "two", "z"];
 
   is(keys.length, sortedKeys.length, "Good key setup");
 
   let request = indexedDB.open(name, 1);
   request.onerror = errorHandler;
   request.onupgradeneeded = grabEventAndContinueHandler;
-  let event = yield;
+  let event = yield undefined;
 
   let db = event.target.result;
 
   let objectStore = db.createObjectStore("autoIncrement",
                                          { autoIncrement: true });
 
   request = objectStore.openCursor();
   request.onerror = errorHandler;
   request.onsuccess = function (event) {
     ok(!event.target.result, "No results");
     testGenerator.next();
   }
-  yield;
+  yield undefined;
 
   objectStore = db.createObjectStore("autoIncrementKeyPath",
                                      { keyPath: "foo",
                                        autoIncrement: true });
 
   request = objectStore.openCursor();
   request.onerror = errorHandler;
   request.onsuccess = function (event) {
     ok(!event.target.result, "No results");
     testGenerator.next();
   }
-  yield;
+  yield undefined;
 
   objectStore = db.createObjectStore("keyPath", { keyPath: "foo" });
 
   request = objectStore.openCursor();
   request.onerror = errorHandler;
   request.onsuccess = function (event) {
     ok(!event.target.result, "No results");
     testGenerator.next();
   }
-  yield;
+  yield undefined;
 
   objectStore = db.createObjectStore("foo");
 
   request = objectStore.openCursor();
   request.onerror = errorHandler;
   request.onsuccess = function (event) {
     ok(!event.target.result, "No results");
     testGenerator.next();
   }
-  yield;
+  yield undefined;
 
   let keyIndex = 0;
 
   for (let i in keys) {
     request = objectStore.add("foo", keys[i]);
     request.onerror = errorHandler;
     request.onsuccess = function(event) {
       if (++keyIndex == keys.length) {
         testGenerator.next();
       }
     };
   }
-  yield;
+  yield undefined;
 
   keyIndex = 0;
 
   request = objectStore.openCursor();
   request.onerror = errorHandler;
   request.onsuccess = function (event) {
     let cursor = event.target.result;
     if (cursor) {
@@ -104,17 +104,17 @@ function testSteps()
       is(cursor.value, "foo", "Correct value");
 
       keyIndex++;
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(keyIndex, keys.length, "Saw all added items");
 
   keyIndex = 4;
 
   let range = IDBKeyRange.bound(2000, "q");
   request = objectStore.openCursor(range);
   request.onerror = errorHandler;
@@ -132,17 +132,17 @@ function testSteps()
       is(cursor.value, "foo", "Correct value");
 
       keyIndex++;
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(keyIndex, 8, "Saw all the expected keys");
 
   keyIndex = 0;
 
   request = objectStore.openCursor();
   request.onerror = errorHandler;
   request.onsuccess = function (event) {
@@ -164,17 +164,17 @@ function testSteps()
       is(cursor.value, "foo", "Correct value");
 
       keyIndex += keyIndex ? 1: 6;
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(keyIndex, keys.length, "Saw all the expected keys");
 
   keyIndex = 0;
 
   request = objectStore.openCursor();
   request.onerror = errorHandler;
   request.onsuccess = function (event) {
@@ -196,17 +196,17 @@ function testSteps()
       is(cursor.value, "foo", "Correct value");
 
       keyIndex += keyIndex ? 1: 3;
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(keyIndex, keys.length, "Saw all the expected keys");
 
   keyIndex = 0;
 
   request = objectStore.openCursor();
   request.onerror = errorHandler;
   request.onsuccess = function (event) {
@@ -229,17 +229,17 @@ function testSteps()
 
       keyIndex += keyIndex ? 1 : 7;
     }
     else {
       ok(cursor === null, "The request result should be null.");
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(keyIndex, keys.length, "Saw all the expected keys");
 
   keyIndex = 0;
 
   request = objectStore.openCursor();
   request.onerror = errorHandler;
   let storedCursor = null;
@@ -266,31 +266,31 @@ function testSteps()
       }
     }
     else {
       ok(cursor === null, "The request result should be null.");
       ok(storedCursor.value === undefined, "The cursor's value should be undefined.");
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(keyIndex, keys.length, "Saw all the expected keys");
 
   request = objectStore.get(sortedKeys[4]);
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, "bar", "Update succeeded");
 
   request = objectStore.put("foo", sortedKeys[4]);
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   keyIndex = 0;
 
   let gotRemoveEvent = false;
   let retval = false;
 
   request = objectStore.openCursor(null, "next");
   request.onerror = errorHandler;
@@ -318,32 +318,32 @@ function testSteps()
       cursor.continue();
     }
     else {
       ok(cursor === null, "The request result should be null.");
       ok(storedCursor.value === undefined, "The cursor's value should be undefined.");
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(keyIndex, keys.length, "Saw all the expected keys");
   is(gotRemoveEvent, true, "Saw the remove event");
 
   request = objectStore.get(sortedKeys[4]);
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, undefined, "Entry was deleted");
 
   request = objectStore.add("foo", sortedKeys[4]);
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   keyIndex = sortedKeys.length - 1;
 
   request = objectStore.openCursor(null, "prev");
   request.onerror = errorHandler;
   storedCursor = null;
   request.onsuccess = function (event) {
     let cursor = event.target.result;
@@ -363,15 +363,15 @@ function testSteps()
       keyIndex--;
     }
     else {
       ok(cursor === null, "The request result should be null.");
       ok(storedCursor.value === undefined, "The cursor's value should be undefined.");
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(keyIndex, -1, "Saw all added items");
 
   finishTest();
-  yield;
+  yield undefined;
 }
--- a/dom/indexedDB/test/unit/test_deleteDatabase.js
+++ b/dom/indexedDB/test/unit/test_deleteDatabase.js
@@ -13,38 +13,38 @@ function testSteps()
 
   let request = indexedDB.open(name, 10);
   request.onerror = errorHandler;
   request.onsuccess = unexpectedSuccessHandler;
   request.onupgradeneeded = grabEventAndContinueHandler;
 
   ok(request instanceof IDBOpenDBRequest, "Expect an IDBOpenDBRequest");
 
-  let event = yield;
+  let event = yield undefined;
 
   is(event.type, "upgradeneeded", "Expect an upgradeneeded event");
   ok(event instanceof IDBVersionChangeEvent, "Expect a versionchange event");
 
   let db = event.target.result;
   db.createObjectStore("stuff");
 
   request.onsuccess = grabEventAndContinueHandler;
 
-  event = yield;
+  event = yield undefined;
 
   is(event.type, "success", "Expect a success event");
   is(event.target, request, "Event has right target");
   ok(event.target.result instanceof IDBDatabase, "Result should be a database");
   is(db.objectStoreNames.length, 1, "Expect an objectStore here");
 
   let request = indexedDB.open(name, 10);
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
 
-  event = yield;
+  event = yield undefined;
   is(event.type, "success", "Expect a success event");
   is(event.target, request, "Event has right target");
   ok(event.target.result instanceof IDBDatabase, "Result should be a database");
   let db2 = event.target.result;
   is(db2.objectStoreNames.length, 1, "Expect an objectStore here");
 
   var onversionchangecalled = false;
 
@@ -67,40 +67,40 @@ function testSteps()
   db2.onversionchange = closeDBs;
 
   let request = indexedDB.deleteDatabase(name);
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
 
   ok(request instanceof IDBOpenDBRequest, "Expect an IDBOpenDBRequest");
 
-  event = yield;
+  event = yield undefined;
   ok(onversionchangecalled, "Expected versionchange events");
   is(event.type, "success", "expect a success event");
   is(event.target, request, "event has right target");
   ok(event.target.result === undefined, "event should have no result");
 
   let request = indexedDB.open(name, 1);
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
 
-  event = yield;
+  event = yield undefined;
   is(event.target.result.version, 1, "DB has proper version");
   is(event.target.result.objectStoreNames.length, 0, "DB should have no object stores");
 
 
   let request = indexedDB.deleteDatabase("thisDatabaseHadBetterNotExist");
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
 
-  event = yield;
+  event = yield undefined;
   ok(true, "deleteDatabase on a non-existent database succeeded");
 
   let request = indexedDB.open("thisDatabaseHadBetterNotExist");
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
 
-  event = yield;
+  event = yield undefined;
   ok(true, "after deleting a non-existent database, open should work");
 
   finishTest();
-  yield;
+  yield undefined;
 }
--- a/dom/indexedDB/test/unit/test_deleteDatabase_interactions.js
+++ b/dom/indexedDB/test/unit/test_deleteDatabase_interactions.js
@@ -11,27 +11,27 @@ function testSteps()
 
   let request = indexedDB.open(name, 10);
   request.onerror = errorHandler;
   request.onsuccess = unexpectedSuccessHandler;
   request.onupgradeneeded = grabEventAndContinueHandler;
 
   ok(request instanceof IDBOpenDBRequest, "Expect an IDBOpenDBRequest");
 
-  let event = yield;
+  let event = yield undefined;
 
   is(event.type, "upgradeneeded", "Expect an upgradeneeded event");
   ok(event instanceof IDBVersionChangeEvent, "Expect a versionchange event");
 
   let db = event.target.result;
   db.createObjectStore("stuff");
 
   request.onsuccess = grabEventAndContinueHandler;
 
-  event = yield;
+  event = yield undefined;
 
   is(event.type, "success", "Expect a success event");
   is(event.target, request, "Event has right target");
   ok(event.target.result instanceof IDBDatabase, "Result should be a database");
   is(db.objectStoreNames.length, 1, "Expect an objectStore here");
 
   db.close();
 
@@ -41,22 +41,22 @@ function testSteps()
   request.onsuccess = grabEventAndContinueHandler;
 
   ok(request instanceof IDBOpenDBRequest, "Expect an IDBOpenDBRequest");
 
   let openRequest = indexedDB.open(name, 1);
   openRequest.onerror = errorHandler;
   openRequest.onsuccess = unexpectedSuccessHandler;
 
-  event = yield;
+  event = yield undefined;
   is(event.type, "success", "expect a success event");
   is(event.target, request, "event has right target");
   is(event.target.result, null, "event should have no result");
 
   openRequest.onsuccess = grabEventAndContinueHandler;
 
-  event = yield;
+  event = yield undefined;
   is(event.target.result.version, 1, "DB has proper version");
   is(event.target.result.objectStoreNames.length, 0, "DB should have no object stores");
 
   finishTest();
-  yield;
+  yield undefined;
 }
--- a/dom/indexedDB/test/unit/test_event_source.js
+++ b/dom/indexedDB/test/unit/test_event_source.js
@@ -8,25 +8,25 @@ var testGenerator = testSteps();
 function testSteps()
 {
   const name = this.window ? window.location.pathname : "Splendid Test";
   const objectStoreName = "Objects";
 
   var request = indexedDB.open(name, 1);
   request.onerror = errorHandler;
   request.onupgradeneeded = grabEventAndContinueHandler;
-  var event = yield;
+  var event = yield undefined;
 
   is(event.target.source, null, "correct event.target.source");
 
   var db = event.target.result;
   var objectStore = db.createObjectStore(objectStoreName,
                                          { autoIncrement: true });
   request = objectStore.add({});
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   ok(event.target.source === objectStore, "correct event.source");
 
   finishTest();
-  yield;
+  yield undefined;
 }
--- a/dom/indexedDB/test/unit/test_getAll.js
+++ b/dom/indexedDB/test/unit/test_getAll.js
@@ -9,187 +9,187 @@ function testSteps()
 {
   const name = this.window ? window.location.pathname : "Splendid Test";
 
   const values = [ "a", "1", 1, "foo", 300, true, false, 4.5, null ];
 
   let request = indexedDB.open(name, 1);
   request.onerror = errorHandler;
   request.onupgradeneeded = grabEventAndContinueHandler;
-  let event = yield;
+  let event = yield undefined;
 
   let db = event.target.result;
 
   let objectStore = db.createObjectStore("foo", { autoIncrement: true });
 
   request.onsuccess = grabEventAndContinueHandler;
   request = objectStore.mozGetAll();
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result instanceof Array, true, "Got an array object");
   is(event.target.result.length, 0, "No elements");
 
   let addedCount = 0;
 
   for (let i in values) {
     request = objectStore.add(values[i]);
     request.onerror = errorHandler;
     request.onsuccess = function(event) {
       if (++addedCount == values.length) {
         executeSoon(function() { testGenerator.next(); });
       }
     }
   }
-  yield;
-  yield;
+  yield undefined;
+  yield undefined;
 
   request = db.transaction("foo").objectStore("foo").mozGetAll();
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result instanceof Array, true, "Got an array object");
   is(event.target.result.length, values.length, "Same length");
 
   for (let i in event.target.result) {
     is(event.target.result[i], values[i], "Same value");
   }
 
   request = db.transaction("foo").objectStore("foo").mozGetAll(null, 5);
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result instanceof Array, true, "Got an array object");
   is(event.target.result.length, 5, "Correct length");
 
   for (let i in event.target.result) {
     is(event.target.result[i], values[i], "Same value");
   }
 
   let keyRange = IDBKeyRange.bound(1, 9);
 
   request = db.transaction("foo").objectStore("foo").mozGetAll(keyRange);
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result instanceof Array, true, "Got an array object");
   is(event.target.result.length, values.length, "Correct length");
 
   for (let i in event.target.result) {
     is(event.target.result[i], values[i], "Same value");
   }
 
   request = db.transaction("foo").objectStore("foo").mozGetAll(keyRange, 0);
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result instanceof Array, true, "Got an array object");
   is(event.target.result.length, values.length, "Correct length");
 
   for (let i in event.target.result) {
     is(event.target.result[i], values[i], "Same value");
   }
 
   request = db.transaction("foo").objectStore("foo").mozGetAll(keyRange, null);
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result instanceof Array, true, "Got an array object");
   is(event.target.result.length, values.length, "Correct length");
 
   for (let i in event.target.result) {
     is(event.target.result[i], values[i], "Same value");
   }
 
   request = db.transaction("foo").objectStore("foo").mozGetAll(keyRange, undefined);
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result instanceof Array, true, "Got an array object");
   is(event.target.result.length, values.length, "Correct length");
 
   for (let i in event.target.result) {
     is(event.target.result[i], values[i], "Same value");
   }
 
   keyRange = IDBKeyRange.bound(4, 7);
 
   request = db.transaction("foo").objectStore("foo").mozGetAll(keyRange);
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result instanceof Array, true, "Got an array object");
   is(event.target.result.length, 4, "Correct length");
 
   for (let i in event.target.result) {
     is(event.target.result[i], values[parseInt(i) + 3], "Same value");
   }
 
   // Get should take a key range also but it doesn't return an array.
   request = db.transaction("foo").objectStore("foo").get(keyRange);
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result instanceof Array, false, "Not an array object");
   is(event.target.result, values[3], "Correct value");
 
   request = db.transaction("foo").objectStore("foo").mozGetAll(keyRange, 2);
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result instanceof Array, true, "Got an array object");
   is(event.target.result.length, 2, "Correct length");
 
   for (let i in event.target.result) {
     is(event.target.result[i], values[parseInt(i) + 3], "Same value");
   }
 
   keyRange = IDBKeyRange.bound(4, 7);
 
   request = db.transaction("foo").objectStore("foo").mozGetAll(keyRange, 50);
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result instanceof Array, true, "Got an array object");
   is(event.target.result.length, 4, "Correct length");
 
   for (let i in event.target.result) {
     is(event.target.result[i], values[parseInt(i) + 3], "Same value");
   }
 
   keyRange = IDBKeyRange.bound(4, 7);
 
   request = db.transaction("foo").objectStore("foo").mozGetAll(keyRange, 0);
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result instanceof Array, true, "Got an array object");
   is(event.target.result.length, 4, "Correct length");
 
   keyRange = IDBKeyRange.bound(4, 7, true, true);
 
   request = db.transaction("foo").objectStore("foo").mozGetAll(keyRange);
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result instanceof Array, true, "Got an array object");
   is(event.target.result.length, 2, "Correct length");
 
   for (let i in event.target.result) {
     is(event.target.result[i], values[parseInt(i) + 4], "Same value");
   }
 
   finishTest();
-  yield;
+  yield undefined;
 }
--- a/dom/indexedDB/test/unit/test_global_data.js
+++ b/dom/indexedDB/test/unit/test_global_data.js
@@ -9,31 +9,31 @@ function testSteps()
 {
   const name = this.window ? window.location.pathname : "Splendid Test";
   const objectStore =  { name: "Objects",
                          options: { keyPath: "id", autoIncrement: true } };
 
   let request = indexedDB.open(name, 1);
   request.onerror = errorHandler;
   request.onupgradeneeded = grabEventAndContinueHandler;
-  let event = yield;
+  let event = yield undefined;
 
   let db1 = event.target.result;
 
   is(db1.objectStoreNames.length, 0, "No objectStores in db1");
 
   db1.createObjectStore(objectStore.name, objectStore.options);
 
   continueToNextStep();
-  yield;
+  yield undefined;
 
   request = indexedDB.open(name, 1);
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   let db2 = event.target.result;
 
   ok(db1 !== db2, "Databases are not the same object");
 
   is(db1.objectStoreNames.length, 1, "1 objectStore in db1");
   is(db1.objectStoreNames.item(0), objectStore.name, "Correct name");
 
@@ -48,10 +48,10 @@ function testSteps()
   let objectStore2 = db2.transaction(objectStore.name)
                         .objectStore(objectStore.name);
 
   ok(objectStore1 !== objectStore2, "Different objectStores");
   is(objectStore1.name, objectStore2.name, "Same name");
   is(objectStore1.keyPath, objectStore2.keyPath, "Same keyPath");
 
   finishTest();
-  yield;
+  yield undefined;
 }
--- a/dom/indexedDB/test/unit/test_index_empty_keyPath.js
+++ b/dom/indexedDB/test/unit/test_index_empty_keyPath.js
@@ -14,17 +14,17 @@ function testSteps()
     { key: "2", value: "bar" },
     { key: "3", value: "baz" }
   ];
 
   let request = indexedDB.open(name, 1);
   request.onerror = errorHandler;
   request.onupgradeneeded = grabEventAndContinueHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  let event = yield; // upgradeneeded
+  let event = yield undefined; // upgradeneeded
 
   let db = event.target.result;
 
   let objectStore = db.createObjectStore("data", { keyPath: null });
 
   // First, add all our data to the object store.
   let addedData = 0;
   for (let i in objectStoreData) {
@@ -32,52 +32,52 @@ function testSteps()
                               objectStoreData[i].key);
     request.onerror = errorHandler;
     request.onsuccess = function(event) {
       if (++addedData == objectStoreData.length) {
         testGenerator.send(event);
       }
     }
   }
-  event = yield; // testGenerator.send
+  event = yield undefined; // testGenerator.send
 
   // Now create the index.
   objectStore.createIndex("set", "", { unique: true });
-  yield; // success
+  yield undefined; // success
 
   let trans = db.transaction("data", "readwrite");
   objectStore = trans.objectStore("data");
   index = objectStore.index("set");
 
   let request = index.get("bar");
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
   
-  let event = yield;
+  let event = yield undefined;
 
   is(event.target.result, "bar", "Got correct result");
 
   let request = objectStore.add("foopy", 4);
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
 
-  yield;
+  yield undefined;
 
   let request = index.get("foopy");
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
   
-  let event = yield;
+  let event = yield undefined;
 
   is(event.target.result, "foopy", "Got correct result");
 
   let request = objectStore.add("foopy", 5);
   request.addEventListener("error", new ExpectError("ConstraintError", true));
   request.onsuccess = unexpectedSuccessHandler;
 
   trans.oncomplete = grabEventAndContinueHandler;
 
-  yield;
-  yield;
+  yield undefined;
+  yield undefined;
 
   finishTest();
-  yield;
+  yield undefined;
 }
--- a/dom/indexedDB/test/unit/test_index_getAll.js
+++ b/dom/indexedDB/test/unit/test_index_getAll.js
@@ -50,17 +50,17 @@ function testSteps()
     { key: "237-23-7737", value: { name: "Pat", height: 65 } },
     { key: "237-23-7734", value: { name: "Ron", height: 73, weight: 180 } }
   ];
 
   let request = indexedDB.open(name, 1);
   request.onerror = errorHandler;
   request.onupgradeneeded = grabEventAndContinueHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  let event = yield;
+  let event = yield undefined;
 
   let db = event.target.result;
 
   let objectStore = db.createObjectStore(objectStoreName);
 
   // First, add all our data to the object store.
   let addedData = 0;
   for (let i in objectStoreData) {
@@ -68,124 +68,124 @@ function testSteps()
                               objectStoreData[i].key);
     request.onerror = errorHandler;
     request.onsuccess = function(event) {
       if (++addedData == objectStoreData.length) {
         testGenerator.send(event);
       }
     }
   }
-  yield;
+  yield undefined;
   ok(true, "1");
 
   // Now create the indexes.
   for (let i in indexData) {
     objectStore.createIndex(indexData[i].name, indexData[i].keyPath,
                             indexData[i].options);
   }
 
   is(objectStore.indexNames.length, indexData.length, "Good index count");
-  yield;
+  yield undefined;
 
   ok(true, "2");
   objectStore = db.transaction(objectStoreName)
                   .objectStore(objectStoreName);
 
   request = objectStore.index("height").mozGetAllKeys(65);
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
   ok(true, "3");
 
   is(event.target.result instanceof Array, true, "Got an array object");
   is(event.target.result.length, 2, "Correct length");
 
   for (let i in event.target.result) {
     is(event.target.result[i], objectStoreDataHeightSort[parseInt(i) + 3].key,
        "Correct key");
   }
 
   request = objectStore.index("height").mozGetAllKeys(65, 0);
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
   ok(true, "3");
 
   is(event.target.result instanceof Array, true, "Got an array object");
   is(event.target.result.length, 2, "Correct length");
 
   for (let i in event.target.result) {
     is(event.target.result[i], objectStoreDataHeightSort[parseInt(i) + 3].key,
        "Correct key");
   }
 
   request = objectStore.index("height").mozGetAllKeys(65, null);
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
   ok(true, "3");
 
   is(event.target.result instanceof Array, true, "Got an array object");
   is(event.target.result.length, 2, "Correct length");
 
   for (let i in event.target.result) {
     is(event.target.result[i], objectStoreDataHeightSort[parseInt(i) + 3].key,
        "Correct key");
   }
 
   request = objectStore.index("height").mozGetAllKeys(65, undefined);
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
   ok(true, "3");
 
   is(event.target.result instanceof Array, true, "Got an array object");
   is(event.target.result.length, 2, "Correct length");
 
   for (let i in event.target.result) {
     is(event.target.result[i], objectStoreDataHeightSort[parseInt(i) + 3].key,
        "Correct key");
   }
 
   request = objectStore.index("height").mozGetAllKeys();
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
   ok(true, "4");
 
   is(event.target.result instanceof Array, true, "Got an array object");
   is(event.target.result.length, objectStoreDataHeightSort.length,
      "Correct length");
 
   for (let i in event.target.result) {
     is(event.target.result[i], objectStoreDataHeightSort[i].key, "Correct key");
   }
 
   request = objectStore.index("height").mozGetAllKeys(null, 4);
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   ok(true, "5");
   is(event.target.result instanceof Array, true, "Got an array object");
   is(event.target.result.length, 4, "Correct length");
 
   for (let i in event.target.result) {
     is(event.target.result[i], objectStoreDataHeightSort[i].key, "Correct key");
   }
 
   request = objectStore.index("height").mozGetAllKeys(65, 1);
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   ok(true, "6");
   is(event.target.result instanceof Array, true, "Got an array object");
   is(event.target.result.length, 1, "Correct length");
 
   for (let i in event.target.result) {
     is(event.target.result[i], objectStoreDataHeightSort[parseInt(i) + 3].key,
        "Correct key");
   }
 
   finishTest();
-  yield;
+  yield undefined;
 }
--- a/dom/indexedDB/test/unit/test_index_getAllObjects.js
+++ b/dom/indexedDB/test/unit/test_index_getAllObjects.js
@@ -50,17 +50,17 @@ function testSteps()
     { key: "237-23-7737", value: { name: "Pat", height: 65 } },
     { key: "237-23-7734", value: { name: "Ron", height: 73, weight: 180 } }
   ];
 
   let request = indexedDB.open(name, 1);
   request.onerror = errorHandler;
   request.onupgradeneeded = grabEventAndContinueHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  let event = yield;
+  let event = yield undefined;
 
   let db = event.target.result;
 
   let objectStore = db.createObjectStore(objectStoreName, {});
 
   // First, add all our data to the object store.
   let addedData = 0;
   for (let i in objectStoreData) {
@@ -68,34 +68,34 @@ function testSteps()
                               objectStoreData[i].key);
     request.onerror = errorHandler;
     request.onsuccess = function(event) {
       if (++addedData == objectStoreData.length) {
         testGenerator.send(event);
       }
     }
   }
-  event = yield;
+  event = yield undefined;
 
   // Now create the indexes.
   for (let i in indexData) {
     objectStore.createIndex(indexData[i].name, indexData[i].keyPath,
                             indexData[i].options);
   }
 
   is(objectStore.indexNames.length, indexData.length, "Good index count");
-  yield;
+  yield undefined;
 
   objectStore = db.transaction(objectStoreName)
                   .objectStore(objectStoreName);
 
   request = objectStore.index("height").mozGetAll(65);
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result instanceof Array, true, "Got an array object");
   is(event.target.result.length, 2, "Correct length");
 
   for (let i in event.target.result) {
     let result = event.target.result[i];
     let testObj = objectStoreDataHeightSort[parseInt(i) + 3].value;
 
@@ -105,17 +105,17 @@ function testSteps()
     if (testObj.hasOwnProperty("weight")) {
       is(result.weight, testObj.weight, "Correct weight");
     }
   }
 
   request = objectStore.index("height").mozGetAll(65, 0);
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result instanceof Array, true, "Got an array object");
   is(event.target.result.length, 2, "Correct length");
 
   for (let i in event.target.result) {
     let result = event.target.result[i];
     let testObj = objectStoreDataHeightSort[parseInt(i) + 3].value;
 
@@ -125,17 +125,17 @@ function testSteps()
     if (testObj.hasOwnProperty("weight")) {
       is(result.weight, testObj.weight, "Correct weight");
     }
   }
 
   request = objectStore.index("height").mozGetAll(65, null);
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result instanceof Array, true, "Got an array object");
   is(event.target.result.length, 2, "Correct length");
 
   for (let i in event.target.result) {
     let result = event.target.result[i];
     let testObj = objectStoreDataHeightSort[parseInt(i) + 3].value;
 
@@ -145,17 +145,17 @@ function testSteps()
     if (testObj.hasOwnProperty("weight")) {
       is(result.weight, testObj.weight, "Correct weight");
     }
   }
 
   request = objectStore.index("height").mozGetAll(65, undefined);
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result instanceof Array, true, "Got an array object");
   is(event.target.result.length, 2, "Correct length");
 
   for (let i in event.target.result) {
     let result = event.target.result[i];
     let testObj = objectStoreDataHeightSort[parseInt(i) + 3].value;
 
@@ -165,17 +165,17 @@ function testSteps()
     if (testObj.hasOwnProperty("weight")) {
       is(result.weight, testObj.weight, "Correct weight");
     }
   }
 
   request = objectStore.index("height").mozGetAll();
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result instanceof Array, true, "Got an array object");
   is(event.target.result.length, objectStoreDataHeightSort.length,
      "Correct length");
 
   for (let i in event.target.result) {
     let result = event.target.result[i];
     let testObj = objectStoreDataHeightSort[i].value;
@@ -186,17 +186,17 @@ function testSteps()
     if (testObj.hasOwnProperty("weight")) {
       is(result.weight, testObj.weight, "Correct weight");
     }
   }
 
   request = objectStore.index("height").mozGetAll(null, 4);
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result instanceof Array, true, "Got an array object");
   is(event.target.result.length, 4, "Correct length");
 
   for (let i in event.target.result) {
     let result = event.target.result[i];
     let testObj = objectStoreDataHeightSort[i].value;
 
@@ -206,17 +206,17 @@ function testSteps()
     if (testObj.hasOwnProperty("weight")) {
       is(result.weight, testObj.weight, "Correct weight");
     }
   }
 
   request = objectStore.index("height").mozGetAll(65, 1);
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result instanceof Array, true, "Got an array object");
   is(event.target.result.length, 1, "Correct length");
 
   for (let i in event.target.result) {
     let result = event.target.result[i];
     let testObj = objectStoreDataHeightSort[parseInt(i) + 3].value;
 
@@ -224,10 +224,10 @@ function testSteps()
     is(result.height, testObj.height, "Correct height");
 
     if (testObj.hasOwnProperty("weight")) {
       is(result.weight, testObj.weight, "Correct weight");
     }
   }
 
   finishTest();
-  yield;
+  yield undefined;
 }
--- a/dom/indexedDB/test/unit/test_index_object_cursors.js
+++ b/dom/indexedDB/test/unit/test_index_object_cursors.js
@@ -22,17 +22,17 @@ function testSteps()
   const data = [
     { ss: "237-23-7732", name: "Ann", height: 60 },
     { ss: "237-23-7733", name: "Bob", height: 65 }
   ];
 
   let request = indexedDB.open(this.window ? window.location.pathname : "Splendid Test", 1);
   request.onerror = errorHandler;
   request.onupgradeneeded = grabEventAndContinueHandler;
-  let event = yield;
+  let event = yield undefined;
 
   let db = event.target.result;
   db.onerror = errorHandler;
 
   event.target.onsuccess = continueToNextStep;
 
   for (let objectStoreIndex in objectStoreData) {
     const objectStoreInfo = objectStoreData[objectStoreIndex];
@@ -40,17 +40,17 @@ function testSteps()
                                            objectStoreInfo.options);
     for (let indexIndex in indexData) {
       const indexInfo = indexData[indexIndex];
       let index = objectStore.createIndex(indexInfo.name,
                                           indexInfo.keyPath,
                                           indexInfo.options);
     }
   }
-  yield;
+  yield undefined;
 
   ok(true, "Initial setup");
 
   for (let objectStoreIndex in objectStoreData) {
     const info = objectStoreData[objectStoreIndex];
 
     for (let indexIndex in indexData) {
       const objectStoreName = objectStoreData[objectStoreIndex].name;
@@ -101,17 +101,17 @@ function testSteps()
         }
 
         cursor.delete().onsuccess = function(event) {
           ok(true, "Object deleted");
           cursor.continue();
           keyIndex++
         }
       };
-      yield;
+      yield undefined;
 
       is(keyIndex, 2, "Saw all the items");
 
       keyIndex = 0;
 
       db.transaction(objectStoreName).objectStore(objectStoreName)
                                      .openCursor()
                                      .onsuccess = function(event) {
@@ -124,22 +124,22 @@ function testSteps()
         is(cursor.value.ss, data[keyIndex].ss, "Correct ss");
         is(cursor.value.name, data[keyIndex].name, "Correct name");
         is(cursor.value.height, data[keyIndex].height, "Correct height");
         is(cursor.value.updated, true, "Correct updated flag");
 
         cursor.continue();
         keyIndex++;
       };
-      yield;
+      yield undefined;
 
       is(keyIndex, 1, "Saw all the items");
 
       db.transaction(objectStoreName, "readwrite")
         .objectStore(objectStoreName).clear()
         .onsuccess = continueToNextStep;
-      yield;
+      yield undefined;
     }
   }
 
   finishTest();
-  yield;
+  yield undefined;
 }
--- a/dom/indexedDB/test/unit/test_index_update_delete.js
+++ b/dom/indexedDB/test/unit/test_index_update_delete.js
@@ -8,17 +8,17 @@ var testGenerator = testSteps();
 function testSteps()
 {
   let name = this.window ? window.location.pathname : "Splendid Test";
   let request = indexedDB.open(name, 1);
   request.onerror = errorHandler;
   request.onupgradeneeded = grabEventAndContinueHandler;
   request.onsuccess = grabEventAndContinueHandler;
 
-  let event = yield;
+  let event = yield undefined;
 
   let db = event.target.result;
   db.onerror = errorHandler;
 
   for each (let autoIncrement in [false, true]) {
     let objectStore =
       db.createObjectStore(autoIncrement, { keyPath: "id",
                                             autoIncrement: autoIncrement });
@@ -31,38 +31,38 @@ function testSteps()
       objectStore.createIndex(unique, "index", { unique: unique });
     }
 
     for (let i = 10; i < 20; i++) {
       objectStore.add({ id: i, index: i });
     }
   }
 
-  event = yield;
+  event = yield undefined;
   is(event.type, "success", "expect a success event");
 
   for each (let autoIncrement in [false, true]) {
     let objectStore = db.transaction(autoIncrement)
                         .objectStore(autoIncrement);
 
     objectStore.count().onsuccess = grabEventAndContinueHandler;
-    let event = yield;
+    let event = yield undefined;
 
     is(event.target.result, 20, "Correct number of entries in objectStore");
 
     let objectStoreCount = event.target.result;
     let indexCount = event.target.result;
 
     for each (let unique in [false, true]) {
       let index = db.transaction(autoIncrement, "readwrite")
                     .objectStore(autoIncrement)
                     .index(unique);
 
       index.count().onsuccess = grabEventAndContinueHandler;
-      let event = yield;
+      let event = yield undefined;
 
       is(event.target.result, indexCount,
          "Correct number of entries in index");
 
       let modifiedEntry = unique ? 5 : 10;
       let keyRange = IDBKeyRange.only(modifiedEntry);
 
       let sawEntry = false;
@@ -76,27 +76,27 @@ function testSteps()
           cursor.update(cursor.value).onsuccess = function(event) {
             cursor.continue();
           }
         }
         else {
           continueToNextStep();
         }
       }
-      yield;
+      yield undefined;
 
       is(sawEntry, true, "Saw entry for key value " + modifiedEntry);
 
       // Recount index. Shouldn't change.
       index = db.transaction(autoIncrement, "readwrite")
                 .objectStore(autoIncrement)
                 .index(unique);
 
       index.count().onsuccess = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       is(event.target.result, indexCount,
          "Correct number of entries in index");
 
       modifiedEntry = unique ? 30 : 35;
       keyRange = IDBKeyRange.only(modifiedEntry);
 
       sawEntry = false;
@@ -111,57 +111,57 @@ function testSteps()
             indexCount--;
             cursor.continue();
           }
         }
         else {
           continueToNextStep();
         }
       }
-      yield;
+      yield undefined;
 
       is(sawEntry, true, "Saw entry for key value " + modifiedEntry);
 
       // Recount objectStore. Should be unchanged.
       objectStore = db.transaction(autoIncrement, "readwrite")
                       .objectStore(autoIncrement);
 
       objectStore.count().onsuccess = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       is(event.target.result, objectStoreCount,
          "Correct number of entries in objectStore");
 
       // Recount index. Should be one item less.
       index = objectStore.index(unique);
 
       index.count().onsuccess = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       is(event.target.result, indexCount,
          "Correct number of entries in index");
 
       modifiedEntry = objectStoreCount - 1;
 
       objectStore.delete(modifiedEntry).onsuccess =
         grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       objectStoreCount--;
       indexCount--;
 
       objectStore.count().onsuccess = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       is(event.target.result, objectStoreCount,
          "Correct number of entries in objectStore");
 
       index.count().onsuccess = grabEventAndContinueHandler;
-      event = yield;
+      event = yield undefined;
 
       is(event.target.result, indexCount,
          "Correct number of entries in index");
     }
   }
 
   finishTest();
-  yield;
+  yield undefined;
 }
--- a/dom/indexedDB/test/unit/test_indexes.js
+++ b/dom/indexedDB/test/unit/test_indexes.js
@@ -51,41 +51,41 @@ function testSteps()
     { key: "237-23-7737", value: { name: "Pat", height: 65 } },
     { key: "237-23-7734", value: { name: "Ron", height: 73, weight: 180 } }
   ];
 
   let request = indexedDB.open(name, 1);
   request.onerror = errorHandler;
   request.onupgradeneeded = grabEventAndContinueHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  let event = yield;
+  let event = yield undefined;
   let db = event.target.result;
 
   let objectStore = db.createObjectStore(objectStoreName, { keyPath: null });
 
   // First, add all our data to the object store.
   let addedData = 0;
   for (let i in objectStoreData) {
     request = objectStore.add(objectStoreData[i].value,
                               objectStoreData[i].key);
     request.onerror = errorHandler;
     request.onsuccess = function(event) {
       if (++addedData == objectStoreData.length) {
         testGenerator.send(event);
       }
     }
   }
-  event = yield;
+  event = yield undefined;
   // Now create the indexes.
   for (let i in indexData) {
     objectStore.createIndex(indexData[i].name, indexData[i].keyPath,
                             indexData[i].options);
   }
   is(objectStore.indexNames.length, indexData.length, "Good index count");
-  yield;
+  yield undefined;
   objectStore = db.transaction(objectStoreName)
                   .objectStore(objectStoreName);
 
   // Check global properties to make sure they are correct.
   is(objectStore.indexNames.length, indexData.length, "Good index count");
   for (let i in indexData) {
     let found = false;
     for (let j = 0; j < objectStore.indexNames.length; j++) {
@@ -101,24 +101,24 @@ function testSteps()
     is(index.keyPath, indexData[i].keyPath, "Correct keyPath");
     is(index.unique, indexData[i].options.unique ? true : false,
        "Correct unique value");
   }
 
   request = objectStore.index("name").getKey("Bob");
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, "237-23-7732", "Correct key returned!");
 
   request = objectStore.index("name").get("Bob");
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result.name, "Bob", "Correct name returned!");
   is(event.target.result.height, 60, "Correct height returned!");
   is(event.target.result.weight, 120, "Correct weight returned!");
 
   ok(true, "Test group 1");
 
   let keyIndex = 0;
@@ -143,17 +143,17 @@ function testSteps()
       ok(!("value" in cursor), "No value");
 
       keyIndex++;
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(keyIndex, objectStoreData.length, "Saw all the expected keys");
 
   ok(true, "Test group 2");
 
   keyIndex = 0;
 
   request = objectStore.index("weight").openKeyCursor(null, "next");
@@ -174,28 +174,28 @@ function testSteps()
          "Correct value");
 
       keyIndex++;
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(keyIndex, objectStoreData.length - 1, "Saw all the expected keys");
 
   // Check that the name index enforces its unique constraint.
   objectStore = db.transaction(objectStoreName, "readwrite")
                   .objectStore(objectStoreName);
   request = objectStore.add({ name: "Bob", height: 62, weight: 170 },
                             "237-23-7738");
   request.addEventListener("error", new ExpectError("ConstraintError", true));
   request.onsuccess = unexpectedSuccessHandler;
-  event = yield;
+  event = yield undefined;
 
   ok(true, "Test group 3");
 
   keyIndex = objectStoreDataNameSort.length - 1;
 
   request = objectStore.index("name").openKeyCursor(null, "prev");
   request.onerror = errorHandler;
   request.onsuccess = function (event) {
@@ -214,17 +214,17 @@ function testSteps()
          "Correct value");
 
       keyIndex--;
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(keyIndex, -1, "Saw all the expected keys");
 
   ok(true, "Test group 4");
 
   keyIndex = 1;
   let keyRange = IDBKeyRange.bound("Bob", "Ron");
 
@@ -240,17 +240,17 @@ function testSteps()
 
       cursor.continue();
       keyIndex++;
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(keyIndex, 5, "Saw all the expected keys");
 
   ok(true, "Test group 5");
 
   keyIndex = 2;
   let keyRange = IDBKeyRange.bound("Bob", "Ron", true);
 
@@ -266,17 +266,17 @@ function testSteps()
 
       cursor.continue();
       keyIndex++;
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(keyIndex, 5, "Saw all the expected keys");
 
   ok(true, "Test group 6");
 
   keyIndex = 1;
   let keyRange = IDBKeyRange.bound("Bob", "Ron", false, true);
 
@@ -292,17 +292,17 @@ function testSteps()
 
       cursor.continue();
       keyIndex++;
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(keyIndex, 4, "Saw all the expected keys");
 
   ok(true, "Test group 7");
 
   keyIndex = 2;
   keyRange = IDBKeyRange.bound("Bob", "Ron", true, true);
 
@@ -318,17 +318,17 @@ function testSteps()
 
       cursor.continue();
       keyIndex++;
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(keyIndex, 4, "Saw all the expected keys");
 
   ok(true, "Test group 8");
 
   keyIndex = 1;
   keyRange = IDBKeyRange.lowerBound("Bob");
 
@@ -344,17 +344,17 @@ function testSteps()
 
       cursor.continue();
       keyIndex++;
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(keyIndex, objectStoreDataNameSort.length, "Saw all the expected keys");
 
   ok(true, "Test group 9");
 
   keyIndex = 2;
   keyRange = IDBKeyRange.lowerBound("Bob", true);
 
@@ -370,17 +370,17 @@ function testSteps()
 
       cursor.continue();
       keyIndex++;
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(keyIndex, objectStoreDataNameSort.length, "Saw all the expected keys");
 
   ok(true, "Test group 10");
 
   keyIndex = 0;
   keyRange = IDBKeyRange.upperBound("Joe");
 
@@ -396,17 +396,17 @@ function testSteps()
 
       cursor.continue();
       keyIndex++;
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(keyIndex, 3, "Saw all the expected keys");
 
   ok(true, "Test group 11");
 
   keyIndex = 0;
   keyRange = IDBKeyRange.upperBound("Joe", true);
 
@@ -422,17 +422,17 @@ function testSteps()
 
       cursor.continue();
       keyIndex++;
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(keyIndex, 2, "Saw all the expected keys");
 
   ok(true, "Test group 12");
 
   keyIndex = 3;
   keyRange = IDBKeyRange.only("Pat");
 
@@ -448,17 +448,17 @@ function testSteps()
 
       cursor.continue();
       keyIndex++;
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(keyIndex, 4, "Saw all the expected keys");
 
   ok(true, "Test group 13");
 
   keyIndex = 0;
 
   request = objectStore.index("name").openCursor();
@@ -499,17 +499,17 @@ function testSteps()
       }
 
       keyIndex++;
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(keyIndex, objectStoreDataNameSort.length, "Saw all the expected keys");
 
   ok(true, "Test group 14");
 
   keyIndex = objectStoreDataNameSort.length - 1;
 
   request = objectStore.index("name").openCursor(null, "prev");
@@ -550,17 +550,17 @@ function testSteps()
       }
 
       keyIndex--;
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(keyIndex, -1, "Saw all the expected keys");
 
   ok(true, "Test group 15");
 
   keyIndex = 1;
   keyRange = IDBKeyRange.bound("Bob", "Ron");
 
@@ -602,17 +602,17 @@ function testSteps()
       }
 
       keyIndex++;
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(keyIndex, 5, "Saw all the expected keys");
 
   ok(true, "Test group 16");
 
   keyIndex = 2;
   keyRange = IDBKeyRange.bound("Bob", "Ron", true);
 
@@ -654,17 +654,17 @@ function testSteps()
       }
 
       keyIndex++;
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(keyIndex, 5, "Saw all the expected keys");
 
   ok(true, "Test group 17");
 
   keyIndex = 1;
   keyRange = IDBKeyRange.bound("Bob", "Ron", false, true);
 
@@ -706,17 +706,17 @@ function testSteps()
       }
 
       keyIndex++;
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(keyIndex, 4, "Saw all the expected keys");
 
   ok(true, "Test group 18");
 
   keyIndex = 2;
   keyRange = IDBKeyRange.bound("Bob", "Ron", true, true);
 
@@ -758,17 +758,17 @@ function testSteps()
       }
 
       keyIndex++;
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(keyIndex, 4, "Saw all the expected keys");
 
   ok(true, "Test group 19");
 
   keyIndex = 4;
   keyRange = IDBKeyRange.bound("Bob", "Ron");
 
@@ -810,17 +810,17 @@ function testSteps()
       }
 
       keyIndex--;
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(keyIndex, 0, "Saw all the expected keys");
 
   ok(true, "Test group 20");
 
   // Test "nextunique"
   keyIndex = 3;
   keyRange = IDBKeyRange.only(65);
@@ -837,17 +837,17 @@ function testSteps()
 
       cursor.continue();
       keyIndex++;
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(keyIndex, 5, "Saw all the expected keys");
 
   ok(true, "Test group 21");
 
   keyIndex = 3;
   keyRange = IDBKeyRange.only(65);
 
@@ -864,17 +864,17 @@ function testSteps()
 
       cursor.continue();
       keyIndex++;
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(keyIndex, 4, "Saw all the expected keys");
 
   ok(true, "Test group 21.5");
 
   keyIndex = 5;
 
   request = objectStore.index("height").openKeyCursor(null, "prev");
@@ -889,17 +889,17 @@ function testSteps()
 
       cursor.continue();
       keyIndex--;
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(keyIndex, -1, "Saw all the expected keys");
 
   ok(true, "Test group 22");
 
   keyIndex = 5;
 
   request = objectStore.index("height").openKeyCursor(null,
@@ -918,17 +918,17 @@ function testSteps()
         keyIndex--;
       }
       keyIndex--;
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(keyIndex, -1, "Saw all the expected keys");
 
   ok(true, "Test group 23");
 
   keyIndex = 3;
   keyRange = IDBKeyRange.only(65);
 
@@ -954,17 +954,17 @@ function testSteps()
 
       cursor.continue();
       keyIndex++;
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(keyIndex, 5, "Saw all the expected keys");
 
   ok(true, "Test group 24");
 
   keyIndex = 3;
   keyRange = IDBKeyRange.only(65);
 
@@ -991,17 +991,17 @@ function testSteps()
 
       cursor.continue();
       keyIndex++;
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(keyIndex, 4, "Saw all the expected keys");
 
   ok(true, "Test group 24.5");
 
   keyIndex = 5;
 
   request = objectStore.index("height").openCursor(null, "prev");
@@ -1026,17 +1026,17 @@ function testSteps()
 
       cursor.continue();
       keyIndex--;
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(keyIndex, -1, "Saw all the expected keys");
 
   ok(true, "Test group 25");
 
   keyIndex = 5;
 
   request = objectStore.index("height").openCursor(null,
@@ -1065,17 +1065,17 @@ function testSteps()
         keyIndex--;
       }
       keyIndex--;
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(keyIndex, -1, "Saw all the expected keys");
 
   ok(true, "Test group 26");
 
   keyIndex = 0;
 
   request = objectStore.index("name").openKeyCursor();
@@ -1103,17 +1103,17 @@ function testSteps()
       else {
         keyIndex++;
       }
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(keyIndex, objectStoreData.length, "Saw all the expected keys");
 
   ok(true, "Test group 27");
 
   keyIndex = 0;
 
   request = objectStore.index("name").openKeyCursor();
@@ -1136,17 +1136,17 @@ function testSteps()
          "Correct value");
 
       keyIndex += keyIndex ? 1 : 2;
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(keyIndex, objectStoreData.length, "Saw all the expected keys");
 
   ok(true, "Test group 28");
 
   keyIndex = 0;
 
   request = objectStore.index("name").openCursor();
@@ -1194,17 +1194,17 @@ function testSteps()
       else {
         keyIndex++;
       }
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(keyIndex, objectStoreDataNameSort.length, "Saw all the expected keys");
 
   ok(true, "Test group 29");
 
   keyIndex = 0;
 
   request = objectStore.index("name").openCursor();
@@ -1247,15 +1247,15 @@ function testSteps()
       }
 
       keyIndex += keyIndex ? 1 : 2;
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(keyIndex, objectStoreDataNameSort.length, "Saw all the expected keys");
 
   finishTest();
-  yield;
+  yield undefined;
 }
--- a/dom/indexedDB/test/unit/test_indexes_bad_values.js
+++ b/dom/indexedDB/test/unit/test_indexes_bad_values.js
@@ -37,34 +37,34 @@ function testSteps()
     { key: "237-23-7736", value: { name: "Joe", height: 65, weight: 150 } },
     { key: "237-23-7734", value: { name: "Ron", height: 73, weight: 180 } }
   ];
 
   let request = indexedDB.open(name, 1);
   request.onerror = errorHandler;
   request.onupgradeneeded = grabEventAndContinueHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  let event = yield;
+  let event = yield undefined;
 
   let db = event.target.result;
 
   let objectStore = db.createObjectStore(objectStoreName, { } );
 
   let addedData = 0;
   for (let i in objectStoreData) {
     request = objectStore.add(objectStoreData[i].value,
                               objectStoreData[i].key);
     request.onerror = errorHandler;
     request.onsuccess = function(event) {
       if (++addedData == objectStoreData.length) {
         testGenerator.send(event);
       }
     }
   }
-  event = yield;
+  event = yield undefined;
 
   for (let i in indexData) {
     objectStore.createIndex(indexData[i].name, indexData[i].keyPath,
                             indexData[i].options);
   }
 
   addedData = 0;
   for (let i in badObjectStoreData) {
@@ -72,18 +72,18 @@ function testSteps()
                               badObjectStoreData[i].key);
     request.onerror = errorHandler;
     request.onsuccess = function(event) {
       if (++addedData == badObjectStoreData.length) {
         executeSoon(function() { testGenerator.next() });
       }
     }
   }
-  yield;
-  yield;
+  yield undefined;
+  yield undefined;
 
   objectStore = db.transaction(objectStoreName)
                   .objectStore(objectStoreName);
 
   let keyIndex = 0;
 
   request = objectStore.index("weight").openKeyCursor();
   request.onerror = errorHandler;
@@ -97,17 +97,17 @@ function testSteps()
       keyIndex++;
 
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(keyIndex, objectStoreDataWeightSort.length, "Saw all weights");
 
   keyIndex = 0;
 
   request = objectStore.openCursor();
   request.onerror = errorHandler;
   request.onsuccess = function (event) {
@@ -115,16 +115,16 @@ function testSteps()
     if (cursor) {
       keyIndex++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(keyIndex, objectStoreData.length + badObjectStoreData.length,
      "Saw all people");
 
   finishTest();
-  yield;
+  yield undefined;
 }
--- a/dom/indexedDB/test/unit/test_indexes_funny_things.js
+++ b/dom/indexedDB/test/unit/test_indexes_funny_things.js
@@ -5,17 +5,17 @@
 
 var testGenerator = testSteps();
 
 function testSteps()
 {
   // Blob constructor is not implemented outside of windows yet (Bug 827723).
   if (!this.window) {
     finishTest();
-    yield;
+    yield undefined;
   }
 
   const name = this.window ? window.location.pathname : "Splendid Test";
 
   const objectStoreName = "Things";
 
   const blob1 = new Blob(["foo", "bar"], { type: "text/plain" });
   const blob2 = new Blob(["foobazybar"], { type: "text/plain" });
@@ -47,41 +47,41 @@ function testSteps()
     { key: "5", value: arr},
     //{ key: "4", value: str},
   ];
 
   let request = indexedDB.open(name, 1);
   request.onerror = errorHandler;
   request.onupgradeneeded = grabEventAndContinueHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  let event = yield;
+  let event = yield undefined;
   let db = event.target.result;
 
   let objectStore = db.createObjectStore(objectStoreName, { keyPath: null });
 
   // First, add all our data to the object store.
   let addedData = 0;
   for (let i in objectStoreData) {
     request = objectStore.add(objectStoreData[i].value,
                               objectStoreData[i].key);
     request.onerror = errorHandler;
     request.onsuccess = function(event) {
       if (++addedData == objectStoreData.length) {
         testGenerator.send(event);
       }
     }
   }
-  event = yield;
+  event = yield undefined;
   // Now create the indexes.
   for (let i in indexData) {
     objectStore.createIndex(indexData[i].name, indexData[i].keyPath,
                             indexData[i].options);
   }
   is(objectStore.indexNames.length, indexData.length, "Good index count");
-  yield;
+  yield undefined;
   objectStore = db.transaction(objectStoreName)
                   .objectStore(objectStoreName);
 
   // Check global properties to make sure they are correct.
   is(objectStore.indexNames.length, indexData.length, "Good index count");
   for (let i in indexData) {
     let found = false;
     for (let j = 0; j < objectStore.indexNames.length; j++) {
@@ -123,17 +123,17 @@ function testSteps()
       ok(!("value" in cursor), "No value");
 
       keyIndex++;
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(keyIndex, objectStoreDataTypeSort.length, "Saw all the expected keys");
 
   ok(true, "Test group 2");
 
   keyIndex = 0;
 
   request = objectStore.index("length").openKeyCursor(null, "next");
@@ -154,15 +154,15 @@ function testSteps()
          "Correct value");
 
       keyIndex++;
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(keyIndex, objectStoreDataLengthSort.length, "Saw all the expected keys");
 
   finishTest();
-  yield;
+  yield undefined;
 }
--- a/dom/indexedDB/test/unit/test_invalid_version.js
+++ b/dom/indexedDB/test/unit/test_invalid_version.js
@@ -23,10 +23,10 @@ function testSteps()
     ok(false, "Should have thrown!");
   }
   catch (e) {
     ok(e instanceof TypeError, "Got TypeError.");
     is(e.name, "TypeError", "Good error name.");
   }
 
   finishTest();
-  yield;
+  yield undefined;
 }
--- a/dom/indexedDB/test/unit/test_key_requirements.js
+++ b/dom/indexedDB/test/unit/test_key_requirements.js
@@ -7,54 +7,54 @@ var testGenerator = testSteps();
 
 function testSteps()
 {
   const name = this.window ? window.location.pathname : "Splendid Test";
 
   let request = indexedDB.open(name, 1);
   request.onerror = errorHandler;
   request.onupgradeneeded = grabEventAndContinueHandler;
-  let event = yield;
+  let event = yield undefined;
 
   let db = event.target.result;
   db.addEventListener("error", function(event) {
     event.preventDefault();
   }, false);
 
   let objectStore = db.createObjectStore("foo", { autoIncrement: true });
 
   request = objectStore.add({});
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   let key1 = event.target.result;
 
   request = objectStore.put({}, key1);
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, key1, "put gave the same key back");
 
   let key2 = 10;
 
   request = objectStore.put({}, key2);
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, key2, "put gave the same key back");
 
   key2 = 100;
 
   request = objectStore.add({}, key2);
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, key2, "put gave the same key back");
 
   try {
     objectStore.put({});
     ok(true, "put with no key should not throw with autoIncrement!");
   }
   catch (e) {
@@ -153,38 +153,38 @@ function testSteps()
     ok(true, "remove with no key threw");
   }
 
   key1 = 10;
 
   request = objectStore.add({id:key1});
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, key1, "add gave back the same key");
 
   request = objectStore.put({id:10});
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, key1, "put gave back the same key");
 
   request = objectStore.put({id:10});
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, key1, "put gave back the same key");
 
   request = objectStore.add({id:10});
   request.addEventListener("error", new ExpectError("ConstraintError", true));
   request.onsuccess = unexpectedSuccessHandler;
-  event = yield;
+  event = yield undefined;
 
   try {
     objectStore.add({}, null);
     ok(false, "add with null key should throw!");
   }
   catch (e) {
     ok(true, "add with null key threw");
   }
@@ -214,33 +214,33 @@ function testSteps()
   }
 
   objectStore = db.createObjectStore("bazing", { keyPath: "id",
                                                  autoIncrement: true });
 
   request = objectStore.add({});
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   key1 = event.target.result;
 
   request = objectStore.put({id:key1});
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, key1, "put gave the same key back");
 
   key2 = 10;
 
   request = objectStore.put({id:key2});
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, key2, "put gave the same key back");
 
   try {
     objectStore.put({});
     ok(true, "put with no key should not throw with autoIncrement!");
   }
   catch (e) {
@@ -269,13 +269,13 @@ function testSteps()
   }
   catch (e) {
     ok(true, "add with inline key and passed key threw");
   }
 
   request = objectStore.delete(key2);
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   finishTest();
-  yield;
+  yield undefined;
 }
\ No newline at end of file
--- a/dom/indexedDB/test/unit/test_keys.js
+++ b/dom/indexedDB/test/unit/test_keys.js
@@ -11,17 +11,17 @@ function testSteps()
   const RW = "readwrite"
   let c1 = 1;
   let c2 = 1;
 
   let openRequest = indexedDB.open(dbname, 1);
   openRequest.onerror = errorHandler;
   openRequest.onupgradeneeded = grabEventAndContinueHandler;
   openRequest.onsuccess = unexpectedSuccessHandler;
-  let event = yield;
+  let event = yield undefined;
   let db = event.target.result;
   let trans = event.target.transaction;
 
   // Create test stores
   let store = db.createObjectStore("store");
 
     // Test simple inserts
   var keys = [
@@ -173,40 +173,40 @@ function testSteps()
     };
     
     // Test that -0 compares the same as 0
     if (keyI === 0) {
       doCompare(-0);
       let req = store.add(i, -0);
       req.addEventListener("error", new ExpectError("ConstraintError", true));
       req.onsuccess = unexpectedSuccessHandler;
-      yield;
+      yield undefined;
     }
     else if (Array.isArray(keyI) && keyI.length === 1 && keyI[0] === 0) {
       doCompare([-0]);
       let req = store.add(i, [-0]);
       req.addEventListener("error", new ExpectError("ConstraintError", true));
       req.onsuccess = unexpectedSuccessHandler;
-      yield;
+      yield undefined;
     }
   }
 
   store.openCursor().onsuccess = grabEventAndContinueHandler;
   for (i = 0; i < keys.length; ++i) {
-    event = yield;
+    event = yield undefined;
     let cursor = event.target.result;
     is(indexedDB.cmp(cursor.key, keys[i]), 0,
        "Read back key should cmp as equal");
     ok(compareKeys(cursor.key, keys[i]),
        "Read back key should actually be equal");
     is(cursor.value, i, "Stored with right value");
 
     cursor.continue();
   }
-  event = yield;
+  event = yield undefined;
   is(event.target.result, undefined, "no more results expected");
 
   var nan = 0/0;
   var invalidKeys = [
     nan,
     undefined,
     null,
     /x/,
@@ -257,13 +257,13 @@ function testSteps()
     catch(ex) {
       ok(ex instanceof DOMException, "Threw DOMException3");
       is(ex.name, "DataError", "Threw right DOMException3");
       is(ex.code, 0, "Threw with right code3");
     }
   }
 
   openRequest.onsuccess = grabEventAndContinueHandler;
-  yield;
+  yield undefined;
 
   finishTest();
-  yield;
+  yield undefined;
 }
--- a/dom/indexedDB/test/unit/test_lowDiskSpace.js
+++ b/dom/indexedDB/test/unit/test_lowDiskSpace.js
@@ -50,83 +50,83 @@ function testSteps()
   { // Make sure opening works from the beginning.
     info("Test 1");
 
     setLowDiskMode(false);
 
     let request = indexedDB.open(dbName, dbVersion);
     request.onerror = errorHandler;
     request.onsuccess = grabEventAndContinueHandler;
-    let event = yield;
+    let event = yield undefined;
 
     is(event.type, "success", "Opened database without setting low disk mode");
 
     let db = event.target.result;
     db.close();
   }
 
   { // Make sure delete works in low disk mode.
     info("Test 2");
 
     setLowDiskMode(true);
 
     let request = indexedDB.deleteDatabase(dbName);
     request.onerror = errorHandler;
     request.onsuccess = grabEventAndContinueHandler;
-    let event = yield;
+    let event = yield undefined;
 
     is(event.type, "success", "Deleted database after setting low disk mode");
   }
 
   { // Make sure creating a db in low disk mode fails.
     info("Test 3");
 
     setLowDiskMode(true);
 
     let request = indexedDB.open(dbName, dbVersion);
     request.onerror = expectedErrorHandler("QuotaExceededError");
     request.onupgradeneeded = unexpectedSuccessHandler;
     request.onsuccess = unexpectedSuccessHandler;
-    let event = yield;
+    let event = yield undefined;
 
     is(event.type, "error", "Didn't create new database in low disk mode");
   }
 
   { // Make sure opening an already-existing db in low disk mode succeeds.
     info("Test 4");
 
     setLowDiskMode(false);
 
     let request = indexedDB.open(dbName, dbVersion);
     request.onerror = errorHandler;
     request.onupgradeneeded = grabEventAndContinueHandler;
     request.onsuccess = unexpectedSuccessHandler;
-    let event = yield;
+    let event = yield undefined;
 
     is(event.type, "upgradeneeded", "Upgrading database");
 
     let db = event.target.result;
     db.onerror = errorHandler;
 
     request.onupgradeneeded = unexpectedSuccessHandler;
     request.onsuccess = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
     is(event.type, "success", "Created database");
     ok(event.target.result === db, "Got the same database");
 
     db.close();
 
     setLowDiskMode(true);
 
     request = indexedDB.open(dbName);
     request.onerror = errorHandler;
     request.onupgradeneeded = unexpectedSuccessHandler;
     request.onsuccess = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
     is(event.type, "success", "Opened existing database in low disk mode");
 
     db = event.target.result;
     db.close();
   }
 
   { // Make sure upgrading an already-existing db in low disk mode succeeds.
@@ -134,26 +134,26 @@ function testSteps()
 
     setLowDiskMode(true);
 
     let request = indexedDB.open(dbName, dbVersion + 1);
     request.onerror = errorHandler;
     request.onupgradeneeded = grabEventAndContinueHandler;
     request.onsuccess = unexpectedSuccessHandler;
 
-    let event = yield;
+    let event = yield undefined;
 
     is(event.type, "upgradeneeded", "Upgrading database");
 
     let db = event.target.result;
     db.onerror = errorHandler;
 
     request.onupgradeneeded = unexpectedSuccessHandler;
     request.onsuccess = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
     is(event.type, "success", "Created database");
     ok(event.target.result === db, "Got the same database");
 
     db.close();
   }
 
   { // Make sure creating objectStores in low disk mode fails.
@@ -161,129 +161,129 @@ function testSteps()
 
     setLowDiskMode(true);
 
     let request = indexedDB.open(dbName, dbVersion + 2);
     request.onerror = expectedErrorHandler("QuotaExceededError");
     request.onupgradeneeded = grabEventAndContinueHandler;
     request.onsuccess = unexpectedSuccessHandler;
 
-    let event = yield;
+    let event = yield undefined;
 
     is(event.type, "upgradeneeded", "Upgrading database");
 
     let db = event.target.result;
     db.onerror = errorHandler;
 
     let objectStore = db.createObjectStore(objectStoreName, objectStoreOptions);
 
     request.onupgradeneeded = unexpectedSuccessHandler;
-    event = yield;
+    event = yield undefined;
 
     is(event.type, "error", "Failed database upgrade");
   }
 
   { // Make sure creating indexes in low disk mode fails.
     info("Test 7");
 
     setLowDiskMode(false);
 
     let request = indexedDB.open(dbName, dbVersion + 2);
     request.onerror = errorHandler;
     request.onupgradeneeded = grabEventAndContinueHandler;
     request.onsuccess = unexpectedSuccessHandler;
 
-    let event = yield;
+    let event = yield undefined;
 
     is(event.type, "upgradeneeded", "Upgrading database");
 
     let db = event.target.result;
     db.onerror = errorHandler;
 
     let objectStore = db.createObjectStore(objectStoreName, objectStoreOptions);
 
     request.onupgradeneeded = unexpectedSuccessHandler;
     request.onsuccess = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
     is(event.type, "success", "Upgraded database");
     ok(event.target.result === db, "Got the same database");
 
     db.close();
 
     setLowDiskMode(true);
 
     request = indexedDB.open(dbName, dbVersion + 3);
     request.onerror = expectedErrorHandler("QuotaExceededError");
     request.onupgradeneeded = grabEventAndContinueHandler;
     request.onsuccess = unexpectedSuccessHandler;
-    event = yield;
+    event = yield undefined;
 
     is(event.type, "upgradeneeded", "Upgrading database");
 
     db = event.target.result;
     db.onerror = errorHandler;
 
     objectStore = event.target.transaction.objectStore(objectStoreName);
     let index = objectStore.createIndex(indexName, indexName, indexOptions);
 
     request.onupgradeneeded = unexpectedSuccessHandler;
-    event = yield;
+    event = yield undefined;
 
     is(event.type, "error", "Failed database upgrade");
   }
 
   { // Make sure deleting indexes in low disk mode succeeds.
     info("Test 8");
 
     setLowDiskMode(false);
 
     let request = indexedDB.open(dbName, dbVersion + 3);
     request.onerror = errorHandler;
     request.onupgradeneeded = grabEventAndContinueHandler;
     request.onsuccess = unexpectedSuccessHandler;
 
-    let event = yield;
+    let event = yield undefined;
 
     is(event.type, "upgradeneeded", "Upgrading database");
 
     let db = event.target.result;
     db.onerror = errorHandler;
 
     let objectStore = event.target.transaction.objectStore(objectStoreName);
     let index = objectStore.createIndex(indexName, indexName, indexOptions);
 
     request.onupgradeneeded = unexpectedSuccessHandler;
     request.onsuccess = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
     is(event.type, "success", "Upgraded database");
     ok(event.target.result === db, "Got the same database");
 
     db.close();
 
     setLowDiskMode(true);
 
     request = indexedDB.open(dbName, dbVersion + 4);
     request.onerror = errorHandler;
     request.onupgradeneeded = grabEventAndContinueHandler;
     request.onsuccess = unexpectedSuccessHandler;
-    event = yield;
+    event = yield undefined;
 
     is(event.type, "upgradeneeded", "Upgrading database");
 
     db = event.target.result;
     db.onerror = errorHandler;
 
     objectStore = event.target.transaction.objectStore(objectStoreName);
     objectStore.deleteIndex(indexName);
 
     request.onupgradeneeded = unexpectedSuccessHandler;
     request.onsuccess = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
     is(event.type, "success", "Upgraded database");
     ok(event.target.result === db, "Got the same database");
 
     db.close();
   }
 
   { // Make sure deleting objectStores in low disk mode succeeds.
@@ -291,28 +291,28 @@ function testSteps()
 
     setLowDiskMode(true);
 
     let request = indexedDB.open(dbName, dbVersion + 5);
     request.onerror = errorHandler;
     request.onupgradeneeded = grabEventAndContinueHandler;
     request.onsuccess = unexpectedSuccessHandler;
 
-    let event = yield;
+    let event = yield undefined;
 
     is(event.type, "upgradeneeded", "Upgrading database");
 
     let db = event.target.result;
     db.onerror = errorHandler;
 
     db.deleteObjectStore(objectStoreName);
 
     request.onupgradeneeded = unexpectedSuccessHandler;
     request.onsuccess = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
     is(event.type, "success", "Upgraded database");
     ok(event.target.result === db, "Got the same database");
 
     db.close();
 
     // Reset everything.
     indexedDB.deleteDatabase(dbName);
@@ -323,33 +323,33 @@ function testSteps()
     info("Adding test data");
 
     setLowDiskMode(false);
 
     let request = indexedDB.open(dbName, dbVersion);
     request.onerror = errorHandler;
     request.onupgradeneeded = grabEventAndContinueHandler;
     request.onsuccess = unexpectedSuccessHandler;
-    let event = yield;
+    let event = yield undefined;
 
     is(event.type, "upgradeneeded", "Upgrading database");
 
     let db = event.target.result;
     db.onerror = errorHandler;
 
     let objectStore = db.createObjectStore(objectStoreName, objectStoreOptions);
     let index = objectStore.createIndex(indexName, indexName, indexOptions);
 
     for each (let data in dbData) {
       objectStore.add(data);
     }
 
     request.onupgradeneeded = unexpectedSuccessHandler;
     request.onsuccess = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
     is(event.type, "success", "Upgraded database");
     ok(event.target.result === db, "Got the same database");
 
     db.close();
   }
 
   { // Make sure read operations in readonly transactions succeed in low disk
@@ -357,17 +357,17 @@ function testSteps()
     info("Test 10");
 
     setLowDiskMode(true);
 
     let request = indexedDB.open(dbName, dbVersion);
     request.onerror = errorHandler;
     request.onupgradeneeded = unexpectedSuccessHandler;
     request.onsuccess = grabEventAndContinueHandler;
-    let event = yield;
+    let event = yield undefined;
 
     let db = event.target.result;
     db.onerror = errorHandler;
 
     let transaction = db.transaction(objectStoreName);
     let objectStore = transaction.objectStore(objectStoreName);
     let index = objectStore.index(indexName);
 
@@ -428,37 +428,37 @@ function testSteps()
       else {
         is(indexKeyDataCount, dbData.length, "Saw all data");
         requestCounter.decr();
       }
     };
     requestCounter.incr();
 
     // Wait for all requests.
-    yield;
+    yield undefined;
 
     transaction.oncomplete = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
     is(event.type, "complete", "Transaction succeeded");
 
     db.close();
   }
 
   { // Make sure read operations in readwrite transactions succeed in low disk
     // mode.
     info("Test 11");
 
     setLowDiskMode(true);
 
     let request = indexedDB.open(dbName, dbVersion);
     request.onerror = errorHandler;
     request.onupgradeneeded = unexpectedSuccessHandler;
     request.onsuccess = grabEventAndContinueHandler;
-    let event = yield;
+    let event = yield undefined;
 
     let db = event.target.result;
     db.onerror = errorHandler;
 
     let transaction = db.transaction(objectStoreName, "readwrite");
     let objectStore = transaction.objectStore(objectStoreName);
     let index = objectStore.index(indexName);
 
@@ -519,37 +519,37 @@ function testSteps()
       else {
         is(indexKeyDataCount, dbData.length, "Saw all data");
         requestCounter.decr();
       }
     };
     requestCounter.incr();
 
     // Wait for all requests.
-    yield;
+    yield undefined;
 
     transaction.oncomplete = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
     is(event.type, "complete", "Transaction succeeded");
 
     db.close();
   }
 
   { // Make sure write operations in readwrite transactions fail in low disk
     // mode.
     info("Test 12");
 
     setLowDiskMode(true);
 
     let request = indexedDB.open(dbName, dbVersion);
     request.onerror = errorHandler;
     request.onupgradeneeded = unexpectedSuccessHandler;
     request.onsuccess = grabEventAndContinueHandler;
-    let event = yield;
+    let event = yield undefined;
 
     let db = event.target.result;
     db.onerror = errorHandler;
 
     let transaction = db.transaction(objectStoreName, "readwrite");
     let objectStore = transaction.objectStore(objectStoreName);
     let index = objectStore.index(indexName);
 
@@ -617,37 +617,37 @@ function testSteps()
       else {
         is(indexKeyDataCount, dbData.length, "Saw all data");
         requestCounter.decr();
       }
     };
     requestCounter.incr();
 
     // Wait for all requests.
-    yield;
+    yield undefined;
 
     transaction.oncomplete = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
     is(event.type, "complete", "Transaction succeeded");
 
     db.close();
   }
 
   { // Make sure deleting operations in readwrite transactions succeed in low
     // disk mode.
     info("Test 13");
 
     setLowDiskMode(true);
 
     let request = indexedDB.open(dbName, dbVersion);
     request.onerror = errorHandler;
     request.onupgradeneeded = unexpectedSuccessHandler;
     request.onsuccess = grabEventAndContinueHandler;
-    let event = yield;
+    let event = yield undefined;
 
     let db = event.target.result;
     db.onerror = errorHandler;
 
     let transaction = db.transaction(objectStoreName, "readwrite");
     let objectStore = transaction.objectStore(objectStoreName);
     let index = objectStore.index(indexName);
 
@@ -671,39 +671,39 @@ function testSteps()
       let cursor = event.target.result;
       if (cursor) {
         cursor.delete().onsuccess = requestCounter.handler();
       }
       requestCounter.decr();
     };
     requestCounter.incr();
 
-    yield;
+    yield undefined;
 
     objectStore.count().onsuccess = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
     is(event.target.result, dbData.length - 3, "Actually deleted something");
 
     objectStore.clear();
     objectStore.count().onsuccess = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
     is(event.target.result, 0, "Actually cleared");
 
     transaction.oncomplete = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
     is(event.type, "complete", "Transaction succeeded");
 
     db.close();
   }
 
   finishTest();
-  yield;
+  yield undefined;
 }
 
 function RequestCounter(expectedType) {
   this._counter = 0;
 }
 RequestCounter.prototype = {
   incr: function() {
     this._counter++;
--- a/dom/indexedDB/test/unit/test_multientry.js
+++ b/dom/indexedDB/test/unit/test_multientry.js
@@ -9,17 +9,17 @@ function testSteps()
 {
   // Test object stores
   
   let name = this.window ? window.location.pathname : "Splendid Test";
   let openRequest = indexedDB.open(name, 1);
   openRequest.onerror = errorHandler;
   openRequest.onupgradeneeded = grabEventAndContinueHandler;
   openRequest.onsuccess = unexpectedSuccessHandler;
-  let event = yield;
+  let event = yield undefined;
   let db = event.target.result;
   db.onerror = errorHandler;
   let tests =
     [{ add:     { x: 1, id: 1 },
        indexes:[{ v: 1, k: 1 }] },
      { add:     { x: [2, 3], id: 2 },
        indexes:[{ v: 1, k: 1 },
                 { v: 2, k: 2 },
@@ -74,39 +74,39 @@ function testSteps()
     }
     else if (test.delete) {
       req = store.delete(test.delete);
     }
     else {
       ok(false, "borked test");
     }
     req.onsuccess = grabEventAndContinueHandler;
-    let e = yield;
+    let e = yield undefined;
     
     req = index.openKeyCursor();
     req.onsuccess = grabEventAndContinueHandler;
     for (let j = 0; j < test.indexes.length; ++j) {
-      e = yield;
+      e = yield undefined;
       is(req.result.key, test.indexes[j].v, "found expected index key at index " + j + testName);
       is(req.result.primaryKey, test.indexes[j].k, "found expected index primary key at index " + j + testName);
       req.result.continue();
     }
-    e = yield;
+    e = yield undefined;
     is(req.result, undefined, "exhausted indexes");
 
     let tempIndex = store.createIndex("temp index", "x", { multiEntry: true });
     req = tempIndex.openKeyCursor();
     req.onsuccess = grabEventAndContinueHandler;
     for (let j = 0; j < test.indexes.length; ++j) {
-      e = yield;
+      e = yield undefined;
       is(req.result.key, test.indexes[j].v, "found expected temp index key at index " + j + testName);
       is(req.result.primaryKey, test.indexes[j].k, "found expected temp index primary key at index " + j + testName);
       req.result.continue();
     }
-    e = yield;
+    e = yield undefined;
     is(req.result, undefined, "exhausted temp index");
     store.deleteIndex("temp index");
   }
 
   // Unique indexes
   tests =
     [{ add:     { x: 1, id: 1 },
        indexes:[{ v: 1, k: 1 }] },
@@ -159,61 +159,61 @@ function testSteps()
       req = store.delete(test.delete);
     }
     else {
       ok(false, "borked test");
     }
     
     if (!test.fail) {
       req.onsuccess = grabEventAndContinueHandler;
-      let e = yield;
+      let e = yield undefined;
       indexes = test.indexes;
     }
     else {
       req.onsuccess = unexpectedSuccessHandler;
       req.onerror = grabEventAndContinueHandler;
       ok(true, "waiting for error");
-      let e = yield;
+      let e = yield undefined;
       ok(true, "got error: " + e.type);
       e.preventDefault();
       e.stopPropagation();
     }
 
     let e;
     req = index.openKeyCursor();
     req.onsuccess = grabEventAndContinueHandler;
     for (let j = 0; j < indexes.length; ++j) {
-      e = yield;
+      e = yield undefined;
       is(req.result.key, indexes[j].v, "found expected index key at index " + j + testName);
       is(req.result.primaryKey, indexes[j].k, "found expected index primary key at index " + j + testName);
       req.result.continue();
     }
-    e = yield;
+    e = yield undefined;
     is(req.result, undefined, "exhausted indexes");
 
     let tempIndex = store.createIndex("temp index", "x", { multiEntry: true, unique: true });
     req = tempIndex.openKeyCursor();
     req.onsuccess = grabEventAndContinueHandler;
     for (let j = 0; j < indexes.length; ++j) {
-      e = yield;
+      e = yield undefined;
       is(req.result.key, indexes[j].v, "found expected temp index key at index " + j + testName);
       is(req.result.primaryKey, indexes[j].k, "found expected temp index primary key at index " + j + testName);
       req.result.continue();
     }
-    e = yield;
+    e = yield undefined;
     is(req.result, undefined, "exhausted temp index");
     store.deleteIndex("temp index");
   }
 
 
   openRequest.onsuccess = grabEventAndContinueHandler;
-  yield;
+  yield undefined;
 
   let trans = db.transaction(["mystore"], "readwrite");
   store = trans.objectStore("mystore");
   index = store.index("myindex");
   is(index.multiEntry, true, "index still is multiEntry");
   trans.oncomplete = grabEventAndContinueHandler;
-  yield;
+  yield undefined;
 
   finishTest();
-  yield;
+  yield undefined;
 }
--- a/dom/indexedDB/test/unit/test_names_sorted.js
+++ b/dom/indexedDB/test/unit/test_names_sorted.js
@@ -16,17 +16,17 @@ function testSteps()
     { name: "foo", keyPath: "value", location: 1 },
     { name: "bar", keyPath: "value", location: 0 },
   ];
 
   let request = indexedDB.open(name, 1);
   request.onerror = errorHandler;
   request.onupgradeneeded = grabEventAndContinueHandler;
   request.onsuccess = unexpectedSuccessHandler;
-  let event = yield;
+  let event = yield undefined;
   let db = event.target.result;
 
   for (let i = 0; i < objectStoreInfo.length; i++) {
     let info = objectStoreInfo[i];
     let objectStore = info.hasOwnProperty("options") ?
                       db.createObjectStore(info.name, info.options) :
                       db.createObjectStore(info.name);
 
@@ -40,17 +40,17 @@ function testSteps()
                                           info.options) :
                   objectStore.createIndex(info.name, info.keyPath);
     }
   }
 
   request.onsuccess = grabEventAndContinueHandler;
   request.onupgradeneeded = unexpectedSuccessHandler;
 
-  event = yield;
+  event = yield undefined;
 
   let objectStoreNames = []
   for (let i = 0; i < objectStoreInfo.length; i++) {
     let info = objectStoreInfo[i];
     objectStoreNames.push(info.name);
 
     is(db.objectStoreNames[info.location], info.name,
        "Got objectStore name in the right location");
@@ -73,17 +73,17 @@ function testSteps()
   }
 
   db.close();
 
   let request = indexedDB.open(name, 1);
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
   request.onupgradeneeded = unexpectedSuccessHandler;
-  let event = yield;
+  let event = yield undefined;
 
   let db = event.target.result;
 
   let objectStoreNames = []
   for (let i = 0; i < objectStoreInfo.length; i++) {
     let info = objectStoreInfo[i];
     objectStoreNames.push(info.name);
 
@@ -105,10 +105,10 @@ function testSteps()
   
     is(trans.objectStoreNames[info.location], info.name,
        "Got objectStore name in the right location");
   }
 
   db.close();
 
   finishTest();
-  yield;
+  yield undefined;
 }
--- a/dom/indexedDB/test/unit/test_objectCursors.js
+++ b/dom/indexedDB/test/unit/test_objectCursors.js
@@ -19,17 +19,17 @@ function testSteps()
     { name: "b", options: { unique: true } }
   ];
 
   var j = 0;
   for (let i in objectStores) {
     let request = indexedDB.open(name, ++j);
     request.onerror = errorHandler;
     request.onupgradeneeded = grabEventAndContinueHandler;
-    let event = yield;
+    let event = yield undefined;
 
     let db = event.target.result;
 
     let objectStore =
       db.createObjectStore(objectStores[i].name,
                            { keyPath: "id",
                              autoIncrement: objectStores[i].autoIncrement });
 
@@ -40,44 +40,44 @@ function testSteps()
     let data = { name: "Ben" };
     if (!objectStores[i].autoIncrement) {
       data.id = 1;
     }
 
     request = objectStore.add(data);
     request.onerror = errorHandler;
     request.onsuccess = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
     ok(event.target.result == 1 || event.target.result == 2, "Good id");
     db.close();
   }
 
   executeSoon(function() { testGenerator.next(); });
-  yield;
+  yield undefined;
 
   let request = indexedDB.open(name, j);
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  let event = yield;
+  let event = yield undefined;
 
   let db = event.target.result;
 
   for (let i in objectStores) {
     for (let j in indexes) {
       let objectStore = db.transaction(objectStores[i].name)
                           .objectStore(objectStores[i].name);
       let index = objectStore.index(indexes[j].name);
 
       request = index.openCursor();
       request.onerror = errorHandler;
       request.onsuccess = function (event) {
         is(event.target.result.value.name, "Ben", "Good object");
         executeSoon(function() { testGenerator.next(); });
       }
-      yield;
+      yield undefined;
     }
   }
 
   finishTest();
-  yield;
+  yield undefined;
 }
 
--- a/dom/indexedDB/test/unit/test_objectStore_inline_autoincrement_key_added_on_put.js
+++ b/dom/indexedDB/test/unit/test_objectStore_inline_autoincrement_key_added_on_put.js
@@ -8,17 +8,17 @@ var testGenerator = testSteps();
 function testSteps()
 {
   const IDBObjectStore = Components.interfaces.nsIIDBObjectStore;
   const name = this.window ? window.location.pathname : "Splendid Test";
 
   var request = indexedDB.open(name, 1);
   request.onerror = errorHandler;
   request.onupgradeneeded = grabEventAndContinueHandler;
-  var event = yield;
+  var event = yield undefined;
 
   var db = event.target.result;
 
   var test = {
     name: "inline key; key generator",
     autoIncrement: true,
     storedObject: {name: "Lincoln"},
     keyName: "id",
@@ -26,27 +26,27 @@ function testSteps()
 
   let objectStore = db.createObjectStore(test.name,
                                          { keyPath: test.keyName,
                                            autoIncrement: test.autoIncrement });
 
   request = objectStore.add(test.storedObject);
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   let id = event.target.result;
   request = objectStore.get(id);
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   // Sanity check!
   is(event.target.result.name, test.storedObject.name,
      "The correct object was stored.");
 
   // Ensure that the id was also stored on the object.
   is(event.target.result.id, id, "The object had the id stored on it.");
 
   finishTest();
-  yield;
+  yield undefined;
 }
 
--- a/dom/indexedDB/test/unit/test_objectStore_remove_values.js
+++ b/dom/indexedDB/test/unit/test_objectStore_remove_values.js
@@ -38,50 +38,50 @@ function testSteps()
   ];
 
   for (let i = 0; i < data.length; i++) {
     let test = data[i];
 
     let request = indexedDB.open(name, i+1);
     request.onerror = errorHandler;
     request.onupgradeneeded = grabEventAndContinueHandler;
-    let event = yield;
+    let event = yield undefined;
 
     let db = event.target.result;
 
     let objectStore = db.createObjectStore(test.name,
                                            { keyPath: test.keyName,
                                              autoIncrement: test.autoIncrement });
 
     request = objectStore.add(test.storedObject, test.keyValue);
     request.onerror = errorHandler;
     request.onsuccess = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
     let id = event.target.result;
     request = objectStore.get(id);
     request.onerror = errorHandler;
     request.onsuccess = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
     // Sanity check!
     is(test.storedObject.name, event.target.result.name,
                   "The correct object was stored.");
 
     request = objectStore.delete(id);
     request.onerror = errorHandler;
     request.onsuccess = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
     // Make sure it was removed.
     request = objectStore.get(id);
     request.onerror = errorHandler;
     request.onsuccess = grabEventAndContinueHandler;
-    event = yield;
+    event = yield undefined;
 
     ok(event.target.result === undefined, "Object was deleted");
     db.close();
   }
 
   finishTest();
-  yield;
+  yield undefined;
 }
 
--- a/dom/indexedDB/test/unit/test_object_identity.js
+++ b/dom/indexedDB/test/unit/test_object_identity.js
@@ -5,31 +5,31 @@
 
 var testGenerator = testSteps();
 
 function testSteps()
 {
   let request = indexedDB.open(this.window ? window.location.pathname : "Splendid Test", 1);
   request.onerror = errorHandler;
   request.onupgradeneeded = grabEventAndContinueHandler;
-  let event = yield;
+  let event = yield undefined;
 
   let db = event.target.result;
   let transaction = event.target.transaction;
 
   let objectStore1 = db.createObjectStore("foo");
   let objectStore2 = transaction.objectStore("foo");
   ok(objectStore1 === objectStore2, "Got same objectStores");
 
   let index1 = objectStore1.createIndex("bar", "key");
   let index2 = objectStore2.index("bar");
   ok(index1 === index2, "Got same indexes");
 
   request.onsuccess = continueToNextStep;
-  yield;
+  yield undefined;
 
   transaction = db.transaction(db.objectStoreNames);
 
   let objectStore3 = transaction.objectStore("foo");
   let objectStore4 = transaction.objectStore("foo");
   ok(objectStore3 === objectStore4, "Got same objectStores");
 
   ok(objectStore3 !== objectStore1, "Different objectStores");
@@ -38,11 +38,11 @@ function testSteps()
   let index3 = objectStore3.index("bar");
   let index4 = objectStore4.index("bar");
   ok(index3 === index4, "Got same indexes");
 
   ok(index3 !== index1, "Different indexes");
   ok(index4 !== index2, "Different indexes");
 
   finishTest();
-  yield;
+  yield undefined;
 }
 
--- a/dom/indexedDB/test/unit/test_odd_result_order.js
+++ b/dom/indexedDB/test/unit/test_odd_result_order.js
@@ -7,70 +7,70 @@ var testGenerator = testSteps();
 
 function testSteps()
 {
   const data = { key: 5, index: 10 };
 
   let request = indexedDB.open(this.window ? window.location.pathname : "Splendid Test", 1);
   request.onerror = errorHandler;
   request.onupgradeneeded = grabEventAndContinueHandler;
-  let event = yield;
+  let event = yield undefined;
 
   let db = event.target.result;
 
   ok(db instanceof IDBDatabase, "Got a real database");
 
   db.onerror = errorHandler;
 
   let objectStore = db.createObjectStore("foo", { keyPath: "key",
                                                   autoIncrement: true });
   let index = objectStore.createIndex("foo", "index");
 
   event.target.onsuccess = continueToNextStep;
-  yield;
+  yield undefined;
 
   objectStore = db.transaction("foo", "readwrite")
                   .objectStore("foo");
   request = objectStore.add(data);
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   let key;
   executeSoon(function() {
     key = request.result;
     continueToNextStep();
   });
-  yield;
+  yield undefined;
 
   is(key, data.key, "Got the right key");
 
   objectStore = db.transaction("foo").objectStore("foo");
   objectStore.get(data.key).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   let obj;
   executeSoon(function() {
     obj = event.target.result;
     continueToNextStep();
   });
-  yield;
+  yield undefined;
 
   is(obj.key, data.key, "Got the right key");
   is(obj.index, data.index, "Got the right property value");
 
   objectStore = db.transaction("foo", "readwrite")
                   .objectStore("foo");
   request = objectStore.delete(data.key);
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   key = undefined;
   executeSoon(function() {
     key = request.result;
     continueToNextStep();
   }, 0);
-  yield;
+  yield undefined;
 
   ok(key === undefined, "Got the right value");
 
   finishTest();
-  yield;
+  yield undefined;
 }
--- a/dom/indexedDB/test/unit/test_open_empty_db.js
+++ b/dom/indexedDB/test/unit/test_open_empty_db.js
@@ -15,17 +15,17 @@ function testSteps()
   ];
 
   const version = 1;
 
   for each (let name in names) {
     let request = indexedDB.open(name, version);
     request.onerror = errorHandler;
     request.onsuccess = grabEventAndContinueHandler;
-    let event = yield;
+    let event = yield undefined;
 
     if (name === null) {
       name = "null";
     }
     else if (name === undefined) {
       name = "undefined";
     }
 
@@ -36,11 +36,11 @@ function testSteps()
 
     is(db.name, request.result.name, "Bad name");
     is(db.version, request.result.version, "Bad version");
     is(db.objectStoreNames.length, request.result.objectStoreNames.length,
        "Bad objectStores list");
   }
 
   finishTest();
-  yield;
+  yield undefined;
 }
 
--- a/dom/indexedDB/test/unit/test_open_for_principal.js
+++ b/dom/indexedDB/test/unit/test_open_for_principal.js
@@ -12,79 +12,79 @@ function testSteps()
   const objectStoreName = "Foo";
 
   const data = { key: 1, value: "bar" };
 
   let request = indexedDB.open(name, 1);
   request.onerror = errorHandler;
   request.onupgradeneeded = grabEventAndContinueHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  let event = yield;
+  let event = yield undefined;
 
   is(event.type, "upgradeneeded", "Got correct event type");
 
   let db = event.target.result;
   db.onerror = errorHandler;
 
   let objectStore = db.createObjectStore(objectStoreName, { });
 
-  event = yield;
+  event = yield undefined;
 
   is(event.type, "success", "Got correct event type");
 
   objectStore = db.transaction([objectStoreName], "readwrite")
                   .objectStore(objectStoreName);
 
   request = objectStore.get(data.key);
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, null, "Got no data");
 
   request = objectStore.add(data.value, data.key);
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, data.key, "Got correct key");
 
   let uri = Components.classes["@mozilla.org/network/io-service;1"]
                       .getService(Components.interfaces.nsIIOService)
                       .newURI("http://appdata.example.com", null, null);
   let principal = Components.classes["@mozilla.org/scriptsecuritymanager;1"]
                      .getService(Components.interfaces.nsIScriptSecurityManager)
                      .getNoAppCodebasePrincipal(uri);
 
   request = indexedDB.openForPrincipal(principal, name, 1);
   request.onerror = errorHandler;
   request.onupgradeneeded = grabEventAndContinueHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  let event = yield;
+  let event = yield undefined;
 
   is(event.type, "upgradeneeded", "Got correct event type");
 
   db = event.target.result;
   db.onerror = errorHandler;
 
   objectStore = db.createObjectStore(objectStoreName, { });
 
-  event = yield;
+  event = yield undefined;
 
   is(event.type, "success", "Got correct event type");
 
   objectStore = db.transaction([objectStoreName])
                   .objectStore(objectStoreName);
 
   request = objectStore.get(data.key);
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, null, "Got no data");
 
   db.close();
 
   request = indexedDB.deleteForPrincipal(principal, name);
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler
-  event = yield;
+  event = yield undefined;
 
   finishTest();
-  yield;
+  yield undefined;
 }
--- a/dom/indexedDB/test/unit/test_open_objectStore.js
+++ b/dom/indexedDB/test/unit/test_open_objectStore.js
@@ -10,31 +10,31 @@ function testSteps()
   const nsIIDBObjectStore = Components.interfaces.nsIIDBObjectStore;
   const name = this.window ? window.location.pathname : "Splendid Test";
   const objectStoreName = "Objects";
 
   let request = indexedDB.open(name, 1);
   request.onerror = errorHandler;
   request.onupgradeneeded = grabEventAndContinueHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  let event = yield;
+  let event = yield undefined;
 
   let db = event.target.result;
   is(db.objectStoreNames.length, 0, "Bad objectStores list");
 
   let objectStore = db.createObjectStore(objectStoreName,
                                          { keyPath: "foo" });
 
   is(db.objectStoreNames.length, 1, "Bad objectStores list");
   is(db.objectStoreNames.item(0), objectStoreName, "Bad name");
 
-  yield;
+  yield undefined;
 
   objectStore = db.transaction(objectStoreName).objectStore(objectStoreName);
 
   is(objectStore.name, objectStoreName, "Bad name");
   is(objectStore.keyPath, "foo", "Bad keyPath");
   if(objectStore.indexNames.length, 0, "Bad indexNames");
 
   finishTest();
-  yield;
+  yield undefined;
 }
 
--- a/dom/indexedDB/test/unit/test_optionalArguments.js
+++ b/dom/indexedDB/test/unit/test_optionalArguments.js
@@ -22,31 +22,31 @@ function testSteps()
   ];
 
   const weightSort = [1, 0, 3, 7, 4, 2];
 
   let request = indexedDB.open(this.window ? window.location.pathname : "Splendid Test", 1);
   request.onerror = errorHandler;
   request.onupgradeneeded = grabEventAndContinueHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  let event = yield;
+  let event = yield undefined;
 
   is(event.type, "upgradeneeded", "Got upgradeneeded event");
 
   let db = event.target.result;
   db.onerror = errorHandler;
 
   let objectStore = db.createObjectStore(osName, { keyPath: "ssn" });
   objectStore.createIndex(indexName, "weight", { unique: false });
 
   for each (let i in data) {
     objectStore.add(i);
   }
 
-  event = yield;
+  event = yield undefined;
 
   is(event.type, "success", "Got success event");
 
   try {
     IDBKeyRange.bound(1, -1);
     ok(false, "Bound keyRange with backwards args should throw!");
   }
   catch (e) {
@@ -105,59 +105,59 @@ function testSteps()
   catch(e) {
     is(e instanceof DOMException, true,
        "Got right kind of exception");
     is(e.name, "DataError", "Correct error.");
     is(e.code, 0, "Correct code.");
   }
 
   objectStore.get(data[2].ssn).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result.name, data[2].name, "Correct data");
 
   let keyRange = IDBKeyRange.only(data[2].ssn);
 
   objectStore.get(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result.name, data[2].name, "Correct data");
 
   keyRange = IDBKeyRange.lowerBound(data[2].ssn);
 
   objectStore.get(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result.name, data[2].name, "Correct data");
 
   keyRange = IDBKeyRange.lowerBound(data[2].ssn, true);
 
   objectStore.get(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result.name, data[3].name, "Correct data");
 
   keyRange = IDBKeyRange.upperBound(data[2].ssn);
 
   objectStore.get(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result.name, data[0].name, "Correct data");
 
   keyRange = IDBKeyRange.bound(data[2].ssn, data[4].ssn);
 
   objectStore.get(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result.name, data[2].name, "Correct data");
 
   keyRange = IDBKeyRange.bound(data[2].ssn, data[4].ssn, true);
 
   objectStore.get(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result.name, data[3].name, "Correct data");
 
   objectStore = db.transaction(osName, "readwrite")
                   .objectStore(osName);
 
   try {
     objectStore.delete();
@@ -182,146 +182,146 @@ function testSteps()
   catch(e) {
     is(e instanceof DOMException, true,
        "Got right kind of exception");
     is(e.name, "DataError", "Correct error.");
     is(e.code, 0, "Correct code.");
   }
 
   objectStore.count().onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, data.length, "Correct count");
 
   objectStore.delete(data[2].ssn).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   ok(event.target.result === undefined, "Correct result");
 
   objectStore.count().onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, data.length - 1, "Correct count");
 
   keyRange = IDBKeyRange.bound(data[3].ssn, data[5].ssn);
 
   objectStore.delete(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   ok(event.target.result === undefined, "Correct result");
 
   objectStore.count().onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, data.length - 4, "Correct count");
 
   keyRange = IDBKeyRange.lowerBound(10);
 
   objectStore.delete(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   ok(event.target.result === undefined, "Correct result");
 
   objectStore.count().onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, 0, "Correct count");
 
   event.target.transaction.oncomplete = grabEventAndContinueHandler;
 
   for each (let i in data) {
     objectStore.add(i);
   }
 
-  yield;
+  yield undefined;
 
   objectStore = db.transaction(osName).objectStore(osName);
 
   objectStore.count().onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, data.length, "Correct count");
 
   let count = 0;
 
   objectStore.openCursor().onsuccess = function(event) {
     let cursor = event.target.result;
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, data.length, "Correct count for no arg to openCursor");
 
   count = 0;
 
   objectStore.openCursor(null).onsuccess = function(event) {
     let cursor = event.target.result;
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, data.length, "Correct count for null arg to openCursor");
 
   count = 0;
 
   objectStore.openCursor(undefined).onsuccess = function(event) {
     let cursor = event.target.result;
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, data.length, "Correct count for undefined arg to openCursor");
 
   count = 0;
 
   objectStore.openCursor(data[2].ssn).onsuccess = function(event) {
     let cursor = event.target.result;
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, 1, "Correct count for single key arg to openCursor");
 
   count = 0;
 
   objectStore.openCursor("foo").onsuccess = function(event) {
     let cursor = event.target.result;
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, 0,
      "Correct count for non-existent single key arg to openCursor");
 
   count = 0;
   keyRange = IDBKeyRange.only(data[2].ssn);
 
   objectStore.openCursor(keyRange).onsuccess = function(event) {
@@ -329,34 +329,34 @@ function testSteps()
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, 1, "Correct count for only keyRange arg to openCursor");
 
   count = 0;
   keyRange = IDBKeyRange.lowerBound(data[2].ssn);
 
   objectStore.openCursor(keyRange).onsuccess = function(event) {
     let cursor = event.target.result;
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, data.length - 2,
      "Correct count for lowerBound arg to openCursor");
 
   count = 0;
   keyRange = IDBKeyRange.lowerBound(data[2].ssn, true);
 
   objectStore.openCursor(keyRange).onsuccess = function(event) {
@@ -364,17 +364,17 @@ function testSteps()
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, data.length - 3,
      "Correct count for lowerBound arg to openCursor");
 
   count = 0;
   keyRange = IDBKeyRange.lowerBound("foo");
 
   objectStore.openCursor(keyRange).onsuccess = function(event) {
@@ -382,17 +382,17 @@ function testSteps()
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, 0,
      "Correct count for non-existent lowerBound arg to openCursor");
 
   count = 0;
   keyRange = IDBKeyRange.bound(data[2].ssn, data[3].ssn);
 
   objectStore.openCursor(keyRange).onsuccess = function(event) {
@@ -400,51 +400,51 @@ function testSteps()
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, 2, "Correct count for bound arg to openCursor");
 
   count = 0;
   keyRange = IDBKeyRange.bound(data[2].ssn, data[3].ssn, true);
 
   objectStore.openCursor(keyRange).onsuccess = function(event) {
     let cursor = event.target.result;
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, 1, "Correct count for bound arg to openCursor");
 
   count = 0;
   keyRange = IDBKeyRange.bound(data[2].ssn, data[3].ssn, true, true);
 
   objectStore.openCursor(keyRange).onsuccess = function(event) {
     let cursor = event.target.result;
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, 0, "Correct count for bound arg to openCursor");
 
   let index = objectStore.index(indexName);
 
   count = 0;
 
   index.openKeyCursor().onsuccess = function(event) {
@@ -452,84 +452,84 @@ function testSteps()
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, weightSort.length,
      "Correct count for unspecified arg to index.openKeyCursor");
 
   count = 0;
 
   index.openKeyCursor(null).onsuccess = function(event) {
     let cursor = event.target.result;
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, weightSort.length,
      "Correct count for null arg to index.openKeyCursor");
 
   count = 0;
 
   index.openKeyCursor(undefined).onsuccess = function(event) {
     let cursor = event.target.result;
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, weightSort.length,
      "Correct count for undefined arg to index.openKeyCursor");
 
   count = 0;
 
   index.openKeyCursor(data[0].weight).onsuccess = function(event) {
     let cursor = event.target.result;
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, 1, "Correct count for single key arg to index.openKeyCursor");
 
   count = 0;
 
   index.openKeyCursor("foo").onsuccess = function(event) {
     let cursor = event.target.result;
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, 0,
      "Correct count for non-existent key arg to index.openKeyCursor");
 
   count = 0;
   keyRange = IDBKeyRange.only("foo");
 
   index.openKeyCursor(keyRange).onsuccess = function(event) {
@@ -537,17 +537,17 @@ function testSteps()
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, 0,
      "Correct count for non-existent keyRange arg to index.openKeyCursor");
 
   count = 0;
   keyRange = IDBKeyRange.only(data[0].weight);
 
   index.openKeyCursor(keyRange).onsuccess = function(event) {
@@ -555,17 +555,17 @@ function testSteps()
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, 1,
      "Correct count for only keyRange arg to index.openKeyCursor");
 
   count = 0;
   keyRange = IDBKeyRange.lowerBound(data[weightSort[0]].weight);
 
   index.openKeyCursor(keyRange).onsuccess = function(event) {
@@ -573,17 +573,17 @@ function testSteps()
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, weightSort.length,
      "Correct count for lowerBound keyRange arg to index.openKeyCursor");
 
   count = 0;
   keyRange = IDBKeyRange.lowerBound(data[weightSort[0]].weight, true);
 
   index.openKeyCursor(keyRange).onsuccess = function(event) {
@@ -591,17 +591,17 @@ function testSteps()
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, weightSort.length - 1,
      "Correct count for lowerBound keyRange arg to index.openKeyCursor");
 
   count = 0;
   keyRange = IDBKeyRange.lowerBound("foo");
 
   index.openKeyCursor(keyRange).onsuccess = function(event) {
@@ -609,17 +609,17 @@ function testSteps()
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, 0,
      "Correct count for lowerBound keyRange arg to index.openKeyCursor");
 
   count = 0;
   keyRange = IDBKeyRange.upperBound(data[weightSort[0]].weight);
 
   index.openKeyCursor(keyRange).onsuccess = function(event) {
@@ -627,17 +627,17 @@ function testSteps()
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, 1,
      "Correct count for upperBound keyRange arg to index.openKeyCursor");
 
   count = 0;
   keyRange = IDBKeyRange.upperBound(data[weightSort[0]].weight, true);
 
   index.openKeyCursor(keyRange).onsuccess = function(event) {
@@ -645,17 +645,17 @@ function testSteps()
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, 0,
      "Correct count for upperBound keyRange arg to index.openKeyCursor");
 
   count = 0;
   keyRange = IDBKeyRange.upperBound(data[weightSort[weightSort.length - 1]].weight);
 
   index.openKeyCursor(keyRange).onsuccess = function(event) {
@@ -663,17 +663,17 @@ function testSteps()
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, weightSort.length,
      "Correct count for upperBound keyRange arg to index.openKeyCursor");
 
   count = 0;
   keyRange = IDBKeyRange.upperBound(data[weightSort[weightSort.length - 1]].weight,
                                     true);
 
@@ -682,17 +682,17 @@ function testSteps()
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, weightSort.length - 1,
      "Correct count for upperBound keyRange arg to index.openKeyCursor");
 
   count = 0;
   keyRange = IDBKeyRange.upperBound("foo");
 
   index.openKeyCursor(keyRange).onsuccess = function(event) {
@@ -700,17 +700,17 @@ function testSteps()
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, weightSort.length,
      "Correct count for upperBound keyRange arg to index.openKeyCursor");
 
   count = 0;
   keyRange = IDBKeyRange.upperBound(0);
 
   index.openKeyCursor(keyRange).onsuccess = function(event) {
@@ -718,17 +718,17 @@ function testSteps()
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, 0,
      "Correct count for upperBound keyRange arg to index.openKeyCursor");
 
   count = 0;
   keyRange = IDBKeyRange.bound(data[weightSort[0]].weight,
                                data[weightSort[weightSort.length - 1]].weight);
 
@@ -737,17 +737,17 @@ function testSteps()
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, weightSort.length,
      "Correct count for bound keyRange arg to index.openKeyCursor");
 
   count = 0;
   keyRange = IDBKeyRange.bound(data[weightSort[0]].weight,
                                data[weightSort[weightSort.length - 1]].weight,
                                true);
@@ -757,17 +757,17 @@ function testSteps()
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, weightSort.length - 1,
      "Correct count for bound keyRange arg to index.openKeyCursor");
 
   count = 0;
   keyRange = IDBKeyRange.bound(data[weightSort[0]].weight,
                                data[weightSort[weightSort.length - 1]].weight,
                                true, true);
@@ -777,17 +777,17 @@ function testSteps()
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, weightSort.length - 2,
      "Correct count for bound keyRange arg to index.openKeyCursor");
 
   count = 0;
   keyRange = IDBKeyRange.bound(data[weightSort[0]].weight - 1,
                                data[weightSort[weightSort.length - 1]].weight + 1);
 
@@ -796,17 +796,17 @@ function testSteps()
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, weightSort.length,
      "Correct count for bound keyRange arg to index.openKeyCursor");
 
   count = 0;
   keyRange = IDBKeyRange.bound(data[weightSort[0]].weight - 2,
                                data[weightSort[0]].weight - 1);
 
@@ -815,17 +815,17 @@ function testSteps()
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, 0,
      "Correct count for bound keyRange arg to index.openKeyCursor");
 
   count = 0;
   keyRange = IDBKeyRange.bound(data[weightSort[1]].weight,
                                data[weightSort[2]].weight);
 
@@ -834,101 +834,101 @@ function testSteps()
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, 3,
      "Correct count for bound keyRange arg to index.openKeyCursor");
 
   count = 0;
 
   index.openCursor().onsuccess = function(event) {
     let cursor = event.target.result;
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, weightSort.length,
      "Correct count for unspecified arg to index.openCursor");
 
   count = 0;
 
   index.openCursor(null).onsuccess = function(event) {
     let cursor = event.target.result;
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, weightSort.length,
      "Correct count for null arg to index.openCursor");
 
   count = 0;
 
   index.openCursor(undefined).onsuccess = function(event) {
     let cursor = event.target.result;
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, weightSort.length,
      "Correct count for undefined arg to index.openCursor");
 
   count = 0;
 
   index.openCursor(data[0].weight).onsuccess = function(event) {
     let cursor = event.target.result;
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, 1, "Correct count for single key arg to index.openCursor");
 
   count = 0;
 
   index.openCursor("foo").onsuccess = function(event) {
     let cursor = event.target.result;
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, 0,
      "Correct count for non-existent key arg to index.openCursor");
 
   count = 0;
   keyRange = IDBKeyRange.only("foo");
 
   index.openCursor(keyRange).onsuccess = function(event) {
@@ -936,17 +936,17 @@ function testSteps()
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, 0,
      "Correct count for non-existent keyRange arg to index.openCursor");
 
   count = 0;
   keyRange = IDBKeyRange.only(data[0].weight);
 
   index.openCursor(keyRange).onsuccess = function(event) {
@@ -954,17 +954,17 @@ function testSteps()
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, 1,
      "Correct count for only keyRange arg to index.openCursor");
 
   count = 0;
   keyRange = IDBKeyRange.lowerBound(data[weightSort[0]].weight);
 
   index.openCursor(keyRange).onsuccess = function(event) {
@@ -972,17 +972,17 @@ function testSteps()
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, weightSort.length,
      "Correct count for lowerBound keyRange arg to index.openCursor");
 
   count = 0;
   keyRange = IDBKeyRange.lowerBound(data[weightSort[0]].weight, true);
 
   index.openCursor(keyRange).onsuccess = function(event) {
@@ -990,17 +990,17 @@ function testSteps()
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, weightSort.length - 1,
      "Correct count for lowerBound keyRange arg to index.openCursor");
 
   count = 0;
   keyRange = IDBKeyRange.lowerBound("foo");
 
   index.openCursor(keyRange).onsuccess = function(event) {
@@ -1008,17 +1008,17 @@ function testSteps()
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, 0,
      "Correct count for lowerBound keyRange arg to index.openCursor");
 
   count = 0;
   keyRange = IDBKeyRange.upperBound(data[weightSort[0]].weight);
 
   index.openCursor(keyRange).onsuccess = function(event) {
@@ -1026,17 +1026,17 @@ function testSteps()
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, 1,
      "Correct count for upperBound keyRange arg to index.openCursor");
 
   count = 0;
   keyRange = IDBKeyRange.upperBound(data[weightSort[0]].weight, true);
 
   index.openCursor(keyRange).onsuccess = function(event) {
@@ -1044,17 +1044,17 @@ function testSteps()
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, 0,
      "Correct count for upperBound keyRange arg to index.openCursor");
 
   count = 0;
   keyRange = IDBKeyRange.upperBound(data[weightSort[weightSort.length - 1]].weight);
 
   index.openCursor(keyRange).onsuccess = function(event) {
@@ -1062,17 +1062,17 @@ function testSteps()
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, weightSort.length,
      "Correct count for upperBound keyRange arg to index.openCursor");
 
   count = 0;
   keyRange = IDBKeyRange.upperBound(data[weightSort[weightSort.length - 1]].weight,
                                     true);
 
@@ -1081,17 +1081,17 @@ function testSteps()
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, weightSort.length - 1,
      "Correct count for upperBound keyRange arg to index.openCursor");
 
   count = 0;
   keyRange = IDBKeyRange.upperBound("foo");
 
   index.openCursor(keyRange).onsuccess = function(event) {
@@ -1099,17 +1099,17 @@ function testSteps()
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, weightSort.length,
      "Correct count for upperBound keyRange arg to index.openCursor");
 
   count = 0;
   keyRange = IDBKeyRange.upperBound(0);
 
   index.openCursor(keyRange).onsuccess = function(event) {
@@ -1117,17 +1117,17 @@ function testSteps()
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, 0,
      "Correct count for upperBound keyRange arg to index.openCursor");
 
   count = 0;
   keyRange = IDBKeyRange.bound(data[weightSort[0]].weight,
                                data[weightSort[weightSort.length - 1]].weight);
 
@@ -1136,17 +1136,17 @@ function testSteps()
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, weightSort.length,
      "Correct count for bound keyRange arg to index.openCursor");
 
   count = 0;
   keyRange = IDBKeyRange.bound(data[weightSort[0]].weight,
                                data[weightSort[weightSort.length - 1]].weight,
                                true);
@@ -1156,17 +1156,17 @@ function testSteps()
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, weightSort.length - 1,
      "Correct count for bound keyRange arg to index.openCursor");
 
   count = 0;
   keyRange = IDBKeyRange.bound(data[weightSort[0]].weight,
                                data[weightSort[weightSort.length - 1]].weight,
                                true, true);
@@ -1176,17 +1176,17 @@ function testSteps()
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, weightSort.length - 2,
      "Correct count for bound keyRange arg to index.openCursor");
 
   count = 0;
   keyRange = IDBKeyRange.bound(data[weightSort[0]].weight - 1,
                                data[weightSort[weightSort.length - 1]].weight + 1);
 
@@ -1195,17 +1195,17 @@ function testSteps()
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, weightSort.length,
      "Correct count for bound keyRange arg to index.openCursor");
 
   count = 0;
   keyRange = IDBKeyRange.bound(data[weightSort[0]].weight - 2,
                                data[weightSort[0]].weight - 1);
 
@@ -1214,17 +1214,17 @@ function testSteps()
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, 0,
      "Correct count for bound keyRange arg to index.openCursor");
 
   count = 0;
   keyRange = IDBKeyRange.bound(data[weightSort[1]].weight,
                                data[weightSort[2]].weight);
 
@@ -1233,17 +1233,17 @@ function testSteps()
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, 3,
      "Correct count for bound keyRange arg to index.openCursor");
 
   try {
     index.get();
     ok(false, "Get with unspecified arg should have thrown");
   }
@@ -1266,97 +1266,97 @@ function testSteps()
   catch(e) {
     is(e instanceof DOMException, true,
        "Got right kind of exception");
     is(e.name, "DataError", "Correct error.");
     is(e.code, 0, "Correct code.");
   }
 
   index.get(data[0].weight).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result.weight, data[0].weight, "Got correct result");
 
   keyRange = IDBKeyRange.only(data[0].weight);
 
   index.get(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result.weight, data[0].weight, "Got correct result");
 
   keyRange = IDBKeyRange.lowerBound(data[weightSort[0]].weight);
 
   index.get(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result.weight, data[weightSort[0]].weight,
      "Got correct result");
 
   keyRange = IDBKeyRange.lowerBound(data[weightSort[0]].weight - 1);
 
   index.get(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result.weight, data[weightSort[0]].weight,
      "Got correct result");
 
   keyRange = IDBKeyRange.lowerBound(data[weightSort[0]].weight + 1);
 
   index.get(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result.weight, data[weightSort[1]].weight,
      "Got correct result");
 
   keyRange = IDBKeyRange.lowerBound(data[weightSort[0]].weight, true);
 
   index.get(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result.weight, data[weightSort[1]].weight,
      "Got correct result");
 
   keyRange = IDBKeyRange.bound(data[weightSort[0]].weight,
                                data[weightSort[1]].weight);
 
   index.get(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result.weight, data[weightSort[0]].weight,
      "Got correct result");
 
   keyRange = IDBKeyRange.bound(data[weightSort[0]].weight,
                                data[weightSort[1]].weight, true);
 
   index.get(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result.weight, data[weightSort[1]].weight,
      "Got correct result");
 
   keyRange = IDBKeyRange.bound(data[weightSort[0]].weight,
                                data[weightSort[1]].weight, true, true);
 
   index.get(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, undefined, "Got correct result");
 
   keyRange = IDBKeyRange.upperBound(data[weightSort[5]].weight);
 
   index.get(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result.weight, data[weightSort[0]].weight,
      "Got correct result");
 
   keyRange = IDBKeyRange.upperBound(data[weightSort[0]].weight, true);
 
   index.get(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, undefined, "Got correct result");
 
   try {
     index.getKey();
     ok(false, "Get with unspecified arg should have thrown");
   }
   catch(e) {
@@ -1378,173 +1378,173 @@ function testSteps()
   catch(e) {
     is(e instanceof DOMException, true,
        "Got right kind of exception");
     is(e.name, "DataError", "Correct error.");
     is(e.code, 0, "Correct code.");
   }
 
   index.getKey(data[0].weight).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, data[0].ssn, "Got correct result");
 
   keyRange = IDBKeyRange.only(data[0].weight);
 
   index.getKey(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, data[0].ssn, "Got correct result");
 
   keyRange = IDBKeyRange.lowerBound(data[weightSort[0]].weight);
 
   index.getKey(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, data[weightSort[0]].ssn, "Got correct result");
 
   keyRange = IDBKeyRange.lowerBound(data[weightSort[0]].weight - 1);
 
   index.getKey(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, data[weightSort[0]].ssn, "Got correct result");
 
   keyRange = IDBKeyRange.lowerBound(data[weightSort[0]].weight + 1);
 
   index.getKey(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, data[weightSort[1]].ssn, "Got correct result");
 
   keyRange = IDBKeyRange.lowerBound(data[weightSort[0]].weight, true);
 
   index.getKey(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, data[weightSort[1]].ssn, "Got correct result");
 
   keyRange = IDBKeyRange.bound(data[weightSort[0]].weight,
                                data[weightSort[1]].weight);
 
   index.getKey(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, data[weightSort[0]].ssn, "Got correct result");
 
   keyRange = IDBKeyRange.bound(data[weightSort[0]].weight,
                                data[weightSort[1]].weight, true);
 
   index.getKey(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, data[weightSort[1]].ssn, "Got correct result");
 
   keyRange = IDBKeyRange.bound(data[weightSort[0]].weight,
                                data[weightSort[1]].weight, true, true);
 
   index.getKey(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, undefined, "Got correct result");
 
   keyRange = IDBKeyRange.upperBound(data[weightSort[5]].weight);
 
   index.getKey(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, data[weightSort[0]].ssn, "Got correct result");
 
   keyRange = IDBKeyRange.upperBound(data[weightSort[0]].weight, true);
 
   index.getKey(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result, undefined, "Got correct result");
 
   count = 0;
 
   index.openKeyCursor().onsuccess = function(event) {
     let cursor = event.target.result;
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, weightSort.length,
      "Correct count for no arg to index.openKeyCursor");
 
   count = 0;
 
   index.openKeyCursor(null).onsuccess = function(event) {
     let cursor = event.target.result;
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, weightSort.length,
      "Correct count for null arg to index.openKeyCursor");
 
   count = 0;
 
   index.openKeyCursor(undefined).onsuccess = function(event) {
     let cursor = event.target.result;
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, weightSort.length,
      "Correct count for undefined arg to index.openKeyCursor");
 
   count = 0;
 
   index.openKeyCursor(data[weightSort[0]].weight).onsuccess = function(event) {
     let cursor = event.target.result;
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, 1, "Correct count for single key arg to index.openKeyCursor");
 
   count = 0;
 
   index.openKeyCursor("foo").onsuccess = function(event) {
     let cursor = event.target.result;
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, 0,
      "Correct count for non-existent single key arg to index.openKeyCursor");
 
   count = 0;
   keyRange = IDBKeyRange.only(data[weightSort[0]].weight);
 
   index.openKeyCursor(keyRange).onsuccess = function(event) {
@@ -1552,160 +1552,160 @@ function testSteps()
     if (cursor) {
       count++;
       cursor.continue();
     }
     else {
       testGenerator.next();
     }
   }
-  yield;
+  yield undefined;
 
   is(count, 1,
      "Correct count for only keyRange arg to index.openKeyCursor");
 
   objectStore.mozGetAll(data[1].ssn).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result instanceof Array, true, "Got an array");
   is(event.target.result.length, 1, "Got correct length");
   is(event.target.result[0].ssn, data[1].ssn, "Got correct result");
 
   objectStore.mozGetAll(null).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result instanceof Array, true, "Got an array");
   is(event.target.result.length, data.length, "Got correct length");
   for (let i in event.target.result) {
     is(event.target.result[i].ssn, data[i].ssn, "Got correct value");
   }
 
   objectStore.mozGetAll(undefined).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result instanceof Array, true, "Got an array");
   is(event.target.result.length, data.length, "Got correct length");
   for (let i in event.target.result) {
     is(event.target.result[i].ssn, data[i].ssn, "Got correct value");
   }
 
   objectStore.mozGetAll().onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result instanceof Array, true, "Got an array");
   is(event.target.result.length, data.length, "Got correct length");
   for (let i in event.target.result) {
     is(event.target.result[i].ssn, data[i].ssn, "Got correct value");
   }
 
   keyRange = IDBKeyRange.lowerBound(0);
 
   objectStore.mozGetAll(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result instanceof Array, true, "Got an array");
   is(event.target.result.length, data.length, "Got correct length");
   for (let i in event.target.result) {
     is(event.target.result[i].ssn, data[i].ssn, "Got correct value");
   }
 
   index.mozGetAll().onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result instanceof Array, true, "Got an array");
   is(event.target.result.length, weightSort.length, "Got correct length");
   for (let i in event.target.result) {
     is(event.target.result[i].ssn, data[weightSort[i]].ssn,
        "Got correct value");
   }
 
   index.mozGetAll(undefined).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result instanceof Array, true, "Got an array");
   is(event.target.result.length, weightSort.length, "Got correct length");
   for (let i in event.target.result) {
     is(event.target.result[i].ssn, data[weightSort[i]].ssn,
        "Got correct value");
   }
 
   index.mozGetAll(null).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result instanceof Array, true, "Got an array");
   is(event.target.result.length, weightSort.length, "Got correct length");
   for (let i in event.target.result) {
     is(event.target.result[i].ssn, data[weightSort[i]].ssn,
        "Got correct value");
   }
 
   index.mozGetAll(data[weightSort[0]].weight).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result instanceof Array, true, "Got an array");
   is(event.target.result.length, 1, "Got correct length");
   is(event.target.result[0].ssn, data[weightSort[0]].ssn, "Got correct result");
 
   keyRange = IDBKeyRange.lowerBound(0);
 
   index.mozGetAll(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result instanceof Array, true, "Got an array");
   is(event.target.result.length, weightSort.length, "Got correct length");
   for (let i in event.target.result) {
     is(event.target.result[i].ssn, data[weightSort[i]].ssn,
        "Got correct value");
   }
 
   index.mozGetAllKeys().onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result instanceof Array, true, "Got an array");
   is(event.target.result.length, weightSort.length, "Got correct length");
   for (let i in event.target.result) {
     is(event.target.result[i], data[weightSort[i]].ssn,
        "Got correct value");
   }
 
   index.mozGetAllKeys(undefined).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result instanceof Array, true, "Got an array");
   is(event.target.result.length, weightSort.length, "Got correct length");
   for (let i in event.target.result) {
     is(event.target.result[i], data[weightSort[i]].ssn,
        "Got correct value");
   }
 
   index.mozGetAllKeys(null).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result instanceof Array, true, "Got an array");
   is(event.target.result.length, weightSort.length, "Got correct length");
   for (let i in event.target.result) {
     is(event.target.result[i], data[weightSort[i]].ssn,
        "Got correct value");
   }
 
   index.mozGetAllKeys(data[weightSort[0]].weight).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result instanceof Array, true, "Got an array");
   is(event.target.result.length, 1, "Got correct length");
   is(event.target.result[0], data[weightSort[0]].ssn, "Got correct result");
 
   keyRange = IDBKeyRange.lowerBound(0);
 
   index.mozGetAllKeys(keyRange).onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(event.target.result instanceof Array, true, "Got an array");
   is(event.target.result.length, weightSort.length, "Got correct length");
   for (let i in event.target.result) {
     is(event.target.result[i], data[weightSort[i]].ssn,
        "Got correct value");
   }
 
   finishTest();
-  yield;
+  yield undefined;
 }
 
--- a/dom/indexedDB/test/unit/test_overlapping_transactions.js
+++ b/dom/indexedDB/test/unit/test_overlapping_transactions.js
@@ -8,26 +8,26 @@ var testGenerator = testSteps();
 function testSteps()
 {
   const name = this.window ? window.location.pathname : "Splendid Test";
   const objectStores = [ "foo", "bar" ];
 
   let request = indexedDB.open(name, 1);
   request.onerror = errorHandler;
   request.onupgradeneeded = grabEventAndContinueHandler;
-  let event = yield;
+  let event = yield undefined;
 
   let db = event.target.result;
   is(db.objectStoreNames.length, 0, "Correct objectStoreNames list");
 
   event.target.onsuccess = grabEventAndContinueHandler;
   for (let i in objectStores) {
     db.createObjectStore(objectStores[i], { autoIncrement: true });
   }
-  let event = yield;
+  let event = yield undefined;
 
   is(db.objectStoreNames.length, objectStores.length,
      "Correct objectStoreNames list");
 
   for (let i = 0; i < 50; i++) {
     let stepNumber = 0;
 
     request = db.transaction(["foo"], "readwrite")
@@ -76,17 +76,17 @@ function testSteps()
     request.onerror = errorHandler;
     request.onsuccess = function(event) {
       is(stepNumber, 5, "This callback came fifth");
       stepNumber++;
       event.target.transaction.oncomplete = grabEventAndContinueHandler;
     }
 
     stepNumber++;
-    yield; yield; yield; yield; yield;
+    yield undefined; yield undefined; yield undefined; yield undefined; yield undefined;
 
     is(stepNumber, 6, "All callbacks received");
   }
 
   finishTest();
-  yield;
+  yield undefined;
 }
 
--- a/dom/indexedDB/test/unit/test_put_get_values.js
+++ b/dom/indexedDB/test/unit/test_put_get_values.js
@@ -11,17 +11,17 @@ function testSteps()
   const objectStoreName = "Objects";
 
   let testString = { key: 0, value: "testString" };
   let testInt = { key: 1, value: 1002 };
 
   let request = indexedDB.open(name, 1);
   request.onerror = errorHandler;
   request.onupgradeneeded = grabEventAndContinueHandler;
-  let event = yield;
+  let event = yield undefined;
 
   let db = event.target.result;
 
   let objectStore = db.createObjectStore(objectStoreName,
                                          { autoIncrement: 0 });
 
   request = objectStore.add(testString.value, testString.key);
   request.onerror = errorHandler;
@@ -41,11 +41,11 @@ function testSteps()
     request = objectStore.get(testInt.key);
     request.onerror = errorHandler;
     request.onsuccess = function(event) {
       is(event.target.result, testInt.value, "Got the right value");
       finishTest();
     };
   }
 
-  yield;
+  yield undefined;
 }
 
--- a/dom/indexedDB/test/unit/test_put_get_values_autoIncrement.js
+++ b/dom/indexedDB/test/unit/test_put_get_values_autoIncrement.js
@@ -11,17 +11,17 @@ function testSteps()
   const objectStoreName = "Objects";
 
   let testString = { value: "testString" };
   let testInt = { value: 1002 };
 
   let request = indexedDB.open(name, 1);
   request.onerror = errorHandler;
   request.onupgradeneeded = grabEventAndContinueHandler;
-  let event = yield;
+  let event = yield undefined;
 
   let db = event.target.result;
 
   let objectStore = db.createObjectStore(objectStoreName,
                                          { autoIncrement: 1 });
 
   request = objectStore.put(testString.value);
   request.onerror = errorHandler;
@@ -41,10 +41,10 @@ function testSteps()
     request = objectStore.get(testInt.key);
     request.onerror = errorHandler;
     request.onsuccess = function(event) {
       is(event.target.result, testInt.value, "Got the right value");
       finishTest();
     };
   }
 
-  yield;
+  yield undefined;
 }
\ No newline at end of file
--- a/dom/indexedDB/test/unit/test_readonly_transactions.js
+++ b/dom/indexedDB/test/unit/test_readonly_transactions.js
@@ -16,106 +16,106 @@ function testSteps()
 {
   const name = this.window ? window.location.pathname : "Splendid Test";
   const osName = "foo";
 
   let request = indexedDB.open(name, 1);
   request.onerror = errorHandler;
   request.onupgradeneeded = grabEventAndContinueHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  let event = yield;
+  let event = yield undefined;
 
   let db = event.target.result;
   is(db.objectStoreNames.length, 0, "Correct objectStoreNames list");
 
   db.createObjectStore(osName, { autoIncrement: "true" });
 
-  yield;
+  yield undefined;
 
   let key1, key2;
 
   request = db.transaction([osName], "readwrite")
               .objectStore(osName)
               .add({});
   request.onerror = errorHandler;
   request.onsuccess = function(event) {
     is(event.target.transaction.mode, "readwrite", "Correct mode");
     key1 = event.target.result;
     testGenerator.next();
   }
-  yield;
+  yield undefined;
 
   request = db.transaction(osName, "readwrite").objectStore(osName).add({});
   request.onerror = errorHandler;
   request.onsuccess = function(event) {
     is(event.target.transaction.mode, "readwrite", "Correct mode");
     key2 = event.target.result;
     testGenerator.next();
   }
-  yield;
+  yield undefined;
 
   request = db.transaction([osName], "readwrite")
               .objectStore(osName)
               .put({}, key1);
   request.onerror = errorHandler;
   request.onsuccess = function(event) {
     is(event.target.transaction.mode, "readwrite", "Correct mode");
     testGenerator.next();
   }
-  yield;
+  yield undefined;
 
   request = db.transaction(osName, "readwrite")
               .objectStore(osName)
               .put({}, key2);
   request.onerror = errorHandler;
   request.onsuccess = function(event) {
     is(event.target.transaction.mode, "readwrite", "Correct mode");
     testGenerator.next();
   }
-  yield;
+  yield undefined;
 
   request = db.transaction([osName], "readwrite")
               .objectStore(osName)
               .put({}, key1);
   request.onerror = errorHandler;
   request.onsuccess = function(event) {
     is(event.target.transaction.mode, "readwrite", "Correct mode");
     testGenerator.next();
   }
-  yield;
+  yield undefined;
 
   request = db.transaction(osName, "readwrite")
               .objectStore(osName)
               .put({}, key1);
   request.onerror = errorHandler;
   request.onsuccess = function(event) {
     is(event.target.transaction.mode, "readwrite", "Correct mode");
     testGenerator.next();
   }
-  yield;
+  yield undefined;
 
   request = db.transaction([osName], "readwrite")
               .objectStore(osName)
               .delete(key1);
   request.onerror = errorHandler;
   request.onsuccess = function(event) {
     is(event.target.transaction.mode, "readwrite", "Correct mode");
     testGenerator.next();
   }
-  yield;
+  yield undefined;
 
   request = db.transaction(osName, "readwrite")
               .objectStore(osName)
               .delete(key2);
   request.onerror = errorHandler;
   request.onsuccess = function(event) {
     is(event.target.transaction.mode, "readwrite", "Correct mode");
     testGenerator.next();
   }
-  yield;
+  yield undefined;
 
   try {
     request = db.transaction([osName]).objectStore(osName).add({});
     ok(false, "Adding to a readonly transaction should fail!");
   }
   catch (e) {
     ok(true, "Adding to a readonly transaction failed");
   }
@@ -172,10 +172,10 @@ function testSteps()
     request = db.transaction(osName).objectStore(osName).delete(key2);
     ok(false, "Removing from a readonly transaction should fail!");
   }
   catch (e) {
     ok(true, "Removing from a readonly transaction failed");
   }
 
   finishTest();
-  yield;
+  yield undefined;
 }
--- a/dom/indexedDB/test/unit/test_remove_index.js
+++ b/dom/indexedDB/test/unit/test_remove_index.js
@@ -10,17 +10,17 @@ function testSteps()
   const nsIIDBObjectStore = Components.interfaces.nsIIDBObjectStore;
 
   const name = this.window ? window.location.pathname : "Splendid Test";
   const indexName = "My Test Index";
 
   let request = indexedDB.open(name, 1);
   request.onerror = errorHandler;
   request.onupgradeneeded = grabEventAndContinueHandler;
-  let event = yield;
+  let event = yield undefined;
 
   let db = event.target.result;
   is(db.objectStoreNames.length, 0, "Correct objectStoreNames list");
 
   let objectStore = db.createObjectStore("test store", { keyPath: "foo" });
   is(db.objectStoreNames.length, 1, "Correct objectStoreNames list");
   is(db.objectStoreNames.item(0), objectStore.name, "Correct name");
 
@@ -48,10 +48,10 @@ function testSteps()
   let index2 = objectStore.createIndex(indexName, "foo");
   isnot(index, index2, "New instance should be created");
 
   is(objectStore.indexNames.length, 1, "Correct recreacted indexNames list");
   is(objectStore.indexNames.item(0), indexName, "Correct recreacted name");
   is(objectStore.index(indexName), index2, "Correct instance");
 
   finishTest();
-  yield;
+  yield undefined;
 }
--- a/dom/indexedDB/test/unit/test_remove_objectStore.js
+++ b/dom/indexedDB/test/unit/test_remove_objectStore.js
@@ -10,17 +10,17 @@ function testSteps()
   const nsIIDBObjectStore = Components.interfaces.nsIIDBObjectStore;
 
   const name = this.window ? window.location.pathname : "Splendid Test";
   const objectStoreName = "Objects";
 
   let request = indexedDB.open(name, 1);
   request.onerror = errorHandler;
   request.onupgradeneeded = grabEventAndContinueHandler;
-  let event = yield;
+  let event = yield undefined;
 
   let db = event.target.result;
   is(db.objectStoreNames.length, 0, "Correct objectStoreNames list");
 
   let objectStore = db.createObjectStore(objectStoreName,
                                          { keyPath: "foo" });
 
   let addedCount = 0;
@@ -29,27 +29,27 @@ function testSteps()
     request = objectStore.add({foo: i});
     request.onerror = errorHandler;
     request.onsuccess = function(event) {
       if (++addedCount == 100) {
         executeSoon(function() { testGenerator.next(); });
       }
     }
   }
-  yield;
+  yield undefined;
 
   is(db.objectStoreNames.length, 1, "Correct objectStoreNames list");
   is(db.objectStoreNames.item(0), objectStoreName, "Correct name");
 
   db.close();
 
   let request = indexedDB.open(name, 2);
   request.onerror = errorHandler;
   request.onupgradeneeded = grabEventAndContinueHandler;
-  let event = yield;
+  let event = yield undefined;
 
   let db = event.target.result;
   let trans = event.target.transaction;
 
   let oldObjectStore = trans.objectStore(objectStoreName);
   isnot(oldObjectStore, null, "Correct object store prior to deleting");
   db.deleteObjectStore(objectStoreName);
   is(db.objectStoreNames.length, 0, "Correct objectStores list");
@@ -70,38 +70,38 @@ function testSteps()
   isnot(oldObjectStore, objectStore, "Old objectStore is not new objectStore");
 
   request = objectStore.openCursor();
   request.onerror = errorHandler;
   request.onsuccess = function(event) {
     is(event.target.result, undefined, "ObjectStore shouldn't have any items");
     testGenerator.send(event);
   }
-  event = yield;
+  event = yield undefined;
 
   db.deleteObjectStore(objectStore.name);
   is(db.objectStoreNames.length, 0, "Correct objectStores list");
 
   continueToNextStep();
-  yield;
+  yield undefined;
 
   db.close();
 
   let request = indexedDB.open(name, 3);
   request.onerror = errorHandler;
   request.onupgradeneeded = grabEventAndContinueHandler;
-  let event = yield;
+  let event = yield undefined;
 
   let db = event.target.result;
 
   objectStore = db.createObjectStore(objectStoreName, { keyPath: "foo" });
 
   request = objectStore.add({foo:"bar"});
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
 
   db.deleteObjectStore(objectStoreName);
 
-  event = yield;
+  event = yield undefined;
 
   finishTest();
-  yield;
+  yield undefined;
 }
--- a/dom/indexedDB/test/unit/test_request_readyState.js
+++ b/dom/indexedDB/test/unit/test_request_readyState.js
@@ -9,39 +9,39 @@ function testSteps()
 {
   const name = this.window ? window.location.pathname : "Splendid Test";
 
   let request = indexedDB.open(name, 1);
   is(request.readyState, "pending", "Correct readyState");
 
   request.onerror = errorHandler;
   request.onupgradeneeded = grabEventAndContinueHandler;
-  let event = yield;
+  let event = yield undefined;
 
   is(request.readyState, "done", "Correct readyState");
 
   let db = event.target.result;
 
   let objectStore = db.createObjectStore("foo");
   let key = 10;
 
   request = objectStore.add({}, key);
   is(request.readyState, "pending", "Correct readyState");
 
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  event = yield;
+  event = yield undefined;
 
   is(request.readyState, "done", "Correct readyState");
   is(event.target.result, key, "Correct key");
 
   request = objectStore.get(key);
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
   is(request.readyState, "pending", "Correct readyState");
-  event = yield;
+  event = yield undefined;
 
   ok(event.target.result, "Got something");
   is(request.readyState, "done", "Correct readyState");
 
   finishTest();
-  yield;
+  yield undefined;
 }
--- a/dom/indexedDB/test/unit/test_setVersion.js
+++ b/dom/indexedDB/test/unit/test_setVersion.js
@@ -7,17 +7,17 @@ var testGenerator = testSteps();
 
 function testSteps()
 {
   const name = this.window ? window.location.pathname : "Splendid Test";
 
   let request = indexedDB.open(name, 1);
   request.onerror = errorHandler;
   request.onsuccess = grabEventAndContinueHandler;
-  let event = yield;
+  let event = yield undefined;
 
   let db = event.target.result;
 
   // Check default state.
   is(db.version, 1, "Correct default version for a new database.");
 
   const versions = [
     7,
@@ -27,24 +27,24 @@ function testSteps()
   db.close();
 
   for (let i = 0; i < versions.length; i++) {
     let version = versions[i];
 
     let request = indexedDB.open(name, version);
     request.onerror = errorHandler;
     request.onupgradeneeded = grabEventAndContinueHandler;
-    let event = yield;
+    let event = yield undefined;
 
     let db = event.target.result;
 
     is(db.version, version, "Database version number updated correctly");
     is(event.target.transaction.mode, "versionchange", "Correct mode");
 
     executeSoon(function() { testGenerator.next(); });
-    yield;
+    yield undefined;
     db.close();
   }
 
   finishTest();
-  yield;
+  yield undefined;
 }
 
--- a/dom/indexedDB/test/unit/test_setVersion_abort.js
+++ b/dom/indexedDB/test/unit/test_setVersion_abort.js
@@ -8,17 +8,17 @@ var testGenerator = testSteps();
 function testSteps()
 {
   const name = this.window ? window.location.pathname : "Splendid Test";
 
   let request = indexedDB.open(name, 1);
   request.onerror = errorHandler;
   request.onsuccess = unexpectedSuccessHandler;
   request.onupgradeneeded = grabEventAndContinueHandler;
-  let event = yield;
+  let event = yield undefined;
 
   let db = event.target.result;
 
   let objectStore = db.createObjectStore("foo");
   let index = objectStore.createIndex("bar", "baz");
 
   is(db.version, 1, "Correct version");
   is(db.objectStoreNames.length, 1, "Correct objectStoreNames length");
@@ -38,61 +38,61 @@ function testSteps()
   try {
     db.transaction("");
     ok(false, "Expect an exception");
   } catch (e) {
     ok(true, "Expect an exception");
     is(e.name, "InvalidStateError", "Expect an InvalidStateError");
   }
 
-  event = yield;
+  event = yield undefined;
   is(event.type, "abort", "Got transaction abort event");
   is(event.target, transaction, &quo