• Camillo Bruni's avatar
    Reland "[runtime] Optimise paired instance type checks" · ed0a8599
    Camillo Bruni authored
    This is a reland of 92edf9a1
    
    Introduce map handle again to prevent corruption.
    
    Drive-by-fix:
    Make some PropertyDetails and Representation methods constexpr.
    
    Original change's description:
    > [runtime] Optimise paired instance type checks
    >
    > Clang doesn't optimise over handle derefs. Change the ValueSerializer
    > and the JsonStringifier to use InstanceType directly for checks.
    > This CL squeezes another 1.5% of JSON.stringify in local benchmarks.
    >
    > Drive-by-fix:
    > - Avoid a few more derefs in the JsonStringifier
    > - Make JsonStringifier::SerializeJSArray a bit more readable
    >
    > Change-Id: I37626a6d92a8d9275611a4e6d1d908f2e0c6d43b
    > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3247637
    > Commit-Queue: Camillo Bruni <cbruni@chromium.org>
    > Reviewed-by: Toon Verwaest <verwaest@chromium.org>
    > Cr-Commit-Position: refs/heads/main@{#77697}
    
    Change-Id: I8915a82aab6dd7966223a4d7a8dd1363258b7c81
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3260512
    Commit-Queue: Camillo Bruni <cbruni@chromium.org>
    Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
    Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#77735}
    ed0a8599
json-stringifier.cc 40 KB