Revision: 5427
Author: [email protected]
Date: Wed Sep  8 03:33:15 2010
Log: Don't generate preparse data if lazy-flag is false.

Review URL: http://codereview.chromium.org/3304012
http://code.google.com/p/v8/source/detail?r=5427

Modified:
 /branches/bleeding_edge/src/compiler.cc

=======================================
--- /branches/bleeding_edge/src/compiler.cc     Mon Aug 30 06:39:07 2010
+++ /branches/bleeding_edge/src/compiler.cc     Wed Sep  8 03:33:15 2010
@@ -269,9 +269,20 @@
   }

   if (result.is_null()) {
-    // No cache entry found. Do pre-parsing and compile the script.
+    // No cache entry found. Do pre-parsing, if it makes sense, and compile
+    // the script.
+    // Building preparse data that is only used immediately after is only a
+ // saving if we might skip building the AST for lazily compiled functions.
+    // I.e., preparse data isn't relevant when the lazy flag is off, and
+    // for small sources, odds are that there aren't many functions
+    // that would be compiled lazily anyway, so we skip the preparse step
+    // in that case too.
+    // TODO(lrn): Maybe *only* collect function info, not symbol info, in
+    // this case, since it's just replacing one hash-lookup with another.
     ScriptDataImpl* pre_data = input_pre_data;
-    if (pre_data == NULL && source_length >= FLAG_min_preparse_length) {
+    if (pre_data == NULL
+        && FLAG_lazy
+        && source_length >= FLAG_min_preparse_length) {
       pre_data = PreParse(source, NULL, extension);
     }

--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to