Comment #2 on issue 3016 by
to...@chromium.org: Rewrite the V8 parser
http://code.google.com/p/v8/issues/detail?id=3016
Streaming parsing will be awesome! Really excited to see this happening.
Sorry to potentially derail the bug, but I have a few naive questions while
we are considering a major re-write:
- There is a lot of dead JS on the web. For example, a page imports all of
jquery, but only uses one method, $(...). Are lazy parsing designs
feasible? Are they being considered? If so, we may want to think about
teaching the parser whether it is on the critical path currently. If we are
blocked on the network, be eager. If we have the whole script and are
blocking compilation, be lazy.
- Are there more valuable artifacts that we could cache post-parsing than
the current preparsing data? That didn't prove to save a very significant
amount of parsing effort. But we still have all the memory/disk cache
plumbing in Chrome/Blink if V8 can give us something more valuable to cache.
- Rather, could the full parse output be made cacheable? Then we could
consider pre-warming same-domain renderers with cached parse output. This
would significantly help with common cases like "Google Search Results
--(click)-> Search Result on a different domain --(back)--> Google Search
Results again in a cold renderer that needs to reparse/recompile
everything."
- Can parsing be made thread safe so that we can consider offloading it
from the main thread? I believe IE does this.
ps. The above questions would also apply to compilation, but I expect the
answers are less rosy than what I'm hoping for for parsing.