| Index: src/runtime.cc
|
| diff --git a/src/runtime.cc b/src/runtime.cc
|
| index cae4affcb3fa51b3f2ad8f4d0160d69de436c00b..3148327b6775ee0107de7f4d11d4708dd3f29759 100644
|
| --- a/src/runtime.cc
|
| +++ b/src/runtime.cc
|
| @@ -2944,32 +2944,32 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_FunctionSetReadOnlyPrototype) {
|
| RUNTIME_ASSERT(args.length() == 1);
|
| CONVERT_ARG_HANDLE_CHECKED(JSFunction, function, 0);
|
|
|
| - String* name = isolate->heap()->prototype_string();
|
| + Handle<String> name = isolate->factory()->prototype_string();
|
|
|
| if (function->HasFastProperties()) {
|
| // Construct a new field descriptor with updated attributes.
|
| - DescriptorArray* instance_desc = function->map()->instance_descriptors();
|
| + Handle<DescriptorArray> instance_desc =
|
| + handle(function->map()->instance_descriptors());
|
|
|
| - int index = instance_desc->SearchWithCache(name, function->map());
|
| + int index = instance_desc->SearchWithCache(*name, function->map());
|
| ASSERT(index != DescriptorArray::kNotFound);
|
| PropertyDetails details = instance_desc->GetDetails(index);
|
|
|
| - CallbacksDescriptor new_desc(name,
|
| - instance_desc->GetValue(index),
|
| + CallbacksDescriptor new_desc(
|
| + name,
|
| + handle(instance_desc->GetValue(index), isolate),
|
| static_cast<PropertyAttributes>(details.attributes() | READ_ONLY));
|
|
|
| // Create a new map featuring the new field descriptors array.
|
| - Map* new_map;
|
| - MaybeObject* maybe_map =
|
| - function->map()->CopyReplaceDescriptor(
|
| - instance_desc, &new_desc, index, OMIT_TRANSITION);
|
| - if (!maybe_map->To(&new_map)) return maybe_map;
|
| + Handle<Map> map = handle(function->map());
|
| + Handle<Map> new_map = Map::CopyReplaceDescriptor(
|
| + map, instance_desc, &new_desc, index, OMIT_TRANSITION);
|
|
|
| - JSObject::MigrateToMap(function, handle(new_map));
|
| + JSObject::MigrateToMap(function, new_map);
|
| } else { // Dictionary properties.
|
| // Directly manipulate the property details.
|
| DisallowHeapAllocation no_gc;
|
| - int entry = function->property_dictionary()->FindEntry(name);
|
| + int entry = function->property_dictionary()->FindEntry(*name);
|
| ASSERT(entry != NameDictionary::kNotFound);
|
| PropertyDetails details = function->property_dictionary()->DetailsAt(entry);
|
| PropertyDetails new_details(
|
|
|