Probe same-isolate compilation cache before deserializing.
authoryangguo <yangguo@chromium.org>
Mon, 26 Jan 2015 10:56:53 +0000 (02:56 -0800)
committerCommit bot <commit-bot@chromium.org>
Mon, 26 Jan 2015 10:57:05 +0000 (10:57 +0000)
R=mvstanton@chromium.org

Review URL: https://codereview.chromium.org/875863002

Cr-Commit-Position: refs/heads/master@{#26266}

src/compiler.cc

index 266bd54..4517b1f 100644 (file)
@@ -1293,7 +1293,10 @@ Handle<SharedFunctionInfo> Compiler::CompileScript(
   MaybeHandle<SharedFunctionInfo> maybe_result;
   Handle<SharedFunctionInfo> result;
   if (extension == NULL) {
-    if (FLAG_serialize_toplevel &&
+    maybe_result = compilation_cache->LookupScript(
+        source, script_name, line_offset, column_offset, is_shared_cross_origin,
+        context);
+    if (maybe_result.is_null() && FLAG_serialize_toplevel &&
         compile_options == ScriptCompiler::kConsumeCodeCache &&
         !isolate->debug()->is_loaded()) {
       HistogramTimerScope timer(isolate->counters()->compile_deserialize());
@@ -1303,10 +1306,6 @@ Handle<SharedFunctionInfo> Compiler::CompileScript(
         return result;
       }
       // Deserializer failed. Fall through to compile.
-    } else {
-      maybe_result = compilation_cache->LookupScript(
-          source, script_name, line_offset, column_offset,
-          is_shared_cross_origin, context);
     }
   }