Push version 2.2.24 to trunk.

Added API for capturing stack traces for uncaught exceptions.

Fixed crash bug when preparsing from a non-external V8 string (issue 775).

Fixed JSON.parse bug causing input not to be converted to string (issue 764).

Added ES5 Object.freeze and Object.isFrozen.

Performance improvements on all platforms.


git-svn-id: http://v8.googlecode.com/svn/trunk@5060 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
diff --git a/src/factory.cc b/src/factory.cc
index 39e881a..18be639 100644
--- a/src/factory.cc
+++ b/src/factory.cc
@@ -277,6 +277,8 @@
   copy->set_inobject_properties(inobject_properties);
   copy->set_unused_property_fields(inobject_properties);
   copy->set_instance_size(copy->instance_size() + instance_size_delta);
+  copy->set_scavenger(Heap::GetScavenger(copy->instance_type(),
+                                         copy->instance_size()));
   return copy;
 }
 
@@ -541,10 +543,9 @@
 
 
 Handle<Code> Factory::NewCode(const CodeDesc& desc,
-                              ZoneScopeInfo* sinfo,
                               Code::Flags flags,
                               Handle<Object> self_ref) {
-  CALL_HEAP_FUNCTION(Heap::CreateCode(desc, sinfo, flags, self_ref), Code);
+  CALL_HEAP_FUNCTION(Heap::CreateCode(desc, flags, self_ref), Code);
 }
 
 
@@ -680,9 +681,13 @@
 
 
 Handle<SharedFunctionInfo> Factory::NewSharedFunctionInfo(
-    Handle<String> name, int number_of_literals, Handle<Code> code) {
+    Handle<String> name,
+    int number_of_literals,
+    Handle<Code> code,
+    Handle<Object> scope_info) {
   Handle<SharedFunctionInfo> shared = NewSharedFunctionInfo(name);
   shared->set_code(*code);
+  shared->set_scope_info(*scope_info);
   int literals_array_size = number_of_literals;
   // If the function contains object, regexp or array literals,
   // allocate extra space for a literals array prefix containing the