63ce4ba47a
This is a reland of fac6f63eb8
, after
adding initialization of unused element slots.
Original change's description:
> Use CopyElements (which uses memcpy) to copy FixedDoubleArray.
>
> This improves the performance of ExtractFixedArray and
> CloneFastJSArray for double arrays, which in turn improve the
> performance of cloning double arrays with slice() or spreading.
>
> This, however, does not improve performance of spreading holey
> double arrays, because spreading needs extra work to convert
> holes to undefined.
>
> Bug: v8:7980
> Change-Id: Ib8aed74abbb0b06982a3b754e134fa415cb7de2d
> Reviewed-on: https://chromium-review.googlesource.com/c/1280308
> Reviewed-by: Michael Stanton <mvstanton@chromium.org>
> Reviewed-by: Georg Neis <neis@chromium.org>
> Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
> Commit-Queue: Hai Dang <dhai@google.com>
> Cr-Commit-Position: refs/heads/master@{#56680}
Bug: v8:7980
Change-Id: I899af60c061b9cd6eb619c247c5fc515b92e9fd7
Reviewed-on: https://chromium-review.googlesource.com/c/1382735
Commit-Queue: Georg Neis <neis@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58333}
24 lines
497 B
JavaScript
24 lines
497 B
JavaScript
// Copyright 2018 the V8 project authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
'use strict';
|
|
|
|
{
|
|
const x = [42];
|
|
x.splice(0, 0, 23);
|
|
assertEquals([23, 42], x);
|
|
x.length++;
|
|
assertEquals([23, 42, ,], x);
|
|
assertFalse(x.hasOwnProperty(2));
|
|
}
|
|
|
|
{
|
|
const x = [4.2];
|
|
x.splice(0, 0, 23);
|
|
assertEquals([23, 4.2], x);
|
|
x.length++;
|
|
assertEquals([23, 4.2, ,], x);
|
|
assertFalse(x.hasOwnProperty(2));
|
|
}
|