• Mike Stanton's avatar
    [CSA builtins] Fast case array iteration does unnecessary prototype walks · 61bb129f
    Mike Stanton authored
    In ArrayBuiltinsAssembler::VisitAllFastElementsOneKind(), we enumerate
    an arrays elements, carefully checking for the "hole" when required.
    This code is only called for arrays whose prototype is the initial array
    prototype. And the path is only available when the initial array
    prototype is free of elements. Since that's the case, we only need to
    verify that the initial array prototype remains free of elements during
    an iteration with javascript callbacks. We don't need a body of code
    that can walk the prototype chain looking for elements visible through
    the "hole" value. In practice, this code was never run.
    
    Change-Id: Iba5e275c559d495aa1cf6a4f29d66e2ce475c981
    Reviewed-on: https://chromium-review.googlesource.com/1015023
    Commit-Queue: Michael Stanton <mvstanton@chromium.org>
    Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#52660}
    61bb129f
proto-elements-add-during-foreach.js 728 Bytes