Ensure that XHRs sniff the BOM for non-JSON responseTypes, and flush the decoder upon end-of-stream

Differential Revision: https://phabricator.services.mozilla.com/D3063

bugzilla-url: https://bugzilla.mozilla.org/show_bug.cgi?id=1070763
gecko-commit: 8b97d3b934726a1b81199e4059817c5514ec1d2b
gecko-integration-branch: autoland
gecko-reviewers: hsivonen
diff --git a/xhr/overridemimetype-edge-cases.window.js b/xhr/overridemimetype-edge-cases.window.js
index 6dfe755..192a696 100644
--- a/xhr/overridemimetype-edge-cases.window.js
+++ b/xhr/overridemimetype-edge-cases.window.js
@@ -5,7 +5,7 @@
   let secondTime = false;
   client.onload = t.step_func(() => {
     if(!secondTime) {
-      assert_equals(client.responseText, "\uFFFD");
+      assert_equals(client.responseText, "\uFFFD\uFFFD");
       secondTime = true;
       client.open("GET", testURL);
       client.send();
@@ -32,7 +32,7 @@
 async_test(t => {
   const client = new XMLHttpRequest();
   client.onload = t.step_func_done(() => {
-    assert_equals(client.responseText, "\uFFFD")
+    assert_equals(client.responseText, "\uFFFD\uFFFD")
   });
   client.open("GET", testURL);
   client.overrideMimeType("text/plain;charset=342");