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