Version 2.14.0-320.0.dev

Merge commit 'd1b829f791a41de377d75db61c4e8fb7e6c262d1' into 'dev'
diff --git a/runtime/vm/bootstrap.cc b/runtime/vm/bootstrap.cc
index 5e3ddd7..20d63d2 100644
--- a/runtime/vm/bootstrap.cc
+++ b/runtime/vm/bootstrap.cc
@@ -128,6 +128,8 @@
     // Finish bootstrapping, including class finalization.
     Finish(thread);
 
+    isolate_group->object_store()->InitKnownObjects();
+
     // The platform binary may contain other libraries (e.g., dart:_builtin or
     // dart:io) that will not be bundled with application.  Load them now.
     const Object& result = Object::Handle(zone, loader.LoadProgram());
diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc
index 26c206d..59a2fb6 100644
--- a/runtime/vm/object.cc
+++ b/runtime/vm/object.cc
@@ -2397,8 +2397,6 @@
     const bool injected = cls.InjectCIDFields();
     ASSERT(injected);
 
-    isolate_group->object_store()->InitKnownObjects();
-
     // Set up recognized state of all functions (core, math and typed data).
     MethodRecognizer::InitializeState();
 #endif  // !defined(DART_PRECOMPILED_RUNTIME)
diff --git a/runtime/vm/object_store.cc b/runtime/vm/object_store.cc
index 8b84d23..b3decbb 100644
--- a/runtime/vm/object_store.cc
+++ b/runtime/vm/object_store.cc
@@ -282,11 +282,13 @@
   cls = core_lib.LookupClassAllowPrivate(Symbols::Pragma());
   ASSERT(!cls.IsNull());
   set_pragma_class(cls);
+  RELEASE_ASSERT(cls.EnsureIsFinalized(thread) == Error::null());
   set_pragma_name(Field::Handle(zone, cls.LookupField(Symbols::name())));
   set_pragma_options(Field::Handle(zone, cls.LookupField(Symbols::options())));
 
   cls = core_lib.LookupClassAllowPrivate(Symbols::_GrowableList());
   ASSERT(!cls.IsNull());
+  RELEASE_ASSERT(cls.EnsureIsFinalized(thread) == Error::null());
   growable_list_factory_ =
       cls.LookupFactoryAllowPrivate(Symbols::_GrowableListFactory());
   ASSERT(growable_list_factory_ != Function::null());
@@ -306,6 +308,7 @@
   // Ensure AddSmiSmiCheckForFastSmiStubs run by the background compiler
   // will not create new functions.
   const Class& smi_class = Class::Handle(zone, this->smi_class());
+  RELEASE_ASSERT(smi_class.EnsureIsFinalized(thread) == Error::null());
   function_name =
       Function::CreateDynamicInvocationForwarderName(Symbols::Plus());
   Resolver::ResolveDynamicAnyArgs(zone, smi_class, function_name);
diff --git a/tools/VERSION b/tools/VERSION
index 75a9854..da86114 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 14
 PATCH 0
-PRERELEASE 319
+PRERELEASE 320
 PRERELEASE_PATCH 0
\ No newline at end of file