• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (c) 2022 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 */
15declare function print(str: any): string;
16declare var ArkTools:any;
17function foo() {
18    return "pass";
19}
20
21function foo1(a: any) {
22    return a + 1;
23}
24
25function foo2(a: any, b: any) {
26    return a + b;
27}
28
29function foo3(a: any, b: any, c: any) {
30    return a + b + c;
31}
32
33function foo4(a: any, b: any, c: any, d: any) {
34    return a + b + c + d;
35}
36
37print(foo());
38print(foo1(1));
39print(foo1(1));
40print(foo1(1));
41print(foo2(1, 2));
42print(foo3(1, 2, 3));
43print(foo4(1, 2, 3, 4));
44
45class A {
46    public mode: number = 1;
47
48    constructor(dt: number) {
49        print(dt);
50        print(new.target.name);
51        const size = 50;
52        this.mode = 4;
53    }
54
55    update (dt: number, dt1: number): void {
56        print(dt);
57        print(dt1);
58    }
59}
60
61class B {
62    public mode: number = 1;
63
64    constructor(dt: number, dt1: number, dt2: number) {
65        print(dt);
66        print(dt1);
67        print(dt2);
68        print(new.target.name);
69        const size = 50;
70        this.mode = 4;
71    }
72}
73
74class C {
75    public mode: number = 1;
76
77    constructor(dt: number, dt1: number, dt2: number, dt3: number, dt4: number, dt5: number, dt6: number, dt7: number) {
78        print(new.target.name);
79        print(dt);
80        print(dt1);
81        print(dt4);
82        print(dt6);
83        print(dt7);
84        const size = 50;
85        this.mode = 4;
86    }
87}
88
89function funcv(value: number, value1: number, value2: number, value3: number, value4: number, value5: number, value6: number, value7: number): number {
90    print(value);
91    print(value1);
92    print(value2);
93    print(value3);
94    print(value4);
95    print(value5);
96    print(value6);
97    print(value7);
98    return 100;
99}
100
101function func0(): number {
102    return 110;
103}
104
105function func1(value: number): number {
106    print(value);
107    return value;
108}
109
110function func2(value: number, value1: number): number {
111    print(value);
112    print(value1);
113    return value;
114}
115
116function func3(value: number, value1: number, value2: number): number {
117    print(value);
118    print(value1);
119    print(value2);
120    func1(value);
121    return value;
122}
123
124function func4(value: number, value1: number, value2: number, value3: number): number {
125    print(value);
126    print(value1);
127    print(value2);
128    print(value3);
129    return value;
130}
131
132function testNewTarget(value: number): number {
133    print(new.target.name);
134    return value;
135}
136var systems: A = new A(1);
137var systems1: B = new B(2, 3);
138var systems2: C = new C(3, 4, 5, 6, 7, 8);
139print(func0());
140func1();
141func2(1);
142func3("mytest", 2);
143func4(3, 4, 5);
144funcv(6, 7 , 8, 9);
145systems.update(4);
146var k = new testNewTarget(1);
147
148function funcAsm(value: number, value1: number, value2: number): number {
149    print(value);
150    print(value1);
151    print(value2);
152    func2(value1, value2);
153    func3(value1, value2);
154    func4(value1);
155    funcv(value, value1, value2, value);
156    var s: A = new A(1, 4);
157    var s1: B = new B(2, 3);
158    var s2: C = new C(3, 4, 5, 6, 7, 8);
159    var s3: C = new C(3, 4, 5, 6, 7, 8, 9, 10);
160    return value;
161}
162ArkTools.removeAOTFlag(funcAsm);
163funcAsm(1, 2);
164
165class TestCallThis0 {
166    foo(arg?: any) {
167        print(arg);
168    }
169}
170
171function testCallThis0() {
172    let t = new TestCallThis0();
173    t.foo();
174}
175
176testCallThis0();
177