14514f5e3Sopenharmony_ci/*
24514f5e3Sopenharmony_ci * Copyright (c) 2022 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_cideclare function print(str: any): string;
164514f5e3Sopenharmony_cideclare var ArkTools:any;
174514f5e3Sopenharmony_cifunction foo() {
184514f5e3Sopenharmony_ci    return "pass";
194514f5e3Sopenharmony_ci}
204514f5e3Sopenharmony_ci
214514f5e3Sopenharmony_cifunction foo1(a: any) {
224514f5e3Sopenharmony_ci    return a + 1;
234514f5e3Sopenharmony_ci}
244514f5e3Sopenharmony_ci
254514f5e3Sopenharmony_cifunction foo2(a: any, b: any) {
264514f5e3Sopenharmony_ci    return a + b;
274514f5e3Sopenharmony_ci}
284514f5e3Sopenharmony_ci
294514f5e3Sopenharmony_cifunction foo3(a: any, b: any, c: any) {
304514f5e3Sopenharmony_ci    return a + b + c;
314514f5e3Sopenharmony_ci}
324514f5e3Sopenharmony_ci
334514f5e3Sopenharmony_cifunction foo4(a: any, b: any, c: any, d: any) {
344514f5e3Sopenharmony_ci    return a + b + c + d;
354514f5e3Sopenharmony_ci}
364514f5e3Sopenharmony_ci
374514f5e3Sopenharmony_ciprint(foo());
384514f5e3Sopenharmony_ciprint(foo1(1));
394514f5e3Sopenharmony_ciprint(foo1(1));
404514f5e3Sopenharmony_ciprint(foo1(1));
414514f5e3Sopenharmony_ciprint(foo2(1, 2));
424514f5e3Sopenharmony_ciprint(foo3(1, 2, 3));
434514f5e3Sopenharmony_ciprint(foo4(1, 2, 3, 4));
444514f5e3Sopenharmony_ci
454514f5e3Sopenharmony_ciclass A {
464514f5e3Sopenharmony_ci    public mode: number = 1;
474514f5e3Sopenharmony_ci
484514f5e3Sopenharmony_ci    constructor(dt: number) {
494514f5e3Sopenharmony_ci        print(dt);
504514f5e3Sopenharmony_ci        print(new.target.name);
514514f5e3Sopenharmony_ci        const size = 50;
524514f5e3Sopenharmony_ci        this.mode = 4;
534514f5e3Sopenharmony_ci    }
544514f5e3Sopenharmony_ci
554514f5e3Sopenharmony_ci    update (dt: number, dt1: number): void {
564514f5e3Sopenharmony_ci        print(dt);
574514f5e3Sopenharmony_ci        print(dt1);
584514f5e3Sopenharmony_ci    }
594514f5e3Sopenharmony_ci}
604514f5e3Sopenharmony_ci
614514f5e3Sopenharmony_ciclass B {
624514f5e3Sopenharmony_ci    public mode: number = 1;
634514f5e3Sopenharmony_ci
644514f5e3Sopenharmony_ci    constructor(dt: number, dt1: number, dt2: number) {
654514f5e3Sopenharmony_ci        print(dt);
664514f5e3Sopenharmony_ci        print(dt1);
674514f5e3Sopenharmony_ci        print(dt2);
684514f5e3Sopenharmony_ci        print(new.target.name);
694514f5e3Sopenharmony_ci        const size = 50;
704514f5e3Sopenharmony_ci        this.mode = 4;
714514f5e3Sopenharmony_ci    }
724514f5e3Sopenharmony_ci}
734514f5e3Sopenharmony_ci
744514f5e3Sopenharmony_ciclass C {
754514f5e3Sopenharmony_ci    public mode: number = 1;
764514f5e3Sopenharmony_ci
774514f5e3Sopenharmony_ci    constructor(dt: number, dt1: number, dt2: number, dt3: number, dt4: number, dt5: number, dt6: number, dt7: number) {
784514f5e3Sopenharmony_ci        print(new.target.name);
794514f5e3Sopenharmony_ci        print(dt);
804514f5e3Sopenharmony_ci        print(dt1);
814514f5e3Sopenharmony_ci        print(dt4);
824514f5e3Sopenharmony_ci        print(dt6);
834514f5e3Sopenharmony_ci        print(dt7);
844514f5e3Sopenharmony_ci        const size = 50;
854514f5e3Sopenharmony_ci        this.mode = 4;
864514f5e3Sopenharmony_ci    }
874514f5e3Sopenharmony_ci}
884514f5e3Sopenharmony_ci
894514f5e3Sopenharmony_cifunction funcv(value: number, value1: number, value2: number, value3: number, value4: number, value5: number, value6: number, value7: number): number {
904514f5e3Sopenharmony_ci    print(value);
914514f5e3Sopenharmony_ci    print(value1);
924514f5e3Sopenharmony_ci    print(value2);
934514f5e3Sopenharmony_ci    print(value3);
944514f5e3Sopenharmony_ci    print(value4);
954514f5e3Sopenharmony_ci    print(value5);
964514f5e3Sopenharmony_ci    print(value6);
974514f5e3Sopenharmony_ci    print(value7);
984514f5e3Sopenharmony_ci    return 100;
994514f5e3Sopenharmony_ci}
1004514f5e3Sopenharmony_ci
1014514f5e3Sopenharmony_cifunction func0(): number {
1024514f5e3Sopenharmony_ci    return 110;
1034514f5e3Sopenharmony_ci}
1044514f5e3Sopenharmony_ci
1054514f5e3Sopenharmony_cifunction func1(value: number): number {
1064514f5e3Sopenharmony_ci    print(value);
1074514f5e3Sopenharmony_ci    return value;
1084514f5e3Sopenharmony_ci}
1094514f5e3Sopenharmony_ci
1104514f5e3Sopenharmony_cifunction func2(value: number, value1: number): number {
1114514f5e3Sopenharmony_ci    print(value);
1124514f5e3Sopenharmony_ci    print(value1);
1134514f5e3Sopenharmony_ci    return value;
1144514f5e3Sopenharmony_ci}
1154514f5e3Sopenharmony_ci
1164514f5e3Sopenharmony_cifunction func3(value: number, value1: number, value2: number): number {
1174514f5e3Sopenharmony_ci    print(value);
1184514f5e3Sopenharmony_ci    print(value1);
1194514f5e3Sopenharmony_ci    print(value2);
1204514f5e3Sopenharmony_ci    func1(value);
1214514f5e3Sopenharmony_ci    return value;
1224514f5e3Sopenharmony_ci}
1234514f5e3Sopenharmony_ci
1244514f5e3Sopenharmony_cifunction func4(value: number, value1: number, value2: number, value3: number): number {
1254514f5e3Sopenharmony_ci    print(value);
1264514f5e3Sopenharmony_ci    print(value1);
1274514f5e3Sopenharmony_ci    print(value2);
1284514f5e3Sopenharmony_ci    print(value3);
1294514f5e3Sopenharmony_ci    return value;
1304514f5e3Sopenharmony_ci}
1314514f5e3Sopenharmony_ci
1324514f5e3Sopenharmony_cifunction testNewTarget(value: number): number {
1334514f5e3Sopenharmony_ci    print(new.target.name);
1344514f5e3Sopenharmony_ci    return value;
1354514f5e3Sopenharmony_ci}
1364514f5e3Sopenharmony_civar systems: A = new A(1);
1374514f5e3Sopenharmony_civar systems1: B = new B(2, 3);
1384514f5e3Sopenharmony_civar systems2: C = new C(3, 4, 5, 6, 7, 8);
1394514f5e3Sopenharmony_ciprint(func0());
1404514f5e3Sopenharmony_cifunc1();
1414514f5e3Sopenharmony_cifunc2(1);
1424514f5e3Sopenharmony_cifunc3("mytest", 2);
1434514f5e3Sopenharmony_cifunc4(3, 4, 5);
1444514f5e3Sopenharmony_cifuncv(6, 7 , 8, 9);
1454514f5e3Sopenharmony_cisystems.update(4);
1464514f5e3Sopenharmony_civar k = new testNewTarget(1);
1474514f5e3Sopenharmony_ci
1484514f5e3Sopenharmony_cifunction funcAsm(value: number, value1: number, value2: number): number {
1494514f5e3Sopenharmony_ci    print(value);
1504514f5e3Sopenharmony_ci    print(value1);
1514514f5e3Sopenharmony_ci    print(value2);
1524514f5e3Sopenharmony_ci    func2(value1, value2);
1534514f5e3Sopenharmony_ci    func3(value1, value2);
1544514f5e3Sopenharmony_ci    func4(value1);
1554514f5e3Sopenharmony_ci    funcv(value, value1, value2, value);
1564514f5e3Sopenharmony_ci    var s: A = new A(1, 4);
1574514f5e3Sopenharmony_ci    var s1: B = new B(2, 3);
1584514f5e3Sopenharmony_ci    var s2: C = new C(3, 4, 5, 6, 7, 8);
1594514f5e3Sopenharmony_ci    var s3: C = new C(3, 4, 5, 6, 7, 8, 9, 10);
1604514f5e3Sopenharmony_ci    return value;
1614514f5e3Sopenharmony_ci}
1624514f5e3Sopenharmony_ciArkTools.removeAOTFlag(funcAsm);
1634514f5e3Sopenharmony_cifuncAsm(1, 2);
1644514f5e3Sopenharmony_ci
1654514f5e3Sopenharmony_ciclass TestCallThis0 {
1664514f5e3Sopenharmony_ci    foo(arg?: any) {
1674514f5e3Sopenharmony_ci        print(arg);
1684514f5e3Sopenharmony_ci    }
1694514f5e3Sopenharmony_ci}
1704514f5e3Sopenharmony_ci
1714514f5e3Sopenharmony_cifunction testCallThis0() {
1724514f5e3Sopenharmony_ci    let t = new TestCallThis0();
1734514f5e3Sopenharmony_ci    t.foo();
1744514f5e3Sopenharmony_ci}
1754514f5e3Sopenharmony_ci
1764514f5e3Sopenharmony_citestCallThis0();
1774514f5e3Sopenharmony_ci
1784514f5e3Sopenharmony_ciclass AA {
1794514f5e3Sopenharmony_ci    constructor(owningView, propertyName) {
1804514f5e3Sopenharmony_ci        owningView.id__();
1814514f5e3Sopenharmony_ci    }
1824514f5e3Sopenharmony_ci    id__() {
1834514f5e3Sopenharmony_ci        return this.id_;
1844514f5e3Sopenharmony_ci    }
1854514f5e3Sopenharmony_ci}
1864514f5e3Sopenharmony_ci
1874514f5e3Sopenharmony_ciclass BB extends AA {
1884514f5e3Sopenharmony_ci}
1894514f5e3Sopenharmony_ci
1904514f5e3Sopenharmony_ciclass Index {
1914514f5e3Sopenharmony_ci    constructor() {
1924514f5e3Sopenharmony_ci        // super(parent, __localStorage, elmtId);
1934514f5e3Sopenharmony_ci        this.__message = new BB(this, 777);
1944514f5e3Sopenharmony_ci        this.__showLazy = new BB(this, 888);
1954514f5e3Sopenharmony_ci        this.__showNoLazy = new BB(this, 999);
1964514f5e3Sopenharmony_ci    }
1974514f5e3Sopenharmony_ci    id__() {
1984514f5e3Sopenharmony_ci        return this.id_;
1994514f5e3Sopenharmony_ci    }
2004514f5e3Sopenharmony_ci}
2014514f5e3Sopenharmony_ci
2024514f5e3Sopenharmony_cinew Index()
2034514f5e3Sopenharmony_ci
2044514f5e3Sopenharmony_cifunction fooo(a, b, ...args) {
2054514f5e3Sopenharmony_ci    arguments.length;
2064514f5e3Sopenharmony_ci}
2074514f5e3Sopenharmony_ci
2084514f5e3Sopenharmony_cifooo(1);
2094514f5e3Sopenharmony_cifooo(1, 2);
2104514f5e3Sopenharmony_cifooo(1, 2, 3);
2114514f5e3Sopenharmony_cifooo(1, 2, 3, 4, 5);
2124514f5e3Sopenharmony_ci
2134514f5e3Sopenharmony_ciasync function f206(a207, a208, a209) {
2144514f5e3Sopenharmony_ci    let v210;
2154514f5e3Sopenharmony_ci    try {v210 = a208(a207, a209, 2); } catch (e) { print(e instanceof TypeError) }
2164514f5e3Sopenharmony_ci    await v210;
2174514f5e3Sopenharmony_ci    return v210;
2184514f5e3Sopenharmony_ci}
2194514f5e3Sopenharmony_ci// @ts-ignore
2204514f5e3Sopenharmony_cif206(1, f206);
221