• ricow@chromium.org's avatar
    Introduce code flushing of RegExp code. · 0f682143
    ricow@chromium.org authored
    Due to issues relating mostly to chrome extensions we have lately been
    running into OOMs that are caused by our executable space running
    out. This change introduces flushing of code from regexps if we have
    not used the code for 5 mark sweeps.
    
    The approach is different from the normal function code flusing. Here
    we make a copy of the code inside the data array, and exchange the
    original code with a smi determined by the sweep_generation (a new
    heap variable increased everytime we do mark sweep/compact). If we
    encounter a smi in EnsureCompiled we simply reinstate the code
    object. If, in the marking phase of mark sweep, we find a regexp that
    already have a smi in the code field, and this is more than 5
    generations old we flush the code from the saved index.
    Review URL: http://codereview.chromium.org/7282026
    
    git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8532 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
    0f682143
regexp.js 17.4 KB