• Hai Dang's avatar
    Reland "Add fast path for spreading primitive strings." · 760eed05
    Hai Dang authored
    This is a reland of ef2a19a2.
    Use AllocateJSArray to avoid allocating an empty fixed array.
    
    Original change's description:
    > Add fast path for spreading primitive strings.
    >
    > This improves the performance on primitive strings of
    > IterableToListWithSymbolLookup, which implements the
    > CreateArrayFromIterable bytecode. The fast path is only
    > taken if the string iterator protector is valid (that is,
    > String.prototype[Symbol.iterator] and
    > String.prototype[Symbol.iterator]().next are untouched).
    >
    > This brings spreading of primitive strings closer to the
    > performance of the string iterator optimizations.
    > (see https://docs.google.com/document/d/13z1fvRVpe_oEroplXEEX0a3WK94fhXorHjcOMsDmR-8/).
    >
    > Bug: chromium:881273, v8:7980
    > Change-Id: Ic8d8619da2f2afcc9346203613a844f62653fd7a
    > Reviewed-on: https://chromium-review.googlesource.com/1243110
    > Commit-Queue: Hai Dang <dhai@google.com>
    > Reviewed-by: Georg Neis <neis@chromium.org>
    > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
    > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
    > Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
    > Cr-Commit-Position: refs/heads/master@{#56329}
    
    Bug: chromium:881273, v8:7980
    Change-Id: I746c57ddfc300e1032057b5125bc824adf5c2cd3
    Reviewed-on: https://chromium-review.googlesource.com/c/1267497
    Commit-Queue: Georg Neis <neis@chromium.org>
    Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
    Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#56438}
    760eed05
string-iterator2.js 843 Bytes