Index: src/v8.cc |
diff --git a/src/v8.cc b/src/v8.cc |
index 2910a0700d92223521dddf8a072fc65fb6fa9615..eaff43c9bfb4bb8bcd69b2c2fb52c8a00f0ebebe 100644 |
--- a/src/v8.cc |
+++ b/src/v8.cc |
@@ -106,13 +106,16 @@ void V8::TearDown() { |
if (!has_been_set_up_ || has_been_disposed_) return; |
+ // The isolate has to be torn down before clearing the LOperand |
+ // caches so that the optimizing compiler thread (if running) |
+ // doesn't see an inconsistent view of the lithium instructions. |
+ isolate->TearDown(); |
+ delete isolate; |
+ |
ElementsAccessor::TearDown(); |
LOperand::TearDownCaches(); |
RegisteredExtension::UnregisterAll(); |
- isolate->TearDown(); |
- delete isolate; |
- |
is_running_ = false; |
has_been_disposed_ = true; |