commit 6ca8f782aac4df7530d9fd460ec0fabd46628e1d Author: yangguo@chromium.org Date: Fri Oct 10 10:51:34 2014 +0000 Reset code age when serializing code objects. R=mvstanton@chromium.org Review URL: https://codereview.chromium.org/642283002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24523 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 diff --git a/src/objects.cc b/src/objects.cc index 9f25145..3eedfe9 100644 --- node/deps/v8/src/objects.cc +++ node/deps/v8/src/objects.cc @@ -10463,6 +10463,12 @@ static Code::Age EffectiveAge(Code::Age age) { } +void Code::MakeYoung() { + byte* sequence = FindCodeAgeSequence(); + if (sequence != NULL) MakeCodeAgeSequenceYoung(sequence, GetIsolate()); +} + + void Code::MakeOlder(MarkingParity current_parity) { byte* sequence = FindCodeAgeSequence(); if (sequence != NULL) { diff --git a/src/objects.h b/src/objects.h index bcbea12..1faae86 100644 --- node/deps/v8/src/objects.h +++ node/deps/v8/src/objects.h @@ -5310,6 +5310,7 @@ class Code: public HeapObject { // compilation stub. static void MakeCodeAgeSequenceYoung(byte* sequence, Isolate* isolate); static void MarkCodeAsExecuted(byte* sequence, Isolate* isolate); + void MakeYoung(); void MakeOlder(MarkingParity); static bool IsYoungSequence(Isolate* isolate, byte* sequence); bool IsOld(); diff --git a/src/serialize.cc b/src/serialize.cc index 0cc629d..c287219 100644 --- node/deps/v8/src/serialize.cc +++ node/deps/v8/src/serialize.cc @@ -1991,6 +1991,7 @@ void CodeSerializer::SerializeObject(Object* o, HowToCode how_to_code, return; // TODO(yangguo): add special handling to canonicalize ICs. case Code::FUNCTION: + code_object->MakeYoung(); SerializeHeapObject(code_object, how_to_code, where_to_point); return; }