Merge mozilla-central to mozilla-inbound
authorarthur.iakab <aiakab@mozilla.com>
Mon, 10 Dec 2018 11:57:26 +0200
changeset 449713 47c1944a51b5e614dbca9b4baff45f81b8e85bae
parent 449712 51c2aaffbcf2e57bdb28b244c0f36eb90bce2cbd (current diff)
parent 449682 3386ff76878d83496bb822d09115c77472808b53 (diff)
child 449714 ca4f360d2517ee33c444190d3d6530e087dd763a
push id35183
push usercbrindusan@mozilla.com
push dateMon, 10 Dec 2018 22:05:53 +0000
treeherdermozilla-central@13f891b92db1 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
milestone65.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
Merge mozilla-central to mozilla-inbound
testing/web-platform/meta/streams/readable-streams/bad-underlying-sources.dedicatedworker.html.ini
testing/web-platform/meta/streams/readable-streams/bad-underlying-sources.html.ini
testing/web-platform/meta/streams/readable-streams/bad-underlying-sources.serviceworker.https.html.ini
testing/web-platform/meta/streams/readable-streams/bad-underlying-sources.sharedworker.html.ini
testing/web-platform/meta/streams/readable-streams/garbage-collection.dedicatedworker.html.ini
testing/web-platform/meta/streams/readable-streams/garbage-collection.html.ini
testing/web-platform/meta/streams/readable-streams/garbage-collection.serviceworker.https.html.ini
testing/web-platform/meta/streams/readable-streams/garbage-collection.sharedworker.html.ini
--- a/.clang-format
+++ b/.clang-format
@@ -5,20 +5,22 @@ MacroBlockBegin: "^\
 JS_BEGIN_MACRO|\
 NS_INTERFACE_MAP_BEGIN|\
 NS_INTERFACE_TABLE_HEAD|\
 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION|\
 NS_IMPL_CYCLE_COLLECTION_.*_BEGIN|\
 NS_INTERFACE_TABLE_HEAD_CYCLE_COLLECTION_INHERITED|\
 NS_INTERFACE_TABLE_BEGIN|\
 NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED|\
-NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED$"
+NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED|\
+NS_QUERYFRAME_HEAD$"
 MacroBlockEnd: "^\
 JS_END_MACRO|\
 NS_INTERFACE_MAP_END|\
 NS_IMPL_CYCLE_COLLECTION_.*_END|\
 NS_INTERFACE_TABLE_END|\
 NS_INTERFACE_TABLE_TAIL.*|\
 NS_INTERFACE_MAP_END_.*|\
 NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END_INHERITED|\
-NS_IMPL_CYCLE_COLLECTION_UNLINK_END_INHERITED$"
+NS_IMPL_CYCLE_COLLECTION_UNLINK_END_INHERITED|\
+NS_QUERYFRAME_TAIL.*$"
 
 SortIncludes: false
--- a/accessible/base/nsAccessiblePivot.cpp
+++ b/accessible/base/nsAccessiblePivot.cpp
@@ -381,25 +381,25 @@ nsAccessiblePivot::MoveNextByText(TextBo
     tempStart = potentialStart > tempStart ? potentialStart : currentEnd;
 
     // The offset range we've obtained might have embedded characters in it,
     // limit the range to the start of the first occurrence of an embedded
     // character.
     Accessible* childAtOffset = nullptr;
     for (int32_t i = tempStart; i < tempEnd; i++) {
       childAtOffset = text->GetChildAtOffset(i);
-      if (childAtOffset && !childAtOffset->IsText()) {
+      if (childAtOffset && childAtOffset->IsHyperText()) {
         tempEnd = i;
         break;
       }
     }
     // If there's an embedded character at the very start of the range, we
     // instead want to traverse into it. So restart the movement with
     // the child as the starting point.
-    if (childAtOffset && !childAtOffset->IsText() &&
+    if (childAtOffset && childAtOffset->IsHyperText() &&
         tempStart == static_cast<int32_t>(childAtOffset->StartOffset())) {
       tempPosition = childAtOffset;
       tempStart = tempEnd = -1;
       continue;
     }
 
     *aResult = true;
 
--- a/accessible/tests/mochitest/pivot/doc_virtualcursor_text.html
+++ b/accessible/tests/mochitest/pivot/doc_virtualcursor_text.html
@@ -20,11 +20,14 @@
     <tr>
       <td id="cell-3">and wizards</td>
       <td id="cell-4">really exist.</td>
     </tr>
   </table>
   <div id="section-3">Endless fun!</div>
   <p id="paragraph-3">Objects<a id="p3-link-1" href="#">adjacent</a>to <a id="p3-link-2" href="#">each</a><a id="p3-link-3" href="#">other</a> should be separate.</p>
   <p id="paragraph-4">Hello <strong>real</strong><a href="#"> world</p>
+  <a href="#" id="image-desc-link">
+    <img src="../moz.png" alt="">Hello
+  </a>
   <div id="end-block">End!</div>
 </body>
 </html>
--- a/accessible/tests/mochitest/pivot/test_virtualcursor_text.html
+++ b/accessible/tests/mochitest/pivot/test_virtualcursor_text.html
@@ -231,16 +231,23 @@
       gQueue.push(new setVCTextInvoker(docAcc, "movePreviousByText", WORD_BOUNDARY, [20, 28],
                   getAccessible(doc.getElementById("section-1"), nsIAccessibleText)));
 
       gQueue.push(new setVCPosInvoker(docAcc, null, null,
                                       getAccessible(doc.getElementById("section-1")).lastChild));
       gQueue.push(new setVCTextInvoker(docAcc, "movePreviousByText", WORD_BOUNDARY, [20, 28],
                   getAccessible(doc.getElementById("section-1"), nsIAccessibleText)));
 
+      gQueue.push(new setVCPosInvoker(docAcc, null, null,
+                                      getAccessible(doc.getElementById("image-desc-link"))));
+      gQueue.push(new setVCTextInvoker(docAcc, "moveNextByText", CHAR_BOUNDARY, [0, 1],
+                  getAccessible(doc.getElementById("image-desc-link"), nsIAccessibleText)));
+      gQueue.push(new setVCTextInvoker(docAcc, "moveNextByText", CHAR_BOUNDARY, [1, 2],
+                  getAccessible(doc.getElementById("image-desc-link"), nsIAccessibleText)));
+
       gQueue.invoke();
     }
 
     SimpleTest.waitForExplicitFinish();
     addLoadEvent(function() {
       /* We open a new browser because we need to test with a top-level content
          document. */
       openBrowserWindow(
--- a/js/src/builtin/Promise.cpp
+++ b/js/src/builtin/Promise.cpp
@@ -3339,18 +3339,27 @@ static bool PromiseThenNewPromiseCapabil
   return true;
 }
 
 // ES2016, 25.4.5.3., steps 3-5.
 MOZ_MUST_USE bool js::OriginalPromiseThen(
     JSContext* cx, HandleObject promiseObj, HandleValue onFulfilled,
     HandleValue onRejected, MutableHandleObject dependent,
     CreateDependentPromise createDependent) {
+  RootedValue promiseVal(cx, ObjectValue(*promiseObj));
   Rooted<PromiseObject*> promise(
-      cx, &CheckedUnwrap(promiseObj)->as<PromiseObject>());
+      cx,
+      UnwrapAndTypeCheckValue<PromiseObject>(cx, promiseVal, [cx, promiseObj] {
+        JS_ReportErrorNumberLatin1(cx, GetErrorMessage, nullptr,
+                                   JSMSG_INCOMPATIBLE_PROTO, "Promise", "then",
+                                   promiseObj->getClass()->name);
+      }));
+  if (!promise) {
+    return false;
+  }
 
   // Steps 3-4.
   Rooted<PromiseCapability> resultCapability(cx);
   if (!PromiseThenNewPromiseCapability(cx, promiseObj, createDependent,
                                        &resultCapability)) {
     return false;
   }
 
--- a/js/src/builtin/Stream.cpp
+++ b/js/src/builtin/Stream.cpp
@@ -1175,18 +1175,18 @@ static MOZ_MUST_USE JSObject* ReadableSt
   // Step 13/14.d: Return cancelPromise.
   RootedObject cancelPromise(cx, unwrappedTeeState->cancelPromise());
   if (!cx->compartment()->wrap(cx, &cancelPromise)) {
     return nullptr;
   }
   return cancelPromise;
 }
 
-static MOZ_MUST_USE bool ReadableStreamDefaultControllerErrorIfNeeded(
-    JSContext* cx, Handle<ReadableStreamDefaultController*> unwrappedController,
+static MOZ_MUST_USE bool ReadableStreamControllerError(
+    JSContext* cx, Handle<ReadableStreamController*> unwrappedController,
     HandleValue e);
 
 /**
  * Streams spec, 3.3.9. step 18:
  * Upon rejection of reader.[[closedPromise]] with reason r,
  */
 static bool TeeReaderClosedHandler(JSContext* cx, unsigned argc, Value* vp) {
   CallArgs args = CallArgsFromVp(argc, vp);
@@ -1195,27 +1195,29 @@ static bool TeeReaderClosedHandler(JSCon
 
   // Step a: If closedOrErrored is false, then:
   if (!teeState->closedOrErrored()) {
     // Step a.iii: Set closedOrErrored to true.
     // Reordered to ensure that internal errors in the other steps don't
     // leave the teeState in an undefined state.
     teeState->setClosedOrErrored();
 
-    // Step a.i: Perform ! ReadableStreamDefaultControllerErrorIfNeeded(
-    //                          branch1.[[readableStreamController]], r).
+    // Step a.i: Perform
+    //           ! ReadableStreamDefaultControllerError(
+    //               branch1.[[readableStreamController]], r).
     Rooted<ReadableStreamDefaultController*> branch1(cx, teeState->branch1());
-    if (!ReadableStreamDefaultControllerErrorIfNeeded(cx, branch1, reason)) {
+    if (!ReadableStreamControllerError(cx, branch1, reason)) {
       return false;
     }
 
-    // Step a.ii: Perform ! ReadableStreamDefaultControllerErrorIfNeeded(
-    //                          branch2.[[readableStreamController]], r).
+    // Step a.ii: Perform
+    //            ! ReadableStreamDefaultControllerError(
+    //                branch2.[[readableStreamController]], r).
     Rooted<ReadableStreamDefaultController*> branch2(cx, teeState->branch2());
-    if (!ReadableStreamDefaultControllerErrorIfNeeded(cx, branch2, reason)) {
+    if (!ReadableStreamControllerError(cx, branch2, reason)) {
       return false;
     }
   }
 
   args.rval().setUndefined();
   return true;
 }
 
@@ -2226,46 +2228,33 @@ static bool ControllerStartHandler(JSCon
   //          ! ReadableByteStreamControllerCallPullIfNeeded((controller).
   if (!ReadableStreamControllerCallPullIfNeeded(cx, controller)) {
     return false;
   }
   args.rval().setUndefined();
   return true;
 }
 
-static MOZ_MUST_USE bool ReadableStreamControllerError(
-    JSContext* cx, Handle<ReadableStreamController*> unwrappedController,
-    HandleValue e);
-
 /**
- * Streams spec, 3.8.3, step 11.b.
+ * Streams spec, 3.9.11, step 12.a.
  * and
- * Streams spec, 3.10.3, step 16.b.
+ * Streams spec, 3.12.26, step 17.a.
  */
 static bool ControllerStartFailedHandler(JSContext* cx, unsigned argc,
                                          Value* vp) {
   CallArgs args = CallArgsFromVp(argc, vp);
   Rooted<ReadableStreamController*> controller(
       cx, TargetFromHandler<ReadableStreamController>(args));
 
-  // 3.8.3, Step 11.b.i:
-  // Perform ! ReadableStreamDefaultControllerErrorIfNeeded(controller, r).
-  if (controller->is<ReadableStreamDefaultController>()) {
-    Rooted<ReadableStreamDefaultController*> defaultController(
-        cx, &controller->as<ReadableStreamDefaultController>());
-    return ReadableStreamDefaultControllerErrorIfNeeded(cx, defaultController,
-                                                        args.get(0));
-  }
-
-  // 3.10.3, Step 16.b.i: If stream.[[state]] is "readable", perform
-  //                      ! ReadableByteStreamControllerError(controller, r).
-  if (controller->stream()->readable()) {
-    if (!ReadableStreamControllerError(cx, controller, args.get(0))) {
-      return false;
-    }
+  // 3.9.11, Step 12.a: Perform
+  //      ! ReadableStreamDefaultControllerError(controller, r).
+  // 3.12.26, Step 17.a: Perform
+  //      ! ReadableByteStreamControllerError(controller, r).
+  if (!ReadableStreamControllerError(cx, controller, args.get(0))) {
+    return false;
   }
 
   args.rval().setUndefined();
   return true;
 }
 
 /**
  * Streams spec, 3.8.3.
@@ -2424,38 +2413,29 @@ static bool ReadableStreamDefaultControl
 
 /**
  * Streams spec, 3.8.4.4. error ( e )
  */
 static bool ReadableStreamDefaultController_error(JSContext* cx, unsigned argc,
                                                   Value* vp) {
   // Step 1: If ! IsReadableStreamDefaultController(this) is false, throw a
   //         TypeError exception.
-
   CallArgs args = CallArgsFromVp(argc, vp);
   Rooted<ReadableStreamDefaultController*> unwrappedController(
       cx, UnwrapAndTypeCheckThis<ReadableStreamDefaultController>(cx, args,
                                                                   "enqueue"));
   if (!unwrappedController) {
     return false;
   }
 
-  // Step 2: Let stream be this.[[controlledReadableStream]].
-  // Step 3: If stream.[[state]] is not "readable", throw a TypeError exception.
-  if (!unwrappedController->stream()->readable()) {
-    JS_ReportErrorNumberASCII(cx, GetErrorMessage, nullptr,
-                              JSMSG_READABLESTREAMCONTROLLER_NOT_READABLE,
-                              "error");
-    return false;
-  }
-
-  // Step 4: Perform ! ReadableStreamDefaultControllerError(this, e).
+  // Step 2: Perform ! ReadableStreamDefaultControllerError(this, e).
   if (!ReadableStreamControllerError(cx, unwrappedController, args.get(0))) {
     return false;
   }
+
   args.rval().setUndefined();
   return true;
 }
 
 static const JSPropertySpec ReadableStreamDefaultController_properties[] = {
     JS_PSG("desiredSize", ReadableStreamDefaultController_desiredSize, 0),
     JS_PS_END};
 
@@ -2722,22 +2702,20 @@ static bool ControllerPullFailedHandler(
   HandleValue e = args.get(0);
 
   Rooted<ReadableStreamController*> controller(
       cx, UnwrapCalleeSlot<ReadableStreamController>(cx, args, 0));
   if (!controller) {
     return false;
   }
 
-  // Step a: If controller.[[controlledReadableStream]].[[state]] is "readable",
-  //         perform ! ReadableByteStreamControllerError(controller, e).
-  if (controller->stream()->readable()) {
-    if (!ReadableStreamControllerError(cx, controller, e)) {
-      return false;
-    }
+  // Step a: Perform ! ReadableStreamDefaultControllerError(controller, e).
+  //         (ReadableByteStreamControllerError in 3.12.3.)
+  if (!ReadableStreamControllerError(cx, controller, e)) {
+    return false;
   }
 
   args.rval().setUndefined();
   return true;
 }
 
 static bool ReadableStreamControllerShouldCallPull(
     ReadableStreamController* unwrappedController);
@@ -2977,71 +2955,69 @@ static MOZ_MUST_USE bool ReadableStreamD
   AssertSameCompartment(cx, chunk);
 
   // Step 1: Let stream be controller.[[controlledReadableStream]].
   Rooted<ReadableStream*> unwrappedStream(cx, unwrappedController->stream());
 
   // Step 2: Assert: controller.[[closeRequested]] is false.
   MOZ_ASSERT(!unwrappedController->closeRequested());
 
-  // Step 3: Assert: stream.[[state]] is "readable".
-  MOZ_ASSERT(unwrappedStream->readable());
-
-  // Step 4: If ! IsReadableStreamLocked(stream) is true and
+  // Step 3: If ! IsReadableStreamLocked(stream) is true and
   //         ! ReadableStreamGetNumReadRequests(stream) > 0, perform
   //         ! ReadableStreamFulfillReadRequest(stream, chunk, false).
   if (unwrappedStream->locked() &&
       ReadableStreamGetNumReadRequests(unwrappedStream) > 0) {
     if (!ReadableStreamFulfillReadOrReadIntoRequest(cx, unwrappedStream, chunk,
                                                     false)) {
       return false;
     }
   } else {
-    // Step 5: Otherwise,
-    // Step a: Let chunkSize be 1.
+    // Step 4: Otherwise,
+    // Step a: Let result be the result of performing
+    //         controller.[[strategySizeAlgorithm]], passing in chunk, and
+    //         interpreting the result as an ECMAScript completion value.
+    // Step c: (on success) Let chunkSize be result.[[Value]].
     RootedValue chunkSize(cx, NumberValue(1));
     bool success = true;
-
-    // Step b: If controller.[[strategySize]] is not undefined,
     RootedValue strategySize(cx, unwrappedController->strategySize());
     if (!strategySize.isUndefined()) {
-      // Step i: Set chunkSize to
-      //         Call(stream.[[strategySize]], undefined, chunk).
       if (!cx->compartment()->wrap(cx, &strategySize)) {
         return false;
       }
       success = Call(cx, strategySize, UndefinedHandleValue, chunk, &chunkSize);
     }
 
-    // Step c: Let enqueueResult be
+    // Step d: Let enqueueResult be
     //         EnqueueValueWithSize(controller, chunk, chunkSize).
     if (success) {
       success = EnqueueValueWithSize(cx, unwrappedController, chunk, chunkSize);
     }
 
     if (!success) {
-      // Step b.ii: If chunkSize is an abrupt completion,
+      // Step b: If result is an abrupt completion,
       // and
-      // Step d: If enqueueResult is an abrupt completion,
+      // Step e: If enqueueResult is an abrupt completion,
       RootedValue exn(cx);
       if (!cx->isExceptionPending() || !GetAndClearException(cx, &exn)) {
         // Uncatchable error. Die immediately without erroring the
         // stream.
         return false;
       }
 
-      // Step b.ii.1: Perform
-      //              ! ReadableStreamDefaultControllerErrorIfNeeded(
-      //                  controller, chunkSize.[[Value]]).
-      if (!ReadableStreamDefaultControllerErrorIfNeeded(cx, unwrappedController,
-                                                        exn)) {
+      // Step b.i: Perform ! ReadableStreamDefaultControllerError(
+      //           controller, result.[[Value]]).
+      // Step e.i: Perform ! ReadableStreamDefaultControllerError(
+      //           controller, enqueueResult.[[Value]]).
+      if (!ReadableStreamControllerError(cx, unwrappedController, exn)) {
         return false;
       }
 
-      // Step b.ii.2: Return chunkSize.
+      // Step b.ii: Return result.
+      // Step e.ii: Return enqueueResult.
+      // (I.e., propagate the exception.)
       cx->setPendingException(exn);
       return false;
     }
   }
 
   // Step 6: Perform
   //         ! ReadableStreamDefaultControllerCallPullIfNeeded(controller).
   // Step 7: Return.
@@ -3059,18 +3035,20 @@ static MOZ_MUST_USE bool ReadableStreamC
     JSContext* cx, Handle<ReadableStreamController*> unwrappedController,
     HandleValue e) {
   MOZ_ASSERT(!cx->isExceptionPending());
   AssertSameCompartment(cx, e);
 
   // Step 1: Let stream be controller.[[controlledReadableStream]].
   Rooted<ReadableStream*> unwrappedStream(cx, unwrappedController->stream());
 
-  // Step 2: Assert: stream.[[state]] is "readable".
-  MOZ_ASSERT(unwrappedStream->readable());
+  // Step 2: If stream.[[state]] is not "readable", return.
+  if (!unwrappedStream->readable()) {
+    return true;
+  }
 
   // Step 3 of 3.12.10:
   // Perform ! ReadableByteStreamControllerClearPendingPullIntos(controller).
   if (unwrappedController->is<ReadableByteStreamController>()) {
     Rooted<ReadableByteStreamController*> unwrappedByteStreamController(
         cx, &unwrappedController->as<ReadableByteStreamController>());
     if (!ReadableByteStreamControllerClearPendingPullIntos(
             cx, unwrappedByteStreamController)) {
@@ -3083,33 +3061,16 @@ static MOZ_MUST_USE bool ReadableStreamC
     return false;
   }
 
   // Step 4 (or 5): Perform ! ReadableStreamError(stream, e).
   return ReadableStreamErrorInternal(cx, unwrappedStream, e);
 }
 
 /**
- * Streams spec, 3.9.7.
- *      ReadableStreamDefaultControllerErrorIfNeeded ( controller, e ) nothrow
- */
-static MOZ_MUST_USE bool ReadableStreamDefaultControllerErrorIfNeeded(
-    JSContext* cx, Handle<ReadableStreamDefaultController*> unwrappedController,
-    HandleValue e) {
-  MOZ_ASSERT(!cx->isExceptionPending());
-
-  // Step 1: If controller.[[controlledReadableStream]].[[state]] is "readable",
-  //         perform ! ReadableStreamDefaultControllerError(controller, e).
-  if (unwrappedController->stream()->readable()) {
-    return ReadableStreamControllerError(cx, unwrappedController, e);
-  }
-  return true;
-}
-
-/**
  * Streams spec, 3.9.8.
  *      ReadableStreamDefaultControllerGetDesiredSize ( controller )
  * Streams spec 3.12.14.
  *      ReadableByteStreamControllerGetDesiredSize ( controller )
  */
 static MOZ_MUST_USE double ReadableStreamControllerGetDesiredSizeUnchecked(
     ReadableStreamController* controller) {
   // Steps 1-4 done at callsites, so only assert that they have been done.
@@ -4821,25 +4782,16 @@ JS_PUBLIC_API bool JS::ReadableStreamErr
   cx->check(error);
 
   Rooted<ReadableStream*> unwrappedStream(
       cx, APIUnwrapAndDowncast<ReadableStream>(cx, streamObj));
   if (!unwrappedStream) {
     return false;
   }
 
-  // Step 3: If stream.[[state]] is not "readable", throw a TypeError exception.
-  if (!unwrappedStream->readable()) {
-    JS_ReportErrorNumberASCII(cx, GetErrorMessage, nullptr,
-                              JSMSG_READABLESTREAMCONTROLLER_NOT_READABLE,
-                              "error");
-    return false;
-  }
-
-  // Step 4: Perform ! ReadableStreamDefaultControllerError(this, e).
   Rooted<ReadableStreamController*> unwrappedController(
       cx, unwrappedStream->controller());
   return ReadableStreamControllerError(cx, unwrappedController, error);
 }
 
 JS_PUBLIC_API bool JS::ReadableStreamReaderIsClosed(JSContext* cx,
                                                     HandleObject readerObj,
                                                     bool* result) {
new file mode 100644
--- /dev/null
+++ b/js/src/jit-test/tests/stream/bug-1512008.js
@@ -0,0 +1,6 @@
+Object.defineProperty(Promise, Symbol.species, {
+  value: function(g) {
+    g(function() {}, function() {})
+  }
+});
+new ReadableStream().tee();
new file mode 100644
--- /dev/null
+++ b/js/src/jit-test/tests/web-platform/streams/readable-streams/bad-underlying-sources.js
@@ -0,0 +1,2 @@
+load(libdir + "web-platform-testharness.js");
+load_web_platform_test("streams/readable-streams/bad-underlying-sources.js");
new file mode 100644
--- /dev/null
+++ b/js/src/jit-test/tests/web-platform/streams/readable-streams/garbage-collection.js
@@ -0,0 +1,2 @@
+load(libdir + "web-platform-testharness.js");
+load_web_platform_test("streams/readable-streams/garbage-collection.js");
new file mode 100644
--- /dev/null
+++ b/js/src/jit-test/tests/web-platform/streams/readable-streams/general.js
@@ -0,0 +1,28 @@
+// The web-platform test we're going to load (on the last line of this file)
+// contains many tests; among them, it checks for the existence of pipeTo and
+// pipeThrough, which we don't implement yet. Hack it:
+if (ReadableStream.prototype.pipeTo || ReadableStream.prototype.pipeThrough) {
+  throw new Error("Congratulations on implementing pipeTo/pipeThrough! Please update this test.\n");
+}
+// They don't have to work to pass the test, just exist:
+Object.defineProperties(ReadableStream.prototype, {
+  "pipeTo": {
+    configurable: true,
+    writable: true,
+    enumerable: false,
+    value: function pipeTo(dest, {preventClose, preventAbort, preventCancel, signal} = {}) {
+      throw new InternalError("pipeTo: not implemented");
+    },
+  },
+  "pipeThrough": {
+    configurable: true,
+    writable: true,
+    enumerable: false,
+    value: function pipeThrough({writable, readable}, {preventClose, preventAbort, preventCancel, signal}) {
+      throw new InternalError("pipeThrough: not implemented");
+    },
+  },
+});
+
+load(libdir + "web-platform-testharness.js");
+load_web_platform_test("streams/readable-streams/general.js");
new file mode 100644
--- /dev/null
+++ b/js/src/jit-test/tests/web-platform/streams/readable-streams/reentrant-strategies.js
@@ -0,0 +1,4 @@
+// |jit-test| error: ReferenceError: WritableStream is not defined
+
+load(libdir + "web-platform-testharness.js");
+load_web_platform_test("streams/readable-streams/reentrant-strategies.js");
new file mode 100644
--- /dev/null
+++ b/js/src/jit-test/tests/web-platform/streams/readable-streams/templated.js
@@ -0,0 +1,28 @@
+// The web-platform test we're going to load (on the last line of this file)
+// contains many tests; among them, it checks for the existence of pipeTo and
+// pipeThrough, which we don't implement yet. Hack it:
+if (ReadableStream.prototype.pipeTo || ReadableStream.prototype.pipeThrough) {
+  throw new Error("Congratulations on implementing pipeTo/pipeThrough! Please update this test.\n");
+}
+// They don't have to work to pass the test, just exist:
+Object.defineProperties(ReadableStream.prototype, {
+  "pipeTo": {
+    configurable: true,
+    writable: true,
+    enumerable: false,
+    value: function pipeTo(dest, {preventClose, preventAbort, preventCancel, signal} = {}) {
+      throw new InternalError("pipeTo: not implemented");
+    },
+  },
+  "pipeThrough": {
+    configurable: true,
+    writable: true,
+    enumerable: false,
+    value: function pipeThrough({writable, readable}, {preventClose, preventAbort, preventCancel, signal}) {
+      throw new InternalError("pipeThrough: not implemented");
+    },
+  },
+});
+
+load(libdir + "web-platform-testharness.js");
+load_web_platform_test("streams/readable-streams/templated.js");
--- a/js/src/jsapi.cpp
+++ b/js/src/jsapi.cpp
@@ -4029,36 +4029,28 @@ JS_PUBLIC_API bool JS::ResolvePromise(JS
   return ResolveOrRejectPromise(cx, promiseObj, resolutionValue, false);
 }
 
 JS_PUBLIC_API bool JS::RejectPromise(JSContext* cx, JS::HandleObject promiseObj,
                                      JS::HandleValue rejectionValue) {
   return ResolveOrRejectPromise(cx, promiseObj, rejectionValue, true);
 }
 
-static bool CallOriginalPromiseThenImpl(
-    JSContext* cx, JS::HandleObject promiseObj, JS::HandleObject onResolvedObj_,
-    JS::HandleObject onRejectedObj_, JS::MutableHandleObject resultObj,
+static MOZ_MUST_USE bool CallOriginalPromiseThenImpl(
+    JSContext* cx, JS::HandleObject promiseObj, JS::HandleObject onFulfilledObj,
+    JS::HandleObject onRejectedObj, JS::MutableHandleObject resultObj,
     CreateDependentPromise createDependent) {
   AssertHeapIsIdle();
   CHECK_THREAD(cx);
-  cx->check(promiseObj, onResolvedObj_, onRejectedObj_);
-
-  MOZ_ASSERT_IF(onResolvedObj_, IsCallable(onResolvedObj_));
-  MOZ_ASSERT_IF(onRejectedObj_, IsCallable(onRejectedObj_));
-  RootedObject onResolvedObj(cx, onResolvedObj_);
-  RootedObject onRejectedObj(cx, onRejectedObj_);
-
-  if (IsWrapper(promiseObj) && !CheckedUnwrap(promiseObj)) {
-    ReportAccessDenied(cx);
-    return false;
-  }
-  MOZ_ASSERT(CheckedUnwrap(promiseObj)->is<PromiseObject>());
-
-  RootedValue onFulfilled(cx, ObjectOrNullValue(onResolvedObj));
+  cx->check(promiseObj, onFulfilledObj, onRejectedObj);
+
+  MOZ_ASSERT_IF(onFulfilledObj, IsCallable(onFulfilledObj));
+  MOZ_ASSERT_IF(onRejectedObj, IsCallable(onRejectedObj));
+
+  RootedValue onFulfilled(cx, ObjectOrNullValue(onFulfilledObj));
   RootedValue onRejected(cx, ObjectOrNullValue(onRejectedObj));
   return OriginalPromiseThen(cx, promiseObj, onFulfilled, onRejected, resultObj,
                              createDependent);
 }
 
 JS_PUBLIC_API JSObject* JS::CallOriginalPromiseThen(
     JSContext* cx, JS::HandleObject promiseObj, JS::HandleObject onResolvedObj,
     JS::HandleObject onRejectedObj) {
--- a/js/src/jsapi.h
+++ b/js/src/jsapi.h
@@ -3451,39 +3451,43 @@ extern JS_PUBLIC_API bool ResolvePromise
 extern JS_PUBLIC_API bool RejectPromise(JSContext* cx,
                                         JS::HandleObject promiseObj,
                                         JS::HandleValue rejectionValue);
 
 /**
  * Calls the current compartment's original Promise.prototype.then on the
  * given `promise`, with `onResolve` and `onReject` passed as arguments.
  *
- * Asserts if the passed-in `promise` object isn't an unwrapped instance of
- * `Promise` or a subclass or `onResolve` and `onReject` aren't both either
- * `nullptr` or callable objects.
+ * Throws a TypeError if `promise` isn't a Promise (or possibly a different
+ * error if it's a security wrapper or dead object proxy).
+ *
+ * Asserts that `onFulfilled` and `onRejected` are each either callable or
+ * null.
  */
 extern JS_PUBLIC_API JSObject* CallOriginalPromiseThen(
-    JSContext* cx, JS::HandleObject promise, JS::HandleObject onResolve,
-    JS::HandleObject onReject);
+    JSContext* cx, JS::HandleObject promise, JS::HandleObject onFulfilled,
+    JS::HandleObject onRejected);
 
 /**
  * Unforgeable, optimized version of the JS builtin Promise.prototype.then.
  *
  * Takes a Promise instance and `onResolve`, `onReject` callables to enqueue
  * as reactions for that promise. In difference to Promise.prototype.then,
  * this doesn't create and return a new Promise instance.
  *
- * Asserts if the passed-in `promise` object isn't an unwrapped instance of
- * `Promise` or a subclass or `onResolve` and `onReject` aren't both callable
- * objects.
+ * Throws a TypeError if `promise` isn't a Promise (or possibly a different
+ * error if it's a security wrapper or dead object proxy).
+ *
+ * Asserts that `onFulfilled` and `onRejected` are each either callable or
+ * null.
  */
 extern JS_PUBLIC_API bool AddPromiseReactions(JSContext* cx,
                                               JS::HandleObject promise,
-                                              JS::HandleObject onResolve,
-                                              JS::HandleObject onReject);
+                                              JS::HandleObject onFulfilled,
+                                              JS::HandleObject onRejected);
 
 // This enum specifies whether a promise is expected to keep track of
 // information that is useful for embedders to implement user activation
 // behavior handling as specified in the HTML spec:
 // https://html.spec.whatwg.org/multipage/interaction.html#triggered-by-user-activation
 // By default, promises created by SpiderMonkey do not make any attempt to keep
 // track of information about whether an activation behavior was being processed
 // when the original promise in a promise chain was created.  If the embedder
--- a/js/src/vm/Compartment-inl.h
+++ b/js/src/vm/Compartment-inl.h
@@ -113,122 +113,107 @@ namespace detail {
  * Return the name of class T as a static null-terminated ASCII string constant
  * (for error messages).
  */
 template <class T>
 const char* ClassName() {
   return T::class_.name;
 }
 
-template <class T>
-MOZ_MUST_USE T* UnwrapAndTypeCheckThisSlowPath(JSContext* cx, HandleValue val,
-                                               const char* methodName) {
-  if (!val.isObject()) {
-    JS_ReportErrorNumberLatin1(cx, GetErrorMessage, nullptr,
-                               JSMSG_INCOMPATIBLE_PROTO, ClassName<T>(),
-                               methodName, InformalValueTypeName(val));
-    return nullptr;
-  }
-
-  JSObject* obj = &val.toObject();
-  if (IsWrapper(obj)) {
-    obj = CheckedUnwrap(obj);
-    if (!obj) {
-      ReportAccessDenied(cx);
-      return nullptr;
-    }
-  }
-
-  if (!obj->is<T>()) {
-    JS_ReportErrorNumberLatin1(cx, GetErrorMessage, nullptr,
-                               JSMSG_INCOMPATIBLE_PROTO, ClassName<T>(),
-                               methodName, InformalValueTypeName(val));
-    return nullptr;
-  }
-
-  return &obj->as<T>();
-}
-
-template <class T>
-MOZ_MUST_USE T* UnwrapAndTypeCheckArgumentSlowPath(JSContext* cx,
-                                                   CallArgs& args,
-                                                   const char* methodName,
-                                                   int argIndex) {
-  Value val = args.get(argIndex);
+template <class T, class ErrorCallback>
+MOZ_MUST_USE T* UnwrapAndTypeCheckValueSlowPath(JSContext* cx,
+                                                HandleValue value,
+                                                ErrorCallback throwTypeError) {
   JSObject* obj = nullptr;
-  if (val.isObject()) {
-    obj = &val.toObject();
+  if (value.isObject()) {
+    obj = &value.toObject();
     if (IsWrapper(obj)) {
       obj = CheckedUnwrap(obj);
       if (!obj) {
         ReportAccessDenied(cx);
         return nullptr;
       }
     }
   }
 
   if (!obj || !obj->is<T>()) {
-    ToCStringBuf cbuf;
-    if (char* numStr = NumberToCString(cx, &cbuf, argIndex + 1, 10)) {
-      JS_ReportErrorNumberLatin1(cx, GetErrorMessage, nullptr,
-                                 JSMSG_WRONG_TYPE_ARG, numStr, methodName,
-                                 ClassName<T>(), InformalValueTypeName(val));
-    }
+    throwTypeError();
     return nullptr;
   }
 
   return &obj->as<T>();
 }
 
 }  // namespace detail
 
 /**
- * Remove all wrappers from `val` and try to downcast the result to `T`.
+ * Remove all wrappers from `val` and try to downcast the result to class `T`.
+ *
+ * DANGER: The result may not be same-compartment with `cx`.
+ *
+ * This calls `throwTypeError` if the value isn't an object, cannot be
+ * unwrapped, or isn't an instance of the expected type. `throwTypeError` must
+ * in fact throw a TypeError (or OOM trying).
+ */
+template <class T, class ErrorCallback>
+inline MOZ_MUST_USE T* UnwrapAndTypeCheckValue(JSContext* cx, HandleValue value,
+                                               ErrorCallback throwTypeError) {
+  static_assert(!std::is_convertible<T*, Wrapper*>::value,
+                "T can't be a Wrapper type; this function discards wrappers");
+  cx->check(value);
+  if (value.isObject() && value.toObject().is<T>()) {
+    return &value.toObject().as<T>();
+  }
+  return detail::UnwrapAndTypeCheckValueSlowPath<T>(cx, value, throwTypeError);
+}
+
+/**
+ * Remove all wrappers from `args.thisv()` and try to downcast the result to
+ * class `T`.
  *
  * DANGER: The result may not be same-compartment with `cx`.
  *
  * This throws a TypeError if the value isn't an object, cannot be unwrapped,
  * or isn't an instance of the expected type.
  */
 template <class T>
 inline MOZ_MUST_USE T* UnwrapAndTypeCheckThis(JSContext* cx, CallArgs& args,
                                               const char* methodName) {
-  static_assert(!std::is_convertible<T*, Wrapper*>::value,
-                "T can't be a Wrapper type; this function discards wrappers");
-
   HandleValue thisv = args.thisv();
-  cx->check(thisv);
-  if (thisv.isObject() && thisv.toObject().is<T>()) {
-    return &thisv.toObject().as<T>();
-  }
-  return detail::UnwrapAndTypeCheckThisSlowPath<T>(cx, thisv, methodName);
+  return UnwrapAndTypeCheckValue<T>(cx, thisv, [cx, methodName, thisv] {
+    JS_ReportErrorNumberLatin1(cx, GetErrorMessage, nullptr,
+                               JSMSG_INCOMPATIBLE_PROTO, detail::ClassName<T>(),
+                               methodName, InformalValueTypeName(thisv));
+  });
 }
 
 /**
  * Remove all wrappers from `args[argIndex]` and try to downcast the result to
  * class `T`.
  *
  * DANGER: The result may not be same-compartment with `cx`.
  *
  * This throws a TypeError if the specified argument is missing, isn't an
  * object, cannot be unwrapped, or isn't an instance of the expected type.
  */
 template <class T>
 inline MOZ_MUST_USE T* UnwrapAndTypeCheckArgument(JSContext* cx, CallArgs& args,
                                                   const char* methodName,
                                                   int argIndex) {
-  static_assert(!std::is_convertible<T*, Wrapper*>::value,
-                "T can't be a Wrapper type; this function discards wrappers");
-
-  Value val = args.get(argIndex);
-  if (val.isObject() && val.toObject().is<T>()) {
-    return &val.toObject().as<T>();
-  }
-  return detail::UnwrapAndTypeCheckArgumentSlowPath<T>(cx, args, methodName,
-                                                       argIndex);
+  HandleValue val = args.get(argIndex);
+  return UnwrapAndTypeCheckValue<T>(cx, val, [cx, val, methodName, argIndex] {
+    ToCStringBuf cbuf;
+    if (char* numStr = NumberToCString(cx, &cbuf, argIndex + 1, 10)) {
+      JS_ReportErrorNumberLatin1(
+          cx, GetErrorMessage, nullptr, JSMSG_WRONG_TYPE_ARG, numStr,
+          methodName, detail::ClassName<T>(), InformalValueTypeName(val));
+    } else {
+      ReportOutOfMemory(cx);
+    }
+  });
 }
 
 /**
  * Unwrap an object of a known type.
  *
  * If `obj` is an object of class T, this returns a pointer to that object. If
  * `obj` is a wrapper for such an object, this tries to unwrap the object and
  * return a pointer to it. If access is denied, or `obj` was a wrapper but has
--- a/layout/forms/nsCheckboxRadioFrame.cpp
+++ b/layout/forms/nsCheckboxRadioFrame.cpp
@@ -35,17 +35,17 @@ void nsCheckboxRadioFrame::DestroyFrom(n
   // Unregister the access key registered in reflow
   nsCheckboxRadioFrame::RegUnRegAccessKey(static_cast<nsIFrame*>(this), false);
   nsAtomicContainerFrame::DestroyFrom(aDestructRoot, aPostDestroyData);
 }
 
 NS_IMPL_FRAMEARENA_HELPERS(nsCheckboxRadioFrame)
 
 NS_QUERYFRAME_HEAD(nsCheckboxRadioFrame)
-NS_QUERYFRAME_ENTRY(nsIFormControlFrame)
+  NS_QUERYFRAME_ENTRY(nsIFormControlFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsAtomicContainerFrame)
 
 /* virtual */ nscoord nsCheckboxRadioFrame::GetMinISize(
     gfxContext* aRenderingContext) {
   nscoord result;
   DISPLAY_MIN_INLINE_SIZE(this, result);
   result = StyleDisplay()->HasAppearance() ? DefaultSize() : 0;
   return result;
--- a/layout/forms/nsColorControlFrame.cpp
+++ b/layout/forms/nsColorControlFrame.cpp
@@ -26,18 +26,18 @@ nsColorControlFrame::nsColorControlFrame
 nsIFrame* NS_NewColorControlFrame(nsIPresShell* aPresShell,
                                   ComputedStyle* aStyle) {
   return new (aPresShell) nsColorControlFrame(aStyle);
 }
 
 NS_IMPL_FRAMEARENA_HELPERS(nsColorControlFrame)
 
 NS_QUERYFRAME_HEAD(nsColorControlFrame)
-NS_QUERYFRAME_ENTRY(nsColorControlFrame)
-NS_QUERYFRAME_ENTRY(nsIAnonymousContentCreator)
+  NS_QUERYFRAME_ENTRY(nsColorControlFrame)
+  NS_QUERYFRAME_ENTRY(nsIAnonymousContentCreator)
 NS_QUERYFRAME_TAIL_INHERITING(nsHTMLButtonControlFrame)
 
 void nsColorControlFrame::DestroyFrom(nsIFrame* aDestructRoot,
                                       PostDestroyData& aPostDestroyData) {
   nsCheckboxRadioFrame::RegUnRegAccessKey(static_cast<nsIFrame*>(this), false);
   aPostDestroyData.AddAnonymousContent(mColorContent.forget());
   nsHTMLButtonControlFrame::DestroyFrom(aDestructRoot, aPostDestroyData);
 }
--- a/layout/forms/nsComboboxControlFrame.cpp
+++ b/layout/forms/nsComboboxControlFrame.cpp
@@ -234,21 +234,21 @@ nsComboboxControlFrame::nsComboboxContro
       //--------------------------------------------------------------
       nsComboboxControlFrame::~nsComboboxControlFrame() {
   REFLOW_COUNTER_DUMP("nsCCF");
 }
 
 //--------------------------------------------------------------
 
 NS_QUERYFRAME_HEAD(nsComboboxControlFrame)
-NS_QUERYFRAME_ENTRY(nsComboboxControlFrame)
-NS_QUERYFRAME_ENTRY(nsIFormControlFrame)
-NS_QUERYFRAME_ENTRY(nsIAnonymousContentCreator)
-NS_QUERYFRAME_ENTRY(nsISelectControlFrame)
-NS_QUERYFRAME_ENTRY(nsIStatefulFrame)
+  NS_QUERYFRAME_ENTRY(nsComboboxControlFrame)
+  NS_QUERYFRAME_ENTRY(nsIFormControlFrame)
+  NS_QUERYFRAME_ENTRY(nsIAnonymousContentCreator)
+  NS_QUERYFRAME_ENTRY(nsISelectControlFrame)
+  NS_QUERYFRAME_ENTRY(nsIStatefulFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsBlockFrame)
 
 #ifdef ACCESSIBILITY
 a11y::AccType nsComboboxControlFrame::AccessibleType() {
   return a11y::eHTMLComboboxType;
 }
 #endif
 
--- a/layout/forms/nsDateTimeControlFrame.cpp
+++ b/layout/forms/nsDateTimeControlFrame.cpp
@@ -32,18 +32,18 @@ using namespace mozilla::dom;
 nsIFrame* NS_NewDateTimeControlFrame(nsIPresShell* aPresShell,
                                      ComputedStyle* aStyle) {
   return new (aPresShell) nsDateTimeControlFrame(aStyle);
 }
 
 NS_IMPL_FRAMEARENA_HELPERS(nsDateTimeControlFrame)
 
 NS_QUERYFRAME_HEAD(nsDateTimeControlFrame)
-NS_QUERYFRAME_ENTRY(nsDateTimeControlFrame)
-NS_QUERYFRAME_ENTRY(nsIAnonymousContentCreator)
+  NS_QUERYFRAME_ENTRY(nsDateTimeControlFrame)
+  NS_QUERYFRAME_ENTRY(nsIAnonymousContentCreator)
 NS_QUERYFRAME_TAIL_INHERITING(nsContainerFrame)
 
 nsDateTimeControlFrame::nsDateTimeControlFrame(ComputedStyle* aStyle)
     : nsContainerFrame(aStyle, kClassID) {}
 
 void nsDateTimeControlFrame::DestroyFrom(nsIFrame* aDestructRoot,
                                          PostDestroyData& aPostDestroyData) {
   aPostDestroyData.AddAnonymousContent(mInputAreaContent.forget());
--- a/layout/forms/nsFileControlFrame.cpp
+++ b/layout/forms/nsFileControlFrame.cpp
@@ -297,18 +297,18 @@ void nsFileControlFrame::AppendAnonymous
   }
 
   if (mTextContent) {
     aElements.AppendElement(mTextContent);
   }
 }
 
 NS_QUERYFRAME_HEAD(nsFileControlFrame)
-NS_QUERYFRAME_ENTRY(nsIAnonymousContentCreator)
-NS_QUERYFRAME_ENTRY(nsIFormControlFrame)
+  NS_QUERYFRAME_ENTRY(nsIAnonymousContentCreator)
+  NS_QUERYFRAME_ENTRY(nsIFormControlFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsBlockFrame)
 
 void nsFileControlFrame::SetFocus(bool aOn, bool aRepaint) {}
 
 static void AppendBlobImplAsDirectory(nsTArray<OwningFileOrDirectory>& aArray,
                                       BlobImpl* aBlobImpl,
                                       nsIContent* aContent) {
   MOZ_ASSERT(aBlobImpl);
--- a/layout/forms/nsGfxButtonControlFrame.cpp
+++ b/layout/forms/nsGfxButtonControlFrame.cpp
@@ -56,17 +56,17 @@ nsresult nsGfxButtonControlFrame::Create
 void nsGfxButtonControlFrame::AppendAnonymousContentTo(
     nsTArray<nsIContent*>& aElements, uint32_t aFilter) {
   if (mTextContent) {
     aElements.AppendElement(mTextContent);
   }
 }
 
 NS_QUERYFRAME_HEAD(nsGfxButtonControlFrame)
-NS_QUERYFRAME_ENTRY(nsIAnonymousContentCreator)
+  NS_QUERYFRAME_ENTRY(nsIAnonymousContentCreator)
 NS_QUERYFRAME_TAIL_INHERITING(nsHTMLButtonControlFrame)
 
 // Initially we hardcoded the default strings here.
 // Next, we used html.css to store the default label for various types
 // of buttons. (nsGfxButtonControlFrame::DoNavQuirksReflow rev 1.20)
 // However, since html.css is not internationalized, we now grab the default
 // label from a string bundle as is done for all other UI strings.
 // See bug 16999 for further details.
--- a/layout/forms/nsHTMLButtonControlFrame.cpp
+++ b/layout/forms/nsHTMLButtonControlFrame.cpp
@@ -42,17 +42,17 @@ void nsHTMLButtonControlFrame::DestroyFr
 void nsHTMLButtonControlFrame::Init(nsIContent* aContent,
                                     nsContainerFrame* aParent,
                                     nsIFrame* aPrevInFlow) {
   nsContainerFrame::Init(aContent, aParent, aPrevInFlow);
   mRenderer.SetFrame(this, PresContext());
 }
 
 NS_QUERYFRAME_HEAD(nsHTMLButtonControlFrame)
-NS_QUERYFRAME_ENTRY(nsIFormControlFrame)
+  NS_QUERYFRAME_ENTRY(nsIFormControlFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsContainerFrame)
 
 #ifdef ACCESSIBILITY
 a11y::AccType nsHTMLButtonControlFrame::AccessibleType() {
   return a11y::eHTMLButtonType;
 }
 #endif
 
--- a/layout/forms/nsImageControlFrame.cpp
+++ b/layout/forms/nsImageControlFrame.cpp
@@ -84,17 +84,17 @@ void nsImageControlFrame::Init(nsIConten
     return;
   }
 
   mContent->SetProperty(nsGkAtoms::imageClickedPoint, new nsIntPoint(0, 0),
                         nsINode::DeleteProperty<nsIntPoint>);
 }
 
 NS_QUERYFRAME_HEAD(nsImageControlFrame)
-NS_QUERYFRAME_ENTRY(nsIFormControlFrame)
+  NS_QUERYFRAME_ENTRY(nsIFormControlFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsImageFrame)
 
 #ifdef ACCESSIBILITY
 a11y::AccType nsImageControlFrame::AccessibleType() {
   if (mContent->IsAnyOfHTMLElements(nsGkAtoms::button, nsGkAtoms::input)) {
     return a11y::eHTMLButtonType;
   }
 
--- a/layout/forms/nsLegendFrame.cpp
+++ b/layout/forms/nsLegendFrame.cpp
@@ -34,17 +34,17 @@ NS_IMPL_FRAMEARENA_HELPERS(nsLegendFrame
 
 void nsLegendFrame::DestroyFrom(nsIFrame* aDestructRoot,
                                 PostDestroyData& aPostDestroyData) {
   nsCheckboxRadioFrame::RegUnRegAccessKey(static_cast<nsIFrame*>(this), false);
   nsBlockFrame::DestroyFrom(aDestructRoot, aPostDestroyData);
 }
 
 NS_QUERYFRAME_HEAD(nsLegendFrame)
-NS_QUERYFRAME_ENTRY(nsLegendFrame)
+  NS_QUERYFRAME_ENTRY(nsLegendFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsBlockFrame)
 
 void nsLegendFrame::Reflow(nsPresContext* aPresContext,
                            ReflowOutput& aDesiredSize,
                            const ReflowInput& aReflowInput,
                            nsReflowStatus& aStatus) {
   DO_GLOBAL_REFLOW_COUNT("nsLegendFrame");
   DISPLAY_REFLOW(aPresContext, this, aReflowInput, aDesiredSize, aStatus);
--- a/layout/forms/nsListControlFrame.cpp
+++ b/layout/forms/nsListControlFrame.cpp
@@ -246,19 +246,19 @@ void nsListControlFrame::InvalidateFocus
 
   nsIFrame* containerFrame = GetOptionsContainer();
   if (containerFrame) {
     containerFrame->InvalidateFrame();
   }
 }
 
 NS_QUERYFRAME_HEAD(nsListControlFrame)
-NS_QUERYFRAME_ENTRY(nsIFormControlFrame)
-NS_QUERYFRAME_ENTRY(nsISelectControlFrame)
-NS_QUERYFRAME_ENTRY(nsListControlFrame)
+  NS_QUERYFRAME_ENTRY(nsIFormControlFrame)
+  NS_QUERYFRAME_ENTRY(nsISelectControlFrame)
+  NS_QUERYFRAME_ENTRY(nsListControlFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsHTMLScrollFrame)
 
 #ifdef ACCESSIBILITY
 a11y::AccType nsListControlFrame::AccessibleType() {
   return a11y::eHTMLSelectListType;
 }
 #endif
 
--- a/layout/forms/nsMeterFrame.cpp
+++ b/layout/forms/nsMeterFrame.cpp
@@ -66,18 +66,18 @@ nsresult nsMeterFrame::CreateAnonymousCo
 void nsMeterFrame::AppendAnonymousContentTo(nsTArray<nsIContent*>& aElements,
                                             uint32_t aFilter) {
   if (mBarDiv) {
     aElements.AppendElement(mBarDiv);
   }
 }
 
 NS_QUERYFRAME_HEAD(nsMeterFrame)
-NS_QUERYFRAME_ENTRY(nsMeterFrame)
-NS_QUERYFRAME_ENTRY(nsIAnonymousContentCreator)
+  NS_QUERYFRAME_ENTRY(nsMeterFrame)
+  NS_QUERYFRAME_ENTRY(nsIAnonymousContentCreator)
 NS_QUERYFRAME_TAIL_INHERITING(nsContainerFrame)
 
 void nsMeterFrame::Reflow(nsPresContext* aPresContext,
                           ReflowOutput& aDesiredSize,
                           const ReflowInput& aReflowInput,
                           nsReflowStatus& aStatus) {
   MarkInReflow();
   DO_GLOBAL_REFLOW_COUNT("nsMeterFrame");
--- a/layout/forms/nsNumberControlFrame.cpp
+++ b/layout/forms/nsNumberControlFrame.cpp
@@ -35,19 +35,19 @@ using namespace mozilla::dom;
 nsIFrame* NS_NewNumberControlFrame(nsIPresShell* aPresShell,
                                    ComputedStyle* aStyle) {
   return new (aPresShell) nsNumberControlFrame(aStyle);
 }
 
 NS_IMPL_FRAMEARENA_HELPERS(nsNumberControlFrame)
 
 NS_QUERYFRAME_HEAD(nsNumberControlFrame)
-NS_QUERYFRAME_ENTRY(nsNumberControlFrame)
-NS_QUERYFRAME_ENTRY(nsIAnonymousContentCreator)
-NS_QUERYFRAME_ENTRY(nsIFormControlFrame)
+  NS_QUERYFRAME_ENTRY(nsNumberControlFrame)
+  NS_QUERYFRAME_ENTRY(nsIAnonymousContentCreator)
+  NS_QUERYFRAME_ENTRY(nsIFormControlFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsContainerFrame)
 
 nsNumberControlFrame::nsNumberControlFrame(ComputedStyle* aStyle)
     : nsContainerFrame(aStyle, kClassID), mHandlingInputEvent(false) {}
 
 void nsNumberControlFrame::DestroyFrom(nsIFrame* aDestructRoot,
                                        PostDestroyData& aPostDestroyData) {
   NS_ASSERTION(
--- a/layout/forms/nsProgressFrame.cpp
+++ b/layout/forms/nsProgressFrame.cpp
@@ -65,18 +65,18 @@ nsresult nsProgressFrame::CreateAnonymou
 void nsProgressFrame::AppendAnonymousContentTo(nsTArray<nsIContent*>& aElements,
                                                uint32_t aFilter) {
   if (mBarDiv) {
     aElements.AppendElement(mBarDiv);
   }
 }
 
 NS_QUERYFRAME_HEAD(nsProgressFrame)
-NS_QUERYFRAME_ENTRY(nsProgressFrame)
-NS_QUERYFRAME_ENTRY(nsIAnonymousContentCreator)
+  NS_QUERYFRAME_ENTRY(nsProgressFrame)
+  NS_QUERYFRAME_ENTRY(nsIAnonymousContentCreator)
 NS_QUERYFRAME_TAIL_INHERITING(nsContainerFrame)
 
 void nsProgressFrame::BuildDisplayList(nsDisplayListBuilder* aBuilder,
                                        const nsDisplayListSet& aLists) {
   BuildDisplayListForInline(aBuilder, aLists);
 }
 
 void nsProgressFrame::Reflow(nsPresContext* aPresContext,
--- a/layout/forms/nsRangeFrame.cpp
+++ b/layout/forms/nsRangeFrame.cpp
@@ -47,18 +47,18 @@ nsIFrame* NS_NewRangeFrame(nsIPresShell*
 nsRangeFrame::nsRangeFrame(ComputedStyle* aStyle)
     : nsContainerFrame(aStyle, kClassID) {}
 
 nsRangeFrame::~nsRangeFrame() {}
 
 NS_IMPL_FRAMEARENA_HELPERS(nsRangeFrame)
 
 NS_QUERYFRAME_HEAD(nsRangeFrame)
-NS_QUERYFRAME_ENTRY(nsRangeFrame)
-NS_QUERYFRAME_ENTRY(nsIAnonymousContentCreator)
+  NS_QUERYFRAME_ENTRY(nsRangeFrame)
+  NS_QUERYFRAME_ENTRY(nsIAnonymousContentCreator)
 NS_QUERYFRAME_TAIL_INHERITING(nsContainerFrame)
 
 void nsRangeFrame::Init(nsIContent* aContent, nsContainerFrame* aParent,
                         nsIFrame* aPrevInFlow) {
   // With APZ enabled, touch events may be handled directly by the APZC code
   // if the APZ knows that there is no content interested in the touch event.
   // The range input element *is* interested in touch events, but doesn't use
   // the usual mechanism (i.e. registering an event listener) to handle touch
--- a/layout/forms/nsTextControlFrame.cpp
+++ b/layout/forms/nsTextControlFrame.cpp
@@ -54,20 +54,20 @@ using namespace mozilla::dom;
 nsIFrame* NS_NewTextControlFrame(nsIPresShell* aPresShell,
                                  ComputedStyle* aStyle) {
   return new (aPresShell) nsTextControlFrame(aStyle);
 }
 
 NS_IMPL_FRAMEARENA_HELPERS(nsTextControlFrame)
 
 NS_QUERYFRAME_HEAD(nsTextControlFrame)
-NS_QUERYFRAME_ENTRY(nsIFormControlFrame)
-NS_QUERYFRAME_ENTRY(nsIAnonymousContentCreator)
-NS_QUERYFRAME_ENTRY(nsITextControlFrame)
-NS_QUERYFRAME_ENTRY(nsIStatefulFrame)
+  NS_QUERYFRAME_ENTRY(nsIFormControlFrame)
+  NS_QUERYFRAME_ENTRY(nsIAnonymousContentCreator)
+  NS_QUERYFRAME_ENTRY(nsITextControlFrame)
+  NS_QUERYFRAME_ENTRY(nsIStatefulFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsContainerFrame)
 
 #ifdef ACCESSIBILITY
 a11y::AccType nsTextControlFrame::AccessibleType() {
   return a11y::eHTMLTextFieldType;
 }
 #endif
 
--- a/layout/generic/ColumnSetWrapperFrame.cpp
+++ b/layout/generic/ColumnSetWrapperFrame.cpp
@@ -22,17 +22,17 @@ nsBlockFrame* NS_NewColumnSetWrapperFram
   // 9.4.1.
   frame->AddStateBits(aStateFlags | NS_BLOCK_FORMATTING_CONTEXT_STATE_BITS);
   return frame;
 }
 
 NS_IMPL_FRAMEARENA_HELPERS(ColumnSetWrapperFrame)
 
 NS_QUERYFRAME_HEAD(ColumnSetWrapperFrame)
-NS_QUERYFRAME_ENTRY(ColumnSetWrapperFrame)
+  NS_QUERYFRAME_ENTRY(ColumnSetWrapperFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsBlockFrame)
 
 ColumnSetWrapperFrame::ColumnSetWrapperFrame(ComputedStyle* aStyle)
     : nsBlockFrame(aStyle, kClassID) {}
 
 nsContainerFrame* ColumnSetWrapperFrame::GetContentInsertionFrame() {
   nsIFrame* columnSet = PrincipalChildList().OnlyChild();
   if (columnSet) {
--- a/layout/generic/DetailsFrame.cpp
+++ b/layout/generic/DetailsFrame.cpp
@@ -14,18 +14,18 @@
 #include "nsTextNode.h"
 
 using namespace mozilla;
 using namespace mozilla::dom;
 
 NS_IMPL_FRAMEARENA_HELPERS(DetailsFrame)
 
 NS_QUERYFRAME_HEAD(DetailsFrame)
-NS_QUERYFRAME_ENTRY(DetailsFrame)
-NS_QUERYFRAME_ENTRY(nsIAnonymousContentCreator)
+  NS_QUERYFRAME_ENTRY(DetailsFrame)
+  NS_QUERYFRAME_ENTRY(nsIAnonymousContentCreator)
 NS_QUERYFRAME_TAIL_INHERITING(nsBlockFrame)
 
 nsBlockFrame* NS_NewDetailsFrame(nsIPresShell* aPresShell,
                                  ComputedStyle* aStyle) {
   return new (aPresShell) DetailsFrame(aStyle);
 }
 
 namespace mozilla {
--- a/layout/generic/ViewportFrame.cpp
+++ b/layout/generic/ViewportFrame.cpp
@@ -27,17 +27,17 @@ typedef nsAbsoluteContainingBlock::AbsPo
 
 ViewportFrame* NS_NewViewportFrame(nsIPresShell* aPresShell,
                                    ComputedStyle* aStyle) {
   return new (aPresShell) ViewportFrame(aStyle);
 }
 
 NS_IMPL_FRAMEARENA_HELPERS(ViewportFrame)
 NS_QUERYFRAME_HEAD(ViewportFrame)
-NS_QUERYFRAME_ENTRY(ViewportFrame)
+  NS_QUERYFRAME_ENTRY(ViewportFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsContainerFrame)
 
 void ViewportFrame::Init(nsIContent* aContent, nsContainerFrame* aParent,
                          nsIFrame* aPrevInFlow) {
   nsContainerFrame::Init(aContent, aParent, aPrevInFlow);
   // No need to call CreateView() here - the frame ctor will call SetView()
   // with the ViewManager's root view, so we'll assign it in SetViewInternal().
 
--- a/layout/generic/nsBlockFrame.cpp
+++ b/layout/generic/nsBlockFrame.cpp
@@ -371,17 +371,17 @@ void nsBlockFrame::DestroyFrom(nsIFrame*
   if (NS_FAILED(rv)) {
     delete it;
     return nullptr;
   }
   return it;
 }
 
 NS_QUERYFRAME_HEAD(nsBlockFrame)
-NS_QUERYFRAME_ENTRY(nsBlockFrame)
+  NS_QUERYFRAME_ENTRY(nsBlockFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsContainerFrame)
 
 #ifdef DEBUG_FRAME_DUMP
 void nsBlockFrame::List(FILE* out, const char* aPrefix, uint32_t aFlags) const {
   nsCString str;
   ListGeneric(str, aPrefix, aFlags);
 
   fprintf_stderr(out, "%s<\n", str.get());
--- a/layout/generic/nsBulletFrame.cpp
+++ b/layout/generic/nsBulletFrame.cpp
@@ -54,17 +54,17 @@ using namespace mozilla::image;
 using namespace mozilla::layout;
 
 NS_DECLARE_FRAME_PROPERTY_SMALL_VALUE(FontSizeInflationProperty, float)
 
 NS_IMPL_FRAMEARENA_HELPERS(nsBulletFrame)
 
 #ifdef DEBUG
 NS_QUERYFRAME_HEAD(nsBulletFrame)
-NS_QUERYFRAME_ENTRY(nsBulletFrame)
+  NS_QUERYFRAME_ENTRY(nsBulletFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsFrame)
 #endif
 
 nsBulletFrame::~nsBulletFrame() {}
 
 void nsBulletFrame::DestroyFrom(nsIFrame* aDestructRoot,
                                 PostDestroyData& aPostDestroyData) {
   // Stop image loading first.
--- a/layout/generic/nsCanvasFrame.cpp
+++ b/layout/generic/nsCanvasFrame.cpp
@@ -46,19 +46,19 @@ using namespace mozilla::layers;
 nsCanvasFrame* NS_NewCanvasFrame(nsIPresShell* aPresShell,
                                  ComputedStyle* aStyle) {
   return new (aPresShell) nsCanvasFrame(aStyle);
 }
 
 NS_IMPL_FRAMEARENA_HELPERS(nsCanvasFrame)
 
 NS_QUERYFRAME_HEAD(nsCanvasFrame)
-NS_QUERYFRAME_ENTRY(nsCanvasFrame)
-NS_QUERYFRAME_ENTRY(nsIAnonymousContentCreator)
-NS_QUERYFRAME_ENTRY(nsIPopupContainer)
+  NS_QUERYFRAME_ENTRY(nsCanvasFrame)
+  NS_QUERYFRAME_ENTRY(nsIAnonymousContentCreator)
+  NS_QUERYFRAME_ENTRY(nsIPopupContainer)
 NS_QUERYFRAME_TAIL_INHERITING(nsContainerFrame)
 
 void nsCanvasFrame::ShowCustomContentContainer() {
   if (mCustomContentContainer) {
     mCustomContentContainer->UnsetAttr(kNameSpaceID_None, nsGkAtoms::hidden,
                                        true);
   }
 }
--- a/layout/generic/nsContainerFrame.cpp
+++ b/layout/generic/nsContainerFrame.cpp
@@ -41,17 +41,17 @@
 
 using namespace mozilla;
 using namespace mozilla::dom;
 using namespace mozilla::layout;
 
 nsContainerFrame::~nsContainerFrame() {}
 
 NS_QUERYFRAME_HEAD(nsContainerFrame)
-NS_QUERYFRAME_ENTRY(nsContainerFrame)
+  NS_QUERYFRAME_ENTRY(nsContainerFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsSplittableFrame)
 
 void nsContainerFrame::Init(nsIContent* aContent, nsContainerFrame* aParent,
                             nsIFrame* aPrevInFlow) {
   nsSplittableFrame::Init(aContent, aParent, aPrevInFlow);
   if (aPrevInFlow) {
     // Make sure we copy bits from our prev-in-flow that will affect
     // us. A continuation for a container frame needs to know if it
--- a/layout/generic/nsFirstLetterFrame.cpp
+++ b/layout/generic/nsFirstLetterFrame.cpp
@@ -24,17 +24,17 @@ using namespace mozilla::layout;
 nsFirstLetterFrame* NS_NewFirstLetterFrame(nsIPresShell* aPresShell,
                                            ComputedStyle* aStyle) {
   return new (aPresShell) nsFirstLetterFrame(aStyle);
 }
 
 NS_IMPL_FRAMEARENA_HELPERS(nsFirstLetterFrame)
 
 NS_QUERYFRAME_HEAD(nsFirstLetterFrame)
-NS_QUERYFRAME_ENTRY(nsFirstLetterFrame)
+  NS_QUERYFRAME_ENTRY(nsFirstLetterFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsContainerFrame)
 
 #ifdef DEBUG_FRAME_DUMP
 nsresult nsFirstLetterFrame::GetFrameName(nsAString& aResult) const {
   return MakeFrameName(NS_LITERAL_STRING("Letter"), aResult);
 }
 #endif
 
--- a/layout/generic/nsFlexContainerFrame.cpp
+++ b/layout/generic/nsFlexContainerFrame.cpp
@@ -2313,17 +2313,17 @@ class MOZ_STACK_CLASS SingleLineCrossAxi
 };
 
 //----------------------------------------------------------------------
 
 // Frame class boilerplate
 // =======================
 
 NS_QUERYFRAME_HEAD(nsFlexContainerFrame)
-NS_QUERYFRAME_ENTRY(nsFlexContainerFrame)
+  NS_QUERYFRAME_ENTRY(nsFlexContainerFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsContainerFrame)
 
 NS_IMPL_FRAMEARENA_HELPERS(nsFlexContainerFrame)
 
 nsContainerFrame* NS_NewFlexContainerFrame(nsIPresShell* aPresShell,
                                            ComputedStyle* aStyle) {
   return new (aPresShell) nsFlexContainerFrame(aStyle);
 }
--- a/layout/generic/nsFrame.cpp
+++ b/layout/generic/nsFrame.cpp
@@ -470,17 +470,17 @@ NS_IMPL_FRAMEARENA_HELPERS(nsFrame)
 
 // Dummy operator delete.  Will never be called, but must be defined
 // to satisfy some C++ ABIs.
 void nsFrame::operator delete(void*, size_t) {
   MOZ_CRASH("nsFrame::operator delete should never be called");
 }
 
 NS_QUERYFRAME_HEAD(nsFrame)
-NS_QUERYFRAME_ENTRY(nsIFrame)
+  NS_QUERYFRAME_ENTRY(nsIFrame)
 NS_QUERYFRAME_TAIL_INHERITANCE_ROOT
 
 /////////////////////////////////////////////////////////////////////////////
 // nsIFrame
 
 static bool IsFontSizeInflationContainer(nsIFrame* aFrame,
                                          const nsStyleDisplay* aStyleDisplay) {
   /*
--- a/layout/generic/nsFrameSetFrame.cpp
+++ b/layout/generic/nsFrameSetFrame.cpp
@@ -177,17 +177,17 @@ nsHTMLFramesetFrame::nsHTMLFramesetFrame
   mChildCount = 0;
   mTopLevelFrameset = nullptr;
   mEdgeColors.Set(NO_COLOR);
 }
 
 nsHTMLFramesetFrame::~nsHTMLFramesetFrame() {}
 
 NS_QUERYFRAME_HEAD(nsHTMLFramesetFrame)
-NS_QUERYFRAME_ENTRY(nsHTMLFramesetFrame)
+  NS_QUERYFRAME_ENTRY(nsHTMLFramesetFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsContainerFrame)
 
 void nsHTMLFramesetFrame::Init(nsIContent* aContent, nsContainerFrame* aParent,
                                nsIFrame* aPrevInFlow) {
   nsContainerFrame::Init(aContent, aParent, aPrevInFlow);
   // find the highest ancestor that is a frameset
   nsIFrame* parentFrame = GetParent();
   mTopLevelFrameset = this;
@@ -1482,17 +1482,17 @@ nsresult nsHTMLFramesetBorderFrame::GetF
 }
 #endif
 
 /*******************************************************************************
  * nsHTMLFramesetBlankFrame
  ******************************************************************************/
 
 NS_QUERYFRAME_HEAD(nsHTMLFramesetBlankFrame)
-NS_QUERYFRAME_ENTRY(nsHTMLFramesetBlankFrame)
+  NS_QUERYFRAME_ENTRY(nsHTMLFramesetBlankFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsLeafFrame)
 
 NS_IMPL_FRAMEARENA_HELPERS(nsHTMLFramesetBlankFrame)
 
 nsHTMLFramesetBlankFrame::~nsHTMLFramesetBlankFrame() {
   // printf("nsHTMLFramesetBlankFrame destructor %p \n", this);
 }
 
--- a/layout/generic/nsGfxScrollFrame.cpp
+++ b/layout/generic/nsGfxScrollFrame.cpp
@@ -1145,20 +1145,20 @@ a11y::AccType nsHTMLScrollFrame::Accessi
     return a11y::eNoType;
   }
 
   return a11y::eHyperTextType;
 }
 #endif
 
 NS_QUERYFRAME_HEAD(nsHTMLScrollFrame)
-NS_QUERYFRAME_ENTRY(nsIAnonymousContentCreator)
-NS_QUERYFRAME_ENTRY(nsIScrollableFrame)
-NS_QUERYFRAME_ENTRY(nsIStatefulFrame)
-NS_QUERYFRAME_ENTRY(nsIScrollbarMediator)
+  NS_QUERYFRAME_ENTRY(nsIAnonymousContentCreator)
+  NS_QUERYFRAME_ENTRY(nsIScrollableFrame)
+  NS_QUERYFRAME_ENTRY(nsIStatefulFrame)
+  NS_QUERYFRAME_ENTRY(nsIScrollbarMediator)
 NS_QUERYFRAME_TAIL_INHERITING(nsContainerFrame)
 
 //----------nsXULScrollFrame-------------------------------------------
 
 nsXULScrollFrame* NS_NewXULScrollFrame(nsIPresShell* aPresShell,
                                        ComputedStyle* aStyle, bool aIsRoot,
                                        bool aClipAllDescendants) {
   return new (aPresShell)
@@ -1582,20 +1582,20 @@ nsXULScrollFrame::DoXULLayout(nsBoxLayou
   nsresult rv = XULLayout(aState);
   aState.SetLayoutFlags(flags);
 
   nsBox::DoXULLayout(aState);
   return rv;
 }
 
 NS_QUERYFRAME_HEAD(nsXULScrollFrame)
-NS_QUERYFRAME_ENTRY(nsIAnonymousContentCreator)
-NS_QUERYFRAME_ENTRY(nsIScrollableFrame)
-NS_QUERYFRAME_ENTRY(nsIStatefulFrame)
-NS_QUERYFRAME_ENTRY(nsIScrollbarMediator)
+  NS_QUERYFRAME_ENTRY(nsIAnonymousContentCreator)
+  NS_QUERYFRAME_ENTRY(nsIScrollableFrame)
+  NS_QUERYFRAME_ENTRY(nsIStatefulFrame)
+  NS_QUERYFRAME_ENTRY(nsIScrollbarMediator)
 NS_QUERYFRAME_TAIL_INHERITING(nsBoxFrame)
 
 //-------------------- Helper ----------------------
 
 #define SMOOTH_SCROLL_PREF_NAME "general.smoothScroll"
 
 // AsyncSmoothMSDScroll has ref counting.
 class ScrollFrameHelper::AsyncSmoothMSDScroll final
--- a/layout/generic/nsGridContainerFrame.cpp
+++ b/layout/generic/nsGridContainerFrame.cpp
@@ -2479,17 +2479,17 @@ static uint16_t GetAlignJustifyFallbackI
 }
 
 //----------------------------------------------------------------------
 
 // Frame class boilerplate
 // =======================
 
 NS_QUERYFRAME_HEAD(nsGridContainerFrame)
-NS_QUERYFRAME_ENTRY(nsGridContainerFrame)
+  NS_QUERYFRAME_ENTRY(nsGridContainerFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsContainerFrame)
 
 NS_IMPL_FRAMEARENA_HELPERS(nsGridContainerFrame)
 
 nsContainerFrame* NS_NewGridContainerFrame(nsIPresShell* aPresShell,
                                            ComputedStyle* aStyle) {
   return new (aPresShell) nsGridContainerFrame(aStyle);
 }
--- a/layout/generic/nsHTMLCanvasFrame.cpp
+++ b/layout/generic/nsHTMLCanvasFrame.cpp
@@ -226,17 +226,17 @@ class nsDisplayCanvas final : public nsD
 };
 
 nsIFrame* NS_NewHTMLCanvasFrame(nsIPresShell* aPresShell,
                                 ComputedStyle* aStyle) {
   return new (aPresShell) nsHTMLCanvasFrame(aStyle);
 }
 
 NS_QUERYFRAME_HEAD(nsHTMLCanvasFrame)
-NS_QUERYFRAME_ENTRY(nsHTMLCanvasFrame)
+  NS_QUERYFRAME_ENTRY(nsHTMLCanvasFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsContainerFrame)
 
 NS_IMPL_FRAMEARENA_HELPERS(nsHTMLCanvasFrame)
 
 void nsHTMLCanvasFrame::Init(nsIContent* aContent, nsContainerFrame* aParent,
                              nsIFrame* aPrevInFlow) {
   nsContainerFrame::Init(aContent, aParent, aPrevInFlow);
 
--- a/layout/generic/nsImageFrame.cpp
+++ b/layout/generic/nsImageFrame.cpp
@@ -188,17 +188,17 @@ nsImageFrame::nsImageFrame(ComputedStyle
   // initial reflow yet, so don't touch those flags.
   mIntrinsicSize.width.SetCoordValue(0);
   mIntrinsicSize.height.SetCoordValue(0);
 }
 
 nsImageFrame::~nsImageFrame() {}
 
 NS_QUERYFRAME_HEAD(nsImageFrame)
-NS_QUERYFRAME_ENTRY(nsImageFrame)
+  NS_QUERYFRAME_ENTRY(nsImageFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsAtomicContainerFrame)
 
 #ifdef ACCESSIBILITY
 a11y::AccType nsImageFrame::AccessibleType() {
   // Don't use GetImageMap() to avoid reentrancy into accessibility.
   if (HasImageMap()) {
     return a11y::eHTMLImageMapType;
   }
--- a/layout/generic/nsInlineFrame.cpp
+++ b/layout/generic/nsInlineFrame.cpp
@@ -37,17 +37,17 @@ using namespace mozilla::layout;
 nsInlineFrame* NS_NewInlineFrame(nsIPresShell* aPresShell,
                                  ComputedStyle* aStyle) {
   return new (aPresShell) nsInlineFrame(aStyle);
 }
 
 NS_IMPL_FRAMEARENA_HELPERS(nsInlineFrame)
 
 NS_QUERYFRAME_HEAD(nsInlineFrame)
-NS_QUERYFRAME_ENTRY(nsInlineFrame)
+  NS_QUERYFRAME_ENTRY(nsInlineFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsContainerFrame)
 
 #ifdef DEBUG_FRAME_DUMP
 nsresult nsInlineFrame::GetFrameName(nsAString& aResult) const {
   return MakeFrameName(NS_LITERAL_STRING("Inline"), aResult);
 }
 #endif
 
--- a/layout/generic/nsPageFrame.cpp
+++ b/layout/generic/nsPageFrame.cpp
@@ -30,17 +30,17 @@ using namespace mozilla::gfx;
 
 nsPageFrame* NS_NewPageFrame(nsIPresShell* aPresShell, ComputedStyle* aStyle) {
   return new (aPresShell) nsPageFrame(aStyle);
 }
 
 NS_IMPL_FRAMEARENA_HELPERS(nsPageFrame)
 
 NS_QUERYFRAME_HEAD(nsPageFrame)
-NS_QUERYFRAME_ENTRY(nsPageFrame)
+  NS_QUERYFRAME_ENTRY(nsPageFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsContainerFrame)
 
 nsPageFrame::nsPageFrame(ComputedStyle* aStyle)
     : nsContainerFrame(aStyle, kClassID) {}
 
 nsPageFrame::~nsPageFrame() {}
 
 void nsPageFrame::Reflow(nsPresContext* aPresContext,
--- a/layout/generic/nsPlaceholderFrame.cpp
+++ b/layout/generic/nsPlaceholderFrame.cpp
@@ -31,17 +31,17 @@ nsPlaceholderFrame* NS_NewPlaceholderFra
                                            nsFrameState aTypeBits) {
   return new (aPresShell) nsPlaceholderFrame(aStyle, aTypeBits);
 }
 
 NS_IMPL_FRAMEARENA_HELPERS(nsPlaceholderFrame)
 
 #ifdef DEBUG
 NS_QUERYFRAME_HEAD(nsPlaceholderFrame)
-NS_QUERYFRAME_ENTRY(nsPlaceholderFrame)
+  NS_QUERYFRAME_ENTRY(nsPlaceholderFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsFrame)
 #endif
 
 /* virtual */ nsSize nsPlaceholderFrame::GetXULMinSize(
     nsBoxLayoutState& aBoxLayoutState) {
   nsSize size(0, 0);
   DISPLAY_MIN_SIZE(this, size);
   return size;
--- a/layout/generic/nsPluginFrame.cpp
+++ b/layout/generic/nsPluginFrame.cpp
@@ -145,18 +145,18 @@ nsPluginFrame::nsPluginFrame(ComputedSty
 }
 
 nsPluginFrame::~nsPluginFrame() {
   MOZ_LOG(sPluginFrameLog, LogLevel::Debug,
           ("nsPluginFrame %p deleted\n", this));
 }
 
 NS_QUERYFRAME_HEAD(nsPluginFrame)
-NS_QUERYFRAME_ENTRY(nsPluginFrame)
-NS_QUERYFRAME_ENTRY(nsIObjectFrame)
+  NS_QUERYFRAME_ENTRY(nsPluginFrame)
+  NS_QUERYFRAME_ENTRY(nsIObjectFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsFrame)
 
 #ifdef ACCESSIBILITY
 a11y::AccType nsPluginFrame::AccessibleType() { return a11y::ePluginType; }
 
 #ifdef XP_WIN
 NS_IMETHODIMP nsPluginFrame::GetPluginPort(HWND* aPort) {
   *aPort = (HWND)mInstanceOwner->GetPluginPort();
--- a/layout/generic/nsRubyBaseContainerFrame.cpp
+++ b/layout/generic/nsRubyBaseContainerFrame.cpp
@@ -25,17 +25,17 @@ using namespace mozilla;
 using namespace mozilla::gfx;
 
 //----------------------------------------------------------------------
 
 // Frame class boilerplate
 // =======================
 
 NS_QUERYFRAME_HEAD(nsRubyBaseContainerFrame)
-NS_QUERYFRAME_ENTRY(nsRubyBaseContainerFrame)
+  NS_QUERYFRAME_ENTRY(nsRubyBaseContainerFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsContainerFrame)
 
 NS_IMPL_FRAMEARENA_HELPERS(nsRubyBaseContainerFrame)
 
 nsContainerFrame* NS_NewRubyBaseContainerFrame(nsIPresShell* aPresShell,
                                                ComputedStyle* aStyle) {
   return new (aPresShell) nsRubyBaseContainerFrame(aStyle);
 }
--- a/layout/generic/nsRubyBaseFrame.cpp
+++ b/layout/generic/nsRubyBaseFrame.cpp
@@ -16,17 +16,17 @@
 using namespace mozilla;
 
 //----------------------------------------------------------------------
 
 // Frame class boilerplate
 // =======================
 
 NS_QUERYFRAME_HEAD(nsRubyBaseFrame)
-NS_QUERYFRAME_ENTRY(nsRubyBaseFrame)
+  NS_QUERYFRAME_ENTRY(nsRubyBaseFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsRubyContentFrame)
 
 NS_IMPL_FRAMEARENA_HELPERS(nsRubyBaseFrame)
 
 nsContainerFrame* NS_NewRubyBaseFrame(nsIPresShell* aPresShell,
                                       ComputedStyle* aStyle) {
   return new (aPresShell) nsRubyBaseFrame(aStyle);
 }
--- a/layout/generic/nsRubyFrame.cpp
+++ b/layout/generic/nsRubyFrame.cpp
@@ -20,17 +20,17 @@
 using namespace mozilla;
 
 //----------------------------------------------------------------------
 
 // Frame class boilerplate
 // =======================
 
 NS_QUERYFRAME_HEAD(nsRubyFrame)
-NS_QUERYFRAME_ENTRY(nsRubyFrame)
+  NS_QUERYFRAME_ENTRY(nsRubyFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsInlineFrame)
 
 NS_IMPL_FRAMEARENA_HELPERS(nsRubyFrame)
 
 nsContainerFrame* NS_NewRubyFrame(nsIPresShell* aPresShell,
                                   ComputedStyle* aStyle) {
   return new (aPresShell) nsRubyFrame(aStyle);
 }
--- a/layout/generic/nsRubyTextContainerFrame.cpp
+++ b/layout/generic/nsRubyTextContainerFrame.cpp
@@ -17,17 +17,17 @@
 using namespace mozilla;
 
 //----------------------------------------------------------------------
 
 // Frame class boilerplate
 // =======================
 
 NS_QUERYFRAME_HEAD(nsRubyTextContainerFrame)
-NS_QUERYFRAME_ENTRY(nsRubyTextContainerFrame)
+  NS_QUERYFRAME_ENTRY(nsRubyTextContainerFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsContainerFrame)
 
 NS_IMPL_FRAMEARENA_HELPERS(nsRubyTextContainerFrame)
 
 nsContainerFrame* NS_NewRubyTextContainerFrame(nsIPresShell* aPresShell,
                                                ComputedStyle* aStyle) {
   return new (aPresShell) nsRubyTextContainerFrame(aStyle);
 }
--- a/layout/generic/nsRubyTextFrame.cpp
+++ b/layout/generic/nsRubyTextFrame.cpp
@@ -16,17 +16,17 @@
 using namespace mozilla;
 
 //----------------------------------------------------------------------
 
 // Frame class boilerplate
 // =======================
 
 NS_QUERYFRAME_HEAD(nsRubyTextFrame)
-NS_QUERYFRAME_ENTRY(nsRubyTextFrame)
+  NS_QUERYFRAME_ENTRY(nsRubyTextFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsRubyContentFrame)
 
 NS_IMPL_FRAMEARENA_HELPERS(nsRubyTextFrame)
 
 nsContainerFrame* NS_NewRubyTextFrame(nsIPresShell* aPresShell,
                                       ComputedStyle* aStyle) {
   return new (aPresShell) nsRubyTextFrame(aStyle);
 }
--- a/layout/generic/nsSimplePageSequenceFrame.cpp
+++ b/layout/generic/nsSimplePageSequenceFrame.cpp
@@ -63,17 +63,17 @@ nsSimplePageSequenceFrame::nsSimplePageS
 }
 
 nsSimplePageSequenceFrame::~nsSimplePageSequenceFrame() {
   delete mPageData;
   ResetPrintCanvasList();
 }
 
 NS_QUERYFRAME_HEAD(nsSimplePageSequenceFrame)
-NS_QUERYFRAME_ENTRY(nsIPageSequenceFrame)
+  NS_QUERYFRAME_ENTRY(nsIPageSequenceFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsContainerFrame)
 
 //----------------------------------------------------------------------
 
 void nsSimplePageSequenceFrame::SetDesiredSize(ReflowOutput& aDesiredSize,
                                                const ReflowInput& aReflowInput,
                                                nscoord aWidth,
                                                nscoord aHeight) {
--- a/layout/generic/nsSubDocumentFrame.cpp
+++ b/layout/generic/nsSubDocumentFrame.cpp
@@ -69,17 +69,17 @@ nsSubDocumentFrame::nsSubDocumentFrame(C
 
 #ifdef ACCESSIBILITY
 a11y::AccType nsSubDocumentFrame::AccessibleType() {
   return a11y::eOuterDocType;
 }
 #endif
 
 NS_QUERYFRAME_HEAD(nsSubDocumentFrame)
-NS_QUERYFRAME_ENTRY(nsSubDocumentFrame)
+  NS_QUERYFRAME_ENTRY(nsSubDocumentFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsAtomicContainerFrame)
 
 class AsyncFrameInit : public Runnable {
  public:
   explicit AsyncFrameInit(nsIFrame* aFrame)
       : mozilla::Runnable("AsyncFrameInit"), mFrame(aFrame) {}
   NS_IMETHOD Run() override {
     AUTO_PROFILER_LABEL("AsyncFrameInit::Run", OTHER);
--- a/layout/generic/nsTextFrame.cpp
+++ b/layout/generic/nsTextFrame.cpp
@@ -2776,17 +2776,17 @@ void BuildTextRunsScanner::AssignTextRun
         startFrame->GetTextRun(nsTextFrame::eInflated) == aTextRun
             ? TEXT_IN_TEXTRUN_USER_DATA
             : TEXT_IN_UNINFLATED_TEXTRUN_USER_DATA;
     startFrame->AddStateBits(whichTextRunState);
   }
 }
 
 NS_QUERYFRAME_HEAD(nsTextFrame)
-NS_QUERYFRAME_ENTRY(nsTextFrame)
+  NS_QUERYFRAME_ENTRY(nsTextFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsFrame)
 
 gfxSkipCharsIterator nsTextFrame::EnsureTextRun(
     TextRunType aWhichTextRun, DrawTarget* aRefDrawTarget,
     nsIFrame* aLineContainer, const nsLineList::iterator* aLine,
     uint32_t* aFlowEndInTextRun) {
   gfxTextRun* textRun = GetTextRun(aWhichTextRun);
   if (!textRun || (aLine && (*aLine)->GetInvalidateTextRuns())) {
--- a/layout/generic/nsVideoFrame.cpp
+++ b/layout/generic/nsVideoFrame.cpp
@@ -74,18 +74,18 @@ static void SwapScaleWidthHeightForRotat
 nsVideoFrame::nsVideoFrame(ComputedStyle* aStyle)
     : nsContainerFrame(aStyle, kClassID) {
   EnableVisibilityTracking();
 }
 
 nsVideoFrame::~nsVideoFrame() {}
 
 NS_QUERYFRAME_HEAD(nsVideoFrame)
-NS_QUERYFRAME_ENTRY(nsVideoFrame)
-NS_QUERYFRAME_ENTRY(nsIAnonymousContentCreator)
+  NS_QUERYFRAME_ENTRY(nsVideoFrame)
+  NS_QUERYFRAME_ENTRY(nsIAnonymousContentCreator)
 NS_QUERYFRAME_TAIL_INHERITING(nsContainerFrame)
 
 nsresult nsVideoFrame::CreateAnonymousContent(
     nsTArray<ContentInfo>& aElements) {
   nsNodeInfoManager* nodeInfoManager =
       GetContent()->GetComposedDoc()->NodeInfoManager();
   RefPtr<NodeInfo> nodeInfo;
 
--- a/layout/mathml/nsMathMLContainerFrame.cpp
+++ b/layout/mathml/nsMathMLContainerFrame.cpp
@@ -24,18 +24,18 @@
 using namespace mozilla;
 using namespace mozilla::gfx;
 
 //
 // nsMathMLContainerFrame implementation
 //
 
 NS_QUERYFRAME_HEAD(nsMathMLContainerFrame)
-NS_QUERYFRAME_ENTRY(nsIMathMLFrame)
-NS_QUERYFRAME_ENTRY(nsMathMLContainerFrame)
+  NS_QUERYFRAME_ENTRY(nsIMathMLFrame)
+  NS_QUERYFRAME_ENTRY(nsMathMLContainerFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsContainerFrame)
 
 // =============================================================================
 
 // error handlers
 // provide a feedback to the user when a frame with bad markup can not be
 // rendered
 nsresult nsMathMLContainerFrame::ReflowError(DrawTarget* aDrawTarget,
@@ -1454,21 +1454,21 @@ nsContainerFrame* NS_NewMathMLmathBlockF
   auto newFrame = new (aPresShell) nsMathMLmathBlockFrame(aStyle);
   newFrame->AddStateBits(NS_BLOCK_FORMATTING_CONTEXT_STATE_BITS);
   return newFrame;
 }
 
 NS_IMPL_FRAMEARENA_HELPERS(nsMathMLmathBlockFrame)
 
 NS_QUERYFRAME_HEAD(nsMathMLmathBlockFrame)
-NS_QUERYFRAME_ENTRY(nsMathMLmathBlockFrame)
+  NS_QUERYFRAME_ENTRY(nsMathMLmathBlockFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsBlockFrame)
 
 nsContainerFrame* NS_NewMathMLmathInlineFrame(nsIPresShell* aPresShell,
                                               ComputedStyle* aStyle) {
   return new (aPresShell) nsMathMLmathInlineFrame(aStyle);
 }
 
 NS_IMPL_FRAMEARENA_HELPERS(nsMathMLmathInlineFrame)
 
 NS_QUERYFRAME_HEAD(nsMathMLmathInlineFrame)
-NS_QUERYFRAME_ENTRY(nsIMathMLFrame)
+  NS_QUERYFRAME_ENTRY(nsIMathMLFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsInlineFrame)
--- a/layout/mathml/nsMathMLmtableFrame.cpp
+++ b/layout/mathml/nsMathMLmtableFrame.cpp
@@ -644,17 +644,17 @@ static void ListMathMLTree(nsIFrame* atL
   f->List(stdout, 0);
 }
 #endif
 
 // --------
 // implementation of nsMathMLmtableWrapperFrame
 
 NS_QUERYFRAME_HEAD(nsMathMLmtableWrapperFrame)
-NS_QUERYFRAME_ENTRY(nsIMathMLFrame)
+  NS_QUERYFRAME_ENTRY(nsIMathMLFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsTableWrapperFrame)
 
 nsContainerFrame* NS_NewMathMLmtableOuterFrame(nsIPresShell* aPresShell,
                                                ComputedStyle* aStyle) {
   return new (aPresShell) nsMathMLmtableWrapperFrame(aStyle);
 }
 
 NS_IMPL_FRAMEARENA_HELPERS(nsMathMLmtableWrapperFrame)
@@ -1018,17 +1018,17 @@ void nsMathMLmtableFrame::SetUseCSSSpaci
                                                     nsGkAtoms::rowspacing_) ||
                      mContent->AsElement()->HasAttr(
                          kNameSpaceID_None, nsGkAtoms::columnspacing_) ||
                      mContent->AsElement()->HasAttr(kNameSpaceID_None,
                                                     nsGkAtoms::framespacing_));
 }
 
 NS_QUERYFRAME_HEAD(nsMathMLmtableFrame)
-NS_QUERYFRAME_ENTRY(nsMathMLmtableFrame)
+  NS_QUERYFRAME_ENTRY(nsMathMLmtableFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsTableFrame)
 
 // --------
 // implementation of nsMathMLmtrFrame
 
 nsContainerFrame* NS_NewMathMLmtrFrame(nsIPresShell* aPresShell,
                                        ComputedStyle* aStyle) {
   return new (aPresShell) nsMathMLmtrFrame(aStyle);
@@ -1159,17 +1159,17 @@ nsMargin nsMathMLmtdFrame::GetBorderOver
   nsMargin overflow = ComputeBorderOverflow(this, styleBorder);
   return overflow;
 }
 
 // --------
 // implementation of nsMathMLmtdInnerFrame
 
 NS_QUERYFRAME_HEAD(nsMathMLmtdInnerFrame)
-NS_QUERYFRAME_ENTRY(nsIMathMLFrame)
+  NS_QUERYFRAME_ENTRY(nsIMathMLFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsBlockFrame)
 
 nsContainerFrame* NS_NewMathMLmtdInnerFrame(nsIPresShell* aPresShell,
                                             ComputedStyle* aStyle) {
   return new (aPresShell) nsMathMLmtdInnerFrame(aStyle);
 }
 
 NS_IMPL_FRAMEARENA_HELPERS(nsMathMLmtdInnerFrame)
--- a/layout/svg/SVGGeometryFrame.cpp
+++ b/layout/svg/SVGGeometryFrame.cpp
@@ -43,18 +43,18 @@ nsIFrame* NS_NewSVGGeometryFrame(nsIPres
 }
 
 NS_IMPL_FRAMEARENA_HELPERS(SVGGeometryFrame)
 
 //----------------------------------------------------------------------
 // nsQueryFrame methods
 
 NS_QUERYFRAME_HEAD(SVGGeometryFrame)
-NS_QUERYFRAME_ENTRY(nsSVGDisplayableFrame)
-NS_QUERYFRAME_ENTRY(SVGGeometryFrame)
+  NS_QUERYFRAME_ENTRY(nsSVGDisplayableFrame)
+  NS_QUERYFRAME_ENTRY(SVGGeometryFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsFrame)
 
 //----------------------------------------------------------------------
 // Display list item:
 
 class nsDisplaySVGGeometry final : public nsDisplayItem {
   typedef mozilla::image::imgDrawingParams imgDrawingParams;
 
--- a/layout/svg/SVGTextFrame.cpp
+++ b/layout/svg/SVGTextFrame.cpp
@@ -2899,17 +2899,17 @@ void nsDisplaySVGText::Paint(nsDisplayLi
   static_cast<SVGTextFrame*>(mFrame)->PaintSVG(*ctx, tm, imgParams);
   nsDisplayItemGenericImageGeometry::UpdateDrawResult(this, imgParams.result);
 }
 
 // ---------------------------------------------------------------------
 // nsQueryFrame methods
 
 NS_QUERYFRAME_HEAD(SVGTextFrame)
-NS_QUERYFRAME_ENTRY(SVGTextFrame)
+  NS_QUERYFRAME_ENTRY(SVGTextFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsSVGDisplayContainerFrame)
 
 // ---------------------------------------------------------------------
 // Implementation
 
 nsIFrame* NS_NewSVGTextFrame(nsIPresShell* aPresShell, ComputedStyle* aStyle) {
   return new (aPresShell) SVGTextFrame(aStyle);
 }
--- a/layout/svg/nsSVGContainerFrame.cpp
+++ b/layout/svg/nsSVGContainerFrame.cpp
@@ -16,22 +16,22 @@
 #include "nsSVGUtils.h"
 #include "nsSVGAnimatedTransformList.h"
 #include "SVGTextFrame.h"
 
 using namespace mozilla;
 using namespace mozilla::image;
 
 NS_QUERYFRAME_HEAD(nsSVGContainerFrame)
-NS_QUERYFRAME_ENTRY(nsSVGContainerFrame)
+  NS_QUERYFRAME_ENTRY(nsSVGContainerFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsContainerFrame)
 
 NS_QUERYFRAME_HEAD(nsSVGDisplayContainerFrame)
-NS_QUERYFRAME_ENTRY(nsSVGDisplayContainerFrame)
-NS_QUERYFRAME_ENTRY(nsSVGDisplayableFrame)
+  NS_QUERYFRAME_ENTRY(nsSVGDisplayContainerFrame)
+  NS_QUERYFRAME_ENTRY(nsSVGDisplayableFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsSVGContainerFrame)
 
 nsIFrame* NS_NewSVGContainerFrame(nsIPresShell* aPresShell,
                                   ComputedStyle* aStyle) {
   nsIFrame* frame = new (aPresShell)
       nsSVGContainerFrame(aStyle, nsSVGContainerFrame::kClassID);
   // If we were called directly, then the frame is for a <defs> or
   // an unknown element type. In both cases we prevent the content
--- a/layout/svg/nsSVGForeignObjectFrame.cpp
+++ b/layout/svg/nsSVGForeignObjectFrame.cpp
@@ -42,17 +42,17 @@ nsSVGForeignObjectFrame::nsSVGForeignObj
   AddStateBits(NS_FRAME_REFLOW_ROOT | NS_FRAME_MAY_BE_TRANSFORMED |
                NS_FRAME_SVG_LAYOUT);
 }
 
 //----------------------------------------------------------------------
 // nsIFrame methods
 
 NS_QUERYFRAME_HEAD(nsSVGForeignObjectFrame)
-NS_QUERYFRAME_ENTRY(nsSVGDisplayableFrame)
+  NS_QUERYFRAME_ENTRY(nsSVGDisplayableFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsContainerFrame)
 
 void nsSVGForeignObjectFrame::Init(nsIContent* aContent,
                                    nsContainerFrame* aParent,
                                    nsIFrame* aPrevInFlow) {
   NS_ASSERTION(aContent->IsSVGElement(nsGkAtoms::foreignObject),
                "Content is not an SVG foreignObject!");
 
--- a/layout/svg/nsSVGImageFrame.cpp
+++ b/layout/svg/nsSVGImageFrame.cpp
@@ -28,17 +28,17 @@
 using namespace mozilla;
 using namespace mozilla::dom;
 using namespace mozilla::gfx;
 using namespace mozilla::image;
 
 // ---------------------------------------------------------------------
 // nsQueryFrame methods
 NS_QUERYFRAME_HEAD(nsSVGImageFrame)
-NS_QUERYFRAME_ENTRY(nsSVGImageFrame)
+  NS_QUERYFRAME_ENTRY(nsSVGImageFrame)
 NS_QUERYFRAME_TAIL_INHERITING(SVGGeometryFrame)
 
 nsIFrame* NS_NewSVGImageFrame(nsIPresShell* aPresShell, ComputedStyle* aStyle) {
   return new (aPresShell) nsSVGImageFrame(aStyle);
 }
 
 NS_IMPL_FRAMEARENA_HELPERS(nsSVGImageFrame)
 
--- a/layout/svg/nsSVGInnerSVGFrame.cpp
+++ b/layout/svg/nsSVGInnerSVGFrame.cpp
@@ -15,18 +15,18 @@ nsIFrame* NS_NewSVGInnerSVGFrame(nsIPres
 }
 
 NS_IMPL_FRAMEARENA_HELPERS(nsSVGInnerSVGFrame)
 
 //----------------------------------------------------------------------
 // nsIFrame methods
 
 NS_QUERYFRAME_HEAD(nsSVGInnerSVGFrame)
-NS_QUERYFRAME_ENTRY(nsSVGInnerSVGFrame)
-NS_QUERYFRAME_ENTRY(nsISVGSVGFrame)
+  NS_QUERYFRAME_ENTRY(nsSVGInnerSVGFrame)
+  NS_QUERYFRAME_ENTRY(nsISVGSVGFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsSVGViewportFrame)
 
 #ifdef DEBUG
 void nsSVGInnerSVGFrame::Init(nsIContent* aContent, nsContainerFrame* aParent,
                               nsIFrame* aPrevInFlow) {
   NS_ASSERTION(aContent->IsSVGElement(nsGkAtoms::svg),
                "Content is not an SVG 'svg' element!");
 
--- a/layout/svg/nsSVGOuterSVGFrame.cpp
+++ b/layout/svg/nsSVGOuterSVGFrame.cpp
@@ -131,17 +131,17 @@ void nsSVGOuterSVGFrame::Init(nsIContent
     }
   }
 }
 
 //----------------------------------------------------------------------
 // nsQueryFrame methods
 
 NS_QUERYFRAME_HEAD(nsSVGOuterSVGFrame)
-NS_QUERYFRAME_ENTRY(nsISVGSVGFrame)
+  NS_QUERYFRAME_ENTRY(nsISVGSVGFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsSVGDisplayContainerFrame)
 
 //----------------------------------------------------------------------
 // nsIFrame methods
 //----------------------------------------------------------------------
 // reflowing
 
 /* virtual */ nscoord nsSVGOuterSVGFrame::GetMinISize(
--- a/layout/svg/nsSVGSymbolFrame.cpp
+++ b/layout/svg/nsSVGSymbolFrame.cpp
@@ -15,17 +15,17 @@ nsIFrame* NS_NewSVGSymbolFrame(nsIPresSh
 }
 
 NS_IMPL_FRAMEARENA_HELPERS(nsSVGSymbolFrame)
 
 //----------------------------------------------------------------------
 // nsIFrame methods
 
 NS_QUERYFRAME_HEAD(nsSVGSymbolFrame)
-NS_QUERYFRAME_ENTRY(nsSVGSymbolFrame)
+  NS_QUERYFRAME_ENTRY(nsSVGSymbolFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsSVGViewportFrame)
 
 #ifdef DEBUG
 void nsSVGSymbolFrame::Init(nsIContent* aContent, nsContainerFrame* aParent,
                             nsIFrame* aPrevInFlow) {
   NS_ASSERTION(aContent->IsSVGElement(nsGkAtoms::symbol),
                "Content is not an SVG 'symbol' element!");
 
--- a/layout/tables/nsTableCellFrame.cpp
+++ b/layout/tables/nsTableCellFrame.cpp
@@ -945,19 +945,19 @@ void nsTableCellFrame::Reflow(nsPresCont
   PushDirtyBitToAbsoluteFrames();
 
   NS_FRAME_SET_TRUNCATION(aStatus, aReflowInput, aDesiredSize);
 }
 
 /* ----- global methods ----- */
 
 NS_QUERYFRAME_HEAD(nsTableCellFrame)
-NS_QUERYFRAME_ENTRY(nsTableCellFrame)
-NS_QUERYFRAME_ENTRY(nsITableCellLayout)
-NS_QUERYFRAME_ENTRY(nsIPercentBSizeObserver)
+  NS_QUERYFRAME_ENTRY(nsTableCellFrame)
+  NS_QUERYFRAME_ENTRY(nsITableCellLayout)
+  NS_QUERYFRAME_ENTRY(nsIPercentBSizeObserver)
 NS_QUERYFRAME_TAIL_INHERITING(nsContainerFrame)
 
 #ifdef ACCESSIBILITY
 a11y::AccType nsTableCellFrame::AccessibleType() {
   return a11y::eHTMLTableCellType;
 }
 #endif
 
--- a/layout/tables/nsTableRowFrame.cpp
+++ b/layout/tables/nsTableRowFrame.cpp
@@ -109,17 +109,17 @@ void nsTableRowFrame::SetPctBSize(float 
       SetHasPctBSize(true);
     }
   }
 }
 
 /* ----------- nsTableRowFrame ---------- */
 
 NS_QUERYFRAME_HEAD(nsTableRowFrame)
-NS_QUERYFRAME_ENTRY(nsTableRowFrame)
+  NS_QUERYFRAME_ENTRY(nsTableRowFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsContainerFrame)
 
 nsTableRowFrame::nsTableRowFrame(ComputedStyle* aStyle, ClassID aID)
     : nsContainerFrame(aStyle, aID),
       mContentBSize(0),
       mStylePctBSize(0),
       mStyleFixedBSize(0),
       mMaxCellAscent(0),
--- a/layout/tables/nsTableRowGroupFrame.cpp
+++ b/layout/tables/nsTableRowGroupFrame.cpp
@@ -61,17 +61,17 @@ void nsTableRowGroupFrame::DestroyFrom(n
   if (HasAnyStateBits(NS_FRAME_CAN_HAVE_ABSPOS_CHILDREN)) {
     nsTableFrame::UnregisterPositionedTablePart(this, aDestructRoot);
   }
 
   nsContainerFrame::DestroyFrom(aDestructRoot, aPostDestroyData);
 }
 
 NS_QUERYFRAME_HEAD(nsTableRowGroupFrame)
-NS_QUERYFRAME_ENTRY(nsTableRowGroupFrame)
+  NS_QUERYFRAME_ENTRY(nsTableRowGroupFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsContainerFrame)
 
 int32_t nsTableRowGroupFrame::GetRowCount() {
 #ifdef DEBUG
   for (nsFrameList::Enumerator e(mFrames); !e.AtEnd(); e.Next()) {
     NS_ASSERTION(
         e.get()->StyleDisplay()->mDisplay == mozilla::StyleDisplay::TableRow,
         "Unexpected display");
--- a/layout/tables/nsTableWrapperFrame.cpp
+++ b/layout/tables/nsTableWrapperFrame.cpp
@@ -41,17 +41,17 @@ using namespace mozilla::layout;
 }
 
 nsTableWrapperFrame::nsTableWrapperFrame(ComputedStyle* aStyle, ClassID aID)
     : nsContainerFrame(aStyle, aID) {}
 
 nsTableWrapperFrame::~nsTableWrapperFrame() {}
 
 NS_QUERYFRAME_HEAD(nsTableWrapperFrame)
-NS_QUERYFRAME_ENTRY(nsTableWrapperFrame)
+  NS_QUERYFRAME_ENTRY(nsTableWrapperFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsContainerFrame)
 
 #ifdef ACCESSIBILITY
 a11y::AccType nsTableWrapperFrame::AccessibleType() {
   return a11y::eHTMLTableType;
 }
 #endif
 
--- a/layout/xul/nsBoxFrame.cpp
+++ b/layout/xul/nsBoxFrame.cpp
@@ -94,17 +94,17 @@ nsIFrame* NS_NewBoxFrame(nsIPresShell* a
 nsIFrame* NS_NewBoxFrame(nsIPresShell* aPresShell, ComputedStyle* aStyle) {
   return new (aPresShell) nsBoxFrame(aStyle);
 }
 
 NS_IMPL_FRAMEARENA_HELPERS(nsBoxFrame)
 
 #ifdef DEBUG
 NS_QUERYFRAME_HEAD(nsBoxFrame)
-NS_QUERYFRAME_ENTRY(nsBoxFrame)
+  NS_QUERYFRAME_ENTRY(nsBoxFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsContainerFrame)
 #endif
 
 nsBoxFrame::nsBoxFrame(ComputedStyle* aStyle, ClassID aID, bool aIsRoot,
                        nsBoxLayout* aLayoutManager)
     : nsContainerFrame(aStyle, aID), mFlex(0), mAscent(0) {
   AddStateBits(NS_STATE_IS_HORIZONTAL | NS_STATE_AUTO_STRETCH);
 
--- a/layout/xul/nsDeckFrame.cpp
+++ b/layout/xul/nsDeckFrame.cpp
@@ -37,17 +37,17 @@ using namespace mozilla;
 
 nsIFrame* NS_NewDeckFrame(nsIPresShell* aPresShell, ComputedStyle* aStyle) {
   return new (aPresShell) nsDeckFrame(aStyle);
 }
 
 NS_IMPL_FRAMEARENA_HELPERS(nsDeckFrame)
 
 NS_QUERYFRAME_HEAD(nsDeckFrame)
-NS_QUERYFRAME_ENTRY(nsDeckFrame)
+  NS_QUERYFRAME_ENTRY(nsDeckFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsBoxFrame)
 
 nsDeckFrame::nsDeckFrame(ComputedStyle* aStyle)
     : nsBoxFrame(aStyle, kClassID), mIndex(0) {
   nsCOMPtr<nsBoxLayout> layout;
   NS_NewStackLayout(layout);
   SetXULLayoutManager(layout);
 }
--- a/layout/xul/nsDocElementBoxFrame.cpp
+++ b/layout/xul/nsDocElementBoxFrame.cpp
@@ -124,16 +124,16 @@ void nsDocElementBoxFrame::AppendAnonymo
   }
 
   if (mTooltipContent) {
     aElements.AppendElement(mTooltipContent);
   }
 }
 
 NS_QUERYFRAME_HEAD(nsDocElementBoxFrame)
-NS_QUERYFRAME_ENTRY(nsIAnonymousContentCreator)
+  NS_QUERYFRAME_ENTRY(nsIAnonymousContentCreator)
 NS_QUERYFRAME_TAIL_INHERITING(nsBoxFrame)
 
 #ifdef DEBUG_FRAME_DUMP
 nsresult nsDocElementBoxFrame::GetFrameName(nsAString& aResult) const {
   return MakeFrameName(NS_LITERAL_STRING("DocElementBox"), aResult);
 }
 #endif
--- a/layout/xul/nsMenuBarFrame.cpp
+++ b/layout/xul/nsMenuBarFrame.cpp
@@ -39,17 +39,17 @@ using mozilla::dom::KeyboardEvent;
 //
 nsIFrame* NS_NewMenuBarFrame(nsIPresShell* aPresShell, ComputedStyle* aStyle) {
   return new (aPresShell) nsMenuBarFrame(aStyle);
 }
 
 NS_IMPL_FRAMEARENA_HELPERS(nsMenuBarFrame)
 
 NS_QUERYFRAME_HEAD(nsMenuBarFrame)
-NS_QUERYFRAME_ENTRY(nsMenuBarFrame)
+  NS_QUERYFRAME_ENTRY(nsMenuBarFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsBoxFrame)
 
 //
 // nsMenuBarFrame cntr
 //
 nsMenuBarFrame::nsMenuBarFrame(ComputedStyle* aStyle)
     : nsBoxFrame(aStyle, kClassID),
       mStayActive(false),
--- a/layout/xul/nsMenuFrame.cpp
+++ b/layout/xul/nsMenuFrame.cpp
@@ -151,17 +151,17 @@ nsIFrame* NS_NewMenuItemFrame(nsIPresShe
   nsMenuFrame* it = new (aPresShell) nsMenuFrame(aStyle);
   it->SetIsMenu(false);
   return it;
 }
 
 NS_IMPL_FRAMEARENA_HELPERS(nsMenuFrame)
 
 NS_QUERYFRAME_HEAD(nsMenuFrame)
-NS_QUERYFRAME_ENTRY(nsMenuFrame)
+  NS_QUERYFRAME_ENTRY(nsMenuFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsBoxFrame)
 
 nsMenuFrame::nsMenuFrame(ComputedStyle* aStyle)
     : nsBoxFrame(aStyle, kClassID),
       mIsMenu(false),
       mChecked(false),
       mIgnoreAccelTextChange(false),
       mReflowCallbackPosted(false),
--- a/layout/xul/nsMenuPopupFrame.cpp
+++ b/layout/xul/nsMenuPopupFrame.cpp
@@ -80,17 +80,17 @@ const char kPrefIncrementalSearchTimeout
 nsIFrame* NS_NewMenuPopupFrame(nsIPresShell* aPresShell,
                                ComputedStyle* aStyle) {
   return new (aPresShell) nsMenuPopupFrame(aStyle);
 }
 
 NS_IMPL_FRAMEARENA_HELPERS(nsMenuPopupFrame)
 
 NS_QUERYFRAME_HEAD(nsMenuPopupFrame)
-NS_QUERYFRAME_ENTRY(nsMenuPopupFrame)
+  NS_QUERYFRAME_ENTRY(nsMenuPopupFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsBoxFrame)
 
 //
 // nsMenuPopupFrame ctor
 //
 nsMenuPopupFrame::nsMenuPopupFrame(ComputedStyle* aStyle)
     : nsBoxFrame(aStyle, kClassID),
       mCurrentMenu(nullptr),
--- a/layout/xul/nsRootBoxFrame.cpp
+++ b/layout/xul/nsRootBoxFrame.cpp
@@ -209,16 +209,16 @@ void nsRootBoxFrame::SetPopupSetFrame(ns
 
 Element* nsRootBoxFrame::GetDefaultTooltip() { return mDefaultTooltip; }
 
 void nsRootBoxFrame::SetDefaultTooltip(Element* aTooltip) {
   mDefaultTooltip = aTooltip;
 }
 
 NS_QUERYFRAME_HEAD(nsRootBoxFrame)
-NS_QUERYFRAME_ENTRY(nsIPopupContainer)
+  NS_QUERYFRAME_ENTRY(nsIPopupContainer)
 NS_QUERYFRAME_TAIL_INHERITING(nsBoxFrame)
 
 #ifdef DEBUG_FRAME_DUMP
 nsresult nsRootBoxFrame::GetFrameName(nsAString& aResult) const {
   return MakeFrameName(NS_LITERAL_STRING("RootBox"), aResult);
 }
 #endif
--- a/layout/xul/nsScrollbarFrame.cpp
+++ b/layout/xul/nsScrollbarFrame.cpp
@@ -33,18 +33,18 @@ using namespace mozilla;
 nsIFrame* NS_NewScrollbarFrame(nsIPresShell* aPresShell,
                                ComputedStyle* aStyle) {
   return new (aPresShell) nsScrollbarFrame(aStyle);
 }
 
 NS_IMPL_FRAMEARENA_HELPERS(nsScrollbarFrame)
 
 NS_QUERYFRAME_HEAD(nsScrollbarFrame)
-NS_QUERYFRAME_ENTRY(nsScrollbarFrame)
-NS_QUERYFRAME_ENTRY(nsIAnonymousContentCreator)
+  NS_QUERYFRAME_ENTRY(nsScrollbarFrame)
+  NS_QUERYFRAME_ENTRY(nsIAnonymousContentCreator)
 NS_QUERYFRAME_TAIL_INHERITING(nsBoxFrame)
 
 void nsScrollbarFrame::Init(nsIContent* aContent, nsContainerFrame* aParent,
                             nsIFrame* aPrevInFlow) {
   nsBoxFrame::Init(aContent, aParent, aPrevInFlow);
 
   // We want to be a reflow root since we use reflows to move the
   // slider.  Any reflow inside the scrollbar frame will be a reflow to
--- a/layout/xul/nsSliderFrame.cpp
+++ b/layout/xul/nsSliderFrame.cpp
@@ -69,17 +69,17 @@ static already_AddRefed<nsIContent> GetC
 
 nsIFrame* NS_NewSliderFrame(nsIPresShell* aPresShell, ComputedStyle* aStyle) {
   return new (aPresShell) nsSliderFrame(aStyle);
 }
 
 NS_IMPL_FRAMEARENA_HELPERS(nsSliderFrame)
 
 NS_QUERYFRAME_HEAD(nsSliderFrame)
-NS_QUERYFRAME_ENTRY(nsSliderFrame)
+  NS_QUERYFRAME_ENTRY(nsSliderFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsBoxFrame)
 
 nsSliderFrame::nsSliderFrame(ComputedStyle* aStyle)
     : nsBoxFrame(aStyle, kClassID),
       mRatio(0.0f),
       mDragStart(0),
       mThumbStart(0),
       mCurPos(0),
--- a/layout/xul/nsTextBoxFrame.cpp
+++ b/layout/xul/nsTextBoxFrame.cpp
@@ -60,17 +60,17 @@ bool nsTextBoxFrame::gInsertSeparatorPre
 
 nsIFrame* NS_NewTextBoxFrame(nsIPresShell* aPresShell, ComputedStyle* aStyle) {
   return new (aPresShell) nsTextBoxFrame(aStyle);
 }
 
 NS_IMPL_FRAMEARENA_HELPERS(nsTextBoxFrame)
 
 NS_QUERYFRAME_HEAD(nsTextBoxFrame)
-NS_QUERYFRAME_ENTRY(nsTextBoxFrame)
+  NS_QUERYFRAME_ENTRY(nsTextBoxFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsLeafBoxFrame)
 
 nsresult nsTextBoxFrame::AttributeChanged(int32_t aNameSpaceID,
                                           nsAtom* aAttribute,
                                           int32_t aModType) {
   bool aResize;
   bool aRedraw;
 
--- a/layout/xul/tree/nsTreeBodyFrame.cpp
+++ b/layout/xul/tree/nsTreeBodyFrame.cpp
@@ -98,18 +98,18 @@ void nsTreeBodyFrame::CancelImageRequest
 //
 nsIFrame* NS_NewTreeBodyFrame(nsIPresShell* aPresShell, ComputedStyle* aStyle) {
   return new (aPresShell) nsTreeBodyFrame(aStyle);
 }
 
 NS_IMPL_FRAMEARENA_HELPERS(nsTreeBodyFrame)
 
 NS_QUERYFRAME_HEAD(nsTreeBodyFrame)
-NS_QUERYFRAME_ENTRY(nsIScrollbarMediator)
-NS_QUERYFRAME_ENTRY(nsTreeBodyFrame)
+  NS_QUERYFRAME_ENTRY(nsIScrollbarMediator)
+  NS_QUERYFRAME_ENTRY(nsTreeBodyFrame)
 NS_QUERYFRAME_TAIL_INHERITING(nsLeafBoxFrame)
 
 // Constructor
 nsTreeBodyFrame::nsTreeBodyFrame(ComputedStyle* aStyle)
     : nsLeafBoxFrame(aStyle, kClassID),
       mSlots(nullptr),
       mImageCache(),
       mTopRowIndex(0),
deleted file mode 100644
--- a/testing/web-platform/meta/streams/readable-streams/bad-underlying-sources.dedicatedworker.html.ini
+++ /dev/null
@@ -1,7 +0,0 @@
-[bad-underlying-sources.dedicatedworker.html]
-  [Underlying source: calling error twice should not throw]
-    expected: FAIL
-
-  [Underlying source: calling error after close should not throw]
-    expected: FAIL
-
deleted file mode 100644
--- a/testing/web-platform/meta/streams/readable-streams/bad-underlying-sources.html.ini
+++ /dev/null
@@ -1,7 +0,0 @@
-[bad-underlying-sources.html]
-  [Underlying source: calling error twice should not throw]
-    expected: FAIL
-
-  [Underlying source: calling error after close should not throw]
-    expected: FAIL
-
deleted file mode 100644
--- a/testing/web-platform/meta/streams/readable-streams/bad-underlying-sources.serviceworker.https.html.ini
+++ /dev/null
@@ -1,7 +0,0 @@
-[bad-underlying-sources.serviceworker.https.html]
-  [Underlying source: calling error twice should not throw]
-    expected: FAIL
-
-  [Underlying source: calling error after close should not throw]
-    expected: FAIL
-
deleted file mode 100644
--- a/testing/web-platform/meta/streams/readable-streams/bad-underlying-sources.sharedworker.html.ini
+++ /dev/null
@@ -1,7 +0,0 @@
-[bad-underlying-sources.sharedworker.html]
-  [Underlying source: calling error twice should not throw]
-    expected: FAIL
-
-  [Underlying source: calling error after close should not throw]
-    expected: FAIL
-
deleted file mode 100644
--- a/testing/web-platform/meta/streams/readable-streams/garbage-collection.dedicatedworker.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[garbage-collection.dedicatedworker.html]
-  [ReadableStreamController methods should continue working properly when scripts lose their reference to the readable stream]
-    expected: FAIL
-
deleted file mode 100644
--- a/testing/web-platform/meta/streams/readable-streams/garbage-collection.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[garbage-collection.html]
-  [ReadableStreamController methods should continue working properly when scripts lose their reference to the readable stream]
-    expected: FAIL
-
deleted file mode 100644
--- a/testing/web-platform/meta/streams/readable-streams/garbage-collection.serviceworker.https.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[garbage-collection.serviceworker.https.html]
-  [ReadableStreamController methods should continue working properly when scripts lose their reference to the readable stream]
-    expected: FAIL
-
deleted file mode 100644
--- a/testing/web-platform/meta/streams/readable-streams/garbage-collection.sharedworker.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[garbage-collection.sharedworker.html]
-  [ReadableStreamController methods should continue working properly when scripts lose their reference to the readable stream]
-    expected: FAIL
-