1/* 2 * Copyright (c) 2024 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(str:any):string; 17declare var ArkTools:any; 18var b:Boolean = new Boolean(2); 19print(b); 20 21var n:Number = new Number(123); 22print(n); 23 24var o:Object = new Object("newobj"); 25print(o); 26 27var a:Array<number> = new Array(10); 28print(a.length); 29 30class TClass { 31 dd: number; 32 33 div(v1: number[]): number { 34 return 1.0 / v1[0]; 35 } 36 constructor(p1: number[]) { 37 let d = this.div(p1); 38 this.dd = d / 1.0; 39 } 40} 41 42let p1: number[] = [-10, 10, -10]; 43new TClass(p1); 44 45function foo() { 46 print(new.target.name); 47 return "pass"; 48} 49 50function fun() { 51 return "pass"; 52} 53 54function foo1(a: any) { 55 print(new.target.name); 56 return a; 57} 58 59function func1(value: number): number { 60 print(new.target.name); 61 print(value); 62 return value; 63} 64 65function funcv(value: number, value1: number, value2: number, value3: number, value4: number, value5: number, value6: number, value7: number): number { 66 print(new.target.name); 67 print(value); 68 print(value1); 69 print(value2); 70 print(value3); 71 print(value4); 72 return 100; 73} 74 75class A { 76 public mode: number = 1; 77 78 constructor() { 79 print("A:constructor!"); 80 print(new.target.name); 81 const size = 50; 82 this.mode = 4; 83 } 84 85 update (): void { 86 print(new.target); 87 print("A update"); 88 } 89} 90 91class D extends A { 92 public len: number = 1; 93 94 constructor() { 95 super(); 96 super.update(); 97 print("D:constructor!"); 98 print(new.target.name); 99 const size = 50; 100 this.len = 10; 101 } 102} 103 104class B { 105 public mode: number = 1; 106 107 constructor(dt: number, dt1: number, dt2: number) { 108 print("B:constructor!"); 109 print(dt); 110 print(dt1); 111 print(new.target.name); 112 const size = 50; 113 this.mode = 4; 114 } 115 116 update (dt: number, dt1: number): void { 117 print(new.target); 118 this.mode = dt1; 119 print(dt); 120 } 121} 122 123class C extends B { 124 public color: number = 5; 125 126 constructor(dt: number, dt1: number, dt2: number) { 127 super(dt, dt1, dt2); 128 super.update(dt, dt1); 129 print("C:constructor!"); 130 print(new.target.name); 131 this.color = dt2; 132 } 133} 134 135 136function funcAsm(value: number, value1: number, value2: number): number { 137 print(new.target.name); 138 print(value); 139 print(value1); 140 var s: A = new A(1, 4); 141 var s1: B = new B(2, 3); 142 return value; 143} 144 145 146function Parent(name: string): void{ 147 print(new.target); 148 this.name = name; 149 this.arr = [1,2,3]; 150} 151 152// 2 153function Child(name: string, age: number): void { 154 print(new.target.name); 155 Parent.call(this, name) 156 this.age = age; 157} 158 159var systems: A = new A(1); 160var systems1: B = new B(2, 3); 161var systems1: D = new D(); 162var systems2: C = new C(4, 5); 163new foo(); 164new foo1(new Boolean(2)); 165new func1(1); 166new funcAsm(4, 5, 6); 167new funcv(0, 1, 2, 3, 4, 5, 6, 7); 168new funcv(0, 1, 2, 3, 4, 5); 169new Child("jjj", 15); 170print(ArkTools.isAOTCompiled(fun)); 171new fun(); 172print(ArkTools.isAOTCompiled(fun)); 173print(ArkTools.isAOTCompiled(foo)); 174print(ArkTools.isAOTCompiled(foo1)); 175print(ArkTools.isAOTCompiled(funcAsm)); 176print(ArkTools.isAOTCompiled(funcv)); 177print(ArkTools.isAOTCompiled(Child)); 178print(ArkTools.isAOTCompiled(Parent)); 179print(ArkTools.isAOTCompiled(A)); 180print(ArkTools.isAOTCompiled(D)); 181print(ArkTools.isAOTCompiled(C)); 182print(ArkTools.isAOTCompiled(D)); 183