| Index: runtime/vm/object.cc | 
| diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc | 
| index 6a7d34c8099cea7543dd4b53a67f142d9cf8e2ee..cbc1d59d5c7584683c601dda2e3e210b2ef8b7b7 100644 | 
| --- a/runtime/vm/object.cc | 
| +++ b/runtime/vm/object.cc | 
| @@ -635,7 +635,7 @@ void Object::InitOnce(Isolate* isolate) { | 
| // Allocate and initialize the empty_array instance. | 
| { | 
| uword address = heap->Allocate(Array::InstanceSize(0), Heap::kOld); | 
| -    InitializeObject(address, kArrayCid, Array::InstanceSize(0)); | 
| +    InitializeObject(address, kImmutableArrayCid, Array::InstanceSize(0)); | 
| Array::initializeHandle( | 
| empty_array_, | 
| reinterpret_cast<RawArray*>(address + kHeapObjectTag)); | 
| @@ -646,7 +646,7 @@ void Object::InitOnce(Isolate* isolate) { | 
| // Allocate and initialize the zero_array instance. | 
| { | 
| uword address = heap->Allocate(Array::InstanceSize(1), Heap::kOld); | 
| -    InitializeObject(address, kArrayCid, Array::InstanceSize(1)); | 
| +    InitializeObject(address, kImmutableArrayCid, Array::InstanceSize(1)); | 
| Array::initializeHandle( | 
| zero_array_, | 
| reinterpret_cast<RawArray*>(address + kHeapObjectTag)); | 
| @@ -19733,6 +19733,7 @@ RawArray* Array::Slice(intptr_t start, | 
|  | 
|  | 
| void Array::MakeImmutable() const { | 
| +  if (IsImmutable()) return; | 
| NoSafepointScope no_safepoint; | 
| uword tags = raw_ptr()->tags_; | 
| uword old_tags; | 
|  |