Files
2020-03-02 14:53:23 +07:00

54 lines
1.8 KiB
Diff

commit 6ca8f782aac4df7530d9fd460ec0fabd46628e1d
Author: yangguo@chromium.org <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;
}