Profiler experiments: prevent self-optimization for V8 Extensions
authorjkummerow@chromium.org <jkummerow@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Wed, 29 Feb 2012 15:08:02 +0000 (15:08 +0000)
committerjkummerow@chromium.org <jkummerow@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Wed, 29 Feb 2012 15:08:02 +0000 (15:08 +0000)
Review URL: https://chromiumcodereview.appspot.com/9535006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10873 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

src/compiler.cc
src/scopes.h

index cbf53a5..520db34 100644 (file)
@@ -119,6 +119,7 @@ bool CompilationInfo::ShouldSelfOptimize() {
       !Serializer::enabled() &&
       !function()->flags()->Contains(kDontSelfOptimize) &&
       !function()->flags()->Contains(kDontOptimize) &&
+      function()->scope()->allows_lazy_recompilation() &&
       (shared_info().is_null() || !shared_info()->optimization_disabled());
 }
 
index 30c95ee..9ce4cd7 100644 (file)
@@ -372,6 +372,11 @@ class Scope: public ZoneObject {
   // Determine if we can use lazy compilation for this scope.
   bool AllowsLazyCompilation() const;
 
+  // True if we can lazily recompile functions with this scope.
+  bool allows_lazy_recompilation() const {
+    return !force_eager_compilation_;
+  }
+
   // True if the outer context of this scope is always the global context.
   bool HasTrivialOuterContext() const;