Index: src/runtime.cc |
diff --git a/src/runtime.cc b/src/runtime.cc |
index 792a14296c4964fce21b15df2855055db6d0d6b8..774e961d5b4529f0c90a2aee9436a18e18bbd309 100644 |
--- a/src/runtime.cc |
+++ b/src/runtime.cc |
@@ -2498,6 +2498,13 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_SetCode) { |
return Failure::Exception(); |
} |
+ // Mark both, the source and the target, as un-flushable because the |
+ // shared unoptimized code makes them impossible to enqueue in a list. |
+ ASSERT(target_shared->code()->gc_metadata() == NULL); |
+ ASSERT(source_shared->code()->gc_metadata() == NULL); |
+ target_shared->set_dont_flush(true); |
+ source_shared->set_dont_flush(true); |
+ |
// Set the code, scope info, formal parameter count, and the length |
// of the target shared function info. Set the source code of the |
// target function to undefined. SetCode is only used for built-in |