diff options
author | Ryan Dahl <ry@tinyclouds.org> | 2011-08-11 23:59:21 -0700 |
---|---|---|
committer | Ryan Dahl <ry@tinyclouds.org> | 2011-08-11 23:59:21 -0700 |
commit | 89bed195134317a10e6ffffe23a90473790f0a7f (patch) | |
tree | 2e3d714711c151458e9ff18bbfa9d04859939ba1 /deps/v8/src/heap.cc | |
parent | fb7faefbf53f2e27aa2e9cf9dbd88163eeaefb38 (diff) | |
download | node-89bed195134317a10e6ffffe23a90473790f0a7f.tar.gz |
Upgrade V8 to v3.5.4
Diffstat (limited to 'deps/v8/src/heap.cc')
-rw-r--r-- | deps/v8/src/heap.cc | 43 |
1 files changed, 25 insertions, 18 deletions
diff --git a/deps/v8/src/heap.cc b/deps/v8/src/heap.cc index efdb5499d..dbf3b95a9 100644 --- a/deps/v8/src/heap.cc +++ b/deps/v8/src/heap.cc @@ -438,7 +438,9 @@ void Heap::GarbageCollectionEpilogue() { #if defined(DEBUG) ReportStatisticsAfterGC(); #endif // DEBUG +#ifdef ENABLE_DEBUGGER_SUPPORT isolate_->debug()->AfterGarbageCollection(); +#endif // ENABLE_DEBUGGER_SUPPORT } @@ -1292,6 +1294,10 @@ class ScavengingVisitor : public StaticVisitorBase { &ObjectEvacuationStrategy<POINTER_OBJECT>:: template VisitSpecialized<SharedFunctionInfo::kSize>); + table_.Register(kVisitJSWeakMap, + &ObjectEvacuationStrategy<POINTER_OBJECT>:: + Visit); + table_.Register(kVisitJSRegExp, &ObjectEvacuationStrategy<POINTER_OBJECT>:: Visit); @@ -2393,40 +2399,41 @@ MaybeObject* Heap::AllocateForeign(Address address, PretenureFlag pretenure) { MaybeObject* Heap::AllocateSharedFunctionInfo(Object* name) { - Object* result; - { MaybeObject* maybe_result = - Allocate(shared_function_info_map(), OLD_POINTER_SPACE); - if (!maybe_result->ToObject(&result)) return maybe_result; - } + SharedFunctionInfo* share; + MaybeObject* maybe = Allocate(shared_function_info_map(), OLD_POINTER_SPACE); + if (!maybe->To<SharedFunctionInfo>(&share)) return maybe; - SharedFunctionInfo* share = SharedFunctionInfo::cast(result); + // Set pointer fields. share->set_name(name); Code* illegal = isolate_->builtins()->builtin(Builtins::kIllegal); share->set_code(illegal); share->set_scope_info(SerializedScopeInfo::Empty()); - Code* construct_stub = isolate_->builtins()->builtin( - Builtins::kJSConstructStubGeneric); + Code* construct_stub = + isolate_->builtins()->builtin(Builtins::kJSConstructStubGeneric); share->set_construct_stub(construct_stub); - share->set_expected_nof_properties(0); - share->set_length(0); - share->set_formal_parameter_count(0); share->set_instance_class_name(Object_symbol()); share->set_function_data(undefined_value()); share->set_script(undefined_value()); - share->set_start_position_and_type(0); share->set_debug_info(undefined_value()); share->set_inferred_name(empty_string()); - share->set_compiler_hints(0); - share->set_deopt_counter(Smi::FromInt(FLAG_deopt_every_n_times)); share->set_initial_map(undefined_value()); - share->set_this_property_assignments_count(0); share->set_this_property_assignments(undefined_value()); - share->set_opt_count(0); + share->set_deopt_counter(Smi::FromInt(FLAG_deopt_every_n_times)); + + // Set integer fields (smi or int, depending on the architecture). + share->set_length(0); + share->set_formal_parameter_count(0); + share->set_expected_nof_properties(0); share->set_num_literals(0); + share->set_start_position_and_type(0); share->set_end_position(0); share->set_function_token_position(0); - share->set_native(false); - return result; + // All compiler hints default to false or 0. + share->set_compiler_hints(0); + share->set_this_property_assignments_count(0); + share->set_opt_count(0); + + return share; } |