// Copyright 2020 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.

// Original: mutate_arrays.js

/* ArrayMutator: Remove elements */

/* ArrayMutator: Insert a hole */
[];
[];

/* ArrayMutator: Shuffle array */
[];

/* ArrayMutator: Insert a random value */
[""];

/* ArrayMutator: Insert a random value (replaced) */
[""];

/* ArrayMutator: Insert a hole (replaced) */
[,];
[];

/* ArrayMutator: Insert a hole (replaced) */
[,];

/* ArrayMutator: Remove elements */
[];

/* ArrayMutator: Remove elements */
[];

/* ArrayMutator: Duplicate an element */
[1, 1, 2, 3];

/* ArrayMutator: Insert a random value (replaced) */
[1, "", 3];

/* ArrayMutator: Remove elements */
[];

/* ArrayMutator: Duplicate an element */
[1, 2, 3, 2];

/* ArrayMutator: Remove elements */
[3];

/* ArrayMutator: Duplicate an element (replaced) */
[1, 2, 3];

/* ArrayMutator: Insert a hole (replaced) */

/* ArrayMutator: Duplicate an element (replaced) */
[1, 2,,];

/* ArrayMutator: Remove elements */
[1, 2];

/* ArrayMutator: Insert a hole (replaced) */

/* ArrayMutator: Duplicate an element */
[1, 1, 2,,];

/* ArrayMutator: Shuffle array */
[2, 1, 3];

/* ArrayMutator: Remove elements */

/* ArrayMutator: Remove elements */
[3];

/* ArrayMutator: Duplicate an element (replaced) */
[1, 2, 1];

/* ArrayMutator: Duplicate an element (replaced) */

/* ArrayMutator: Duplicate an element (replaced) */
[1, 2, 2];

/* ArrayMutator: Insert a random value */
[1, 2, 3, ""];

/* ArrayMutator: Duplicate an element */
[1, 2, 3, 3];

/* ArrayMutator: Remove elements */

/* ArrayMutator: Duplicate an element */
[1, 2];

/* ArrayMutator: Insert a random value (replaced) */

/* ArrayMutator: Duplicate an element (replaced) */
[1, 2, ""];

/* ArrayMutator: Insert a random value (replaced) */

/* ArrayMutator: Insert a random value (replaced) */
["", 2, 3];

/* ArrayMutator: Duplicate an element */

/* ArrayMutator: Remove elements */
[1, 1, 3];

/* ArrayMutator: Remove elements */
[1, 2];
