diff --git a/runtime/vm/message_handler.cc b/runtime/vm/message_handler.cc
index f745486..d76e060 100644
--- a/runtime/vm/message_handler.cc
+++ b/runtime/vm/message_handler.cc
@@ -251,9 +251,8 @@
   if (FLAG_trace_isolates) {
     OS::Print("[-] Closing port:\n"
               "\thandler:    %s\n"
-              "\tport:       %" Pd64 "\n"
-              "\tports:      control(%" Pd ") live(%" Pd ")\n",
-              name(), port, control_ports_, live_ports_);
+              "\tport:       %" Pd64 "\n",
+              name(), port);
   }
 }
 
diff --git a/runtime/vm/port.cc b/runtime/vm/port.cc
index 037d55a..0c9a627 100644
--- a/runtime/vm/port.cc
+++ b/runtime/vm/port.cc
@@ -20,7 +20,7 @@
 intptr_t PortMap::capacity_ = 0;
 intptr_t PortMap::used_ = 0;
 intptr_t PortMap::deleted_ = 0;
-Random* PortMap::prng_ = NULL;
+Dart_Port PortMap::next_port_ = 7111;
 
 
 intptr_t PortMap::FindPort(Dart_Port port) {
@@ -63,11 +63,13 @@
 
 
 Dart_Port PortMap::AllocatePort() {
-  Dart_Port result = prng_->NextUInt32() & kSmiMax;
+  Dart_Port result = next_port_;
 
-  while ((result == 0) && (FindPort(result) >= 0)) {
-    result = prng_->NextUInt32() & kSmiMax;
-  }
+  do {
+    // TODO(iposva): Use an approved hashing function to have less predictable
+    // port ids, or make them not accessible from Dart code or both.
+    next_port_++;
+  } while (FindPort(next_port_) >= 0);
 
   ASSERT(result != 0);
   return result;
@@ -256,7 +258,6 @@
 
 void PortMap::InitOnce() {
   mutex_ = new Mutex();
-  prng_ = new Random();
 
   static const intptr_t kInitialCapacity = 8;
   // TODO(iposva): Verify whether we want to keep exponentially growing.
diff --git a/runtime/vm/port.h b/runtime/vm/port.h
index 5a0f177..e6c711e 100644
--- a/runtime/vm/port.h
+++ b/runtime/vm/port.h
@@ -8,7 +8,6 @@
 #include "include/dart_api.h"
 #include "vm/allocation.h"
 #include "vm/globals.h"
-#include "vm/random.h"
 
 namespace dart {
 
@@ -83,7 +82,7 @@
   static intptr_t used_;
   static intptr_t deleted_;
 
-  static Random* prng_;
+  static Dart_Port next_port_;
 };
 
 }  // namespace dart
diff --git a/runtime/vm/random.h b/runtime/vm/random.h
index 06d789a..c1c69d6 100644
--- a/runtime/vm/random.h
+++ b/runtime/vm/random.h
@@ -10,7 +10,7 @@
 
 namespace dart {
 
-class Random {
+class Random : public ValueObject {
  public:
   Random();
   ~Random();
@@ -22,6 +22,7 @@
 
   uint64_t _state;
 
+  DISALLOW_ALLOCATION();
   DISALLOW_COPY_AND_ASSIGN(Random);
 };
 
diff --git a/tests/html/html.status b/tests/html/html.status
index ef1758d..49cc606 100644
--- a/tests/html/html.status
+++ b/tests/html/html.status
@@ -15,7 +15,7 @@
 [ $compiler == dart2js && $browser ]
 custom/created_callback_test: Fail # Support for created constructor.
 
-[ $compiler == dart2js && ($runtime == safari || $runtime == ff || $runtime == chrome || $runtime == ie9 || $runtime == ie10) ]
+[ $compiler == dart2js && ($runtime == safari || $runtime == ff || $runtime == chrome || $ie) ]
 custom/entered_left_view_test/viewless_document: Fail # Polyfill does not handle this
 custom/attribute_changed_callback_test/unsupported_on_polyfill: Fail # Polyfill does not support
 
@@ -68,14 +68,6 @@
 speechrecognition_test/types: Fail # TODO(dart2js-team): Please triage this failure.
 xhr_test/json: Fail # TODO(dart2js-team): Please triage this failure.
 
-
-[ $compiler == dart2js && $runtime == ie10 ]
-indexeddb_5_test: Fail # Issue 12893
-js_test: Fail # Issue 14246
-
-[ $compiler == dart2js && ( $runtime == ie9 || $runtime == ie10 ) ]
-worker_api_test: Fail # IE does not support URL.createObjectURL in web workers.
-
 [ $runtime == chrome ]
 touchevent_test/supported: Pass, Fail # Issue 17061
 xhr_cross_origin_test: Pass, Fail # Issue 11884
@@ -97,7 +89,9 @@
 [ $compiler == dart2js && $runtime == drt && $system == macos]
 audiobuffersourcenode_test: Pass, Fail
 
-[$runtime == ie10 ]
+[$runtime == ie10 || $runtime == ie11]
+indexeddb_5_test: Fail # Issue 12893
+js_test: Fail # Issue 14246
 element_test/click: Fail                # IE does not support firing this event.
 serialized_script_value_test: Fail
 transferables_test: Fail # Issue 9846
@@ -105,6 +99,8 @@
 canvasrenderingcontext2d_test/drawImage_video_element: Fail # IE does not support drawImage w/ video element
 canvasrenderingcontext2d_test/drawImage_video_element_dataUrl: Fail # IE does not support drawImage w/ video element
 worker_test/functional: Fail # IE uses incorrect security context for Blob URIs.
+
+[$runtime == ie10 ]
 custom/entered_left_view_test: Skip # Issue 13551 - IE is timing out
 
 # IE10 Feature support statuses-
@@ -149,9 +145,53 @@
 xhr_test/supported_overrideMimeType: Fail
 xsltprocessor_test/supported: Fail
 
+[ $runtime == ie11 ]
+custom/document_register_type_extensions_test/single-parameter: Fail # Issue 13193.
+
+# IE11 Feature support statuses-
+# These results not yet noted in platform support annotations.
+# All changes should be accompanied by platform support annotation changes.
+audiobuffersourcenode_test/supported: Fail
+audiocontext_test/supported: Fail
+crypto_test/supported: Fail
+css_test/supportsPointConversions: Fail
+document_test/supports_cssCanvasContext: Fail
+element_types_test/supported_content: Fail
+element_types_test/supported_details: Fail
+element_types_test/supported_keygen: Fail
+element_types_test/supported_meter: Fail
+element_types_test/supported_output: Fail
+element_types_test/supported_shadow: Fail
+element_types_test/supported_template: Fail
+fileapi_test/supported: Fail
+history_test/supported_HashChangeEvent: Fail
+indexeddb_1_test/supportsDatabaseNames: Fail
+input_element_test/supported_date: Fail
+input_element_test/supported_datetime-local: Fail
+input_element_test/supported_month: Fail
+input_element_test/supported_time: Fail
+input_element_test/supported_week: Fail
+media_stream_test/supported_MediaStreamEvent: Fail
+media_stream_test/supported_MediaStreamTrackEvent: Fail
+media_stream_test/supported_media: Fail
+rtc_test/supported: Fail
+shadow_dom_test/supported: Fail
+speechrecognition_test/supported: Fail
+svgelement_test/supported_altGlyph: Fail
+svgelement_test/supported_animate: Fail
+svgelement_test/supported_animateMotion: Fail
+svgelement_test/supported_animateTransform: Fail
+svgelement_test/supported_foreignObject: Fail
+svgelement_test/supported_set: Fail
+touchevent_test/supported: Fail
+webgl_1_test/functional: Fail
+websql_test/supported: Fail
+xhr_test/json: Fail # IE10 returns string, not JSON object
+xsltprocessor_test/supported: Fail
 
 [ $runtime == ie9 || $runtime == ie10 ]
 custom/document_register_type_extensions_test/construction: Fail # Issue 13193
+worker_api_test: Fail # IE does not support URL.createObjectURL in web workers.
 
 [ $runtime == ie9 ]
 event_customevent_test: Fail # Issue 14170
diff --git a/tests/language/language_dart2js.status b/tests/language/language_dart2js.status
index 9916ad9..9b9e08e 100644
--- a/tests/language/language_dart2js.status
+++ b/tests/language/language_dart2js.status
@@ -293,6 +293,8 @@
 deferred_no_such_method_test*: Fail, Pass # http://dartbug.com/12635
 deferred_constraints_type_annotation_old_syntax_test/*: Fail, Pass # http://dartbug.com/12635
 deferred_constraints_constants_old_syntax_test/*: Fail, Pass # http://dartbug.com/12635
+deferred_shadow_load_library_test: Fail, Pass # Issue 17807
+deferred_closurize_load_library_test: Fail, Pass # Issue 17807
 
 [ ($compiler == dart2js && $csp)]
 deferred_constraints_type_annotation_test/*: Skip # Issue 16898
diff --git a/tools/VERSION b/tools/VERSION
index 2229b6b..4147512 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -28,4 +28,4 @@
 MINOR 3
 PATCH 0
 PRERELEASE 7
-PRERELEASE_PATCH 0
+PRERELEASE_PATCH 1
