14514f5e3Sopenharmony_ci/*
24514f5e3Sopenharmony_ci * Copyright (c) 2023 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:String
184514f5e3Sopenharmony_ci * @tc.desc:test String
194514f5e3Sopenharmony_ci * @tc.type: FUNC
204514f5e3Sopenharmony_ci * @tc.require: issueI5NO8G
214514f5e3Sopenharmony_ci */
224514f5e3Sopenharmony_ciprint("string".length);
234514f5e3Sopenharmony_ciprint("string"[3]);
244514f5e3Sopenharmony_ciprint("string".at(-1));
254514f5e3Sopenharmony_ci
264514f5e3Sopenharmony_cilet tmp = '今天吃什么:告诉了会晤今天吃什么促“让今天吃什么下来好起来”今天吃今天吃什么于6月1日于北京今天吃什么面。大杂烩中国都五年来首位访华\
274514f5e3Sopenharmony_ci的今天吃什么王刚说,你吵的菜今天吃什么了赞不绝口,但是今天吃什么吃,他接到一个快递单号为#nsExpress3SF#123456789的包裹';
284514f5e3Sopenharmony_cilet flag = tmp;
294514f5e3Sopenharmony_cilet str1 = tmp.substring(0, 111) + ',,,,,,,,,,,,,,,,,,,,,,,' + tmp.substring(111 + 23);
304514f5e3Sopenharmony_cilet str2 = tmp.substring(0, 111) + 'nsExpress3SF#123456789的' + tmp.substring(111 + 23,111 + 24) + '需';
314514f5e3Sopenharmony_cilet str3 = tmp.substring(0, 111) + 'nsExpress3SF#123456789的' + tmp.substring(111 + 23);
324514f5e3Sopenharmony_ciprint((flag === str1).toString());
334514f5e3Sopenharmony_ciprint((flag === str2).toString());
344514f5e3Sopenharmony_ciprint((flag === str3).toString());
354514f5e3Sopenharmony_ci
364514f5e3Sopenharmony_cilet utf81 = '12312463347659634287446568765344234356798653455678899865746435323456709876543679334675235523463756875153764736256\
374514f5e3Sopenharmony_ci235252537585734523759078945623465357867096834523523765868';
384514f5e3Sopenharmony_cilet utf82 = utf81.substring(0, 169) + '8';
394514f5e3Sopenharmony_cilet utf83 = utf81.substring(0, 169) + '0';
404514f5e3Sopenharmony_ciprint((utf81 === utf82).toString());
414514f5e3Sopenharmony_ciprint((utf81 === utf83).toString());
424514f5e3Sopenharmony_ci
434514f5e3Sopenharmony_cifunction foo(a) {
444514f5e3Sopenharmony_ci    return a;
454514f5e3Sopenharmony_ci}
464514f5e3Sopenharmony_citry {
474514f5e3Sopenharmony_ci    for (let i = 0; i < 25; i++) {
484514f5e3Sopenharmony_ci        foo += foo;
494514f5e3Sopenharmony_ci    }
504514f5e3Sopenharmony_ci} catch (e) {
514514f5e3Sopenharmony_ci    print(e.message);
524514f5e3Sopenharmony_ci}
534514f5e3Sopenharmony_cilet string1 = "fdjDJSAjkdfalDDGETG";
544514f5e3Sopenharmony_cilet string2 = string1.substring(1);
554514f5e3Sopenharmony_ciprint(str1.charAt());
564514f5e3Sopenharmony_ciprint(str2.charCodeAt());
574514f5e3Sopenharmony_ciprint(str1.substr(2, 4));
584514f5e3Sopenharmony_ciprint(string2.toLowerCase(2, 4));
594514f5e3Sopenharmony_ci
604514f5e3Sopenharmony_ci
614514f5e3Sopenharmony_cilet tmp1 = '今天吃什么:哈哈哈会晤美国phonePlatformphonePlatformphonePlatformphonePlatformphonePlatformphonePlatformphonePlatformphonePlatformphonePlatformphonePlatform国务卿促“让今天吃什么下来好起来”今天吃今天吃什么于6月1日于北京今天吃什么面。大杂烩中国都五年来首位访华\
624514f5e3Sopenharmony_ci的今天吃什么王刚说,你吵的菜今天吃什么了赞不绝口,但是今天吃什么吃,他接到一个快递单号为#nsExpress3SF#123456789的包裹';
634514f5e3Sopenharmony_cilet flag1 = tmp1;
644514f5e3Sopenharmony_cilet str = tmp1.substring(13, 143);
654514f5e3Sopenharmony_cilet str4 = tmp1.substring(13, 26);
664514f5e3Sopenharmony_cilet str5 = "phonePlatformphonePlatformphonePlatformphonePlatformphonePlatformphonePlatformphonePlatformphonePlatformphonePlatformphonePlatform";
674514f5e3Sopenharmony_cilet str6 = "phonePlatform";
684514f5e3Sopenharmony_civar obj = {phonePlatformphonePlatformphonePlatformphonePlatformphonePlatformphonePlatformphonePlatformphonePlatformphonePlatformphonePlatform: "wode",
694514f5e3Sopenharmony_ciphonePlatform: "wode1"};
704514f5e3Sopenharmony_ci
714514f5e3Sopenharmony_ciprint(obj[str]);
724514f5e3Sopenharmony_ciprint(obj[str4]);
734514f5e3Sopenharmony_ciprint((str === str5).toString());
744514f5e3Sopenharmony_ciprint((str4 == str6).toString());
754514f5e3Sopenharmony_ci
764514f5e3Sopenharmony_civar s0 = String.fromCharCode();
774514f5e3Sopenharmony_civar s1 = String.fromCharCode(65);
784514f5e3Sopenharmony_civar s2 = String.fromCharCode(65, 66.678);
794514f5e3Sopenharmony_civar s3 = String.fromCharCode(0x12014);
804514f5e3Sopenharmony_civar s4 = String.fromCharCode(true);
814514f5e3Sopenharmony_ciprint(s0);
824514f5e3Sopenharmony_ciprint(s1);
834514f5e3Sopenharmony_ciprint(s2);
844514f5e3Sopenharmony_ciprint(s3);
854514f5e3Sopenharmony_ciprint(s4);
864514f5e3Sopenharmony_ci
874514f5e3Sopenharmony_cilet name1 = 'testfiles就发(2).png';
884514f5e3Sopenharmony_cilet filename1 = name1.substring(0, 14);
894514f5e3Sopenharmony_cilet kk1 = filename1.toLowerCase();
904514f5e3Sopenharmony_ciprint(kk1);
914514f5e3Sopenharmony_ci
924514f5e3Sopenharmony_cilet name2 = 'testfileswodetwwwpng';
934514f5e3Sopenharmony_cilet filename2 = name2.substring(0, 14);
944514f5e3Sopenharmony_cilet kk2 = filename2.toLowerCase();
954514f5e3Sopenharmony_ciprint(kk2);
964514f5e3Sopenharmony_ci
974514f5e3Sopenharmony_civar strA = name2 + name1;
984514f5e3Sopenharmony_cifor (let i = 0; i < 100; i++) {
994514f5e3Sopenharmony_cistrA.toLocaleString();
1004514f5e3Sopenharmony_ci}
1014514f5e3Sopenharmony_ciprint("true");
1024514f5e3Sopenharmony_ci
1034514f5e3Sopenharmony_civar a = "";
1044514f5e3Sopenharmony_civar b = a.split("");
1054514f5e3Sopenharmony_civar c = a.split("1");
1064514f5e3Sopenharmony_ciprint(b.length);
1074514f5e3Sopenharmony_ciprint(c.length);
1084514f5e3Sopenharmony_civar a1 = "123_352_42342_483297538927943872943_12i2";
1094514f5e3Sopenharmony_civar a2 = "12哈哈3尼352尼42好呀342_4832975389279你们43872943尼12i2";
1104514f5e3Sopenharmony_civar a3 = a2.substring(1);
1114514f5e3Sopenharmony_civar b1 = a1.split();
1124514f5e3Sopenharmony_civar c1 = a1.split("");
1134514f5e3Sopenharmony_civar d1 = a1.split(" ");
1144514f5e3Sopenharmony_civar e1 = a1.split("_");
1154514f5e3Sopenharmony_civar f1 = a1.split("_", 2);
1164514f5e3Sopenharmony_civar g1 = a2.split("尼", 3);
1174514f5e3Sopenharmony_civar r1 = a3.split("尼", 44);
1184514f5e3Sopenharmony_civar k1 = a3.split("尼", 0);
1194514f5e3Sopenharmony_civar k2 = a3.split("4", 5);
1204514f5e3Sopenharmony_ciprint(b1);
1214514f5e3Sopenharmony_ciprint(c1);
1224514f5e3Sopenharmony_ciprint(d1);
1234514f5e3Sopenharmony_ciprint(e1);
1244514f5e3Sopenharmony_ciprint(f1);
1254514f5e3Sopenharmony_ciprint(g1);
1264514f5e3Sopenharmony_ciprint(r1);
1274514f5e3Sopenharmony_ciprint(k1.length);
1284514f5e3Sopenharmony_ciprint(k2);
1294514f5e3Sopenharmony_citry {
1304514f5e3Sopenharmony_ci    var sym = Symbol();
1314514f5e3Sopenharmony_ci    a2.split(sym, 0);
1324514f5e3Sopenharmony_ci} catch (e) {
1334514f5e3Sopenharmony_ci    print(e.message);
1344514f5e3Sopenharmony_ci}
1354514f5e3Sopenharmony_ci
1364514f5e3Sopenharmony_civar test1 = "fun123ctionManualChapter123Tip1_352_42342_483297538927943872943_12i2哈哈哈";
1374514f5e3Sopenharmony_civar test2 = test1.split("_");
1384514f5e3Sopenharmony_civar test3 = test2[0];
1394514f5e3Sopenharmony_civar test4 = "1111fun123ctionManualChapter123Tip1"
1404514f5e3Sopenharmony_cilet pos = test4.indexOf(test3);
1414514f5e3Sopenharmony_ciprint(pos);
1424514f5e3Sopenharmony_ci
1434514f5e3Sopenharmony_ciObject.defineProperty(Array.prototype, "1", {
1444514f5e3Sopenharmony_ci    value:37,
1454514f5e3Sopenharmony_ci    writable:false,
1464514f5e3Sopenharmony_ci});
1474514f5e3Sopenharmony_civar test5 = "123_wode2222222222222222_fast_哈哈哈";
1484514f5e3Sopenharmony_civar test6 = "123_wode2222222222222222_fast_hhh";
1494514f5e3Sopenharmony_civar test7 = test5.split("_");
1504514f5e3Sopenharmony_civar test8 = test6.split("_");
1514514f5e3Sopenharmony_ciprint(test7);
1524514f5e3Sopenharmony_ciprint(test8);
1534514f5e3Sopenharmony_ci
1544514f5e3Sopenharmony_civar test9 = "abc"
1554514f5e3Sopenharmony_civar test10 = new Number(4);
1564514f5e3Sopenharmony_citest10[Symbol.split] = RegExp.prototype[Symbol.split];
1574514f5e3Sopenharmony_ciprint(test9.split(test10));
1584514f5e3Sopenharmony_civar test11 = test1.substring(0, 31);
1594514f5e3Sopenharmony_civar test12 = "1111fun123ctionManualChapter123Tip12222"
1604514f5e3Sopenharmony_civar test13 = test12.split(test11);
1614514f5e3Sopenharmony_civar test14 = test12.lastIndexOf(test11);
1624514f5e3Sopenharmony_ciprint(test13);
1634514f5e3Sopenharmony_ciprint(test14);
1644514f5e3Sopenharmony_ci
1654514f5e3Sopenharmony_cilet s = "abaddbdc"
1664514f5e3Sopenharmony_cis.split("")
1674514f5e3Sopenharmony_cilet split = s.split("")
1684514f5e3Sopenharmony_cisplit[0] = "0"
1694514f5e3Sopenharmony_ciprint(split)
1704514f5e3Sopenharmony_ciprint(s.split(""))
1714514f5e3Sopenharmony_cis.split("b")
1724514f5e3Sopenharmony_cisplit = s.split("b")
1734514f5e3Sopenharmony_cisplit[2] = 1
1744514f5e3Sopenharmony_ciprint(split)
1754514f5e3Sopenharmony_ciprint(s.split("b"))
1764514f5e3Sopenharmony_cis = "d的發的給的点点滴滴多"
1774514f5e3Sopenharmony_cis.split("的")
1784514f5e3Sopenharmony_cisplit = s.split("的")
1794514f5e3Sopenharmony_cisplit[2] = 1
1804514f5e3Sopenharmony_ciprint(split)
1814514f5e3Sopenharmony_ciprint(s.split("的"))
1824514f5e3Sopenharmony_ci
1834514f5e3Sopenharmony_cilet newStr = new String("adcdcdccda")
1844514f5e3Sopenharmony_cinewStr.split("d")
1854514f5e3Sopenharmony_cisplit = newStr.split("d")
1864514f5e3Sopenharmony_cisplit[0] = "0"
1874514f5e3Sopenharmony_ciprint(split)
1884514f5e3Sopenharmony_ciprint(newStr.split("d"))
1894514f5e3Sopenharmony_ci
1904514f5e3Sopenharmony_civar Tag = {
1914514f5e3Sopenharmony_ci    t82 : "82"
1924514f5e3Sopenharmony_ci}
1934514f5e3Sopenharmony_civar tag1 = "823".substring(0, 2)
1944514f5e3Sopenharmony_civar val = "val";
1954514f5e3Sopenharmony_civar m = new Map();
1964514f5e3Sopenharmony_cim.set(tag1, val);
1974514f5e3Sopenharmony_cim.forEach((a, b)=>{
1984514f5e3Sopenharmony_ci  print("Tag.t82 == b : ", Tag.t82 == b);
1994514f5e3Sopenharmony_ci})
2004514f5e3Sopenharmony_ci
2014514f5e3Sopenharmony_citry {
2024514f5e3Sopenharmony_ci  "123".padEnd(Math.pow(2, 40))
2034514f5e3Sopenharmony_ci} catch (e) {
2044514f5e3Sopenharmony_ci    print(e)
2054514f5e3Sopenharmony_ci}
2064514f5e3Sopenharmony_ci
2074514f5e3Sopenharmony_ciprint("abc".startsWith("a", Infinity))
2084514f5e3Sopenharmony_ciprint("abc".startsWith("a", -Infinity))
2094514f5e3Sopenharmony_ciprint("abc".endsWith("c", Infinity))
2104514f5e3Sopenharmony_ci
2114514f5e3Sopenharmony_ciconst strings = [
2124514f5e3Sopenharmony_ci    "ab\uD800",
2134514f5e3Sopenharmony_ci    "ab\uD800c",
2144514f5e3Sopenharmony_ci    "\uDFFFab",
2154514f5e3Sopenharmony_ci    "c\uDFFFab",
2164514f5e3Sopenharmony_ci    "abc",
2174514f5e3Sopenharmony_ci    "ab\uD83D\uDE04c",
2184514f5e3Sopenharmony_ci];
2194514f5e3Sopenharmony_ci
2204514f5e3Sopenharmony_cifor (const str of strings) {
2214514f5e3Sopenharmony_ci    print(str.isWellFormed());
2224514f5e3Sopenharmony_ci}
2234514f5e3Sopenharmony_ci
2244514f5e3Sopenharmony_ciconst strings2 = [
2254514f5e3Sopenharmony_ci    "ab\uD800",
2264514f5e3Sopenharmony_ci    "ab\uD800c",
2274514f5e3Sopenharmony_ci    "\uDFFFab",
2284514f5e3Sopenharmony_ci    "c\uDFFFab",
2294514f5e3Sopenharmony_ci    "abc",
2304514f5e3Sopenharmony_ci    "ab\uD83D\uDE04c",
2314514f5e3Sopenharmony_ci];
2324514f5e3Sopenharmony_ci
2334514f5e3Sopenharmony_cifor (const str of strings2) {
2344514f5e3Sopenharmony_ci    print(str.toWellFormed());
2354514f5e3Sopenharmony_ci}
2364514f5e3Sopenharmony_ci
2374514f5e3Sopenharmony_ciconst text_str = "So we beat on, boats against the current, borne back ceaselessly into the past."
2384514f5e3Sopenharmony_ciconst search_str1 = "So we"
2394514f5e3Sopenharmony_ciconst search_str2 = "borne back"
2404514f5e3Sopenharmony_ciprint(text_str.startsWith(search_str1));
2414514f5e3Sopenharmony_ciprint(text_str.startsWith(search_str1, 10));
2424514f5e3Sopenharmony_ciprint(text_str.startsWith(search_str2, 42));
2434514f5e3Sopenharmony_ciprint(text_str.startsWith(search_str1, text_str.length - 1));
2444514f5e3Sopenharmony_ciconst text_str2 = "So we beat on, boats against the current," + " borne back ceaselessly into the past."
2454514f5e3Sopenharmony_ciprint(text_str2.startsWith(search_str1));
2464514f5e3Sopenharmony_ciprint(text_str2.startsWith(search_str1, 10));
2474514f5e3Sopenharmony_ciprint(text_str2.startsWith(search_str2, 42));
2484514f5e3Sopenharmony_ciprint(text_str2.startsWith(search_str1, text_str.length - 1));
2494514f5e3Sopenharmony_ci
2504514f5e3Sopenharmony_ciconst str7 = "测试"
2514514f5e3Sopenharmony_ciconst iter = str7[Symbol.iterator]();
2524514f5e3Sopenharmony_ciprint(iter.next().value);
2534514f5e3Sopenharmony_ciprint(iter.next().value);
2544514f5e3Sopenharmony_ciprint(iter.next().done);
2554514f5e3Sopenharmony_ciprint(iter.next().value);
2564514f5e3Sopenharmony_ci
2574514f5e3Sopenharmony_ciconst str_endsWith1 = 'this is a test for string endsWith!';
2584514f5e3Sopenharmony_ciprint(str_endsWith1.endsWith('string', '25'));    // true
2594514f5e3Sopenharmony_ciprint(str_endsWith1.endsWith('string', 25));      // true
2604514f5e3Sopenharmony_ciprint(str_endsWith1.endsWith('endsWith!', 25));   // false
2614514f5e3Sopenharmony_ciprint(str_endsWith1.endsWith('endsWith!'));       // true
2624514f5e3Sopenharmony_ciprint(str_endsWith1.endsWith('endsWith!', -1));   // false
2634514f5e3Sopenharmony_ciprint(str_endsWith1.endsWith('endsWith!', 100));  // true
2644514f5e3Sopenharmony_ciprint(str_endsWith1.endsWith('string', 25.3));    // true
2654514f5e3Sopenharmony_ci
2664514f5e3Sopenharmony_cilet arr = Array(14);
2674514f5e3Sopenharmony_cilet tree_str = arr + 512;
2684514f5e3Sopenharmony_citree_str.substring(0,arr.length);
2694514f5e3Sopenharmony_ciprint("sub_string test success!");
2704514f5e3Sopenharmony_ci
2714514f5e3Sopenharmony_ciconst v0 = [3.0,-1.5053];
2724514f5e3Sopenharmony_ciconst v4 = v0.join();
2734514f5e3Sopenharmony_ciprint(v4.startsWith(v4,v0))
2744514f5e3Sopenharmony_cilet strFromCodePoint = String.fromCodePoint(49,50,51,0)
2754514f5e3Sopenharmony_ciprint(strFromCodePoint);
2764514f5e3Sopenharmony_ci
2774514f5e3Sopenharmony_ci{
2784514f5e3Sopenharmony_ci    const v1 = [5.101952721978723,-1.2836190437943387,-1.1815850946332814e+308,2.220446049250313e-16,-680.5741773264597,0.8970365641701358,NaN];
2794514f5e3Sopenharmony_ci    function f2(a3, a4, a5) {
2804514f5e3Sopenharmony_ci        return BigInt64Array.bind();
2814514f5e3Sopenharmony_ci    }
2824514f5e3Sopenharmony_ci
2834514f5e3Sopenharmony_ci    const o8 = {
2844514f5e3Sopenharmony_ci        "get": f2,
2854514f5e3Sopenharmony_ci    };
2864514f5e3Sopenharmony_ci    const v10 = new Proxy(v1, o8);
2874514f5e3Sopenharmony_ci    try {
2884514f5e3Sopenharmony_ci        ("n").search(v10)
2894514f5e3Sopenharmony_ci    } catch (err) {
2904514f5e3Sopenharmony_ci        print(err);
2914514f5e3Sopenharmony_ci    }
2924514f5e3Sopenharmony_ci}
2934514f5e3Sopenharmony_ci
2944514f5e3Sopenharmony_ci// startsWith 边界值测试
2954514f5e3Sopenharmony_ciconst textStr = "abcd"
2964514f5e3Sopenharmony_ciconst matchStr = "abcd"
2974514f5e3Sopenharmony_ciconst offset = 0
2984514f5e3Sopenharmony_ci
2994514f5e3Sopenharmony_ci// case offset = 0, match true
3004514f5e3Sopenharmony_ciclass C3 {
3014514f5e3Sopenharmony_ci    constructor() {
3024514f5e3Sopenharmony_ci        let bb = textStr.startsWith(matchStr, offset);
3034514f5e3Sopenharmony_ci        print(bb); // true
3044514f5e3Sopenharmony_ci    }
3054514f5e3Sopenharmony_ci}
3064514f5e3Sopenharmony_ci
3074514f5e3Sopenharmony_cinew C3();
3084514f5e3Sopenharmony_ci
3094514f5e3Sopenharmony_ci// case offset = 1, match false
3104514f5e3Sopenharmony_ciconst offset1 = 1
3114514f5e3Sopenharmony_ci
3124514f5e3Sopenharmony_ciclass C4 {
3134514f5e3Sopenharmony_ci    constructor() {
3144514f5e3Sopenharmony_ci        let flag = textStr.startsWith(matchStr, offset1);
3154514f5e3Sopenharmony_ci        print(flag); // false
3164514f5e3Sopenharmony_ci    }
3174514f5e3Sopenharmony_ci}
3184514f5e3Sopenharmony_ci
3194514f5e3Sopenharmony_cinew C4();
3204514f5e3Sopenharmony_ci
3214514f5e3Sopenharmony_ciprint("abcd汉字".startsWith("abcd"));
3224514f5e3Sopenharmony_ci
3234514f5e3Sopenharmony_ci{
3244514f5e3Sopenharmony_ci    class C2 {
3254514f5e3Sopenharmony_ci        constructor(a4) {
3264514f5e3Sopenharmony_ci            a4(-3, parseFloat, ..."isFrozen");
3274514f5e3Sopenharmony_ci        }
3284514f5e3Sopenharmony_ci    }
3294514f5e3Sopenharmony_ci
3304514f5e3Sopenharmony_ci    try {
3314514f5e3Sopenharmony_ci        new C2(new C2);
3324514f5e3Sopenharmony_ci    } catch (err) {
3334514f5e3Sopenharmony_ci        print(err);
3344514f5e3Sopenharmony_ci    }
3354514f5e3Sopenharmony_ci}
3364514f5e3Sopenharmony_cilet greeting = "          Hello World!          ";
3374514f5e3Sopenharmony_cilet fooStr = "foo     ";
3384514f5e3Sopenharmony_cilet barStr = "     bar";
3394514f5e3Sopenharmony_cilet chinese = "          我,是一个中文句子    我前面有一些空格,我中间有一些空格。     我后面也有一些空格。          ";
3404514f5e3Sopenharmony_ci// test for trimStart()
3414514f5e3Sopenharmony_ciprint(greeting.trimStart());
3424514f5e3Sopenharmony_ciprint(fooStr.trimStart());
3434514f5e3Sopenharmony_ciprint(barStr.trimStart());
3444514f5e3Sopenharmony_ciprint(chinese.trimStart());
3454514f5e3Sopenharmony_ci// test for trimEnd()
3464514f5e3Sopenharmony_ciprint(greeting.trimEnd());
3474514f5e3Sopenharmony_ciprint(fooStr.trimEnd());
3484514f5e3Sopenharmony_ciprint(barStr.trimEnd());
3494514f5e3Sopenharmony_ciprint(chinese.trimEnd());
3504514f5e3Sopenharmony_ci// test for trimLeft()
3514514f5e3Sopenharmony_ciprint(greeting.trimLeft());
3524514f5e3Sopenharmony_ciprint(fooStr.trimLeft());
3534514f5e3Sopenharmony_ciprint(barStr.trimLeft());
3544514f5e3Sopenharmony_ciprint(chinese.trimLeft());
3554514f5e3Sopenharmony_ci// test for trimRight()
3564514f5e3Sopenharmony_ciprint(greeting.trimRight());
3574514f5e3Sopenharmony_ciprint(fooStr.trimRight());
3584514f5e3Sopenharmony_ciprint(barStr.trimRight());
3594514f5e3Sopenharmony_ciprint(chinese.trimRight());
3604514f5e3Sopenharmony_ci
3614514f5e3Sopenharmony_ci// Test case for padStart()
3624514f5e3Sopenharmony_cilet start_str = "abc";
3634514f5e3Sopenharmony_ciprint(start_str.padStart(10, "123"));
3644514f5e3Sopenharmony_ciprint(start_str.padStart(5.666, "123"));
3654514f5e3Sopenharmony_ciprint(start_str.padStart(NaN, "123"));
3664514f5e3Sopenharmony_ciprint(start_str.padStart(-Infinity, "123"));
3674514f5e3Sopenharmony_ciprint(start_str.padStart(0, "123"));
3684514f5e3Sopenharmony_ciprint(start_str.padStart(10, ""));
3694514f5e3Sopenharmony_ci
3704514f5e3Sopenharmony_ci// test for padEnd()
3714514f5e3Sopenharmony_ciprint("abc".padEnd(5, 'abc'));
3724514f5e3Sopenharmony_ciprint('abc'.padEnd(undefined, 'def'));
3734514f5e3Sopenharmony_ciprint('abc'.padEnd(null, 'def') );
3744514f5e3Sopenharmony_ciprint('abc'.padEnd(NaN, 'def') );
3754514f5e3Sopenharmony_ciprint('abc'.padEnd(-Infinity, 'def') );
3764514f5e3Sopenharmony_ciprint('abc'.padEnd(0, 'def') );
3774514f5e3Sopenharmony_ciprint('abc'.padEnd(-1, 'def') );
3784514f5e3Sopenharmony_ciprint('abc'.padEnd(5, ''))
3794514f5e3Sopenharmony_ci
3804514f5e3Sopenharmony_cilet arr1 = [0,0,0,0,0];
3814514f5e3Sopenharmony_ciprint(arr1.toString("a"));
3824514f5e3Sopenharmony_ciconst abc_str = "abc";
3834514f5e3Sopenharmony_ciconst negativeHeapNumber = -1 * 2**32;
3844514f5e3Sopenharmony_ciconst positiveHeapNumber = 2**32;
3854514f5e3Sopenharmony_ciprint(abc_str.substr(positiveHeapNumber));
3864514f5e3Sopenharmony_ciprint(abc_str.substr(negativeHeapNumber, positiveHeapNumber));
3874514f5e3Sopenharmony_ciprint(abc_str.substr(-abc_str.length, positiveHeapNumber));
3884514f5e3Sopenharmony_ciprint(abc_str.substr(0, positiveHeapNumber));
3894514f5e3Sopenharmony_ciprint(abc_str.substr(-2, positiveHeapNumber));
3904514f5e3Sopenharmony_ciprint(abc_str.substr(-1, positiveHeapNumber));
3914514f5e3Sopenharmony_ci
3924514f5e3Sopenharmony_ci{
3934514f5e3Sopenharmony_ci    function f(n) { return "cba".endsWith("a", n); }
3944514f5e3Sopenharmony_ci    print(f());
3954514f5e3Sopenharmony_ci    print(f(4294967296));
3964514f5e3Sopenharmony_ci}
3974514f5e3Sopenharmony_ci
3984514f5e3Sopenharmony_ci[
3994514f5e3Sopenharmony_ci  ['a', 'b', 'c'],
4004514f5e3Sopenharmony_ci  'abc',
4014514f5e3Sopenharmony_ci  new Uint8Array([8, 9, 10])
4024514f5e3Sopenharmony_ci].forEach((v) => {
4034514f5e3Sopenharmony_ci    // Test the limit value.
4044514f5e3Sopenharmony_ci    print(v.at(-Infinity) == undefined);
4054514f5e3Sopenharmony_ci});
4064514f5e3Sopenharmony_ci
4074514f5e3Sopenharmony_ciconst arr_at = new Uint8Array([8, 9, 10]);
4084514f5e3Sopenharmony_ciArkTools.arrayBufferDetach(arr_at.buffer);
4094514f5e3Sopenharmony_citry {
4104514f5e3Sopenharmony_ci    arr_at.at(0);
4114514f5e3Sopenharmony_ci} catch (e) {
4124514f5e3Sopenharmony_ci    print(e instanceof TypeError)
4134514f5e3Sopenharmony_ci}
4144514f5e3Sopenharmony_ci
4154514f5e3Sopenharmony_ciprint('trimStart' == String.prototype.trimLeft.name);
4164514f5e3Sopenharmony_ciprint('trimEnd' == String.prototype.trimRight.name);
4174514f5e3Sopenharmony_ci
4184514f5e3Sopenharmony_ci{
4194514f5e3Sopenharmony_ci    const abc_str = "abc";
4204514f5e3Sopenharmony_ci    const negativeHeapNumber = -1 * 2**32;
4214514f5e3Sopenharmony_ci    const positiveHeapNumber = 2**32;
4224514f5e3Sopenharmony_ci    print(abc_str.substring(positiveHeapNumber))
4234514f5e3Sopenharmony_ci    print(abc_str.substring(negativeHeapNumber, positiveHeapNumber))
4244514f5e3Sopenharmony_ci    print(abc_str.substring(-abc_str.length, positiveHeapNumber))
4254514f5e3Sopenharmony_ci    print(abc_str.substring(0, positiveHeapNumber))
4264514f5e3Sopenharmony_ci    print(abc_str.substring(-2, positiveHeapNumber))
4274514f5e3Sopenharmony_ci    print(abc_str.substring(-1, positiveHeapNumber))
4284514f5e3Sopenharmony_ci}
4294514f5e3Sopenharmony_ci
4304514f5e3Sopenharmony_ci{
4314514f5e3Sopenharmony_ci    const localestr = "island"
4324514f5e3Sopenharmony_ci    print(localestr.toLocaleUpperCase());
4334514f5e3Sopenharmony_ci    print(localestr.toLocaleUpperCase('TR'));
4344514f5e3Sopenharmony_ci}
4354514f5e3Sopenharmony_ci
4364514f5e3Sopenharmony_ci// Test empty string search an empty string(Array.tostring).
4374514f5e3Sopenharmony_cilet indexOf = String.prototype.indexOf;
4384514f5e3Sopenharmony_ciprint(0 == "".indexOf([]));
4394514f5e3Sopenharmony_ci
4404514f5e3Sopenharmony_ciObject.defineProperty(RegExp,"name",{value:1});
4414514f5e3Sopenharmony_ciRegExp.toString();
4424514f5e3Sopenharmony_ciprint("native Func toString test Success!")
4434514f5e3Sopenharmony_ci
4444514f5e3Sopenharmony_ci
4454514f5e3Sopenharmony_ciprint("================Test unroll char copy================");
4464514f5e3Sopenharmony_cilet srcutf8 = "1234567812345678123456781234567812345678123456781234567812345678";  // bytes == 64
4474514f5e3Sopenharmony_cilet srcutf16 = "一二三四五六七八一二三四五六七八一二三四五六七八一二三四五六七八"; // bytes == 64
4484514f5e3Sopenharmony_ci
4494514f5e3Sopenharmony_ciprint(srcutf8.slice(0, 0)); // bytes == 0
4504514f5e3Sopenharmony_ciprint(srcutf8.slice(64, 64)); // bytes == 0
4514514f5e3Sopenharmony_ciprint(srcutf8.slice(0, 6)); // bytes < 8
4524514f5e3Sopenharmony_ciprint(srcutf8.slice(0, 8)); // bytes == 8
4534514f5e3Sopenharmony_ciprint(srcutf8.slice(0, 14)); // bytes < 16
4544514f5e3Sopenharmony_ciprint(srcutf8.slice(0, 16)); // bytes == 16
4554514f5e3Sopenharmony_ciprint(srcutf8.slice(0, 21)); // bytes > 16 && bytes % 16 != 0
4564514f5e3Sopenharmony_ciprint(srcutf8.slice(0, 24)); // bytes == 3 * 8
4574514f5e3Sopenharmony_ciprint(srcutf8.slice(0, 26)); // bytes > 16 && bytes % 16 > 8 && bytes % 8 > 0
4584514f5e3Sopenharmony_ciprint(srcutf8.slice(0, 32)); // bytes == 2 * 16
4594514f5e3Sopenharmony_ciprint(srcutf8.slice(0, 50)); // bytes > 16 && bytes % 16 != 0
4604514f5e3Sopenharmony_ciprint(srcutf8.slice(0, 56)); // bytes == 7 * 8
4614514f5e3Sopenharmony_ciprint(srcutf8.slice(0, 64)); // bytes == 4 * 16
4624514f5e3Sopenharmony_ci
4634514f5e3Sopenharmony_ciprint(srcutf16.slice(0, 0)); // bytes == 0
4644514f5e3Sopenharmony_ciprint(srcutf16.slice(32, 32)); // bytes == 0
4654514f5e3Sopenharmony_ciprint(srcutf16.slice(0, 3)); // bytes < 8
4664514f5e3Sopenharmony_ciprint(srcutf16.slice(0, 4)); // bytes == 8
4674514f5e3Sopenharmony_ciprint(srcutf16.slice(0, 7)); // bytes < 16
4684514f5e3Sopenharmony_ciprint(srcutf16.slice(0, 8)); // bytes == 16
4694514f5e3Sopenharmony_ciprint(srcutf16.slice(0, 10)); // bytes > 16 && bytes % 16 != 0
4704514f5e3Sopenharmony_ciprint(srcutf16.slice(0, 12)); // bytes == 3 * 8
4714514f5e3Sopenharmony_ciprint(srcutf16.slice(0, 13)); // bytes > 16 && bytes % 16 > 8 && bytes % 8 > 0
4724514f5e3Sopenharmony_ciprint(srcutf16.slice(0, 16)); // bytes == 2 * 16
4734514f5e3Sopenharmony_ciprint(srcutf16.slice(0, 25)); // bytes > 16 && bytes % 16 != 0
4744514f5e3Sopenharmony_ciprint(srcutf16.slice(0, 28)); // bytes == 7 * 8
4754514f5e3Sopenharmony_ciprint(srcutf16.slice(0, 32)); // bytes == 4 * 16
4764514f5e3Sopenharmony_ci
4774514f5e3Sopenharmony_civar str11;
4784514f5e3Sopenharmony_civar result11;
4794514f5e3Sopenharmony_civar re11 = /[Cz]/;
4804514f5e3Sopenharmony_civar re12 = /([Cz])/;
4814514f5e3Sopenharmony_ci
4824514f5e3Sopenharmony_cifunction createHaystack() {
4834514f5e3Sopenharmony_ci    let s = "abCdefgz";
4844514f5e3Sopenharmony_ci    for (let i = 0; i < 3; i++) s += s;
4854514f5e3Sopenharmony_ci    return s;
4864514f5e3Sopenharmony_ci}
4874514f5e3Sopenharmony_ci
4884514f5e3Sopenharmony_cifunction SimpleSplit2() {
4894514f5e3Sopenharmony_ci  result11 = str11.split(re11);
4904514f5e3Sopenharmony_ci  if (result11.length != 17) {
4914514f5e3Sopenharmony_ci      print("fail!");
4924514f5e3Sopenharmony_ci  }
4934514f5e3Sopenharmony_ci}
4944514f5e3Sopenharmony_ci
4954514f5e3Sopenharmony_cifunction Function1Replace(re) {
4964514f5e3Sopenharmony_ci  result11 = re[Symbol.replace](str11, String);
4974514f5e3Sopenharmony_ci  if (result11 != "abCdefgzabCdefgzabCdefgzabCdefgzabCdefgzabCdefgzabCdefgzabCdefgz") {
4984514f5e3Sopenharmony_ci      print("fail!");
4994514f5e3Sopenharmony_ci  }
5004514f5e3Sopenharmony_ci}
5014514f5e3Sopenharmony_ci
5024514f5e3Sopenharmony_cistr11 = createHaystack();
5034514f5e3Sopenharmony_ci
5044514f5e3Sopenharmony_cifunction SimpleMatch1() {
5054514f5e3Sopenharmony_ci  result11 = str11.match(re11);
5064514f5e3Sopenharmony_ci  if (result11[0] != 'C') {
5074514f5e3Sopenharmony_ci      print("fail!");
5084514f5e3Sopenharmony_ci  }
5094514f5e3Sopenharmony_ci}
5104514f5e3Sopenharmony_ci
5114514f5e3Sopenharmony_cifor (let i = 0; i < 10; i++) {
5124514f5e3Sopenharmony_ci    SimpleMatch1();
5134514f5e3Sopenharmony_ci}
5144514f5e3Sopenharmony_ci
5154514f5e3Sopenharmony_cifor (let i = 0; i < 10; i++) {
5164514f5e3Sopenharmony_ci    SimpleSplit2();
5174514f5e3Sopenharmony_ci}
5184514f5e3Sopenharmony_ci
5194514f5e3Sopenharmony_cifor (let i = 0; i < 100; i++) {
5204514f5e3Sopenharmony_ci    Function1Replace(re12);
5214514f5e3Sopenharmony_ci}
522