Lines Matching refs:descriptors

504   // If smi descriptors were replaced by double descriptors, rewrite.
534 DescriptorArray descriptors = IsConcurrent(cmode)
539 if (descriptors.GetDetails(i).location() == PropertyLocation::kField)
546 DescriptorArray descriptors = instance_descriptors();
550 PropertyDetails details = descriptors.GetDetails(i);
592 // Don't overwrite the empty descriptor array or initial map's descriptors.
599 // Replace descriptors by new_descriptors in all maps that share it. The old
600 // descriptors will not be trimmed in the mark-compactor, we need to mark
624 // Initial map must not contain descriptors in the descriptors array
796 // Only supports adding slack to owned descriptors.
799 Handle<DescriptorArray> descriptors(map->instance_descriptors(isolate),
802 if (slack <= descriptors->number_of_slack_descriptors()) return;
805 DescriptorArray::CopyUpTo(isolate, descriptors, old_size, slack);
814 // If the source descriptors had an enum cache we copy it. This ensures
817 // enumerated descriptors than available in the original cache, the cache
819 new_descriptors->CopyEnumCacheFrom(*descriptors);
821 // Replace descriptors by new_descriptors in all maps that share it. The old
822 // descriptors will not be trimmed in the mark-compactor, we need to mark
825 WriteBarrier::Marking(*descriptors, descriptors->number_of_descriptors());
828 // Update the descriptors from {map} (inclusive) until the initial map
836 while (current.instance_descriptors(isolate) == *descriptors) {
1315 // Initial maps must not contain descriptors in the descriptors array
1343 // The copy will use the same descriptors array without ownership.
1344 DescriptorArray descriptors = map->instance_descriptors(isolate);
1346 result->UpdateDescriptors(isolate, descriptors, number_of_own_descriptors);
1369 Handle<DescriptorArray> descriptors,
1373 // descriptors in the descriptor array.
1386 if (descriptors->number_of_slack_descriptors() == 0) {
1387 int old_size = descriptors->number_of_descriptors();
1389 descriptors = DescriptorArray::Allocate(isolate, 0, 1);
1393 descriptors = handle(map->instance_descriptors(isolate), isolate);
1399 descriptors->Append(descriptor);
1400 result->InitializeDescriptors(isolate, *descriptors);
1419 // |parent| is initial map and it must not contain descriptors in the
1420 // descriptors array that do not belong to the map.
1438 Handle<DescriptorArray> descriptors,
1443 DCHECK(descriptors->IsSortedNoDuplicates());
1455 result->InitializeDescriptors(isolate, *descriptors);
1459 result->InitializeDescriptors(isolate, *descriptors);
1465 descriptors->GeneralizeAllFields();
1466 result->InitializeDescriptors(isolate, *descriptors);
1476 // Creates transition tree starting from |split_map| and adding all descriptors
1478 // The way how it is done is tricky because of GC and special descriptors
1481 Handle<DescriptorArray> descriptors) {
1482 DCHECK(descriptors->IsSortedNoDuplicates());
1484 int nof_descriptors = descriptors->number_of_descriptors();
1487 // Start with creating last map which will own full descriptors array.
1494 // the flag and clear it right before the descriptors are installed. This
1497 last_map->InitializeDescriptors(isolate, *descriptors);
1501 // During creation of intermediate maps we violate descriptors sharing
1503 // we create here. But it is safe because GC never trims map's descriptors
1509 InstallDescriptors(isolate, map, new_map, i, descriptors);
1516 descriptors);
1524 Handle<DescriptorArray> descriptors) {
1525 DCHECK(descriptors->IsSortedNoDuplicates());
1527 child->SetInstanceDescriptors(isolate, *descriptors,
1530 PropertyDetails details = descriptors->GetDetails(new_descriptor);
1535 Handle<Name> name = handle(descriptors->GetKey(new_descriptor), isolate);
1611 // Create new map taking descriptors from the |function_map| and all
1633 // In case the map owned its own descriptors, share the descriptors and
1635 // The properties did not change, so reuse descriptors.
1639 // In case the map did not own its own descriptors, a split is forced by
1641 Handle<DescriptorArray> descriptors(map->instance_descriptors(isolate),
1645 isolate, descriptors, number_of_own_descriptors);
1652 Handle<DescriptorArray> descriptors(map->instance_descriptors(isolate),
1656 isolate, descriptors, number_of_own_descriptors);
1764 bool CanHoldValue(DescriptorArray descriptors, InternalIndex descriptor,
1766 PropertyDetails details = descriptors.GetDetails(descriptor);
1771 descriptors.GetFieldType(descriptor).NowContains(value);
1934 DescriptorArray descriptors = transition->instance_descriptors(isolate);
1936 DCHECK(descriptors.GetKey(last_descriptor).Equals(*name));
1939 descriptors.GetDetails(last_descriptor).kind());
1940 DCHECK_EQ(attributes, descriptors.GetDetails(last_descriptor).attributes());
1942 Handle<Object> maybe_pair(descriptors.GetStrongValue(last_descriptor),
2020 Handle<DescriptorArray> descriptors(map->instance_descriptors(isolate),
2023 // Share descriptors only if map owns descriptors and it not an initial map.
2027 return ShareDescriptor(isolate, map, descriptors, descriptor);
2032 DescriptorArray::CopyUpTo(isolate, descriptors, nof, 1);
2057 Handle<DescriptorArray> descriptors,
2062 DCHECK_EQ(*key, descriptors->GetKey(insertion_index));
2067 descriptors->GetDetails(insertion_index).location());
2070 isolate, descriptors, map->NumberOfOwnDescriptors());
2075 (insertion_index.as_int() == descriptors->number_of_descriptors() - 1)
2145 DescriptorArray descriptors = IsConcurrent(cmode)
2149 PropertyDetails details = descriptors.GetDetails(i);
2152 descriptors.GetFieldType(i)));
2189 void Map::SetInstanceDescriptors(Isolate* isolate, DescriptorArray descriptors,
2191 set_instance_descriptors(descriptors, kReleaseStore);
2194 WriteBarrier::Marking(descriptors, number_of_own_descriptors);