Reviewers: Igor Sheludko,

Message:
PTAL

Description:
Also mark as prototype when passing in while creating a function.

BUG=

Please review this at https://codereview.chromium.org/422233010/

SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge

Affected files (+5, -0 lines):
  M src/factory.cc


Index: src/factory.cc
diff --git a/src/factory.cc b/src/factory.cc
index a844bd1cdb8ba274888cb87419830fc2122ddec8..e3a19a1e4ba988a0b19b00219e8ed50d83cb3a23 100644
--- a/src/factory.cc
+++ b/src/factory.cc
@@ -1268,6 +1268,11 @@ Handle<JSFunction> Factory::NewFunction(Handle<String> name,
       ? isolate()->sloppy_function_with_readonly_prototype_map()
       : isolate()->sloppy_function_map();
   Handle<JSFunction> result = NewFunction(map, name, code);
+  if (!prototype->IsTheHole()) {
+    Handle<JSObject> js_proto = Handle<JSObject>::cast(prototype);
+    Handle<Map> new_map = Map::CopyAsPrototypeMap(handle(js_proto->map()));
+    JSObject::MigrateToMap(js_proto, new_map);
+  }
   result->set_prototype_or_initial_map(*prototype);
   return result;
 }


--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to