135 {
137 bool saved_external_typed_data = false;
140
141
142
146 intptr_t next_entry_index = 0;
147 for (intptr_t
i = 0;
i < loaded_blobs.Length();
i++) {
148 weak_property ^= loaded_blobs.At(
i);
150 if (
i != next_entry_index) {
152 weak_property_tmp ^= loaded_blobs.At(next_entry_index);
153 weak_property_tmp.set_key(existing_entry);
154 }
155 next_entry_index++;
156 }
157 }
158 if (next_entry_index < loaded_blobs.Length()) {
159
160 weak_property ^= loaded_blobs.At(next_entry_index);
161 weak_property.set_key(external_typed_data);
162 next_entry_index++;
163 saved_external_typed_data = true;
164 }
165 if (next_entry_index < loaded_blobs.Length()) {
166 ExternalTypedData& nullExternalTypedData =
168 while (next_entry_index < loaded_blobs.Length()) {
169
170 weak_property ^= loaded_blobs.At(next_entry_index);
171 weak_property.set_key(nullExternalTypedData);
172 next_entry_index++;
173 }
174 }
175 }
176 if (!saved_external_typed_data) {
177 const WeakProperty& weak_property =
179 weak_property.set_key(external_typed_data);
180
181 intptr_t
length = loaded_blobs.IsNull() ? 0 : loaded_blobs.Length();
182 Array& new_array =
184 new_array.SetAt(
length, weak_property);
186 }
188}
static ArrayPtr Grow(const Array &source, intptr_t new_length, Heap::Space space=Heap::kNew)
static ObjectPtr RawCast(ObjectPtr obj)
static WeakPropertyPtr New(Heap::Space space=Heap::kNew)