• Caitlin Potter's avatar
    Reland "[esnext] re-implement template strings" · b8229612
    Caitlin Potter authored
    - Add a new bytecode for the ToString operation, replacing the old
    intrinsic call (currently does not collect type feedback).
    - Add a new AST node to represent TemplateLiterals, and avoid
    generating unnecessary ToString operations in some simple cases.
    - Use a single feedback slot for each string addition, because the
    type feedback should always be the same for each addition
    
    This seems to produce a very slight improvement on JSTests benchmarks
    and bench-ruben.js from v8:7415, and it's possible that type feedback
    for the ToString bytecode could provide more opportunities to eliminate
    the runtime call in TurboFan.
    
    Doesn't touch tagged templates
    
    [esnext] fix OOB read in ASTPrinter::VisistTemplateLiteral
    
    Fixes an error where TemplateLiteral printing in --print-ast
    would try to read an element beyond the length of a vector.
    
    BUG=v8:7415, chromium:820596
    R=adamk@chromium.org, gsathya@chromum.org, rmcilroy@chromium.org, ishell@chromium.org, bmeurer@chromium.org
    
    Change-Id: Ie56894f73a6445550a5f95f42160c4e29ab1da42
    Reviewed-on: https://chromium-review.googlesource.com/958408Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
    Commit-Queue: Caitlin Potter <caitp@igalia.com>
    Cr-Commit-Position: refs/heads/master@{#51933}
    b8229612
Name
Last commit
Last update
..
regress-2034.js Loading commit data...
regress-2156.js Loading commit data...
regress-2186.js Loading commit data...
regress-2219.js Loading commit data...
regress-2225.js Loading commit data...
regress-2243.js Loading commit data...
regress-2322.js Loading commit data...
regress-2506.js Loading commit data...
regress-2681.js Loading commit data...
regress-2691.js Loading commit data...
regress-2829.js Loading commit data...
regress-2858.js Loading commit data...
regress-3426.js Loading commit data...
regress-347906.js Loading commit data...
regress-3501.js Loading commit data...
regress-3683.js Loading commit data...
regress-3741.js Loading commit data...
regress-3902.js Loading commit data...
regress-3938.js Loading commit data...
regress-4056.js Loading commit data...
regress-4097.js Loading commit data...
regress-411237.js Loading commit data...
regress-4160.js Loading commit data...
regress-4211.js Loading commit data...
regress-4298.js Loading commit data...
regress-4395-global-eval.js Loading commit data...
regress-4395.js Loading commit data...
regress-4400.js Loading commit data...
regress-4417.js Loading commit data...
regress-4466.js Loading commit data...
regress-4482.js Loading commit data...
regress-4522.js Loading commit data...
regress-455141.js Loading commit data...
regress-4585.js Loading commit data...
regress-474783.js Loading commit data...
regress-4759.js Loading commit data...
regress-508074.js Loading commit data...
regress-513474.js Loading commit data...
regress-517455.js Loading commit data...
regress-5337.js Loading commit data...
regress-5598.js Loading commit data...
regress-576662.js Loading commit data...
regress-5929-1.js Loading commit data...
regress-594084.js Loading commit data...
regress-6098.js Loading commit data...
regress-6322.js Loading commit data...
regress-650172.js Loading commit data...
regress-660925.js Loading commit data...
regress-666622.js Loading commit data...
regress-777182.js Loading commit data...
regress-arrow-duplicate-params.js Loading commit data...
regress-cr372788.js Loading commit data...
regress-cr493566.js Loading commit data...
regress-cr512574.js Loading commit data...
regress-crbug-248025.js Loading commit data...
regress-crbug-346141.js Loading commit data...
regress-crbug-448730.js Loading commit data...
regress-crbug-461520.js Loading commit data...
regress-crbug-465671-null.js Loading commit data...
regress-crbug-465671.js Loading commit data...
regress-crbug-820596.js Loading commit data...
regress-inlined-new-target.js Loading commit data...
regress-lookup-transition.js Loading commit data...
regress-new-target-context.js Loading commit data...