| Index: src/factory.cc
 | 
| diff --git a/src/factory.cc b/src/factory.cc
 | 
| index cdbc6fe04dbf8f4fcbe5cee231017e8c56245046..7d07e4342adeb7379b433c6797b4d0793ee3c174 100644
 | 
| --- a/src/factory.cc
 | 
| +++ b/src/factory.cc
 | 
| @@ -2654,6 +2654,43 @@ void Factory::SetStrictFunctionInstanceDescriptor(Handle<Map> map,
 | 
|    }
 | 
|  }
 | 
|  
 | 
| +Handle<Map> Factory::CreateClassFunctionMap(Handle<JSFunction> empty_function) {
 | 
| +  Handle<Map> map = NewMap(JS_FUNCTION_TYPE, JSFunction::kSize);
 | 
| +  SetClassFunctionInstanceDescriptor(map);
 | 
| +  map->set_is_constructor(true);
 | 
| +  map->set_is_callable();
 | 
| +  Map::SetPrototype(map, empty_function);
 | 
| +  return map;
 | 
| +}
 | 
| +
 | 
| +void Factory::SetClassFunctionInstanceDescriptor(Handle<Map> map) {
 | 
| +  int size = 3;  // with prototype
 | 
| +  Map::EnsureDescriptorSlack(map, size);
 | 
| +
 | 
| +  PropertyAttributes rw_attribs =
 | 
| +      static_cast<PropertyAttributes>(DONT_ENUM | DONT_DELETE);
 | 
| +  PropertyAttributes roc_attribs =
 | 
| +      static_cast<PropertyAttributes>(DONT_ENUM | READ_ONLY);
 | 
| +
 | 
| +  STATIC_ASSERT(JSFunction::kLengthDescriptorIndex == 0);
 | 
| +  {  // Add length.
 | 
| +    Handle<AccessorInfo> length =
 | 
| +        Accessors::FunctionLengthInfo(isolate(), roc_attribs);
 | 
| +    AccessorConstantDescriptor d(handle(Name::cast(length->name())), length,
 | 
| +                                 roc_attribs);
 | 
| +    map->AppendDescriptor(&d);
 | 
| +  }
 | 
| +
 | 
| +  {
 | 
| +    // Add prototype.
 | 
| +    Handle<AccessorInfo> prototype =
 | 
| +        Accessors::FunctionPrototypeInfo(isolate(), rw_attribs);
 | 
| +    AccessorConstantDescriptor d(Handle<Name>(Name::cast(prototype->name())),
 | 
| +                                 prototype, rw_attribs);
 | 
| +    map->AppendDescriptor(&d);
 | 
| +  }
 | 
| +}
 | 
| +
 | 
|  Handle<JSFixedArrayIterator> Factory::NewJSFixedArrayIterator(
 | 
|      Handle<FixedArray> array) {
 | 
|    // Create the "next" function (must be unique per iterator object).
 | 
| 
 |