1/* 2 * Copyright (c) 2023 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16declare function print(arg:any):string; 17 18class A{} 19 20function testLiteralArray() { 21 let array:A[] = [undefined]; 22 for (let i = 0; i < array.length; i++) { 23 print(array[i]===undefined); 24 } 25} 26 27testLiteralArray(); 28 29function testLargeHolyArray() { 30 let arrayTest = new Array(10000); 31 print(arrayTest[9] === undefined); 32} 33 34testLargeHolyArray(); 35 36function testHolyArray() { 37 let arrayTest = new Array(10); 38 print(arrayTest[9] === undefined); 39} 40testHolyArray(); 41 42function testStringIndex() { 43 class A { 44 constructor() { 45 var gotoFn = { 46 0: {} 47 }; 48 49 this.gotoFn = gotoFn; 50 } 51 52 search(string) { 53 var state = 0; 54 var results = []; 55 for (var i=0; i<string.length; i++) { 56 var l = string[i]; 57 if (!(l in this.gotoFn[state])) { 58 continue; 59 } 60 state = this.gotoFn[state][l]; 61 } 62 63 return results; 64 }; 65 } 66 67 68 let words = "" 69 for (let i = 0; i < 100; i++) { 70 words += "should find keyword" + i + " at position " + i + "and" 71 } 72 let ac = new A(); 73 for (let i = 0; i < 100; i++) { 74 ac.search(words) 75 } 76} 77testStringIndex(); 78