14514f5e3Sopenharmony_ci/*
24514f5e3Sopenharmony_ci * Copyright (c) 2021 Huawei Device Co., Ltd.
34514f5e3Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
44514f5e3Sopenharmony_ci * you may not use this file except in compliance with the License.
54514f5e3Sopenharmony_ci * You may obtain a copy of the License at
64514f5e3Sopenharmony_ci *
74514f5e3Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
84514f5e3Sopenharmony_ci *
94514f5e3Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
104514f5e3Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
114514f5e3Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
124514f5e3Sopenharmony_ci * See the License for the specific language governing permissions and
134514f5e3Sopenharmony_ci * limitations under the License.
144514f5e3Sopenharmony_ci */
154514f5e3Sopenharmony_ci
164514f5e3Sopenharmony_ci/*
174514f5e3Sopenharmony_ci * @tc.name:array
184514f5e3Sopenharmony_ci * @tc.desc:test Array
194514f5e3Sopenharmony_ci * @tc.type: FUNC
204514f5e3Sopenharmony_ci * @tc.require: issueI5NO8G
214514f5e3Sopenharmony_ci */
224514f5e3Sopenharmony_civar arr = new Array(100);
234514f5e3Sopenharmony_civar a = arr.slice(90, 100);
244514f5e3Sopenharmony_ciprint(a.length);
254514f5e3Sopenharmony_ci
264514f5e3Sopenharmony_civar arr1 = [1, 1, 1, 1, 1, 1];
274514f5e3Sopenharmony_ciarr1.fill(0, 2, 4);
284514f5e3Sopenharmony_ciprint(arr1);
294514f5e3Sopenharmony_ci
304514f5e3Sopenharmony_civar arr2 = new Array(100);
314514f5e3Sopenharmony_ciarr2.fill(0, 2, 4);
324514f5e3Sopenharmony_civar a1 = arr2.slice(0, 5);
334514f5e3Sopenharmony_ciprint(arr2.length);
344514f5e3Sopenharmony_ciprint(a1);
354514f5e3Sopenharmony_ci
364514f5e3Sopenharmony_civar arr3 = [1, 2, 3, 4, 5, 6];
374514f5e3Sopenharmony_ciarr3.pop();
384514f5e3Sopenharmony_ciprint(arr3.length);
394514f5e3Sopenharmony_ciprint(arr3);
404514f5e3Sopenharmony_ci
414514f5e3Sopenharmony_civar arr4 = [1, 3, 4];
424514f5e3Sopenharmony_ciarr4.splice(1, 0, 2);
434514f5e3Sopenharmony_ciprint(arr4.length);
444514f5e3Sopenharmony_ciprint(arr4);
454514f5e3Sopenharmony_ci// 1, 2, 3, 4
464514f5e3Sopenharmony_civar arr4 = [1, 2, 3, 4];
474514f5e3Sopenharmony_ciarr4.splice(3, 1, 3);
484514f5e3Sopenharmony_ciprint(arr4.length);
494514f5e3Sopenharmony_ciprint(arr4);
504514f5e3Sopenharmony_ci// 1, 2, 3, 3
514514f5e3Sopenharmony_ci
524514f5e3Sopenharmony_civar arr5 = [1, 2, 3, 4, 5, 6];
534514f5e3Sopenharmony_ciarr5.shift();
544514f5e3Sopenharmony_ciprint(arr5.length);
554514f5e3Sopenharmony_ciprint(arr5);
564514f5e3Sopenharmony_ci// 1, 2, 3, 4, 5
574514f5e3Sopenharmony_ci
584514f5e3Sopenharmony_civar arr6 = [1, 2, 3, 4, 5];
594514f5e3Sopenharmony_ciarr6.reverse();
604514f5e3Sopenharmony_ciprint(arr6);
614514f5e3Sopenharmony_ci
624514f5e3Sopenharmony_civar arr7 = [];
634514f5e3Sopenharmony_ciarr7[2] = 10;
644514f5e3Sopenharmony_ciprint(arr7.pop()); // 10
654514f5e3Sopenharmony_ciprint(arr7.pop()); // undefined
664514f5e3Sopenharmony_ciprint(arr7.pop()); // undefined
674514f5e3Sopenharmony_ci
684514f5e3Sopenharmony_civar arr8 = [];
694514f5e3Sopenharmony_ciarr8[1] = 8;
704514f5e3Sopenharmony_ciprint(arr8.shift()); // undefined
714514f5e3Sopenharmony_ciprint(arr8.shift()); // 8
724514f5e3Sopenharmony_ciprint(arr8.shift()); // undefined
734514f5e3Sopenharmony_ci
744514f5e3Sopenharmony_ci// Test on Array::Splice
754514f5e3Sopenharmony_civar arr9 = new Array(9);
764514f5e3Sopenharmony_ciprint(arr9.length); // 9
774514f5e3Sopenharmony_ciarr9.splice(0, 9);
784514f5e3Sopenharmony_ciprint(arr9.length); // 0
794514f5e3Sopenharmony_cifor (let i = 0; i < arr9.length; i++) {
804514f5e3Sopenharmony_ci    print(arr9[i]);
814514f5e3Sopenharmony_ci}
824514f5e3Sopenharmony_ci
834514f5e3Sopenharmony_civar arr10 = new Array(9);
844514f5e3Sopenharmony_ciprint(arr10.length); // 9
854514f5e3Sopenharmony_ciarr10.splice(0, 8, 1);
864514f5e3Sopenharmony_ciprint(arr10.length); // 2
874514f5e3Sopenharmony_cifor (let i = 0; i < arr10.length; i++) {
884514f5e3Sopenharmony_ci    print(arr10[i]); // 1, undefined
894514f5e3Sopenharmony_ci}
904514f5e3Sopenharmony_ci
914514f5e3Sopenharmony_civar arr11 = new Array(9);
924514f5e3Sopenharmony_ciprint(arr11.length); // 9
934514f5e3Sopenharmony_ciarr11.splice(1, 8, 1);
944514f5e3Sopenharmony_ciprint(arr11.length); // 2
954514f5e3Sopenharmony_cifor (let i = 0; i < arr11.length; i++) {
964514f5e3Sopenharmony_ci    print(arr11[i]); // undefined, 1
974514f5e3Sopenharmony_ci}
984514f5e3Sopenharmony_ci
994514f5e3Sopenharmony_civar arr12 = new Array(9);
1004514f5e3Sopenharmony_ciprint(arr12.length); // 9
1014514f5e3Sopenharmony_ciarr12.splice(0, 4, 1, 2, 3, 4, 5);
1024514f5e3Sopenharmony_ciprint(arr12.length); // 10
1034514f5e3Sopenharmony_cifor (let i = 0; i < arr12.length; i++) {
1044514f5e3Sopenharmony_ci    print(arr12[i]); // 1, 2, 3, 4, 5, undefined, undefined, undefined, undefined, undefined
1054514f5e3Sopenharmony_ci}
1064514f5e3Sopenharmony_ci
1074514f5e3Sopenharmony_civar arr13 = new Array(9);
1084514f5e3Sopenharmony_ciprint(arr13.length); // 9
1094514f5e3Sopenharmony_ciarr13.splice(7, 5, 1, 2, 3);
1104514f5e3Sopenharmony_ciprint(arr13.length); // 10
1114514f5e3Sopenharmony_cifor (var i = 0; i < arr13.length; i++) {
1124514f5e3Sopenharmony_ci    print(arr13[i]); // undefined, undefined, undefined, undefined, undefined, undefined, undefined, 1, 2, 3
1134514f5e3Sopenharmony_ci}
1144514f5e3Sopenharmony_ci
1154514f5e3Sopenharmony_civar arr14 = Array.apply(null, Array(16));
1164514f5e3Sopenharmony_ciprint(arr14.length);
1174514f5e3Sopenharmony_civar arr15 = Array.apply(null, [1, 2, 3, 4, 5, 6]);
1184514f5e3Sopenharmony_ciprint(arr15.length);
1194514f5e3Sopenharmony_ci
1204514f5e3Sopenharmony_civar a = '0';
1214514f5e3Sopenharmony_ciprint(Array(5).indexOf(a));
1224514f5e3Sopenharmony_ci
1234514f5e3Sopenharmony_ciconst v3 = new Float32Array(7);
1244514f5e3Sopenharmony_citry {
1254514f5e3Sopenharmony_ci    v3.filter(Float32Array)
1264514f5e3Sopenharmony_ci} catch (error) {
1274514f5e3Sopenharmony_ci    print("The NewTarget is undefined")
1284514f5e3Sopenharmony_ci}
1294514f5e3Sopenharmony_ci
1304514f5e3Sopenharmony_ciconst v20 = new Array(2);
1314514f5e3Sopenharmony_cilet v21;
1324514f5e3Sopenharmony_citry {
1334514f5e3Sopenharmony_ci    v21 = v20.pop();
1344514f5e3Sopenharmony_ci    print(v21);
1354514f5e3Sopenharmony_ci} catch (error) {
1364514f5e3Sopenharmony_ci
1374514f5e3Sopenharmony_ci}
1384514f5e3Sopenharmony_ci
1394514f5e3Sopenharmony_civar arr21 = [1, 2, 3, 4, , 6];
1404514f5e3Sopenharmony_ciprint(arr21.at(0));
1414514f5e3Sopenharmony_ciprint(arr21.at(5));
1424514f5e3Sopenharmony_ciprint(arr21.at(-1));
1434514f5e3Sopenharmony_ciprint(arr21.at(6));
1444514f5e3Sopenharmony_ciprint(arr21.at('1.9'));
1454514f5e3Sopenharmony_ciprint(arr21.at(true));
1464514f5e3Sopenharmony_civar arr22 = arr21.toReversed();
1474514f5e3Sopenharmony_ciprint(arr22)
1484514f5e3Sopenharmony_ciprint(arr21)
1494514f5e3Sopenharmony_civar arr23 = [1, 2, 3, 4, 5];
1504514f5e3Sopenharmony_ciprint(arr23.with(2, 6)); // [1, 2, 6, 4, 5]
1514514f5e3Sopenharmony_ciprint(arr23); // [1, 2, 3, 4, 5]
1524514f5e3Sopenharmony_ci
1534514f5e3Sopenharmony_ciconst months = ["Mar", "Jan", "Feb", "Dec"];
1544514f5e3Sopenharmony_ciconst sortedMonths = months.toSorted();
1554514f5e3Sopenharmony_ciprint(sortedMonths); // ['Dec', 'Feb', 'Jan', 'Mar']
1564514f5e3Sopenharmony_ciprint(months); // ['Mar', 'Jan', 'Feb', 'Dec']
1574514f5e3Sopenharmony_ci
1584514f5e3Sopenharmony_ciconst values = [1, 10, 21, 2];
1594514f5e3Sopenharmony_ciconst sortedValues = values.toSorted((a, b) => {
1604514f5e3Sopenharmony_ci    return a - b
1614514f5e3Sopenharmony_ci});
1624514f5e3Sopenharmony_ciprint(sortedValues); // [1, 2, 10, 21]
1634514f5e3Sopenharmony_ciprint(values); // [1, 10, 21, 2]
1644514f5e3Sopenharmony_ci
1654514f5e3Sopenharmony_ciconst arrs = new Array(6);
1664514f5e3Sopenharmony_cifor (let i = 0; i < 6; i++) {
1674514f5e3Sopenharmony_ci    var str = i.toString();
1684514f5e3Sopenharmony_ci    if (i != 1) {
1694514f5e3Sopenharmony_ci        arrs[i] = str;
1704514f5e3Sopenharmony_ci    }
1714514f5e3Sopenharmony_ci}
1724514f5e3Sopenharmony_ciarrs.reverse();
1734514f5e3Sopenharmony_ciprint(arrs); // 5,4,3,2,,0
1744514f5e3Sopenharmony_ci
1754514f5e3Sopenharmony_cifunction handleExpectedErrorCaught(prompt, e) {
1764514f5e3Sopenharmony_ci    if (e instanceof Error) {
1774514f5e3Sopenharmony_ci        print(`Expected ${e.name} caught in ${prompt}.`);
1784514f5e3Sopenharmony_ci    } else {
1794514f5e3Sopenharmony_ci        print(`Expected error message caught in ${prompt}.`);
1804514f5e3Sopenharmony_ci    }
1814514f5e3Sopenharmony_ci}
1824514f5e3Sopenharmony_ci
1834514f5e3Sopenharmony_cifunction handleUnexpectedErrorCaught(prompt, e) {
1844514f5e3Sopenharmony_ci    if (e instanceof Error) {
1854514f5e3Sopenharmony_ci        print(`Unexpected ${e.name} caught in ${prompt}: ${e.message}`);
1864514f5e3Sopenharmony_ci        if (typeof e.stack !== 'undefined') {
1874514f5e3Sopenharmony_ci            print(`Stacktrace:\n${e.stack}`);
1884514f5e3Sopenharmony_ci        }
1894514f5e3Sopenharmony_ci    } else {
1904514f5e3Sopenharmony_ci        print(`Unexpected error message caught in ${prompt}: ${e}`);
1914514f5e3Sopenharmony_ci    }
1924514f5e3Sopenharmony_ci}
1934514f5e3Sopenharmony_ci
1944514f5e3Sopenharmony_ci// Test cases for reverse()
1954514f5e3Sopenharmony_ciprint("======== Begin: Array.prototype.reverse() ========");
1964514f5e3Sopenharmony_citry {
1974514f5e3Sopenharmony_ci    const arr0 = [];
1984514f5e3Sopenharmony_ci    print(`arr0.reverse() === arr0 ? ${arr0.reverse() === arr0}`); // true
1994514f5e3Sopenharmony_ci    print(`arr0.length after reverse() called = ${arr0.length}`); // 0
2004514f5e3Sopenharmony_ci
2014514f5e3Sopenharmony_ci    const arr1 = [1];
2024514f5e3Sopenharmony_ci    print(`arr1.reverse() === arr1 ? ${arr1.reverse() === arr1}`); // true
2034514f5e3Sopenharmony_ci    print(`arr1 after reverse() called = ${arr1}`); // 1
2044514f5e3Sopenharmony_ci
2054514f5e3Sopenharmony_ci    const arrWithHoles = [];
2064514f5e3Sopenharmony_ci    arrWithHoles[1] = 1;
2074514f5e3Sopenharmony_ci    arrWithHoles[4] = 4;
2084514f5e3Sopenharmony_ci    arrWithHoles[6] = undefined;
2094514f5e3Sopenharmony_ci    arrWithHoles.length = 10;
2104514f5e3Sopenharmony_ci    // arrWithHoles = [Hole, 1, Hole, Hole, 4, Hole, undefined, Hole, Hole, Hole]
2114514f5e3Sopenharmony_ci    print(`arrWithHoles before reverse() called = ${arrWithHoles}`); // ,1,,,4,,,,,
2124514f5e3Sopenharmony_ci    print(`arrWithHoles.reverse()               = ${arrWithHoles.reverse()}`); // ,,,,,4,,,1,
2134514f5e3Sopenharmony_ci    print(`arrWithHoles after reverse() called  = ${arrWithHoles}`); // ,,,,,4,,,1,
2144514f5e3Sopenharmony_ci} catch (e) {
2154514f5e3Sopenharmony_ci    handleUnexpectedErrorCaught(e);
2164514f5e3Sopenharmony_ci}
2174514f5e3Sopenharmony_ciprint("======== End: Array.prototype.reverse() ========");
2184514f5e3Sopenharmony_ci
2194514f5e3Sopenharmony_ciprint("======== Begin: Array.prototype.indexOf() & Array.prototype.lastIndexOf() ========");
2204514f5e3Sopenharmony_ci// Test case for indexOf() and lastIndexOf()
2214514f5e3Sopenharmony_citry {
2224514f5e3Sopenharmony_ci    const arr = [0, 10, 20];
2234514f5e3Sopenharmony_ci    arr.length = 10;
2244514f5e3Sopenharmony_ci    arr[3] = 80;
2254514f5e3Sopenharmony_ci    arr[4] = 40;
2264514f5e3Sopenharmony_ci    arr[6] = undefined;
2274514f5e3Sopenharmony_ci    arr[7] = 10;
2284514f5e3Sopenharmony_ci    arr[8] = "80";
2294514f5e3Sopenharmony_ci    print("arr = [0, 10, 20, 80, 40, Hole, undefined, 10, \"80\", Hole]");
2304514f5e3Sopenharmony_ci    // prompt1, results1, prompt2, results2, ...
2314514f5e3Sopenharmony_ci    const resultGroups = [
2324514f5e3Sopenharmony_ci        "Group 1: 0 <= fromIndex < arr.length", [
2334514f5e3Sopenharmony_ci    arr.indexOf(40), // 4
2344514f5e3Sopenharmony_ci    arr.indexOf(40, 5), // -1
2354514f5e3Sopenharmony_ci    arr.indexOf(10), // 1
2364514f5e3Sopenharmony_ci    arr.indexOf(10, 2), // 7
2374514f5e3Sopenharmony_ci    arr.lastIndexOf(40), // 4
2384514f5e3Sopenharmony_ci    arr.lastIndexOf(40, 3), // -1
2394514f5e3Sopenharmony_ci    arr.lastIndexOf(10), // 7
2404514f5e3Sopenharmony_ci    arr.lastIndexOf(10, 6), // 1
2414514f5e3Sopenharmony_ci    ],
2424514f5e3Sopenharmony_ci        "Group 2: -arr.length <= fromIndex < 0", [
2434514f5e3Sopenharmony_ci    arr.indexOf(40, -4), // -1
2444514f5e3Sopenharmony_ci    arr.indexOf(40, -8), // 4
2454514f5e3Sopenharmony_ci    arr.indexOf(10, -4), // 7
2464514f5e3Sopenharmony_ci    arr.indexOf(10, -10), // 1
2474514f5e3Sopenharmony_ci    arr.lastIndexOf(40, -4), // 4
2484514f5e3Sopenharmony_ci    arr.lastIndexOf(40, -8), // -1
2494514f5e3Sopenharmony_ci    arr.lastIndexOf(10, -4), // 1
2504514f5e3Sopenharmony_ci    arr.lastIndexOf(10, -10), // -1
2514514f5e3Sopenharmony_ci    arr.indexOf(0, -arr.length), // 0
2524514f5e3Sopenharmony_ci    arr.indexOf(10, -arr.length), // 1
2534514f5e3Sopenharmony_ci    arr.lastIndexOf(0, -arr.length), // 0
2544514f5e3Sopenharmony_ci    arr.lastIndexOf(10, -arr.length), // -1
2554514f5e3Sopenharmony_ci    ],
2564514f5e3Sopenharmony_ci        "Group 3: fromIndex >= arr.length", [
2574514f5e3Sopenharmony_ci    arr.indexOf(0, arr.length), // -1
2584514f5e3Sopenharmony_ci    arr.indexOf(0, arr.length + 10), // -1
2594514f5e3Sopenharmony_ci    arr.indexOf(10, arr.length),
2604514f5e3Sopenharmony_ci    arr.indexOf(10, arr.length + 10),
2614514f5e3Sopenharmony_ci    arr.lastIndexOf(0, arr.length), // 0
2624514f5e3Sopenharmony_ci    arr.lastIndexOf(0, arr.length + 10), // 0
2634514f5e3Sopenharmony_ci    ],
2644514f5e3Sopenharmony_ci        "Group 4: fromIndex < -arr.length", [
2654514f5e3Sopenharmony_ci    arr.indexOf(0, -arr.length - 10), // 0
2664514f5e3Sopenharmony_ci    arr.lastIndexOf(0, -arr.length - 10) // -1
2674514f5e3Sopenharmony_ci    ],
2684514f5e3Sopenharmony_ci        "Group 5: fromIndex in [Infinity, -Infinity]", [
2694514f5e3Sopenharmony_ci    arr.indexOf(10, -Infinity), // 1
2704514f5e3Sopenharmony_ci    arr.indexOf(10, +Infinity), // -1
2714514f5e3Sopenharmony_ci    arr.lastIndexOf(10, -Infinity), // -1
2724514f5e3Sopenharmony_ci    arr.lastIndexOf(10, +Infinity) // 7
2734514f5e3Sopenharmony_ci    ],
2744514f5e3Sopenharmony_ci        "Group 6: fromIndex is NaN", [
2754514f5e3Sopenharmony_ci    arr.indexOf(0, NaN), // 0
2764514f5e3Sopenharmony_ci    arr.indexOf(10, NaN), // 1
2774514f5e3Sopenharmony_ci    arr.lastIndexOf(0, NaN), // 0
2784514f5e3Sopenharmony_ci    arr.lastIndexOf(10, NaN), // -1
2794514f5e3Sopenharmony_ci    ],
2804514f5e3Sopenharmony_ci        "Group 7: fromIndex is not of type 'number'", [
2814514f5e3Sopenharmony_ci    arr.indexOf(10, '2'), // 7
2824514f5e3Sopenharmony_ci    arr.lastIndexOf(10, '2'), // 1
2834514f5e3Sopenharmony_ci    arr.indexOf(10, { valueOf() {
2844514f5e3Sopenharmony_ci        return 3;
2854514f5e3Sopenharmony_ci    } }), // 7
2864514f5e3Sopenharmony_ci    arr.indexOf(10, { valueOf() {
2874514f5e3Sopenharmony_ci        return 3;
2884514f5e3Sopenharmony_ci    } }), // 1
2894514f5e3Sopenharmony_ci    ],
2904514f5e3Sopenharmony_ci        "Group 8: Strict equality checking", [
2914514f5e3Sopenharmony_ci    arr.indexOf("80"), // 8
2924514f5e3Sopenharmony_ci    arr.lastIndexOf(80), // 3
2934514f5e3Sopenharmony_ci    ],
2944514f5e3Sopenharmony_ci        "Group 9: Searching undefined and null", [
2954514f5e3Sopenharmony_ci    arr.indexOf(), // 6
2964514f5e3Sopenharmony_ci    arr.indexOf(undefined), // 6
2974514f5e3Sopenharmony_ci    arr.indexOf(null), // -1
2984514f5e3Sopenharmony_ci    arr.lastIndexOf(), // 6
2994514f5e3Sopenharmony_ci    arr.lastIndexOf(undefined), // 6
3004514f5e3Sopenharmony_ci    arr.lastIndexOf(null) // -1
3014514f5e3Sopenharmony_ci    ]
3024514f5e3Sopenharmony_ci    ];
3034514f5e3Sopenharmony_ci    for (let i = 0; i < resultGroups.length; i += 2) {
3044514f5e3Sopenharmony_ci        print(`${resultGroups[i]}: ${resultGroups[i + 1]}`);
3054514f5e3Sopenharmony_ci    }
3064514f5e3Sopenharmony_ci
3074514f5e3Sopenharmony_ci    print("Group 10: fromIndex with side effects:");
3084514f5e3Sopenharmony_ci    let accessCount = 0;
3094514f5e3Sopenharmony_ci    const arrProxyHandler = {
3104514f5e3Sopenharmony_ci        has(target, key) {
3114514f5e3Sopenharmony_ci            accessCount += 1;
3124514f5e3Sopenharmony_ci            return key in target;
3134514f5e3Sopenharmony_ci        }
3144514f5e3Sopenharmony_ci    };
3154514f5e3Sopenharmony_ci    // Details on why accessCount = 6 can be seen in ECMAScript specifications:
3164514f5e3Sopenharmony_ci    // https://tc39.es/ecma262/multipage/indexed-collections.html#sec-array.prototype.indexof
3174514f5e3Sopenharmony_ci    accessCount = 0;
3184514f5e3Sopenharmony_ci    const arr2 = new Proxy([10, 20, 30, 40, 50, 60], arrProxyHandler);
3194514f5e3Sopenharmony_ci    const result2 = arr2.indexOf(30, {
3204514f5e3Sopenharmony_ci        valueOf() {
3214514f5e3Sopenharmony_ci            arr2.length = 2; // Side effects to arr2
3224514f5e3Sopenharmony_ci            return 0;
3234514f5e3Sopenharmony_ci        }
3244514f5e3Sopenharmony_ci    }); // Expected: -1 (with accessCount = 6)
3254514f5e3Sopenharmony_ci    print(`  - indexOf:     result = ${result2}, accessCount = ${accessCount}`);
3264514f5e3Sopenharmony_ci    // Details on why accessCount = 6 can be seen in ECMAScript specifications:
3274514f5e3Sopenharmony_ci    // https://tc39.es/ecma262/multipage/indexed-collections.html#sec-array.prototype.lastindexof
3284514f5e3Sopenharmony_ci    accessCount = 0;
3294514f5e3Sopenharmony_ci    const arr3 = new Proxy([15, 25, 35, 45, 55, 65], arrProxyHandler);
3304514f5e3Sopenharmony_ci    const result3 = arr3.lastIndexOf(45, {
3314514f5e3Sopenharmony_ci        valueOf() {
3324514f5e3Sopenharmony_ci            arr3.length = 2; // Side effects to arr3
3334514f5e3Sopenharmony_ci            return 5;
3344514f5e3Sopenharmony_ci        }
3354514f5e3Sopenharmony_ci    }); // Expected: -1 (with accessCount = 6)
3364514f5e3Sopenharmony_ci    print(`  - lastIndexOf: result = ${result3}, accesscount = ${accessCount}`);
3374514f5e3Sopenharmony_ci
3384514f5e3Sopenharmony_ci    print("Group 11: fromIndex that triggers exceptions:");
3394514f5e3Sopenharmony_ci    for (let [prompt, fromIndex] of [["bigint", 1n], ["symbol", Symbol()]]) {
3404514f5e3Sopenharmony_ci        for (let method of [Array.prototype.indexOf, Array.prototype.lastIndexOf]) {
3414514f5e3Sopenharmony_ci            try {
3424514f5e3Sopenharmony_ci                const result = method.call(arr, 10, fromIndex);
3434514f5e3Sopenharmony_ci                print(`ERROR: Unexpected result (which is ${result}) returned by method '${method.name}': ` +
3444514f5e3Sopenharmony_ci                `Expects a TypeError thrown for fromIndex type '${prompt}'.`);
3454514f5e3Sopenharmony_ci            } catch (e) {
3464514f5e3Sopenharmony_ci                // Expects a TypeError thrown and caught here.
3474514f5e3Sopenharmony_ci                handleExpectedErrorCaught(`${method.name} when fromIndex is ${prompt}`, e);
3484514f5e3Sopenharmony_ci            }
3494514f5e3Sopenharmony_ci        }
3504514f5e3Sopenharmony_ci    }
3514514f5e3Sopenharmony_ci} catch (e) {
3524514f5e3Sopenharmony_ci    handleUnexpectedErrorCaught(e);
3534514f5e3Sopenharmony_ci}
3544514f5e3Sopenharmony_ciprint("======== End: Array.prototype.indexOf() & Array.prototype.lastIndexOf() ========");
3554514f5e3Sopenharmony_ci
3564514f5e3Sopenharmony_ci// Test Array.prototype.filter when callbackFn is not callable
3574514f5e3Sopenharmony_citry {
3584514f5e3Sopenharmony_ci    [].filter(1);
3594514f5e3Sopenharmony_ci} catch (e) {
3604514f5e3Sopenharmony_ci    print("CallbackFn is not callable");
3614514f5e3Sopenharmony_ci}
3624514f5e3Sopenharmony_ci
3634514f5e3Sopenharmony_civar getTrap = function (t, key) {
3644514f5e3Sopenharmony_ci    if (key === "length") return { [Symbol.toPrimitive]() {
3654514f5e3Sopenharmony_ci        return 3
3664514f5e3Sopenharmony_ci    } };
3674514f5e3Sopenharmony_ci    if (key === "2") return "baz";
3684514f5e3Sopenharmony_ci    if (key === "3") return "bar";
3694514f5e3Sopenharmony_ci};
3704514f5e3Sopenharmony_civar target1 = [];
3714514f5e3Sopenharmony_civar obj = new Proxy(target1, { get: getTrap, has: () => true });
3724514f5e3Sopenharmony_ciprint([].concat(obj));
3734514f5e3Sopenharmony_ciprint(Array.prototype.concat.apply(obj))
3744514f5e3Sopenharmony_ci
3754514f5e3Sopenharmony_ciconst v55 = new Float64Array();
3764514f5e3Sopenharmony_ciconst v98 = [-5.335880620598348e+307, 1.0, 1.0, 2.220446049250313e-16, -1.6304390272817058e+308];
3774514f5e3Sopenharmony_ci
3784514f5e3Sopenharmony_cifunction f99(a100) {
3794514f5e3Sopenharmony_ci}
3804514f5e3Sopenharmony_ci
3814514f5e3Sopenharmony_cifunction f110() {
3824514f5e3Sopenharmony_ci    v98[2467] = v55;
3834514f5e3Sopenharmony_ci}
3844514f5e3Sopenharmony_ci
3854514f5e3Sopenharmony_ciObject.defineProperty(f99, Symbol.species, { configurable: true, enumerable: true, value: f110 });
3864514f5e3Sopenharmony_civ98.constructor = f99;
3874514f5e3Sopenharmony_ciprint(JSON.stringify(v98.splice(4)));
3884514f5e3Sopenharmony_ci
3894514f5e3Sopenharmony_civar count;
3904514f5e3Sopenharmony_civar params;
3914514f5e3Sopenharmony_ci
3924514f5e3Sopenharmony_ciclass MyObserveArrray extends Array {
3934514f5e3Sopenharmony_ci    constructor(...args) {
3944514f5e3Sopenharmony_ci        super(...args);
3954514f5e3Sopenharmony_ci        print("constructor")
3964514f5e3Sopenharmony_ci        params = args;
3974514f5e3Sopenharmony_ci    }
3984514f5e3Sopenharmony_ci
3994514f5e3Sopenharmony_ci    static get [Symbol.species]() {
4004514f5e3Sopenharmony_ci        print("get [Symbol.species]")
4014514f5e3Sopenharmony_ci        count++;
4024514f5e3Sopenharmony_ci        return this;
4034514f5e3Sopenharmony_ci    }
4044514f5e3Sopenharmony_ci}
4054514f5e3Sopenharmony_ci
4064514f5e3Sopenharmony_cicount = 0;
4074514f5e3Sopenharmony_ciparams = undefined;
4084514f5e3Sopenharmony_cinew MyObserveArrray().filter(() => {
4094514f5e3Sopenharmony_ci});
4104514f5e3Sopenharmony_ciprint(count, 1);
4114514f5e3Sopenharmony_ciprint(params, [0]);
4124514f5e3Sopenharmony_ci
4134514f5e3Sopenharmony_cicount = 0;
4144514f5e3Sopenharmony_ciparams = undefined;
4154514f5e3Sopenharmony_cinew MyObserveArrray().concat(() => {
4164514f5e3Sopenharmony_ci});
4174514f5e3Sopenharmony_ciprint(count, 1);
4184514f5e3Sopenharmony_ciprint(params, [0]);
4194514f5e3Sopenharmony_ci
4204514f5e3Sopenharmony_cicount = 0;
4214514f5e3Sopenharmony_ciparams = undefined;
4224514f5e3Sopenharmony_cinew MyObserveArrray().slice(() => {
4234514f5e3Sopenharmony_ci});
4244514f5e3Sopenharmony_ciprint(count, 1);
4254514f5e3Sopenharmony_ciprint(params, [0]);
4264514f5e3Sopenharmony_ci
4274514f5e3Sopenharmony_cicount = 0;
4284514f5e3Sopenharmony_ciparams = undefined;
4294514f5e3Sopenharmony_cinew MyObserveArrray().splice(() => {
4304514f5e3Sopenharmony_ci});
4314514f5e3Sopenharmony_ciprint(count, 1);
4324514f5e3Sopenharmony_ciprint(params, [0]);
4334514f5e3Sopenharmony_ci
4344514f5e3Sopenharmony_cinew MyObserveArrray([1, 2, 3, 4]).with(0, 0);
4354514f5e3Sopenharmony_cinew MyObserveArrray([1, 2, 3, 4]).toReversed(0, 0);
4364514f5e3Sopenharmony_cinew MyObserveArrray([1, 2, 3, 4]).toSpliced(0, 0, 0);
4374514f5e3Sopenharmony_ci
4384514f5e3Sopenharmony_ciarr = new Array(1026);
4394514f5e3Sopenharmony_ciarr.fill(100);
4404514f5e3Sopenharmony_ciprint(arr.with(0, "n")[0])
4414514f5e3Sopenharmony_ci
4424514f5e3Sopenharmony_ciarr = new Array(1026);
4434514f5e3Sopenharmony_ciarr.fill(100);
4444514f5e3Sopenharmony_ciprint(arr.toReversed()[0])
4454514f5e3Sopenharmony_ci
4464514f5e3Sopenharmony_ciarr = new Array(1026);
4474514f5e3Sopenharmony_ciarr.fill(100);
4484514f5e3Sopenharmony_ciprint(arr.toSpliced(0, 0, 0, 0)[0])
4494514f5e3Sopenharmony_ci
4504514f5e3Sopenharmony_civar arr25 = []
4514514f5e3Sopenharmony_ciarr25[1025] = 0;
4524514f5e3Sopenharmony_ciprint(arr25.includes({}, 414));
4534514f5e3Sopenharmony_ciprint(arr25.includes(1025,109));
4544514f5e3Sopenharmony_ci
4554514f5e3Sopenharmony_civar arr26 = []
4564514f5e3Sopenharmony_ciarr25[100] = 0;
4574514f5e3Sopenharmony_ciprint(arr25.includes({}, 26));
4584514f5e3Sopenharmony_ci
4594514f5e3Sopenharmony_cifunction fun1(obj, name, type) {
4604514f5e3Sopenharmony_ci    return typeof type === 'undefined' || typeof desc.value === type;
4614514f5e3Sopenharmony_ci}
4624514f5e3Sopenharmony_ci
4634514f5e3Sopenharmony_cifunction fun2(obj, type) {
4644514f5e3Sopenharmony_ci    let properties = [];
4654514f5e3Sopenharmony_ci    let proto = Object.getPrototypeOf(obj);
4664514f5e3Sopenharmony_ci    while (proto && proto != Object.prototype) {
4674514f5e3Sopenharmony_ci        Object.getOwnPropertyNames(proto).forEach(name => {
4684514f5e3Sopenharmony_ci            if (name !== 'constructor') {
4694514f5e3Sopenharmony_ci                if (fun1(proto, name, type)) properties.push(name);
4704514f5e3Sopenharmony_ci            }
4714514f5e3Sopenharmony_ci        });
4724514f5e3Sopenharmony_ci        proto = Object.getPrototypeOf(proto);
4734514f5e3Sopenharmony_ci    }
4744514f5e3Sopenharmony_ci    return properties;
4754514f5e3Sopenharmony_ci}
4764514f5e3Sopenharmony_ci
4774514f5e3Sopenharmony_cifunction fun4(seed) {
4784514f5e3Sopenharmony_ci    let objects = [Object, Error, AggregateError, EvalError, RangeError, ReferenceError, SyntaxError, TypeError, URIError, String, BigInt, Function, Number, Boolean, Date, RegExp, Array, ArrayBuffer, DataView, Int8Array, Int16Array, Int32Array, Uint8Array, Uint8ClampedArray, Uint16Array, Uint32Array, Float32Array, Float64Array, BigInt64Array, BigUint64Array, Set, Map, WeakMap, WeakSet, Symbol, Proxy];
4794514f5e3Sopenharmony_ci    return objects[seed % objects.length];
4804514f5e3Sopenharmony_ci}
4814514f5e3Sopenharmony_ci
4824514f5e3Sopenharmony_cifunction fun8(obj, seed) {
4834514f5e3Sopenharmony_ci    let properties = fun2(obj);
4844514f5e3Sopenharmony_ci}
4854514f5e3Sopenharmony_ci
4864514f5e3Sopenharmony_cifun4(694532)[fun8(fun4(694532), 527224)];
4874514f5e3Sopenharmony_ciObject.freeze(Object.prototype);
4884514f5e3Sopenharmony_ci
4894514f5e3Sopenharmony_ciArray.prototype.length = 3000;
4904514f5e3Sopenharmony_ciprint(Array.prototype.length)
4914514f5e3Sopenharmony_ci
4924514f5e3Sopenharmony_cilet unscopables1 = Array.prototype[Symbol.unscopables];
4934514f5e3Sopenharmony_cilet unscopables2 = Array.prototype[Symbol.unscopables];
4944514f5e3Sopenharmony_ciprint(unscopables1 == unscopables2)
4954514f5e3Sopenharmony_ci
4964514f5e3Sopenharmony_ciarr = []
4974514f5e3Sopenharmony_cilet index = 4294967291;
4984514f5e3Sopenharmony_ciarr[index] = 0;
4994514f5e3Sopenharmony_ciarr.length = 10;
5004514f5e3Sopenharmony_ciarr.fill(10);
5014514f5e3Sopenharmony_ciprint(arr)
5024514f5e3Sopenharmony_ci
5034514f5e3Sopenharmony_ci// Test case for copyWithin()
5044514f5e3Sopenharmony_civar arr_copywithin1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
5054514f5e3Sopenharmony_civar arr_copywithin2 = new Array();
5064514f5e3Sopenharmony_cifor (let i = 0; i < 10; i++) arr_copywithin2[i] = i;
5074514f5e3Sopenharmony_civar arr_copywithin3 = new Array();
5084514f5e3Sopenharmony_cifor (let i = 0; i < 10; i++) {
5094514f5e3Sopenharmony_ci    if (i == 2) {
5104514f5e3Sopenharmony_ci        continue;
5114514f5e3Sopenharmony_ci    }
5124514f5e3Sopenharmony_ci    arr_copywithin3[i] = i;
5134514f5e3Sopenharmony_ci}
5144514f5e3Sopenharmony_civar arr_copywithin4 = new Array();
5154514f5e3Sopenharmony_cifor (let i = 0; i < 10; i++) arr_copywithin4[i] = i;
5164514f5e3Sopenharmony_civar result_copywithin1 = arr_copywithin1.copyWithin(0, 3, 7);
5174514f5e3Sopenharmony_ciprint(result_copywithin1);
5184514f5e3Sopenharmony_civar result_copywithin2 = arr_copywithin2.copyWithin(0, 3, 7);
5194514f5e3Sopenharmony_ciprint(result_copywithin2);
5204514f5e3Sopenharmony_civar arr_copywithin3 = arr_copywithin3.copyWithin(0, 0, 10);
5214514f5e3Sopenharmony_ciprint(arr_copywithin3);
5224514f5e3Sopenharmony_ci//elementskind is generic but hclass == generic hclass
5234514f5e3Sopenharmony_civar arr_copywithin4 = arr_copywithin4.copyWithin(3, 0, 6);
5244514f5e3Sopenharmony_ciprint(arr_copywithin4);
5254514f5e3Sopenharmony_ci
5264514f5e3Sopenharmony_ciconst ArraySize = 10;
5274514f5e3Sopenharmony_ciconst QuarterSize = ArraySize / 4;
5284514f5e3Sopenharmony_cilet result;
5294514f5e3Sopenharmony_cilet arr_copywithin5 = [];
5304514f5e3Sopenharmony_cilet arr_copywithin6 = [];
5314514f5e3Sopenharmony_ciarr_copywithin6.proto = arr_copywithin4;
5324514f5e3Sopenharmony_cifor (let i = 0; i < ArraySize; ++i) arr_copywithin5[i] = i;
5334514f5e3Sopenharmony_cifor (let i = 0; i < ArraySize; ++i) arr_copywithin6[i] = i;
5344514f5e3Sopenharmony_ci
5354514f5e3Sopenharmony_cifor (let i = 0; i < ArraySize; i++) {
5364514f5e3Sopenharmony_ci    //elementskind is not generic
5374514f5e3Sopenharmony_ci    result = arr_copywithin5.copyWithin(0, QuarterSize * 2, QuarterSize * 3);
5384514f5e3Sopenharmony_ci}
5394514f5e3Sopenharmony_ciprint(result);
5404514f5e3Sopenharmony_ci
5414514f5e3Sopenharmony_cifor (let i = 0; i < ArraySize; i++) {
5424514f5e3Sopenharmony_ci    //elementskind is generic but hclass != generic hclass
5434514f5e3Sopenharmony_ci    result = arr_copywithin6.copyWithin(0, QuarterSize * 2, QuarterSize * 3);
5444514f5e3Sopenharmony_ci}
5454514f5e3Sopenharmony_ciprint(result);
5464514f5e3Sopenharmony_ci
5474514f5e3Sopenharmony_ci// Test case for every()
5484514f5e3Sopenharmony_civar arr_every1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
5494514f5e3Sopenharmony_civar arr_every2 = new Array();
5504514f5e3Sopenharmony_ci
5514514f5e3Sopenharmony_cifunction testEvery(element, index, array) {
5524514f5e3Sopenharmony_ci    if (index == 0) {
5534514f5e3Sopenharmony_ci        array.length = 6;
5544514f5e3Sopenharmony_ci    }
5554514f5e3Sopenharmony_ci    return element < 6;
5564514f5e3Sopenharmony_ci}
5574514f5e3Sopenharmony_ci
5584514f5e3Sopenharmony_cifunction testEvery4(element, index, array) {
5594514f5e3Sopenharmony_ci    array.pop();
5604514f5e3Sopenharmony_ci    array.pop();
5614514f5e3Sopenharmony_ci    array.pop();
5624514f5e3Sopenharmony_ci    return element < 6;
5634514f5e3Sopenharmony_ci}
5644514f5e3Sopenharmony_ci
5654514f5e3Sopenharmony_cifor (let i = 0; i < 10; i++) arr_every2[i] = i;
5664514f5e3Sopenharmony_civar arr_every3 = new Array();
5674514f5e3Sopenharmony_cifor (let i = 0; i < 10; i++) {
5684514f5e3Sopenharmony_ci    if (i == 2) {
5694514f5e3Sopenharmony_ci        continue;
5704514f5e3Sopenharmony_ci    }
5714514f5e3Sopenharmony_ci    arr_every3[i] = i;
5724514f5e3Sopenharmony_ci}
5734514f5e3Sopenharmony_civar arr_every4 = new Array();
5744514f5e3Sopenharmony_cifor (let i = 0; i < 10; i++) arr_every4[i] = i;
5754514f5e3Sopenharmony_civar result_every1 = arr_every1.every(testEvery);
5764514f5e3Sopenharmony_ciprint(result_every1);
5774514f5e3Sopenharmony_civar result_every2 = arr_every2.every(testEvery);
5784514f5e3Sopenharmony_ciprint(result_every2);
5794514f5e3Sopenharmony_civar result_every3 = arr_every3.every(testEvery);
5804514f5e3Sopenharmony_ciprint(result_every3);
5814514f5e3Sopenharmony_civar result_every4 = arr_every4.every(testEvery4);
5824514f5e3Sopenharmony_ciprint(result_every4);
5834514f5e3Sopenharmony_ci
5844514f5e3Sopenharmony_ci// Test case for reduceRight()
5854514f5e3Sopenharmony_civar arr_reduceRight1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
5864514f5e3Sopenharmony_civar arr_reduceRight2 = new Array();
5874514f5e3Sopenharmony_ci
5884514f5e3Sopenharmony_cifunction testReduceRight(accumulator, element, index, array) {
5894514f5e3Sopenharmony_ci    if (index == 0) {
5904514f5e3Sopenharmony_ci        array.length = 6;
5914514f5e3Sopenharmony_ci    }
5924514f5e3Sopenharmony_ci    return accumulator + element;
5934514f5e3Sopenharmony_ci}
5944514f5e3Sopenharmony_ci
5954514f5e3Sopenharmony_cifunction testReduceRight4(accumulator, element, index, array) {
5964514f5e3Sopenharmony_ci    array.pop();
5974514f5e3Sopenharmony_ci    array.pop();
5984514f5e3Sopenharmony_ci    return accumulator + element;
5994514f5e3Sopenharmony_ci}
6004514f5e3Sopenharmony_ci
6014514f5e3Sopenharmony_cifor (let i = 0; i < 10; i++) arr_reduceRight2[i] = i;
6024514f5e3Sopenharmony_civar arr_reduceRight3 = new Array();
6034514f5e3Sopenharmony_cifor (let i = 0; i < 10; i++) {
6044514f5e3Sopenharmony_ci    if (i < 9) {
6054514f5e3Sopenharmony_ci        continue;
6064514f5e3Sopenharmony_ci    }
6074514f5e3Sopenharmony_ci    arr_reduceRight3[i] = i;
6084514f5e3Sopenharmony_ci}
6094514f5e3Sopenharmony_civar arr_reduceRight4 = new Array();
6104514f5e3Sopenharmony_cifor (let i = 0; i < 10; i++) arr_reduceRight4[i] = i;
6114514f5e3Sopenharmony_civar result_reduceRight1 = arr_reduceRight1.reduceRight(testReduceRight, 100);
6124514f5e3Sopenharmony_ciprint(result_reduceRight1);
6134514f5e3Sopenharmony_civar result_reduceRight2 = arr_reduceRight2.reduceRight(testReduceRight, 100);
6144514f5e3Sopenharmony_ciprint(result_reduceRight2);
6154514f5e3Sopenharmony_civar result_reduceRight3 = arr_reduceRight3.reduceRight(testReduceRight, 100);
6164514f5e3Sopenharmony_ciprint(result_reduceRight3);
6174514f5e3Sopenharmony_civar result_reduceRight4 = arr_reduceRight4.reduceRight(testReduceRight4, 100);
6184514f5e3Sopenharmony_ciprint(result_reduceRight4);
6194514f5e3Sopenharmony_ci
6204514f5e3Sopenharmony_ci// Test case for some()
6214514f5e3Sopenharmony_civar arr_some1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
6224514f5e3Sopenharmony_civar arr_some2 = new Array();
6234514f5e3Sopenharmony_ci
6244514f5e3Sopenharmony_cifunction testSome(element, index, array) {
6254514f5e3Sopenharmony_ci    if (index == 0) {
6264514f5e3Sopenharmony_ci        array.length = 6;
6274514f5e3Sopenharmony_ci    }
6284514f5e3Sopenharmony_ci    return element > 8;
6294514f5e3Sopenharmony_ci}
6304514f5e3Sopenharmony_ci
6314514f5e3Sopenharmony_cifor (let i = 0; i < 10; i++) arr_some2[i] = i;
6324514f5e3Sopenharmony_civar arr_some3 = new Array();
6334514f5e3Sopenharmony_cifor (let i = 0; i < 10; i++) {
6344514f5e3Sopenharmony_ci    if (i < 9) {
6354514f5e3Sopenharmony_ci        continue;
6364514f5e3Sopenharmony_ci    }
6374514f5e3Sopenharmony_ci    arr_some3[i] = i;
6384514f5e3Sopenharmony_ci}
6394514f5e3Sopenharmony_civar result_some1 = arr_some1.some(testSome);
6404514f5e3Sopenharmony_ciprint(result_some1);
6414514f5e3Sopenharmony_civar result_some2 = arr_some2.some(testSome);
6424514f5e3Sopenharmony_ciprint(result_some2);
6434514f5e3Sopenharmony_civar result_some3 = arr_some3.some(testSome);
6444514f5e3Sopenharmony_ciprint(result_some3);
6454514f5e3Sopenharmony_ci
6464514f5e3Sopenharmony_ci// Test case for unshift()
6474514f5e3Sopenharmony_civar arr_unshift1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
6484514f5e3Sopenharmony_civar arr_unshift2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
6494514f5e3Sopenharmony_ci
6504514f5e3Sopenharmony_civar result_unshift1 = arr_unshift1.unshift(1, 2, 3, 4, 5);
6514514f5e3Sopenharmony_ciprint(result_unshift1);
6524514f5e3Sopenharmony_civar result_unshift2 = arr_unshift2.unshift(1, 2, 3);
6534514f5e3Sopenharmony_ciprint(result_unshift2);
6544514f5e3Sopenharmony_ci
6554514f5e3Sopenharmony_ciclass C3 {
6564514f5e3Sopenharmony_ci    constructor(a5) {
6574514f5e3Sopenharmony_ci        try {
6584514f5e3Sopenharmony_ci            a5(this, this, ..."895053461", ..."p");
6594514f5e3Sopenharmony_ci        } catch (e) {
6604514f5e3Sopenharmony_ci        }
6614514f5e3Sopenharmony_ci    }
6624514f5e3Sopenharmony_ci
6634514f5e3Sopenharmony_ci    a;
6644514f5e3Sopenharmony_ci
6654514f5e3Sopenharmony_ci    valueOf(a9) {
6664514f5e3Sopenharmony_ci        const v10 = a9?.[this];
6674514f5e3Sopenharmony_ci        -718821.501160539 !== a9;
6684514f5e3Sopenharmony_ci        const t6 = "895053461";
6694514f5e3Sopenharmony_ci        t6[a9] = "895053461";
6704514f5e3Sopenharmony_ci        return v10;
6714514f5e3Sopenharmony_ci    }
6724514f5e3Sopenharmony_ci}
6734514f5e3Sopenharmony_ci
6744514f5e3Sopenharmony_ciconst v12 = new C3("p");
6754514f5e3Sopenharmony_cinew C3(v12);
6764514f5e3Sopenharmony_cinew C3(C3);
6774514f5e3Sopenharmony_ciprint(new C3(C3));
6784514f5e3Sopenharmony_ci
6794514f5e3Sopenharmony_ci// Test case for toSorted()
6804514f5e3Sopenharmony_civar arr_toSorted1 = ["Mar", "Jan", "Feb", "Dec"];
6814514f5e3Sopenharmony_civar arr_toSorted2 = new Array();
6824514f5e3Sopenharmony_ciarr_toSorted2[0] = "Mar";
6834514f5e3Sopenharmony_ciarr_toSorted2[1] = "Jan";
6844514f5e3Sopenharmony_ciarr_toSorted2[2] = "Feb";
6854514f5e3Sopenharmony_ciarr_toSorted2[3] = "Dec";
6864514f5e3Sopenharmony_civar result_toSorted1 = arr_toSorted1.toSorted();
6874514f5e3Sopenharmony_ciprint(result_toSorted1);
6884514f5e3Sopenharmony_civar result_toSorted2 = arr_toSorted2.toSorted();
6894514f5e3Sopenharmony_ciprint(result_toSorted2);
6904514f5e3Sopenharmony_ci
6914514f5e3Sopenharmony_ciconst v0 = [0, 1];
6924514f5e3Sopenharmony_ciconst mapEd = v0.map(() => {
6934514f5e3Sopenharmony_ci    v0["pop"]();
6944514f5e3Sopenharmony_ci});
6954514f5e3Sopenharmony_ciprint(new Uint16Array(v0).length);
6964514f5e3Sopenharmony_ci
6974514f5e3Sopenharmony_citry {
6984514f5e3Sopenharmony_ci    const v2 = new ArrayBuffer(103);
6994514f5e3Sopenharmony_ci
7004514f5e3Sopenharmony_ci    function F3(a5, a6) {
7014514f5e3Sopenharmony_ci        if (!new.target) {
7024514f5e3Sopenharmony_ci            throw 'must be called with new';
7034514f5e3Sopenharmony_ci        }
7044514f5e3Sopenharmony_ci
7054514f5e3Sopenharmony_ci        function f7(a8, a9, a10) {
7064514f5e3Sopenharmony_ci            return v2;
7074514f5e3Sopenharmony_ci        }
7084514f5e3Sopenharmony_ci
7094514f5e3Sopenharmony_ci        const v13 = new BigUint64Array(35);
7104514f5e3Sopenharmony_ci        const o14 = {
7114514f5e3Sopenharmony_ci            ...v13,
7124514f5e3Sopenharmony_ci        };
7134514f5e3Sopenharmony_ci        Object.defineProperty(o14, 4, { set: f7 });
7144514f5e3Sopenharmony_ci    }
7154514f5e3Sopenharmony_ci
7164514f5e3Sopenharmony_ci    new F3();
7174514f5e3Sopenharmony_ci    new F3();
7184514f5e3Sopenharmony_ci    v2();
7194514f5e3Sopenharmony_ci} catch (err) {
7204514f5e3Sopenharmony_ci    print(err.name);
7214514f5e3Sopenharmony_ci}
7224514f5e3Sopenharmony_ci
7234514f5e3Sopenharmony_citry {
7244514f5e3Sopenharmony_ci    const v3 = new ArrayBuffer(45);
7254514f5e3Sopenharmony_ci    const v0 = new Boolean;
7264514f5e3Sopenharmony_ci
7274514f5e3Sopenharmony_ci    function F4(a6, a7) {
7284514f5e3Sopenharmony_ci        if (!new.target) {
7294514f5e3Sopenharmony_ci            throw 'must be called with new';
7304514f5e3Sopenharmony_ci        }
7314514f5e3Sopenharmony_ci
7324514f5e3Sopenharmony_ci        function f8(a9, a10, a11) {
7334514f5e3Sopenharmony_ci            return F4;
7344514f5e3Sopenharmony_ci        }
7354514f5e3Sopenharmony_ci
7364514f5e3Sopenharmony_ci        const v14 = new BigUint64Array(15);
7374514f5e3Sopenharmony_ci        const o20 = {
7384514f5e3Sopenharmony_ci            [v0](a16, a17, a18, a19) {
7394514f5e3Sopenharmony_ci                return a6;
7404514f5e3Sopenharmony_ci            },
7414514f5e3Sopenharmony_ci            ...v14,
7424514f5e3Sopenharmony_ci        };
7434514f5e3Sopenharmony_ci        Object.defineProperty(o20, 4, { set: f8 });
7444514f5e3Sopenharmony_ci    }
7454514f5e3Sopenharmony_ci
7464514f5e3Sopenharmony_ci    new F4(v0, 101);
7474514f5e3Sopenharmony_ci    new F4();
7484514f5e3Sopenharmony_ci    v3.transfer();
7494514f5e3Sopenharmony_ci} catch (err) {
7504514f5e3Sopenharmony_ci    print(err.name);
7514514f5e3Sopenharmony_ci}
7524514f5e3Sopenharmony_ci
7534514f5e3Sopenharmony_citry {
7544514f5e3Sopenharmony_ci
7554514f5e3Sopenharmony_ci    function F6(a8, a9, a10) {
7564514f5e3Sopenharmony_ci        if (!new.target) {
7574514f5e3Sopenharmony_ci            throw 'must be called with new';
7584514f5e3Sopenharmony_ci        }
7594514f5e3Sopenharmony_ci        const v14 = new Date(-10, 16);
7604514f5e3Sopenharmony_ci        v14.toDateString();
7614514f5e3Sopenharmony_ci    }
7624514f5e3Sopenharmony_ci
7634514f5e3Sopenharmony_ci    const v16 = new F6(11);
7644514f5e3Sopenharmony_ci    new F6(2064);
7654514f5e3Sopenharmony_ci
7664514f5e3Sopenharmony_ci    function f18() {
7674514f5e3Sopenharmony_ci        return v16;
7684514f5e3Sopenharmony_ci    }
7694514f5e3Sopenharmony_ci
7704514f5e3Sopenharmony_ci    new BigUint64Array();
7714514f5e3Sopenharmony_ci    const v23 = [-42, 4, 4];
7724514f5e3Sopenharmony_ci    const o24 = {};
7734514f5e3Sopenharmony_ci    const v25 = [5.0, -5.12, 1e-15, -0.05, 5.0, 2.22e-38, -10.0, 10.0, 5.0, -5.0];
7744514f5e3Sopenharmony_ci
7754514f5e3Sopenharmony_ci    function f26() {
7764514f5e3Sopenharmony_ci        return v25;
7774514f5e3Sopenharmony_ci    }
7784514f5e3Sopenharmony_ci
7794514f5e3Sopenharmony_ci    class C28 extends Date {
7804514f5e3Sopenharmony_ci        constructor(a30, a31) {
7814514f5e3Sopenharmony_ci            super();
7824514f5e3Sopenharmony_ci        }
7834514f5e3Sopenharmony_ci    }
7844514f5e3Sopenharmony_ci
7854514f5e3Sopenharmony_ci    new Int8Array();
7864514f5e3Sopenharmony_ci    new Int8Array();
7874514f5e3Sopenharmony_ci    v23.filter(Array);
7884514f5e3Sopenharmony_ci    new ArrayBuffer(26);
7894514f5e3Sopenharmony_ci    const v44 = new Uint8Array();
7904514f5e3Sopenharmony_ci    v44.toString();
7914514f5e3Sopenharmony_ci    const o46 = {};
7924514f5e3Sopenharmony_ci    for (let i49 = -51, i50 = 10; i49 < i50; i50--) {
7934514f5e3Sopenharmony_ci        o46[i50] >>= i50;
7944514f5e3Sopenharmony_ci    }
7954514f5e3Sopenharmony_ci    /c/iusg;
7964514f5e3Sopenharmony_ci    const v58 = new Int16Array();
7974514f5e3Sopenharmony_ci    v58.forEach();
7984514f5e3Sopenharmony_ci} catch (err) {
7994514f5e3Sopenharmony_ci    print(err.name);
8004514f5e3Sopenharmony_ci}
8014514f5e3Sopenharmony_ci
8024514f5e3Sopenharmony_citry {
8034514f5e3Sopenharmony_ci    const v3 = new ArrayBuffer(19);
8044514f5e3Sopenharmony_ci
8054514f5e3Sopenharmony_ci    function F4(a6, a7) {
8064514f5e3Sopenharmony_ci        if (!new.target) {
8074514f5e3Sopenharmony_ci            throw 'must be called with new';
8084514f5e3Sopenharmony_ci        }
8094514f5e3Sopenharmony_ci        const v10 = new BigUint64Array(34);
8104514f5e3Sopenharmony_ci        const o11 = {
8114514f5e3Sopenharmony_ci            ...v10,
8124514f5e3Sopenharmony_ci        };
8134514f5e3Sopenharmony_ci        Object.defineProperty(o11, 4, { set: a6 });
8144514f5e3Sopenharmony_ci    }
8154514f5e3Sopenharmony_ci
8164514f5e3Sopenharmony_ci    const v12 = new F4();
8174514f5e3Sopenharmony_ci    new F4(v12, v3);
8184514f5e3Sopenharmony_ci} catch (err) {
8194514f5e3Sopenharmony_ci    print(err.name);
8204514f5e3Sopenharmony_ci}
8214514f5e3Sopenharmony_ci
8224514f5e3Sopenharmony_citry {
8234514f5e3Sopenharmony_ci    const v3 = new ArrayBuffer(10);
8244514f5e3Sopenharmony_ci
8254514f5e3Sopenharmony_ci    function F4(a6, a7) {
8264514f5e3Sopenharmony_ci        if (!new.target) {
8274514f5e3Sopenharmony_ci            throw 'must be called with new';
8284514f5e3Sopenharmony_ci        }
8294514f5e3Sopenharmony_ci
8304514f5e3Sopenharmony_ci        function f8(a9, a10, a11) {
8314514f5e3Sopenharmony_ci            return a11;
8324514f5e3Sopenharmony_ci        }
8334514f5e3Sopenharmony_ci
8344514f5e3Sopenharmony_ci        const v14 = new BigUint64Array(34);
8354514f5e3Sopenharmony_ci        const o15 = {
8364514f5e3Sopenharmony_ci            ...v14,
8374514f5e3Sopenharmony_ci        };
8384514f5e3Sopenharmony_ci        Object.defineProperty(o15, 4, { set: f8 });
8394514f5e3Sopenharmony_ci    }
8404514f5e3Sopenharmony_ci
8414514f5e3Sopenharmony_ci    const v16 = new F4();
8424514f5e3Sopenharmony_ci    new F4(v16, v3);
8434514f5e3Sopenharmony_ci    Int32Array();
8444514f5e3Sopenharmony_ci} catch (err) {
8454514f5e3Sopenharmony_ci    print(err.name);
8464514f5e3Sopenharmony_ci}
8474514f5e3Sopenharmony_ci
8484514f5e3Sopenharmony_citry {
8494514f5e3Sopenharmony_ci    const v2 = new ArrayBuffer(10);
8504514f5e3Sopenharmony_ci
8514514f5e3Sopenharmony_ci    function F3(a5, a6) {
8524514f5e3Sopenharmony_ci        if (!new.target) {
8534514f5e3Sopenharmony_ci            throw 'must be called with new';
8544514f5e3Sopenharmony_ci        }
8554514f5e3Sopenharmony_ci
8564514f5e3Sopenharmony_ci        function f7(a8, a9, a10) {
8574514f5e3Sopenharmony_ci            return a9;
8584514f5e3Sopenharmony_ci        }
8594514f5e3Sopenharmony_ci
8604514f5e3Sopenharmony_ci        const v13 = new BigUint64Array(35);
8614514f5e3Sopenharmony_ci        const o14 = {
8624514f5e3Sopenharmony_ci            ...v13,
8634514f5e3Sopenharmony_ci        };
8644514f5e3Sopenharmony_ci        Object.defineProperty(o14, 4, { set: f7 });
8654514f5e3Sopenharmony_ci    }
8664514f5e3Sopenharmony_ci
8674514f5e3Sopenharmony_ci    new F3(ArrayBuffer, v2);
8684514f5e3Sopenharmony_ci    new F3(10, F3);
8694514f5e3Sopenharmony_ci    v2.transfer();
8704514f5e3Sopenharmony_ci} catch (err) {
8714514f5e3Sopenharmony_ci    print(err.name);
8724514f5e3Sopenharmony_ci}
8734514f5e3Sopenharmony_ci
8744514f5e3Sopenharmony_citry {
8754514f5e3Sopenharmony_ci    const v1 = new Uint16Array();
8764514f5e3Sopenharmony_ci    for (let i4 = 0, i5 = 10; i5; i5--) {
8774514f5e3Sopenharmony_ci    }
8784514f5e3Sopenharmony_ci    undefined instanceof v1.values();
8794514f5e3Sopenharmony_ci} catch (error) {
8804514f5e3Sopenharmony_ci    print(error.name);
8814514f5e3Sopenharmony_ci}
8824514f5e3Sopenharmony_ci
8834514f5e3Sopenharmony_ci/*
8844514f5e3Sopenharmony_ci * @tc.name:ArrayConstructor
8854514f5e3Sopenharmony_ci * @tc.desc:test Array
8864514f5e3Sopenharmony_ci * @tc.type: FUNC
8874514f5e3Sopenharmony_ci */
8884514f5e3Sopenharmony_ciconst originalArrays = [
8894514f5e3Sopenharmony_ci    [1, 2, 3],
8904514f5e3Sopenharmony_ci    ["apple", "banana", "orange"],
8914514f5e3Sopenharmony_ci    [true, false, true],
8924514f5e3Sopenharmony_ci    [{ name: "John" }, { name: "Doe" }],
8934514f5e3Sopenharmony_ci    [NaN, NaN, NaN],
8944514f5e3Sopenharmony_ci    [Infinity, -Infinity],
8954514f5e3Sopenharmony_ci    [RegExp("pattern1"), RegExp("pattern2")],
8964514f5e3Sopenharmony_ci    [new Map(), new Map()],
8974514f5e3Sopenharmony_ci    [new Set(), new Set()],
8984514f5e3Sopenharmony_ci    [Array.from([1, 2, 3]), Array.from([4, 5, 6])],
8994514f5e3Sopenharmony_ci    ["ark_unicodeValue �", "ark_unicodeValue �"],
9004514f5e3Sopenharmony_ci];
9014514f5e3Sopenharmony_ci
9024514f5e3Sopenharmony_cifor (let i = 0; i < originalArrays.length; i++) {
9034514f5e3Sopenharmony_ci    print(originalArrays[i]);
9044514f5e3Sopenharmony_ci}
9054514f5e3Sopenharmony_ci
9064514f5e3Sopenharmony_citry {
9074514f5e3Sopenharmony_ci    const arr1 = [1, 2, 3];
9084514f5e3Sopenharmony_ci    print(arr1[10]);
9094514f5e3Sopenharmony_ci    print("Exception usage, but does not throw an error");
9104514f5e3Sopenharmony_ci} catch (error) {
9114514f5e3Sopenharmony_ci    print("Caught an error: " + error);
9124514f5e3Sopenharmony_ci}
9134514f5e3Sopenharmony_ci
9144514f5e3Sopenharmony_citry {
9154514f5e3Sopenharmony_ci} catch (error) {
9164514f5e3Sopenharmony_ci    print("Caught an error: ", error);
9174514f5e3Sopenharmony_ci}
9184514f5e3Sopenharmony_ci
9194514f5e3Sopenharmony_citry {
9204514f5e3Sopenharmony_ci    const arr2 = new Array(-1);
9214514f5e3Sopenharmony_ci} catch (error) {
9224514f5e3Sopenharmony_ci    print("Caught an error: ", error);
9234514f5e3Sopenharmony_ci}
9244514f5e3Sopenharmony_ci
9254514f5e3Sopenharmony_ci/*
9264514f5e3Sopenharmony_ci * @tc.name:from
9274514f5e3Sopenharmony_ci * @tc.desc:test Array
9284514f5e3Sopenharmony_ci * @tc.type: FUNC
9294514f5e3Sopenharmony_ci */
9304514f5e3Sopenharmony_ciconst newArray = Array.from(originalArrays);
9314514f5e3Sopenharmony_cinewArray.forEach(array => {
9324514f5e3Sopenharmony_ci    print(array);
9334514f5e3Sopenharmony_ci});
9344514f5e3Sopenharmony_ci
9354514f5e3Sopenharmony_citry {
9364514f5e3Sopenharmony_ci    Array.from([1, 2, 3], "not a function");
9374514f5e3Sopenharmony_ci} catch (error) {
9384514f5e3Sopenharmony_ci    print("Caught an error: ", error);
9394514f5e3Sopenharmony_ci}
9404514f5e3Sopenharmony_ci
9414514f5e3Sopenharmony_citry {
9424514f5e3Sopenharmony_ci    Array.from([1, 2, 3], () => { throw new Error("Something went wrong"); });
9434514f5e3Sopenharmony_ci} catch (error) {
9444514f5e3Sopenharmony_ci    print("Caught an error: ", error);
9454514f5e3Sopenharmony_ci}
9464514f5e3Sopenharmony_ci
9474514f5e3Sopenharmony_citry {
9484514f5e3Sopenharmony_ci    Array.from(123);
9494514f5e3Sopenharmony_ci    Array.from({});
9504514f5e3Sopenharmony_ci    Array.from([1, 2, 3], () => {}, 123);
9514514f5e3Sopenharmony_ci    print("Exception usage, but does not throw an error");
9524514f5e3Sopenharmony_ci} catch (error) {
9534514f5e3Sopenharmony_ci    print("Caught an error: " + error);
9544514f5e3Sopenharmony_ci}
9554514f5e3Sopenharmony_ci
9564514f5e3Sopenharmony_ci/*
9574514f5e3Sopenharmony_ci * @tc.name:isArray
9584514f5e3Sopenharmony_ci * @tc.desc:test Array
9594514f5e3Sopenharmony_ci * @tc.type: FUNC
9604514f5e3Sopenharmony_ci */
9614514f5e3Sopenharmony_cioriginalArrays.forEach((array, index) => {
9624514f5e3Sopenharmony_ci    print(Array.isArray(array));
9634514f5e3Sopenharmony_ci});
9644514f5e3Sopenharmony_ci
9654514f5e3Sopenharmony_citry {
9664514f5e3Sopenharmony_ci    print(Array.isArray());
9674514f5e3Sopenharmony_ci    print(Array.isArray(123));
9684514f5e3Sopenharmony_ci    print(Array.isArray("not an array"));
9694514f5e3Sopenharmony_ci    print(Array.isArray(null));
9704514f5e3Sopenharmony_ci    print(Array.isArray(undefined));
9714514f5e3Sopenharmony_ci} catch (error) {
9724514f5e3Sopenharmony_ci    print("Caught an error: ", error);
9734514f5e3Sopenharmony_ci}
9744514f5e3Sopenharmony_ci
9754514f5e3Sopenharmony_ci/*
9764514f5e3Sopenharmony_ci * @tc.name:Of
9774514f5e3Sopenharmony_ci * @tc.desc:test Array
9784514f5e3Sopenharmony_ci * @tc.type: FUNC
9794514f5e3Sopenharmony_ci */
9804514f5e3Sopenharmony_ciconst ArrayOf = Array.of(...originalArrays);
9814514f5e3Sopenharmony_ciprint(ArrayOf[1]);
9824514f5e3Sopenharmony_ci
9834514f5e3Sopenharmony_citry {
9844514f5e3Sopenharmony_ci    const arr1 = Array.of(undefined);
9854514f5e3Sopenharmony_ci    const arr2 = Array.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
9864514f5e3Sopenharmony_ci    print(arr1);
9874514f5e3Sopenharmony_ci    print(arr2);
9884514f5e3Sopenharmony_ci} catch (error) {
9894514f5e3Sopenharmony_ci    print("Caught an error: ", error);
9904514f5e3Sopenharmony_ci}
9914514f5e3Sopenharmony_ci
9924514f5e3Sopenharmony_ci/*
9934514f5e3Sopenharmony_ci * @tc.name:At
9944514f5e3Sopenharmony_ci * @tc.desc:test Array
9954514f5e3Sopenharmony_ci * @tc.type: FUNC
9964514f5e3Sopenharmony_ci */
9974514f5e3Sopenharmony_ciprint(originalArrays.at(1));
9984514f5e3Sopenharmony_ciprint(originalArrays.at(3));
9994514f5e3Sopenharmony_ciprint(originalArrays.at(-1));
10004514f5e3Sopenharmony_ciprint(originalArrays.at(-2));
10014514f5e3Sopenharmony_ci
10024514f5e3Sopenharmony_citry {
10034514f5e3Sopenharmony_ci    print(originalArrays.at());
10044514f5e3Sopenharmony_ci    print(originalArrays.at(100));
10054514f5e3Sopenharmony_ci    print(originalArrays.at(null));
10064514f5e3Sopenharmony_ci    print(originalArrays.at(undefined));
10074514f5e3Sopenharmony_ci    print(originalArrays.at(new Map()));
10084514f5e3Sopenharmony_ci} catch (error) {
10094514f5e3Sopenharmony_ci    print("Caught an error: ", error);
10104514f5e3Sopenharmony_ci}
10114514f5e3Sopenharmony_ci
10124514f5e3Sopenharmony_ci/*
10134514f5e3Sopenharmony_ci * @tc.name:concat
10144514f5e3Sopenharmony_ci * @tc.desc:test Array
10154514f5e3Sopenharmony_ci * @tc.type: FUNC
10164514f5e3Sopenharmony_ci */
10174514f5e3Sopenharmony_ciconst array1 = [1, "two", true];
10184514f5e3Sopenharmony_ciconst array2 = [null, undefined, { key: "value" }];
10194514f5e3Sopenharmony_ciconst array3 = [];
10204514f5e3Sopenharmony_ci
10214514f5e3Sopenharmony_ciconst concatenatedArray = array1.concat(array2, array3);
10224514f5e3Sopenharmony_ciprint("Concatenated Array:", concatenatedArray);
10234514f5e3Sopenharmony_ci
10244514f5e3Sopenharmony_ciconst nestedArray = [[1, 2], ["a", "b"], [true, false]];
10254514f5e3Sopenharmony_ciconst nestedConcatenatedArray = array1.concat(nestedArray, array2);
10264514f5e3Sopenharmony_ciprint("Nested Concatenated Array:", nestedConcatenatedArray);
10274514f5e3Sopenharmony_ci
10284514f5e3Sopenharmony_ciconst mixedConcatenatedArray = array1.concat(4, "five", { prop: "value" });
10294514f5e3Sopenharmony_ciprint("Mixed Concatenated Array:", mixedConcatenatedArray);
10304514f5e3Sopenharmony_ci
10314514f5e3Sopenharmony_ciconst spreadConcatenatedArray = [...array1, ...array2, ...array3];
10324514f5e3Sopenharmony_ciprint("Spread Concatenated Array:", spreadConcatenatedArray);
10334514f5e3Sopenharmony_ci
10344514f5e3Sopenharmony_ci/*
10354514f5e3Sopenharmony_ci * @tc.name:CopyWithin,Entries
10364514f5e3Sopenharmony_ci * @tc.desc:test Array
10374514f5e3Sopenharmony_ci * @tc.type: FUNC
10384514f5e3Sopenharmony_ci */
10394514f5e3Sopenharmony_ciconst copiedArray1 = originalArrays[0].slice().copyWithin(0, 2);
10404514f5e3Sopenharmony_ciconst copiedArray2 = originalArrays[1].slice().copyWithin(1, 0, 2);
10414514f5e3Sopenharmony_ciconst copiedArray3 = originalArrays[2].slice().copyWithin(1, -2);
10424514f5e3Sopenharmony_ciconst copiedArray4 = originalArrays[3].slice().copyWithin(-1);
10434514f5e3Sopenharmony_ciconst copiedArray5 = originalArrays[4].slice().copyWithin(0);
10444514f5e3Sopenharmony_ci
10454514f5e3Sopenharmony_ciprint("Original Arrays:", originalArrays);
10464514f5e3Sopenharmony_ciprint("Copied Array 1:", copiedArray1);
10474514f5e3Sopenharmony_ciprint("Copied Array 2:", copiedArray2);
10484514f5e3Sopenharmony_ciprint("Copied Array 3:", copiedArray3);
10494514f5e3Sopenharmony_ciprint("Copied Array 4:", copiedArray4);
10504514f5e3Sopenharmony_ciprint("Copied Array 5:", copiedArray5);
10514514f5e3Sopenharmony_ci
10524514f5e3Sopenharmony_cifor (const [index, value] of originalArrays.entries()) {
10534514f5e3Sopenharmony_ci    print(`Index: ${index}`);
10544514f5e3Sopenharmony_ci    print(`Value: ${value}`);
10554514f5e3Sopenharmony_ci}
10564514f5e3Sopenharmony_ci
10574514f5e3Sopenharmony_ci/*
10584514f5e3Sopenharmony_ci * @tc.name:Every
10594514f5e3Sopenharmony_ci * @tc.desc:test Array
10604514f5e3Sopenharmony_ci * @tc.type: FUNC
10614514f5e3Sopenharmony_ci */
10624514f5e3Sopenharmony_ciconst numbers1 = [2, 4, 6, 8, 10];
10634514f5e3Sopenharmony_ciconst allEven = numbers1.every(num => num % 2 === 0);
10644514f5e3Sopenharmony_ciprint(allEven);
10654514f5e3Sopenharmony_ci
10664514f5e3Sopenharmony_ciconst numbers2 = [1, 2, 3, 4, 5];
10674514f5e3Sopenharmony_ciconst allEven2 = numbers2.every(num => num % 2 === 0);
10684514f5e3Sopenharmony_ciprint(allEven2);
10694514f5e3Sopenharmony_ci
10704514f5e3Sopenharmony_ciconst emptyArray1 = [];
10714514f5e3Sopenharmony_ciconst allEmpty = emptyArray1.every(num => num % 2 === 0);
10724514f5e3Sopenharmony_ciprint(allEmpty);
10734514f5e3Sopenharmony_ci
10744514f5e3Sopenharmony_ciconst emptyArray2 = [];
10754514f5e3Sopenharmony_ciconst allEmpty2 = emptyArray2.every(() => true);
10764514f5e3Sopenharmony_ciprint(allEmpty2);
10774514f5e3Sopenharmony_ci
10784514f5e3Sopenharmony_ciconst mixedArray = [2, 4, "hello", 8, 10];
10794514f5e3Sopenharmony_ciconst allNumbers = mixedArray.every(num => typeof num === "number");
10804514f5e3Sopenharmony_ciprint(allNumbers);
10814514f5e3Sopenharmony_ci
10824514f5e3Sopenharmony_ciconst emptyArray3 = [];
10834514f5e3Sopenharmony_ciconst allNonNegative = emptyArray3.every(num => num >= 0);
10844514f5e3Sopenharmony_ciprint(allNonNegative);
10854514f5e3Sopenharmony_ci
10864514f5e3Sopenharmony_citry {
10874514f5e3Sopenharmony_ci    const arr = [1, 2, 3];
10884514f5e3Sopenharmony_ci    const result = arr.every("not a function");
10894514f5e3Sopenharmony_ci} catch (error) {
10904514f5e3Sopenharmony_ci    print("Caught an error: ", error);
10914514f5e3Sopenharmony_ci}
10924514f5e3Sopenharmony_ci
10934514f5e3Sopenharmony_citry {
10944514f5e3Sopenharmony_ci    const arr = [1, 2, 3];
10954514f5e3Sopenharmony_ci    const result = arr.every(num => num < undefinedVariable);
10964514f5e3Sopenharmony_ci} catch (error) {
10974514f5e3Sopenharmony_ci    print("Caught an error: ", error);
10984514f5e3Sopenharmony_ci}
10994514f5e3Sopenharmony_ci
11004514f5e3Sopenharmony_ci/*
11014514f5e3Sopenharmony_ci * @tc.name:Fill
11024514f5e3Sopenharmony_ci * @tc.desc:test Array
11034514f5e3Sopenharmony_ci * @tc.type: FUNC
11044514f5e3Sopenharmony_ci */
11054514f5e3Sopenharmony_ci{
11064514f5e3Sopenharmony_ci    const array1 = [1, 2, 3, 4, 5];
11074514f5e3Sopenharmony_ci    print(array1.fill(0));
11084514f5e3Sopenharmony_ci
11094514f5e3Sopenharmony_ci    const array2 = [1, 2, 3, 4, 5];
11104514f5e3Sopenharmony_ci    print(array2.fill(0, 2));
11114514f5e3Sopenharmony_ci
11124514f5e3Sopenharmony_ci    const array3 = [1, 2, 3, 4, 5];
11134514f5e3Sopenharmony_ci    print(array3.fill(0, 1, 3));
11144514f5e3Sopenharmony_ci
11154514f5e3Sopenharmony_ci    const array4 = new Array(5);
11164514f5e3Sopenharmony_ci    print(array4.fill(0));
11174514f5e3Sopenharmony_ci
11184514f5e3Sopenharmony_ci    const array5 = Array.from({ length: 5 }, (_, index) => index + 1);
11194514f5e3Sopenharmony_ci    print(array5.fill(0, 2));
11204514f5e3Sopenharmony_ci
11214514f5e3Sopenharmony_ci    const array6 = Array.from({ length: 5 }, (_, index) => index + 1);
11224514f5e3Sopenharmony_ci    print(array6.fill(0, 1, 3));
11234514f5e3Sopenharmony_ci
11244514f5e3Sopenharmony_ci    const array7 = Array(5).fill("hello");
11254514f5e3Sopenharmony_ci    print(array7);
11264514f5e3Sopenharmony_ci
11274514f5e3Sopenharmony_ci    const array8 = [1, 2, 3];
11284514f5e3Sopenharmony_ci    print(array8.fill(0, -2));
11294514f5e3Sopenharmony_ci
11304514f5e3Sopenharmony_ci    const array9 = [1, 2, 3];
11314514f5e3Sopenharmony_ci    print(array9.fill(0, -2, -1));
11324514f5e3Sopenharmony_ci}
11334514f5e3Sopenharmony_ci
11344514f5e3Sopenharmony_citry {
11354514f5e3Sopenharmony_ci    const arr = [1, 2, 3];
11364514f5e3Sopenharmony_ci    arr.fill(0, 1.5);
11374514f5e3Sopenharmony_ci} catch (error) {
11384514f5e3Sopenharmony_ci    print("Caught an error: ", error);
11394514f5e3Sopenharmony_ci}
11404514f5e3Sopenharmony_ci
11414514f5e3Sopenharmony_citry {
11424514f5e3Sopenharmony_ci    const arr = [1, 2, 3];
11434514f5e3Sopenharmony_ci    arr.fill(0, NaN);
11444514f5e3Sopenharmony_ci} catch (error) {
11454514f5e3Sopenharmony_ci    print("Caught an error: ", error);
11464514f5e3Sopenharmony_ci}
11474514f5e3Sopenharmony_ci
11484514f5e3Sopenharmony_ci/*
11494514f5e3Sopenharmony_ci * @tc.name:Filter
11504514f5e3Sopenharmony_ci * @tc.desc:test Array
11514514f5e3Sopenharmony_ci * @tc.type: FUNC
11524514f5e3Sopenharmony_ci */
11534514f5e3Sopenharmony_ci{
11544514f5e3Sopenharmony_ci    const numbers = [1, 2, 3, 4, 5];
11554514f5e3Sopenharmony_ci
11564514f5e3Sopenharmony_ci    const evenNumbers = numbers.filter(num => num % 2 === 0);
11574514f5e3Sopenharmony_ci    print(evenNumbers);
11584514f5e3Sopenharmony_ci
11594514f5e3Sopenharmony_ci    const greaterThanTwo = numbers.filter(num => num > 2);
11604514f5e3Sopenharmony_ci    print(greaterThanTwo);
11614514f5e3Sopenharmony_ci
11624514f5e3Sopenharmony_ci    const lessThanTen = numbers.filter(num => num < 10);
11634514f5e3Sopenharmony_ci    print(lessThanTen);
11644514f5e3Sopenharmony_ci
11654514f5e3Sopenharmony_ci    const divisibleByThree = numbers.filter(num => num % 3 === 0);
11664514f5e3Sopenharmony_ci    print(divisibleByThree);
11674514f5e3Sopenharmony_ci
11684514f5e3Sopenharmony_ci    const words = ["apple", "banana", "pear", "orange"];
11694514f5e3Sopenharmony_ci    const longWords = words.filter(word => word.length >= 5);
11704514f5e3Sopenharmony_ci    print(longWords);
11714514f5e3Sopenharmony_ci
11724514f5e3Sopenharmony_ci    const persons = [
11734514f5e3Sopenharmony_ci        { name: "Alice", age: 25 },
11744514f5e3Sopenharmony_ci        { name: "Bob", age: 17 },
11754514f5e3Sopenharmony_ci        { name: "Charlie", age: 30 }
11764514f5e3Sopenharmony_ci    ];
11774514f5e3Sopenharmony_ci    const adults = persons.filter(person => person.age > 18);
11784514f5e3Sopenharmony_ci    print(adults);
11794514f5e3Sopenharmony_ci}
11804514f5e3Sopenharmony_ci
11814514f5e3Sopenharmony_citry {
11824514f5e3Sopenharmony_ci    const arr = [1, 2, 3];
11834514f5e3Sopenharmony_ci    const result = arr.filter("not a function");
11844514f5e3Sopenharmony_ci} catch (error) {
11854514f5e3Sopenharmony_ci    print("Caught an error: ", error);
11864514f5e3Sopenharmony_ci}
11874514f5e3Sopenharmony_ci
11884514f5e3Sopenharmony_citry {
11894514f5e3Sopenharmony_ci    const obj = { a: 1, b: 2 };
11904514f5e3Sopenharmony_ci    const result = obj.filter(() => true);
11914514f5e3Sopenharmony_ci} catch (error) {
11924514f5e3Sopenharmony_ci    print("Caught an error: ", error);
11934514f5e3Sopenharmony_ci}
11944514f5e3Sopenharmony_ci
11954514f5e3Sopenharmony_ci/*
11964514f5e3Sopenharmony_ci * @tc.name:Find
11974514f5e3Sopenharmony_ci * @tc.desc:test Array
11984514f5e3Sopenharmony_ci * @tc.type: FUNC
11994514f5e3Sopenharmony_ci */
12004514f5e3Sopenharmony_ci{
12014514f5e3Sopenharmony_ci    const array = [6, 7, 8, 9, 10, NaN, undefined, null, "", false, {name: "John"}, [1, 2, 3]];
12024514f5e3Sopenharmony_ci    print(array.find(item => item === 5));
12034514f5e3Sopenharmony_ci    print(array.find(item => item === 11));
12044514f5e3Sopenharmony_ci    print(array.find(item => item > 5));
12054514f5e3Sopenharmony_ci    print(array.find(item => item < 0));
12064514f5e3Sopenharmony_ci    print(array.find(item => typeof item === 'string'));
12074514f5e3Sopenharmony_ci    print(array.find(item => typeof item === 'object'));
12084514f5e3Sopenharmony_ci    print(array.find(item => Array.isArray(item)));
12094514f5e3Sopenharmony_ci    print(array.find(item => item));
12104514f5e3Sopenharmony_ci    print(array.find(item => item === null));
12114514f5e3Sopenharmony_ci    print(array.find(item => item === undefined));
12124514f5e3Sopenharmony_ci    print(array.find(item => isNaN(item)));
12134514f5e3Sopenharmony_ci    print(array.find(item => item === false));
12144514f5e3Sopenharmony_ci}
12154514f5e3Sopenharmony_ci
12164514f5e3Sopenharmony_citry {
12174514f5e3Sopenharmony_ci    const array = [1, 2, 3, 4, 5];
12184514f5e3Sopenharmony_ci    print(array.find());
12194514f5e3Sopenharmony_ci} catch (error) {
12204514f5e3Sopenharmony_ci    print("Caught an error: ", error);
12214514f5e3Sopenharmony_ci}
12224514f5e3Sopenharmony_ci
12234514f5e3Sopenharmony_citry {
12244514f5e3Sopenharmony_ci    const array = [1, 2, 3, 4, 5];
12254514f5e3Sopenharmony_ci    print(array.find("not a function"));
12264514f5e3Sopenharmony_ci} catch (error) {
12274514f5e3Sopenharmony_ci    print("Caught an error: ", error);
12284514f5e3Sopenharmony_ci}
12294514f5e3Sopenharmony_ci
12304514f5e3Sopenharmony_citry {
12314514f5e3Sopenharmony_ci    let array = null;
12324514f5e3Sopenharmony_ci    print(array.find(item => item === 1));
12334514f5e3Sopenharmony_ci} catch (error) {
12344514f5e3Sopenharmony_ci    print("Caught an error: ", error);
12354514f5e3Sopenharmony_ci}
12364514f5e3Sopenharmony_ci
12374514f5e3Sopenharmony_citry {
12384514f5e3Sopenharmony_ci    array = undefined;
12394514f5e3Sopenharmony_ci    print(array.find(item => item === 1));
12404514f5e3Sopenharmony_ci} catch (error) {
12414514f5e3Sopenharmony_ci    print("Caught an error: ", error);
12424514f5e3Sopenharmony_ci}
12434514f5e3Sopenharmony_ci
12444514f5e3Sopenharmony_ci/*
12454514f5e3Sopenharmony_ci * @tc.name:FindIndex
12464514f5e3Sopenharmony_ci * @tc.desc:test Array
12474514f5e3Sopenharmony_ci * @tc.type: FUNC
12484514f5e3Sopenharmony_ci */
12494514f5e3Sopenharmony_ci{
12504514f5e3Sopenharmony_ci    const array = [6, 7, 8, 9, 10, NaN, undefined, null, "", false, {name: "John"}, [1, 2, 3]];
12514514f5e3Sopenharmony_ci    print(array.findIndex(item => item === 5));
12524514f5e3Sopenharmony_ci    print(array.findIndex(item => item === 11));
12534514f5e3Sopenharmony_ci    print(array.findIndex(item => item > 5));
12544514f5e3Sopenharmony_ci    print(array.findIndex(item => item < 0));
12554514f5e3Sopenharmony_ci    print(array.findIndex(item => typeof item === 'string'));
12564514f5e3Sopenharmony_ci    print(array.findIndex(item => typeof item === 'object'));
12574514f5e3Sopenharmony_ci    print(array.findIndex(item => Array.isArray(item)));
12584514f5e3Sopenharmony_ci    print(array.findIndex(item => item));
12594514f5e3Sopenharmony_ci    print(array.findIndex(item => item === null));
12604514f5e3Sopenharmony_ci    print(array.findIndex(item => item === undefined));
12614514f5e3Sopenharmony_ci    print(array.findIndex(item => isNaN(item)));
12624514f5e3Sopenharmony_ci    print(array.findIndex(item => item === false));
12634514f5e3Sopenharmony_ci}
12644514f5e3Sopenharmony_ci
12654514f5e3Sopenharmony_citry {
12664514f5e3Sopenharmony_ci    const array = [1, 2, 3, 4, 5];
12674514f5e3Sopenharmony_ci    print(array.findIndex());
12684514f5e3Sopenharmony_ci} catch (error) {
12694514f5e3Sopenharmony_ci    print("Caught an error: ", error);
12704514f5e3Sopenharmony_ci}
12714514f5e3Sopenharmony_ci
12724514f5e3Sopenharmony_citry {
12734514f5e3Sopenharmony_ci    const array = [1, 2, 3, 4, 5];
12744514f5e3Sopenharmony_ci    print(array.findIndex("not a function"));
12754514f5e3Sopenharmony_ci} catch (error) {
12764514f5e3Sopenharmony_ci    print("Caught an error: ", error);
12774514f5e3Sopenharmony_ci}
12784514f5e3Sopenharmony_ci
12794514f5e3Sopenharmony_citry {
12804514f5e3Sopenharmony_ci    let array = null;
12814514f5e3Sopenharmony_ci    print(array.findIndex(item => item === 1));
12824514f5e3Sopenharmony_ci} catch (error) {
12834514f5e3Sopenharmony_ci    print("Caught an error: ", error);
12844514f5e3Sopenharmony_ci}
12854514f5e3Sopenharmony_ci
12864514f5e3Sopenharmony_citry {
12874514f5e3Sopenharmony_ci    array = undefined;
12884514f5e3Sopenharmony_ci    print(array.findIndex(item => item === 1));
12894514f5e3Sopenharmony_ci} catch (error) {
12904514f5e3Sopenharmony_ci    print("Caught an error: ", error);
12914514f5e3Sopenharmony_ci}
12924514f5e3Sopenharmony_ci
12934514f5e3Sopenharmony_ci/*
12944514f5e3Sopenharmony_ci * @tc.name:FindLast
12954514f5e3Sopenharmony_ci * @tc.desc:test Array
12964514f5e3Sopenharmony_ci * @tc.type: FUNC
12974514f5e3Sopenharmony_ci */
12984514f5e3Sopenharmony_ci{
12994514f5e3Sopenharmony_ci    const array = [6, 7, 8, 9, 10, NaN, undefined, null, "", false, {name: "John"}, [1, 2, 3]];
13004514f5e3Sopenharmony_ci    print(array.findLast(item => item === 5));
13014514f5e3Sopenharmony_ci    print(array.findLast(item => item === 11));
13024514f5e3Sopenharmony_ci    print(array.findLast(item => item > 5));
13034514f5e3Sopenharmony_ci    print(array.findLast(item => item < 0));
13044514f5e3Sopenharmony_ci    print(array.findLast(item => typeof item === 'string'));
13054514f5e3Sopenharmony_ci    print(array.findLast(item => typeof item === 'object'));
13064514f5e3Sopenharmony_ci    print(array.findLast(item => Array.isArray(item)));
13074514f5e3Sopenharmony_ci    print(array.findLast(item => item));
13084514f5e3Sopenharmony_ci    print(array.findLast(item => item === null));
13094514f5e3Sopenharmony_ci    print(array.findLast(item => item === undefined));
13104514f5e3Sopenharmony_ci    print(array.findLast(item => isNaN(item)));
13114514f5e3Sopenharmony_ci    print(array.findLast(item => item === false));
13124514f5e3Sopenharmony_ci}
13134514f5e3Sopenharmony_ci
13144514f5e3Sopenharmony_citry {
13154514f5e3Sopenharmony_ci    const array = [1, 2, 3, 4, 5];
13164514f5e3Sopenharmony_ci    print(array.findLast());
13174514f5e3Sopenharmony_ci} catch (error) {
13184514f5e3Sopenharmony_ci    print("Caught an error: ", error);
13194514f5e3Sopenharmony_ci}
13204514f5e3Sopenharmony_ci
13214514f5e3Sopenharmony_citry {
13224514f5e3Sopenharmony_ci    const array = [1, 2, 3, 4, 5];
13234514f5e3Sopenharmony_ci    print(array.findLast("not a function"));
13244514f5e3Sopenharmony_ci} catch (error) {
13254514f5e3Sopenharmony_ci    print("Caught an error: ", error);
13264514f5e3Sopenharmony_ci}
13274514f5e3Sopenharmony_ci
13284514f5e3Sopenharmony_citry {
13294514f5e3Sopenharmony_ci    let array = null;
13304514f5e3Sopenharmony_ci    print(array.findLast(item => item === 1));
13314514f5e3Sopenharmony_ci} catch (error) {
13324514f5e3Sopenharmony_ci    print("Caught an error: ", error);
13334514f5e3Sopenharmony_ci}
13344514f5e3Sopenharmony_ci
13354514f5e3Sopenharmony_citry {
13364514f5e3Sopenharmony_ci    array = undefined;
13374514f5e3Sopenharmony_ci    print(array.findLast(item => item === 1));
13384514f5e3Sopenharmony_ci} catch (error) {
13394514f5e3Sopenharmony_ci    print("Caught an error: ", error);
13404514f5e3Sopenharmony_ci}
13414514f5e3Sopenharmony_ci
13424514f5e3Sopenharmony_ci/*
13434514f5e3Sopenharmony_ci * @tc.name:FindLastIndex
13444514f5e3Sopenharmony_ci * @tc.desc:test Array
13454514f5e3Sopenharmony_ci * @tc.type: FUNC
13464514f5e3Sopenharmony_ci */
13474514f5e3Sopenharmony_ci{
13484514f5e3Sopenharmony_ci    const array = [6, 7, 8, 9, 10, NaN, undefined, null, "", false, {name: "John"}, [1, 2, 3]];
13494514f5e3Sopenharmony_ci    print(array.findLastIndex(item => item === 5));
13504514f5e3Sopenharmony_ci    print(array.findLastIndex(item => item === 11));
13514514f5e3Sopenharmony_ci    print(array.findLastIndex(item => item > 5));
13524514f5e3Sopenharmony_ci    print(array.findLastIndex(item => item < 0));
13534514f5e3Sopenharmony_ci    print(array.findLastIndex(item => typeof item === 'string'));
13544514f5e3Sopenharmony_ci    print(array.findLastIndex(item => typeof item === 'object'));
13554514f5e3Sopenharmony_ci    print(array.findLastIndex(item => Array.isArray(item)));
13564514f5e3Sopenharmony_ci    print(array.findLastIndex(item => item));
13574514f5e3Sopenharmony_ci    print(array.findLastIndex(item => item === null));
13584514f5e3Sopenharmony_ci    print(array.findLastIndex(item => item === undefined));
13594514f5e3Sopenharmony_ci    print(array.findLastIndex(item => isNaN(item)));
13604514f5e3Sopenharmony_ci    print(array.findLastIndex(item => item === false));
13614514f5e3Sopenharmony_ci}
13624514f5e3Sopenharmony_ci
13634514f5e3Sopenharmony_citry {
13644514f5e3Sopenharmony_ci    const array = [1, 2, 3, 4, 5];
13654514f5e3Sopenharmony_ci    print(array.findLastIndex());
13664514f5e3Sopenharmony_ci} catch (error) {
13674514f5e3Sopenharmony_ci    print("Caught an error: ", error);
13684514f5e3Sopenharmony_ci}
13694514f5e3Sopenharmony_ci
13704514f5e3Sopenharmony_citry {
13714514f5e3Sopenharmony_ci    const array = [1, 2, 3, 4, 5];
13724514f5e3Sopenharmony_ci    print(array.findLastIndex("not a function"));
13734514f5e3Sopenharmony_ci} catch (error) {
13744514f5e3Sopenharmony_ci    print("Caught an error: ", error);
13754514f5e3Sopenharmony_ci}
13764514f5e3Sopenharmony_ci
13774514f5e3Sopenharmony_citry {
13784514f5e3Sopenharmony_ci    let array = null;
13794514f5e3Sopenharmony_ci    print(array.findLastIndex(item => item === 1));
13804514f5e3Sopenharmony_ci} catch (error) {
13814514f5e3Sopenharmony_ci    print("Caught an error: ", error);
13824514f5e3Sopenharmony_ci}
13834514f5e3Sopenharmony_ci
13844514f5e3Sopenharmony_citry {
13854514f5e3Sopenharmony_ci    array = undefined;
13864514f5e3Sopenharmony_ci    print(array.findLastIndex(item => item === 1));
13874514f5e3Sopenharmony_ci} catch (error) {
13884514f5e3Sopenharmony_ci    print("Caught an error: ", error);
13894514f5e3Sopenharmony_ci}
13904514f5e3Sopenharmony_ci
13914514f5e3Sopenharmony_ci/*
13924514f5e3Sopenharmony_ci * @tc.name:Flat
13934514f5e3Sopenharmony_ci * @tc.desc:test Array
13944514f5e3Sopenharmony_ci * @tc.type: FUNC
13954514f5e3Sopenharmony_ci */
13964514f5e3Sopenharmony_ci{
13974514f5e3Sopenharmony_ci    const array = [1, 2, [3, 4, [5, 6]], [], [[7], 8], 9, [10]];
13984514f5e3Sopenharmony_ci
13994514f5e3Sopenharmony_ci    print(array.flat());
14004514f5e3Sopenharmony_ci    print(array.flat(2));
14014514f5e3Sopenharmony_ci
14024514f5e3Sopenharmony_ci    const deeplyNestedArray = [1, [2, [3, [4, [5]]]]];
14034514f5e3Sopenharmony_ci    print(deeplyNestedArray.flat(Infinity));
14044514f5e3Sopenharmony_ci
14054514f5e3Sopenharmony_ci    const emptyArray = [1, [2, [], [3, []]]];
14064514f5e3Sopenharmony_ci    print(emptyArray.flat());
14074514f5e3Sopenharmony_ci
14084514f5e3Sopenharmony_ci    const sparseArray = [1, 2, , 3, 4, [5, , 6]];
14094514f5e3Sopenharmony_ci    print(sparseArray.flat());
14104514f5e3Sopenharmony_ci
14114514f5e3Sopenharmony_ci    const irregularArray = [1, [2, 3, [4, [5]]]];
14124514f5e3Sopenharmony_ci    print(irregularArray.flat());
14134514f5e3Sopenharmony_ci
14144514f5e3Sopenharmony_ci    const arrayWithNonArrays = [1, 'string', {name: 'John'}, null, undefined];
14154514f5e3Sopenharmony_ci    print(arrayWithNonArrays.flat());
14164514f5e3Sopenharmony_ci
14174514f5e3Sopenharmony_ci    const arrayWithNaNAndInfinity = [1, [NaN, Infinity], [2, [3, NaN]]];
14184514f5e3Sopenharmony_ci    print(arrayWithNaNAndInfinity.flat());
14194514f5e3Sopenharmony_ci}
14204514f5e3Sopenharmony_ci
14214514f5e3Sopenharmony_citry {
14224514f5e3Sopenharmony_ci    const array = [1, 2, [3, 4]];
14234514f5e3Sopenharmony_ci    print(array.flat('string'));
14244514f5e3Sopenharmony_ci} catch (error) {
14254514f5e3Sopenharmony_ci    print("Caught an error: ", error);
14264514f5e3Sopenharmony_ci}
14274514f5e3Sopenharmony_ci
14284514f5e3Sopenharmony_citry {
14294514f5e3Sopenharmony_ci    const array = [1, 2, [3, 4]];
14304514f5e3Sopenharmony_ci    print(array.flat(-1));
14314514f5e3Sopenharmony_ci} catch (error) {
14324514f5e3Sopenharmony_ci    print("Caught an error: ", error);
14334514f5e3Sopenharmony_ci}
14344514f5e3Sopenharmony_ci
14354514f5e3Sopenharmony_ci/*
14364514f5e3Sopenharmony_ci * @tc.name:FlatMap
14374514f5e3Sopenharmony_ci * @tc.desc:test Array
14384514f5e3Sopenharmony_ci * @tc.type: FUNC
14394514f5e3Sopenharmony_ci */
14404514f5e3Sopenharmony_ci{
14414514f5e3Sopenharmony_ci    const array = [1, 2, 3];
14424514f5e3Sopenharmony_ci    print(array.flatMap(x => [x, x * 2]));
14434514f5e3Sopenharmony_ci    print(array.flatMap(x => []));
14444514f5e3Sopenharmony_ci    print(array.flatMap(x => x * 2));
14454514f5e3Sopenharmony_ci    print(array.flatMap((x, index) => [x, index]));
14464514f5e3Sopenharmony_ci    const sparseArray = [1, , 2, , 3];
14474514f5e3Sopenharmony_ci    print(sparseArray.flatMap(x => [x]));
14484514f5e3Sopenharmony_ci    const nestedArray = [[1, 2], [3, 4], [5, 6]];
14494514f5e3Sopenharmony_ci    print(nestedArray.flatMap(arr => arr));
14504514f5e3Sopenharmony_ci    const arrayWithEmptyArrays = [1, [], [2, 3], [], 4];
14514514f5e3Sopenharmony_ci    print(arrayWithEmptyArrays.flatMap(x => x));
14524514f5e3Sopenharmony_ci    print(array.flatMap(x => x % 2 === 0 ? [x, x * 2] : x));
14534514f5e3Sopenharmony_ci}
14544514f5e3Sopenharmony_ci
14554514f5e3Sopenharmony_ci/*
14564514f5e3Sopenharmony_ci * @tc.name:ForEach
14574514f5e3Sopenharmony_ci * @tc.desc:test Array
14584514f5e3Sopenharmony_ci * @tc.type: FUNC
14594514f5e3Sopenharmony_ci */
14604514f5e3Sopenharmony_cioriginalArrays.forEach(array => {
14614514f5e3Sopenharmony_ci    array.forEach(item => {
14624514f5e3Sopenharmony_ci        print(item);
14634514f5e3Sopenharmony_ci    });
14644514f5e3Sopenharmony_ci});
14654514f5e3Sopenharmony_ci
14664514f5e3Sopenharmony_citry {
14674514f5e3Sopenharmony_ci    const array = [1, 2, 3];
14684514f5e3Sopenharmony_ci    array.forEach('not a function');
14694514f5e3Sopenharmony_ci} catch (error) {
14704514f5e3Sopenharmony_ci    print("Caught an error: ", error);
14714514f5e3Sopenharmony_ci}
14724514f5e3Sopenharmony_ci
14734514f5e3Sopenharmony_ci/*
14744514f5e3Sopenharmony_ci * @tc.name:Includes
14754514f5e3Sopenharmony_ci * @tc.desc:test Array
14764514f5e3Sopenharmony_ci * @tc.type: FUNC
14774514f5e3Sopenharmony_ci */
14784514f5e3Sopenharmony_ciconst testCases = [
14794514f5e3Sopenharmony_ci    { array: [1, 2, 3, 4, 5], target: 3 },
14804514f5e3Sopenharmony_ci    { array: [1, 2, 3, 4, 5], target: 6 },
14814514f5e3Sopenharmony_ci    { array: [NaN, 2, 3], target: NaN },
14824514f5e3Sopenharmony_ci    { array: [undefined, 2, 3], target: undefined },
14834514f5e3Sopenharmony_ci    { array: ["apple", "banana", "orange"], target: "banana" },
14844514f5e3Sopenharmony_ci    { array: ["apple", "banana", "orange"], target: "grape" },
14854514f5e3Sopenharmony_ci    { array: [], target: 1 },
14864514f5e3Sopenharmony_ci    { array: [true, false, true], target: true },
14874514f5e3Sopenharmony_ci    { array: [true, false, true], target: false },
14884514f5e3Sopenharmony_ci    { array: [Infinity, -Infinity], target: Infinity },
14894514f5e3Sopenharmony_ci    { array: [Infinity, -Infinity], target: -Infinity },
14904514f5e3Sopenharmony_ci    { array: [new Map(), new Map()], target: new Map() },
14914514f5e3Sopenharmony_ci    { array: [new Set(), new Set()], target: new Set() },
14924514f5e3Sopenharmony_ci];
14934514f5e3Sopenharmony_ci
14944514f5e3Sopenharmony_citestCases.forEach(({ array, target }) => {
14954514f5e3Sopenharmony_ci    const result = array.includes(target);
14964514f5e3Sopenharmony_ci    print(`Array: [${array.join(', ')}], Target: ${target}, Result: ${result}`);
14974514f5e3Sopenharmony_ci});
14984514f5e3Sopenharmony_ci
14994514f5e3Sopenharmony_ci/*
15004514f5e3Sopenharmony_ci * @tc.name:IndexOf
15014514f5e3Sopenharmony_ci * @tc.desc:test Array
15024514f5e3Sopenharmony_ci * @tc.type: FUNC
15034514f5e3Sopenharmony_ci */
15044514f5e3Sopenharmony_ci{
15054514f5e3Sopenharmony_ci    let arr = [1, 2, 3, 4, 5];
15064514f5e3Sopenharmony_ci    print(arr.indexOf(3));
15074514f5e3Sopenharmony_ci    print(arr.indexOf(1));
15084514f5e3Sopenharmony_ci    print(arr.indexOf(5));
15094514f5e3Sopenharmony_ci    print([].indexOf(1));
15104514f5e3Sopenharmony_ci    let arr2 = ["apple", "banana", "cherry"];
15114514f5e3Sopenharmony_ci    print(arr2.indexOf("banana"))
15124514f5e3Sopenharmony_ci    let arr3 = [1, 2, 2, 3, 4, 2];
15134514f5e3Sopenharmony_ci    print(arr3.indexOf(2));
15144514f5e3Sopenharmony_ci    print(arr.indexOf(10));
15154514f5e3Sopenharmony_ci    let arr4 = [{id: 1}, {id: 2}, {id: 3}];
15164514f5e3Sopenharmony_ci    print(arr4.indexOf({id: 2}));
15174514f5e3Sopenharmony_ci    print(arr4.findIndex(item => item.id === 2));
15184514f5e3Sopenharmony_ci    print("not an array".indexOf(1));
15194514f5e3Sopenharmony_ci}
15204514f5e3Sopenharmony_ci
15214514f5e3Sopenharmony_ci/*
15224514f5e3Sopenharmony_ci * @tc.name:Join
15234514f5e3Sopenharmony_ci * @tc.desc:test Array
15244514f5e3Sopenharmony_ci * @tc.type: FUNC
15254514f5e3Sopenharmony_ci */
15264514f5e3Sopenharmony_ci{
15274514f5e3Sopenharmony_ci    let arr = ["apple", "banana", "cherry"];
15284514f5e3Sopenharmony_ci    print(arr.join());
15294514f5e3Sopenharmony_ci    print(arr.join(", "));
15304514f5e3Sopenharmony_ci    let emptyArr = [];
15314514f5e3Sopenharmony_ci    print(emptyArr.join());
15324514f5e3Sopenharmony_ci    let singleElementArr = ["apple"];
15334514f5e3Sopenharmony_ci    print(singleElementArr.join());
15344514f5e3Sopenharmony_ci    let mixedArr = ["apple", 1, {name: "John"}];
15354514f5e3Sopenharmony_ci    print(mixedArr.join());
15364514f5e3Sopenharmony_ci    let customSeparatorArr = ["apple", "banana", "cherry"];
15374514f5e3Sopenharmony_ci    print(customSeparatorArr.join(" + "));
15384514f5e3Sopenharmony_ci}
15394514f5e3Sopenharmony_ci
15404514f5e3Sopenharmony_ci/*
15414514f5e3Sopenharmony_ci * @tc.name:Keys
15424514f5e3Sopenharmony_ci * @tc.desc:test Array
15434514f5e3Sopenharmony_ci * @tc.type: FUNC
15444514f5e3Sopenharmony_ci */
15454514f5e3Sopenharmony_ci{
15464514f5e3Sopenharmony_ci    let arr = ["apple", "banana", "cherry"];
15474514f5e3Sopenharmony_ci    let keysIter = arr.keys();
15484514f5e3Sopenharmony_ci    for (let key of keysIter) {
15494514f5e3Sopenharmony_ci        print(key);
15504514f5e3Sopenharmony_ci    }
15514514f5e3Sopenharmony_ci
15524514f5e3Sopenharmony_ci    let emptyArr = [];
15534514f5e3Sopenharmony_ci    let emptyKeysIter = emptyArr.keys();
15544514f5e3Sopenharmony_ci    print(emptyKeysIter.next().done);
15554514f5e3Sopenharmony_ci
15564514f5e3Sopenharmony_ci    let singleElementArr = ["apple"];
15574514f5e3Sopenharmony_ci    let singleElementKeysIter = singleElementArr.keys();
15584514f5e3Sopenharmony_ci    print(singleElementKeysIter.next().value);
15594514f5e3Sopenharmony_ci    print(singleElementKeysIter.next().done);
15604514f5e3Sopenharmony_ci
15614514f5e3Sopenharmony_ci    let multiDimArr = [["apple", "banana"], ["cherry", "date"]];
15624514f5e3Sopenharmony_ci    let multiDimKeysIter = multiDimArr.keys();
15634514f5e3Sopenharmony_ci    for (let key of multiDimKeysIter) {
15644514f5e3Sopenharmony_ci        print(key);
15654514f5e3Sopenharmony_ci    }
15664514f5e3Sopenharmony_ci
15674514f5e3Sopenharmony_ci    let sparseArr = [1, , 3];
15684514f5e3Sopenharmony_ci    let sparseKeysIter = sparseArr.keys();
15694514f5e3Sopenharmony_ci    for (let key of sparseKeysIter) {
15704514f5e3Sopenharmony_ci        print(key);
15714514f5e3Sopenharmony_ci    }
15724514f5e3Sopenharmony_ci}
15734514f5e3Sopenharmony_ci
15744514f5e3Sopenharmony_ci/*
15754514f5e3Sopenharmony_ci * @tc.name:LastIndexOf
15764514f5e3Sopenharmony_ci * @tc.desc:test Array
15774514f5e3Sopenharmony_ci * @tc.type: FUNC
15784514f5e3Sopenharmony_ci */
15794514f5e3Sopenharmony_ci{
15804514f5e3Sopenharmony_ci    let arr = [1, 2, 3, 4, 2, 5];
15814514f5e3Sopenharmony_ci    print(arr.lastIndexOf(2));
15824514f5e3Sopenharmony_ci
15834514f5e3Sopenharmony_ci    print(arr.lastIndexOf(1));
15844514f5e3Sopenharmony_ci    print(arr.lastIndexOf(5));
15854514f5e3Sopenharmony_ci    print(arr.lastIndexOf(6));
15864514f5e3Sopenharmony_ci
15874514f5e3Sopenharmony_ci    let emptyArr = [];
15884514f5e3Sopenharmony_ci    print(emptyArr.lastIndexOf(1));
15894514f5e3Sopenharmony_ci
15904514f5e3Sopenharmony_ci    let arrWithNaN = [1, 2, NaN, 4, NaN];
15914514f5e3Sopenharmony_ci    print(arrWithNaN.lastIndexOf(NaN));
15924514f5e3Sopenharmony_ci
15934514f5e3Sopenharmony_ci    let arrWithUndefined = [1, 2, undefined, 4];
15944514f5e3Sopenharmony_ci    print(arrWithUndefined.lastIndexOf(undefined));
15954514f5e3Sopenharmony_ci}
15964514f5e3Sopenharmony_ci
15974514f5e3Sopenharmony_ci/*
15984514f5e3Sopenharmony_ci * @tc.name:Map
15994514f5e3Sopenharmony_ci * @tc.desc:test Array
16004514f5e3Sopenharmony_ci * @tc.type: FUNC
16014514f5e3Sopenharmony_ci */
16024514f5e3Sopenharmony_ci{
16034514f5e3Sopenharmony_ci    let arr = [1, 2, 3, 4, 5];
16044514f5e3Sopenharmony_ci    let mappedArr = arr.map(num => num * 2);
16054514f5e3Sopenharmony_ci    print(mappedArr);
16064514f5e3Sopenharmony_ci
16074514f5e3Sopenharmony_ci    let emptyArr = [];
16084514f5e3Sopenharmony_ci    let mappedEmptyArr = emptyArr.map(item => item * 2);
16094514f5e3Sopenharmony_ci    print(mappedEmptyArr);
16104514f5e3Sopenharmony_ci
16114514f5e3Sopenharmony_ci    let arrWithNaN = [1, 2, NaN, 4, NaN];
16124514f5e3Sopenharmony_ci    let mappedArrWithNaN = arrWithNaN.map(num => num * 2);
16134514f5e3Sopenharmony_ci    print(mappedArrWithNaN);
16144514f5e3Sopenharmony_ci
16154514f5e3Sopenharmony_ci    let sparseArr = [1, , 3];
16164514f5e3Sopenharmony_ci    let mappedSparseArr = sparseArr.map(num => num * 2);
16174514f5e3Sopenharmony_ci    print(mappedSparseArr);
16184514f5e3Sopenharmony_ci
16194514f5e3Sopenharmony_ci    let objArr = [{id: 1}, {id: 2}, {id: 3}];
16204514f5e3Sopenharmony_ci    let mappedObjArr = objArr.map(obj => obj.id);
16214514f5e3Sopenharmony_ci    print(mappedObjArr);
16224514f5e3Sopenharmony_ci
16234514f5e3Sopenharmony_ci    let multiDimArr = [[1, 2], [3, 4], [5, 6]];
16244514f5e3Sopenharmony_ci    let mappedMultiDimArr = multiDimArr.map(innerArr => innerArr.map(num => num * 2));
16254514f5e3Sopenharmony_ci    print(mappedMultiDimArr);
16264514f5e3Sopenharmony_ci}
16274514f5e3Sopenharmony_ci
16284514f5e3Sopenharmony_ci/*
16294514f5e3Sopenharmony_ci * @tc.name:Pop
16304514f5e3Sopenharmony_ci * @tc.desc:test Array
16314514f5e3Sopenharmony_ci * @tc.type: FUNC
16324514f5e3Sopenharmony_ci */
16334514f5e3Sopenharmony_ci{
16344514f5e3Sopenharmony_ci    let arr = [1, 2, 3, 4, 5];
16354514f5e3Sopenharmony_ci    let poppedElement = arr.pop();
16364514f5e3Sopenharmony_ci    print(poppedElement);
16374514f5e3Sopenharmony_ci    print(arr);
16384514f5e3Sopenharmony_ci
16394514f5e3Sopenharmony_ci    let emptyArr = [];
16404514f5e3Sopenharmony_ci    let poppedEmptyElement = emptyArr.pop();
16414514f5e3Sopenharmony_ci    print(poppedEmptyElement);
16424514f5e3Sopenharmony_ci    print(emptyArr);
16434514f5e3Sopenharmony_ci
16444514f5e3Sopenharmony_ci    let singleElementArr = [1];
16454514f5e3Sopenharmony_ci    let poppedSingleElement = singleElementArr.pop();
16464514f5e3Sopenharmony_ci    print(poppedSingleElement);
16474514f5e3Sopenharmony_ci    print(singleElementArr);
16484514f5e3Sopenharmony_ci
16494514f5e3Sopenharmony_ci    let anotherSingleElementArr = ["apple"];
16504514f5e3Sopenharmony_ci    let poppedAnotherSingleElement = anotherSingleElementArr.pop();
16514514f5e3Sopenharmony_ci    print(poppedAnotherSingleElement);
16524514f5e3Sopenharmony_ci}
16534514f5e3Sopenharmony_ci
16544514f5e3Sopenharmony_ci/*
16554514f5e3Sopenharmony_ci * @tc.name:Push
16564514f5e3Sopenharmony_ci * @tc.desc:test Array
16574514f5e3Sopenharmony_ci * @tc.type: FUNC
16584514f5e3Sopenharmony_ci */
16594514f5e3Sopenharmony_ci{
16604514f5e3Sopenharmony_ci    let arr = [1, 2, 3];
16614514f5e3Sopenharmony_ci    arr.push(4);
16624514f5e3Sopenharmony_ci    print(arr);
16634514f5e3Sopenharmony_ci
16644514f5e3Sopenharmony_ci    arr.push(5, 6);
16654514f5e3Sopenharmony_ci    print(arr);
16664514f5e3Sopenharmony_ci
16674514f5e3Sopenharmony_ci    let emptyArr = [];
16684514f5e3Sopenharmony_ci    emptyArr.push(1);
16694514f5e3Sopenharmony_ci    print(emptyArr);
16704514f5e3Sopenharmony_ci
16714514f5e3Sopenharmony_ci    let objArr = [{ id: 1 }];
16724514f5e3Sopenharmony_ci    objArr.push({ id: 2 });
16734514f5e3Sopenharmony_ci    print(objArr);
16744514f5e3Sopenharmony_ci
16754514f5e3Sopenharmony_ci    let nestedArr = [1, 2];
16764514f5e3Sopenharmony_ci    nestedArr.push([3, 4]);
16774514f5e3Sopenharmony_ci    print(nestedArr);
16784514f5e3Sopenharmony_ci
16794514f5e3Sopenharmony_ci    let arrWithUndefined = [1, 2, 3];
16804514f5e3Sopenharmony_ci    arrWithUndefined.push(undefined);
16814514f5e3Sopenharmony_ci    print(arrWithUndefined);
16824514f5e3Sopenharmony_ci
16834514f5e3Sopenharmony_ci    let singleElementArr = [1];
16844514f5e3Sopenharmony_ci    singleElementArr.push(2);
16854514f5e3Sopenharmony_ci    print(singleElementArr);
16864514f5e3Sopenharmony_ci}
16874514f5e3Sopenharmony_ci
16884514f5e3Sopenharmony_ci/*
16894514f5e3Sopenharmony_ci * @tc.name:Reduce
16904514f5e3Sopenharmony_ci * @tc.desc:test Array
16914514f5e3Sopenharmony_ci * @tc.type: FUNC
16924514f5e3Sopenharmony_ci */
16934514f5e3Sopenharmony_ci{
16944514f5e3Sopenharmony_ci    let arr = [1, 2, 3, 4, 5];
16954514f5e3Sopenharmony_ci    let sum = arr.reduce((accumulator, currentValue) => accumulator + currentValue, 0);
16964514f5e3Sopenharmony_ci    print(sum);
16974514f5e3Sopenharmony_ci
16984514f5e3Sopenharmony_ci    let emptyArr = [];
16994514f5e3Sopenharmony_ci    let sumOfEmptyArr = emptyArr.reduce((accumulator, currentValue) => accumulator + currentValue, 0);
17004514f5e3Sopenharmony_ci    print(sumOfEmptyArr);
17014514f5e3Sopenharmony_ci
17024514f5e3Sopenharmony_ci    let singleArr = [1];
17034514f5e3Sopenharmony_ci    let sumOfSingleArr = singleArr.reduce((accumulator, currentValue) => accumulator + currentValue, 0);
17044514f5e3Sopenharmony_ci    print(sumOfSingleArr);
17054514f5e3Sopenharmony_ci
17064514f5e3Sopenharmony_ci    let arrNaN = [1, 2, NaN, 4];
17074514f5e3Sopenharmony_ci    let sumOfArrNaN = arrNaN.reduce((accumulator, currentValue) => accumulator + currentValue, 0);
17084514f5e3Sopenharmony_ci    print(sumOfArrNaN);
17094514f5e3Sopenharmony_ci}
17104514f5e3Sopenharmony_ci
17114514f5e3Sopenharmony_ci/*
17124514f5e3Sopenharmony_ci * @tc.name:ReduceRight
17134514f5e3Sopenharmony_ci * @tc.desc:test Array
17144514f5e3Sopenharmony_ci * @tc.type: FUNC
17154514f5e3Sopenharmony_ci */
17164514f5e3Sopenharmony_ci{
17174514f5e3Sopenharmony_ci    let array1 = ["a", "b", "c", "d", "e"];
17184514f5e3Sopenharmony_ci    let result1 = array1.reduceRight((acc, curr) => acc + curr);
17194514f5e3Sopenharmony_ci    print(result1);
17204514f5e3Sopenharmony_ci
17214514f5e3Sopenharmony_ci    let array2 = [];
17224514f5e3Sopenharmony_ci    let result2 = array2.reduceRight((acc, curr) => acc + curr, "initialValue");
17234514f5e3Sopenharmony_ci    print(result2);
17244514f5e3Sopenharmony_ci
17254514f5e3Sopenharmony_ci    let array3 = ["a"];
17264514f5e3Sopenharmony_ci    let result3 = array3.reduceRight((acc, curr) => acc + curr);
17274514f5e3Sopenharmony_ci    print(result3);
17284514f5e3Sopenharmony_ci
17294514f5e3Sopenharmony_ci    let array4 = ["a", "b", undefined, "d"];
17304514f5e3Sopenharmony_ci    let result4 = array4.reduceRight((acc, curr) => acc + curr);
17314514f5e3Sopenharmony_ci    print(result4);
17324514f5e3Sopenharmony_ci}
17334514f5e3Sopenharmony_ci
17344514f5e3Sopenharmony_ci/*
17354514f5e3Sopenharmony_ci * @tc.name:Reverse
17364514f5e3Sopenharmony_ci * @tc.desc:test Array
17374514f5e3Sopenharmony_ci * @tc.type: FUNC
17384514f5e3Sopenharmony_ci */
17394514f5e3Sopenharmony_ci{
17404514f5e3Sopenharmony_ci    let array1 = ["a", "b", "c", "d", "e"];
17414514f5e3Sopenharmony_ci    array1.reverse();
17424514f5e3Sopenharmony_ci    print(array1);
17434514f5e3Sopenharmony_ci
17444514f5e3Sopenharmony_ci    let emptyArray = [];
17454514f5e3Sopenharmony_ci    emptyArray.reverse();
17464514f5e3Sopenharmony_ci    print(emptyArray);
17474514f5e3Sopenharmony_ci
17484514f5e3Sopenharmony_ci    let singleElementArray = ["a"];
17494514f5e3Sopenharmony_ci    singleElementArray.reverse();
17504514f5e3Sopenharmony_ci    print(singleElementArray);
17514514f5e3Sopenharmony_ci
17524514f5e3Sopenharmony_ci    let arrayWithUndefined = ["a", "b", undefined, "d"];
17534514f5e3Sopenharmony_ci    arrayWithUndefined.reverse();
17544514f5e3Sopenharmony_ci    print(arrayWithUndefined);
17554514f5e3Sopenharmony_ci}
17564514f5e3Sopenharmony_ci
17574514f5e3Sopenharmony_ci/*
17584514f5e3Sopenharmony_ci * @tc.name:Shift
17594514f5e3Sopenharmony_ci * @tc.desc:test Array
17604514f5e3Sopenharmony_ci * @tc.type: FUNC
17614514f5e3Sopenharmony_ci */
17624514f5e3Sopenharmony_ci{
17634514f5e3Sopenharmony_ci    let array1 = ["a", "b", "c", "d", "e"];
17644514f5e3Sopenharmony_ci    let shiftedElement1 = array1.shift();
17654514f5e3Sopenharmony_ci    print(shiftedElement1);
17664514f5e3Sopenharmony_ci    print(array1);
17674514f5e3Sopenharmony_ci
17684514f5e3Sopenharmony_ci    let emptyArray = [];
17694514f5e3Sopenharmony_ci    let shiftedElement2 = emptyArray.shift();
17704514f5e3Sopenharmony_ci    print(shiftedElement2);
17714514f5e3Sopenharmony_ci    print(emptyArray);
17724514f5e3Sopenharmony_ci
17734514f5e3Sopenharmony_ci    let singleElementArray = ["a"];
17744514f5e3Sopenharmony_ci    let shiftedElement3 = singleElementArray.shift();
17754514f5e3Sopenharmony_ci    print(shiftedElement3);
17764514f5e3Sopenharmony_ci    print(singleElementArray);
17774514f5e3Sopenharmony_ci
17784514f5e3Sopenharmony_ci    let arrayWithUndefined = ["a", undefined, "b", "c"];
17794514f5e3Sopenharmony_ci    let shiftedElement4 = arrayWithUndefined.shift();
17804514f5e3Sopenharmony_ci    print(shiftedElement4);
17814514f5e3Sopenharmony_ci    print(arrayWithUndefined);
17824514f5e3Sopenharmony_ci}
17834514f5e3Sopenharmony_ci
17844514f5e3Sopenharmony_ci/*
17854514f5e3Sopenharmony_ci * @tc.name:Slice
17864514f5e3Sopenharmony_ci * @tc.desc:test Array
17874514f5e3Sopenharmony_ci * @tc.type: FUNC
17884514f5e3Sopenharmony_ci */
17894514f5e3Sopenharmony_ci{
17904514f5e3Sopenharmony_ci    let array1 = ["a", "b", "c", "d", "e"];
17914514f5e3Sopenharmony_ci    let slicedArray1 = array1.slice(1, 3);
17924514f5e3Sopenharmony_ci    print(slicedArray1);
17934514f5e3Sopenharmony_ci
17944514f5e3Sopenharmony_ci    let emptyArray = [];
17954514f5e3Sopenharmony_ci    let slicedEmptyArray = emptyArray.slice(1, 3);
17964514f5e3Sopenharmony_ci    print(slicedEmptyArray);
17974514f5e3Sopenharmony_ci
17984514f5e3Sopenharmony_ci    let singleElementArray = ["a"];
17994514f5e3Sopenharmony_ci    let slicedSingleElementArray = singleElementArray.slice(0, 1);
18004514f5e3Sopenharmony_ci    print(slicedSingleElementArray);
18014514f5e3Sopenharmony_ci
18024514f5e3Sopenharmony_ci    let arrayWithUndefined = ["a", undefined, "b", "c"];
18034514f5e3Sopenharmony_ci    let slicedArrayWithUndefined = arrayWithUndefined.slice(1, 3);
18044514f5e3Sopenharmony_ci    print(slicedArrayWithUndefined);
18054514f5e3Sopenharmony_ci}
18064514f5e3Sopenharmony_ci
18074514f5e3Sopenharmony_ci/*
18084514f5e3Sopenharmony_ci * @tc.name:Some
18094514f5e3Sopenharmony_ci * @tc.desc:test Array
18104514f5e3Sopenharmony_ci * @tc.type: FUNC
18114514f5e3Sopenharmony_ci */
18124514f5e3Sopenharmony_ci{
18134514f5e3Sopenharmony_ci    let array1 = [1, 2, 3, 4, 5];
18144514f5e3Sopenharmony_ci    let isSomeEven = array1.some(num => num % 2 === 0);
18154514f5e3Sopenharmony_ci    print(isSomeEven);
18164514f5e3Sopenharmony_ci
18174514f5e3Sopenharmony_ci    let array2 = [1, 3, 5, 7, 9];
18184514f5e3Sopenharmony_ci    let isSomeEven2 = array2.some(num => num % 2 === 0);
18194514f5e3Sopenharmony_ci    print(isSomeEven2);
18204514f5e3Sopenharmony_ci
18214514f5e3Sopenharmony_ci    let emptyArray = [];
18224514f5e3Sopenharmony_ci    let isSomeEmpty = emptyArray.some(num => num > 0);
18234514f5e3Sopenharmony_ci    print(isSomeEmpty);
18244514f5e3Sopenharmony_ci
18254514f5e3Sopenharmony_ci    let singleElementArray = [1];
18264514f5e3Sopenharmony_ci    let isSomeSingleElement = singleElementArray.some(num => num > 0);
18274514f5e3Sopenharmony_ci    print(isSomeSingleElement);
18284514f5e3Sopenharmony_ci
18294514f5e3Sopenharmony_ci    let arrayWithUndefined = [1, undefined, 3, 5];
18304514f5e3Sopenharmony_ci    let isSomeUndefined = arrayWithUndefined.some(num => num === undefined);
18314514f5e3Sopenharmony_ci    print(isSomeUndefined);
18324514f5e3Sopenharmony_ci}
18334514f5e3Sopenharmony_ci
18344514f5e3Sopenharmony_ci/*
18354514f5e3Sopenharmony_ci * @tc.name:Sort
18364514f5e3Sopenharmony_ci * @tc.desc:test Array
18374514f5e3Sopenharmony_ci * @tc.type: FUNC
18384514f5e3Sopenharmony_ci */
18394514f5e3Sopenharmony_ci{
18404514f5e3Sopenharmony_ci    let array1 = [3, 1, 4, 1, 5, 9, 2, 6, 5];
18414514f5e3Sopenharmony_ci    array1.sort();
18424514f5e3Sopenharmony_ci    print(array1);
18434514f5e3Sopenharmony_ci
18444514f5e3Sopenharmony_ci    let emptyArray = [];
18454514f5e3Sopenharmony_ci    emptyArray.sort();
18464514f5e3Sopenharmony_ci    print(emptyArray);
18474514f5e3Sopenharmony_ci
18484514f5e3Sopenharmony_ci    let singleElementArray = [1];
18494514f5e3Sopenharmony_ci    singleElementArray.sort();
18504514f5e3Sopenharmony_ci    print(singleElementArray);
18514514f5e3Sopenharmony_ci
18524514f5e3Sopenharmony_ci    let arrayWithUndefined = [1, undefined, 3, 5];
18534514f5e3Sopenharmony_ci    arrayWithUndefined.sort();
18544514f5e3Sopenharmony_ci    print(arrayWithUndefined);
18554514f5e3Sopenharmony_ci
18564514f5e3Sopenharmony_ci    let arrayWithStrings = ["banana", "apple", "cherry"];
18574514f5e3Sopenharmony_ci    arrayWithStrings.sort();
18584514f5e3Sopenharmony_ci    print(arrayWithStrings);
18594514f5e3Sopenharmony_ci}
18604514f5e3Sopenharmony_ci
18614514f5e3Sopenharmony_ci/*
18624514f5e3Sopenharmony_ci * @tc.name:Splice
18634514f5e3Sopenharmony_ci * @tc.desc:test Array
18644514f5e3Sopenharmony_ci * @tc.type: FUNC
18654514f5e3Sopenharmony_ci */
18664514f5e3Sopenharmony_ci{
18674514f5e3Sopenharmony_ci    let array1 = ["a", "b", "c", "d", "e"];
18684514f5e3Sopenharmony_ci    let removedElements1 = array1.splice(2, 2, "x", "y");
18694514f5e3Sopenharmony_ci    print(removedElements1);
18704514f5e3Sopenharmony_ci    print(array1);
18714514f5e3Sopenharmony_ci
18724514f5e3Sopenharmony_ci    let emptyArray = [];
18734514f5e3Sopenharmony_ci    let removedElements2 = emptyArray.splice(0, 0, "x", "y");
18744514f5e3Sopenharmony_ci    print(removedElements2);
18754514f5e3Sopenharmony_ci    print(emptyArray);
18764514f5e3Sopenharmony_ci
18774514f5e3Sopenharmony_ci    let singleElementArray = ["a"];
18784514f5e3Sopenharmony_ci    let removedElements3 = singleElementArray.splice(0, 1, "x", "y");
18794514f5e3Sopenharmony_ci    print(removedElements3);
18804514f5e3Sopenharmony_ci    print(singleElementArray);
18814514f5e3Sopenharmony_ci
18824514f5e3Sopenharmony_ci    let arrayWithUndefined = [1, undefined, 3, 5];
18834514f5e3Sopenharmony_ci    let removedElements4 = arrayWithUndefined.splice(1, 2);
18844514f5e3Sopenharmony_ci    print(removedElements4);
18854514f5e3Sopenharmony_ci    print(arrayWithUndefined);
18864514f5e3Sopenharmony_ci}
18874514f5e3Sopenharmony_ci
18884514f5e3Sopenharmony_ci/*
18894514f5e3Sopenharmony_ci * @tc.name:toString
18904514f5e3Sopenharmony_ci * @tc.desc:test Array
18914514f5e3Sopenharmony_ci * @tc.type: FUNC
18924514f5e3Sopenharmony_ci */
18934514f5e3Sopenharmony_ci{
18944514f5e3Sopenharmony_ci    let array = ["apple", "banana", "cherry"];
18954514f5e3Sopenharmony_ci    let string = array.toString();
18964514f5e3Sopenharmony_ci    print(string);
18974514f5e3Sopenharmony_ci
18984514f5e3Sopenharmony_ci    let numbers = [1, 2, 3, 4, 5];
18994514f5e3Sopenharmony_ci    let string2 = numbers.toString();
19004514f5e3Sopenharmony_ci    print(string2);
19014514f5e3Sopenharmony_ci
19024514f5e3Sopenharmony_ci    let mixed = [1, "two", true];
19034514f5e3Sopenharmony_ci    let string3 = mixed.toString();
19044514f5e3Sopenharmony_ci    print(string3);
19054514f5e3Sopenharmony_ci}
19064514f5e3Sopenharmony_ci
19074514f5e3Sopenharmony_ci/*
19084514f5e3Sopenharmony_ci * @tc.name:Unshift
19094514f5e3Sopenharmony_ci * @tc.desc:test Array
19104514f5e3Sopenharmony_ci * @tc.type: FUNC
19114514f5e3Sopenharmony_ci */
19124514f5e3Sopenharmony_ci{
19134514f5e3Sopenharmony_ci    let array1 = ["a", "b", "c"];
19144514f5e3Sopenharmony_ci    let newLength1 = array1.unshift("x", "y");
19154514f5e3Sopenharmony_ci    print(newLength1);
19164514f5e3Sopenharmony_ci    print(array1);
19174514f5e3Sopenharmony_ci
19184514f5e3Sopenharmony_ci    let emptyArray = [];
19194514f5e3Sopenharmony_ci    let newLength2 = emptyArray.unshift("x", "y");
19204514f5e3Sopenharmony_ci    print(newLength2);
19214514f5e3Sopenharmony_ci    print(emptyArray);
19224514f5e3Sopenharmony_ci
19234514f5e3Sopenharmony_ci    let singleElementArray = ["a"];
19244514f5e3Sopenharmony_ci    let newLength3 = singleElementArray.unshift("x");
19254514f5e3Sopenharmony_ci    print(newLength3);
19264514f5e3Sopenharmony_ci    print(singleElementArray);
19274514f5e3Sopenharmony_ci
19284514f5e3Sopenharmony_ci    let arrayWithUndefined = [1, 2, undefined];
19294514f5e3Sopenharmony_ci    let newLength4 = arrayWithUndefined.unshift("x");
19304514f5e3Sopenharmony_ci    print(newLength4);
19314514f5e3Sopenharmony_ci    print(arrayWithUndefined);
19324514f5e3Sopenharmony_ci
19334514f5e3Sopenharmony_ci    let arrayWithHole = [1, 2, ,4];
19344514f5e3Sopenharmony_ci    let newLength5 = arrayWithHole.unshift(5, 6, 7);
19354514f5e3Sopenharmony_ci    print(newLength5);
19364514f5e3Sopenharmony_ci    print(arrayWithHole);
19374514f5e3Sopenharmony_ci
19384514f5e3Sopenharmony_ci    let arrayWithHole1 = [1, 2, ,4];
19394514f5e3Sopenharmony_ci    let newLength6 = arrayWithHole1.unshift(5, 6, 7, 8);
19404514f5e3Sopenharmony_ci    print(newLength6);
19414514f5e3Sopenharmony_ci    print(arrayWithHole1);
19424514f5e3Sopenharmony_ci}
19434514f5e3Sopenharmony_ci
19444514f5e3Sopenharmony_ci/*
19454514f5e3Sopenharmony_ci * @tc.name:ToReversed ToSorted ToSpliced With
19464514f5e3Sopenharmony_ci * @tc.desc:test Array
19474514f5e3Sopenharmony_ci * @tc.type: FUNC
19484514f5e3Sopenharmony_ci */
19494514f5e3Sopenharmony_ci{
19504514f5e3Sopenharmony_ci    let array1 = ["a", "b", "c", "d", "e"];
19514514f5e3Sopenharmony_ci    print(array1.toReversed());
19524514f5e3Sopenharmony_ci
19534514f5e3Sopenharmony_ci    let emptyArray = [];
19544514f5e3Sopenharmony_ci    print(emptyArray.toReversed());
19554514f5e3Sopenharmony_ci
19564514f5e3Sopenharmony_ci    let singleElementArray = ["a"];
19574514f5e3Sopenharmony_ci    print(singleElementArray.toReversed());
19584514f5e3Sopenharmony_ci
19594514f5e3Sopenharmony_ci    let arrayWithUndefined = ["a", "b", undefined, "d"];
19604514f5e3Sopenharmony_ci    print(arrayWithUndefined.toReversed());
19614514f5e3Sopenharmony_ci}
19624514f5e3Sopenharmony_ci
19634514f5e3Sopenharmony_ci{
19644514f5e3Sopenharmony_ci    let array1 = [3, 1, 4, 1, 5, 9, 2, 6, 5];
19654514f5e3Sopenharmony_ci    print(array1.toSorted());
19664514f5e3Sopenharmony_ci
19674514f5e3Sopenharmony_ci    let emptyArray = [];
19684514f5e3Sopenharmony_ci    print(emptyArray.toSorted());
19694514f5e3Sopenharmony_ci
19704514f5e3Sopenharmony_ci    let singleElementArray = [1];
19714514f5e3Sopenharmony_ci    print(singleElementArray.toSorted());
19724514f5e3Sopenharmony_ci
19734514f5e3Sopenharmony_ci    let arrayWithUndefined = [1, undefined, 3, 5];
19744514f5e3Sopenharmony_ci    print(arrayWithUndefined.toSorted());
19754514f5e3Sopenharmony_ci
19764514f5e3Sopenharmony_ci    let arrayWithStrings = ["banana", "apple", "cherry"];
19774514f5e3Sopenharmony_ci    print(arrayWithStrings.toSorted());
19784514f5e3Sopenharmony_ci}
19794514f5e3Sopenharmony_ci
19804514f5e3Sopenharmony_ci{
19814514f5e3Sopenharmony_ci    let array1 = ["a", "b", "c", "d", "e"];
19824514f5e3Sopenharmony_ci    let removedElements1 = array1.toSpliced(2, 2, "x", "y");
19834514f5e3Sopenharmony_ci    print(removedElements1);
19844514f5e3Sopenharmony_ci    print(array1);
19854514f5e3Sopenharmony_ci
19864514f5e3Sopenharmony_ci    let emptyArray = [];
19874514f5e3Sopenharmony_ci    let removedElements2 = emptyArray.toSpliced(0, 0, "x", "y");
19884514f5e3Sopenharmony_ci    print(removedElements2);
19894514f5e3Sopenharmony_ci    print(emptyArray);
19904514f5e3Sopenharmony_ci
19914514f5e3Sopenharmony_ci    let singleElementArray = ["a"];
19924514f5e3Sopenharmony_ci    let removedElements3 = singleElementArray.toSpliced(0, 1, "x", "y");
19934514f5e3Sopenharmony_ci    print(removedElements3);
19944514f5e3Sopenharmony_ci    print(singleElementArray);
19954514f5e3Sopenharmony_ci
19964514f5e3Sopenharmony_ci    let arrayWithUndefined = [1, undefined, 3, 5];
19974514f5e3Sopenharmony_ci    let removedElements4 = arrayWithUndefined.toSpliced(1, 2);
19984514f5e3Sopenharmony_ci    print(removedElements4);
19994514f5e3Sopenharmony_ci    print(arrayWithUndefined);
20004514f5e3Sopenharmony_ci}
20014514f5e3Sopenharmony_ci
20024514f5e3Sopenharmony_ci/*
20034514f5e3Sopenharmony_ci * @tc.name:IsArray
20044514f5e3Sopenharmony_ci * @tc.desc:test Array
20054514f5e3Sopenharmony_ci * @tc.type: FUNC
20064514f5e3Sopenharmony_ci */
20074514f5e3Sopenharmony_ci{
20084514f5e3Sopenharmony_ci    // print true
20094514f5e3Sopenharmony_ci    print(Array.isArray([]));
20104514f5e3Sopenharmony_ci    print(Array.isArray([1]));
20114514f5e3Sopenharmony_ci    print(Array.isArray(new Array()));
20124514f5e3Sopenharmony_ci    print(Array.isArray(new Array("a", "b", "c", "d")));
20134514f5e3Sopenharmony_ci    print(Array.isArray(new Array(3)));
20144514f5e3Sopenharmony_ci    print(Array.isArray(Array.prototype));
20154514f5e3Sopenharmony_ci
20164514f5e3Sopenharmony_ci    // print false
20174514f5e3Sopenharmony_ci    print(Array.isArray());
20184514f5e3Sopenharmony_ci    print(Array.isArray({}));
20194514f5e3Sopenharmony_ci    print(Array.isArray(null));
20204514f5e3Sopenharmony_ci    print(Array.isArray(undefined));
20214514f5e3Sopenharmony_ci    print(Array.isArray(17));
20224514f5e3Sopenharmony_ci    print(Array.isArray("Array"));
20234514f5e3Sopenharmony_ci    print(Array.isArray(true));
20244514f5e3Sopenharmony_ci    print(Array.isArray(false));
20254514f5e3Sopenharmony_ci    print(Array.isArray(new Uint8Array(32)));
20264514f5e3Sopenharmony_ci    print(Array.isArray({ __proto__: Array.prototype }));
20274514f5e3Sopenharmony_ci}
20284514f5e3Sopenharmony_ci
20294514f5e3Sopenharmony_civar arr_push = [];
20304514f5e3Sopenharmony_ciObject.defineProperty(arr_push, "length", { writable : false});
20314514f5e3Sopenharmony_citry {
20324514f5e3Sopenharmony_ci    arr_push.push(3);
20334514f5e3Sopenharmony_ci} catch (e) {
20344514f5e3Sopenharmony_ci    print(e instanceof TypeError);
20354514f5e3Sopenharmony_ci}