Index: src/factory.cc |
diff --git a/src/factory.cc b/src/factory.cc |
index 5ecdfcfd2f4aec25c94ab22927b53363715b3b59..30571a276effb095ba8148a903fc409c4e10b44c 100644 |
--- a/src/factory.cc |
+++ b/src/factory.cc |
@@ -1346,13 +1346,11 @@ Handle<JSObject> Factory::NewFunctionPrototype(Handle<JSFunction> function) { |
} |
-Handle<JSFunction> Factory::NewFunctionFromSharedFunctionInfo( |
+Handle<JSFunction> Factory::NewFunctionWithMapFromSharedFunctionInfo( |
+ Handle<Map> map, |
Handle<SharedFunctionInfo> info, |
Handle<Context> context, |
PretenureFlag pretenure) { |
- int map_index = Context::FunctionMapIndex(info->strict_mode(), |
- info->is_generator()); |
- Handle<Map> map(Map::cast(context->native_context()->get(map_index))); |
Handle<JSFunction> result = NewFunction(map, info, context, pretenure); |
if (info->ic_age() != isolate()->heap()->global_ic_age()) { |
@@ -1397,6 +1395,18 @@ Handle<JSFunction> Factory::NewFunctionFromSharedFunctionInfo( |
} |
+Handle<JSFunction> Factory::NewFunctionFromSharedFunctionInfo( |
+ Handle<SharedFunctionInfo> info, |
+ Handle<Context> context, |
+ PretenureFlag pretenure) { |
+ int map_index = Context::FunctionMapIndex(info->strict_mode(), |
+ info->is_generator()); |
+ Handle<Map> map(Map::cast(context->native_context()->get(map_index))); |
+ return NewFunctionWithMapFromSharedFunctionInfo( |
+ map, info, context, pretenure); |
+} |
+ |
+ |
Handle<ScopeInfo> Factory::NewScopeInfo(int length) { |
Handle<FixedArray> array = NewFixedArray(length, TENURED); |
array->set_map_no_write_barrier(*scope_info_map()); |