• Seth Brenith's avatar
    Change key format for script cache · 4b1b7e29
    Seth Brenith authored
    This is a partial reland of https://crrev.com/c/3597106 including fixes
    from https://crrev.com/c/3654413
    
    Before this change, a script cache key is the same format as an eval
    cache key, which is a FixedArray containing:
    - The SharedFunctionInfo of the containing function
    - The source text
    - The language mode in which the code was parsed
    - The position in the source where eval was called
    
    After this change, a script cache key is a WeakFixedArray containing:
    - A weak pointer to the Script
    - The hash value of the source text
    
    This sets up for a subsequent change which can cause these keys to
    outlive their corresponding values (top-level SharedFunctionInfos)
    without leaking any memory beyond the key itself.
    
    Bug: v8:12808
    Change-Id: Ibdfe5d10eafe5b7392e554c500af47975baf45c6
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3668304Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
    Commit-Queue: Seth Brenith <seth.brenith@microsoft.com>
    Cr-Commit-Position: refs/heads/main@{#80899}
    4b1b7e29
compilation-cache-table.cc 14.5 KB