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