commit | 33ec0b79b8ea60dcccf1d445b0cbd2eed8e1a165 | [log] [tgz] |
---|---|---|
author | conradw <conradw@chromium.org> | Thu Sep 10 14:40:57 2015 |
committer | Commit bot <commit-bot@chromium.org> | Thu Sep 10 14:41:14 2015 |
tree | 9e55d025af65cdee0c715128c0997966dca409e9 | |
parent | deb5f524d7e7dd011bc245cb24e83358e22826f8 [diff] |
Parsing especially large nested functions takes up more memory than necessary. Inner functions must be eagerly parsed for scope analysis, but the full AST is also kept around even though it's not needed. This CL mitigates this problem by allocating some AstNodes of the inner function to a temporary Zone which is deallocated once the scope information has been built. The remaining nodes (such as VariableProxy) must persist until scope analysis actually happens, and have to be allocated to a parser-persistent Zone. BUG=417697 LOG=N Review URL: https://codereview.chromium.org/1304923004 Cr-Commit-Position: refs/heads/master@{#30685}
V8 is Google's open source JavaScript engine.
V8 implements ECMAScript as specified in ECMA-262.
V8 is written in C++ and is used in Google Chrome, the open source browser from Google.
V8 can run standalone, or can be embedded into any C++ application.
V8 Project page: https://code.google.com/p/v8/
Checkout depot tools, and run
fetch v8
This will checkout V8 into the directory v8
and fetch all of its dependencies. To stay up to date, run
git pull origin gclient sync
For fetching all branches, add the following into your remote configuration in .git/config
:
fetch = +refs/branch-heads/*:refs/remotes/branch-heads/* fetch = +refs/tags/*:refs/tags/*