2f382887d4
This allows very large arrays being joined to incrementally, on-demand allocate the internal buffer. Previously, join would allocate the buffer upfront and all at once. Large, sparse arrays will use less memory. Bug: chromium:897404 Change-Id: Id914b14a7c55a62834f63ad602bdb45363249075 Reviewed-on: https://chromium-review.googlesource.com/c/1303538 Commit-Queue: Peter Wong <peter.wm.wong@gmail.com> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#57075}
17 lines
487 B
JavaScript
17 lines
487 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.
|
|
|
|
function TestError() {}
|
|
|
|
const a = new Array(2**32 - 1);
|
|
|
|
// Force early exit to avoid an unreasonably long test.
|
|
a[0] = {
|
|
toString() { throw new TestError(); }
|
|
};
|
|
|
|
// Verify join throws test error and does not fail due to asserts (Negative
|
|
// length fixed array allocation).
|
|
assertThrows(() => a.join(), TestError);
|