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