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 16var o = { 17 "foo": function () { 18 var number0 = 1; 19 var string0 = "helloworld"; 20 var boolean0 = false; 21 var obj0 = { 22 "key0": "value0", 23 "key1": 100 24 }; 25 var undefined0 = undefined; 26 var null0 = null; 27 var symbol0 = Symbol("symbol0"); 28 function function0() { 29 var test = 0; 30 } 31 var date0 = new Date('December 17, 1995 03:24:00'); 32 var map0 = new Map(); 33 var set0 = new Set(); 34 let array0 = ['Apple', 'Banana']; 35 function* generator0() { 36 let aa = 0; 37 var a1 = 100; 38 yield 1; 39 yield 2; 40 yield 3; 41 } 42 var regexp0 = /^\d+\.\d+$/i; 43 var arraybuffer0 = new ArrayBuffer(24); 44 var uint8array0 = new Uint8Array(arraybuffer0); 45 const dataview0 = new DataView(arraybuffer0, 0); 46 var bigint0 = BigInt(999n); 47 var typedarray0 = new Uint8Array(); 48 var sharedarraybuffer0 = new SharedArrayBuffer(32); 49 var iterator0 = string0[Symbol.iterator]; 50 var weakref0 = new WeakRef(obj0); 51 52 var set1 = new Set(); 53 set1.add(number0); 54 var set2 = new Set(string0); 55 var set3 = new Set(); 56 set3.add(obj0); 57 var set4 = new Set(undefined0); 58 var set5 = new Set(array0); 59 var set6 = new Set(); 60 var set7 = new Set(); 61 var set8 = new Set(); 62 set8.add(generator0); 63 var set9 = new Set(); 64 set9.add(regexp0); 65 var set10 = new Set(); 66 set10.add(arraybuffer0); 67 var set11 = new Set(); 68 set11.add(uint8array0); 69 var set12 = new Set(); 70 set12.add(dataview0); 71 var set13 = new Set(); 72 set13.add(function0); 73 var set14 = set0; 74 var set15 = new Set(); 75 set15.add(0); 76 set15.add("hello"); 77 set15.add(obj0); 78 set15.add(number0); 79 var set16 = new Set(); 80 set16.add(map0); 81 var set17 = new Set(); 82 set17.add(bigint0); 83 var set18 = new Set(); 84 set18.add(boolean0); 85 var set19 = new Set(set0); 86 87 var number1 = 65535; 88 var number2 = 5e-324; 89 var number3 = 10 ** 10; 90 var number4 = 0x1ffffffffff; 91 var number5 = 0b11111111111111; 92 var number6 = new Number(bigint0); 93 var number7 = 123e45; 94 var number8 = number0; 95 var number9 = number0 + number1; 96 var number10 = number0 - number1; 97 var number11 = number0 * number1; 98 var number12 = number0 / number1; 99 var number13 = number0 % number1; 100 var number14 = new Number(0); 101 var number15 = new Number(1.7976931348623157e+308); 102 var number16 = new Number(5e-324); 103 var number17 = new Number(10 ** 10); 104 var number18 = new Number(0x1ffffffffff); 105 var number19 = new Number(0b11111111111111); 106 var number20 = new Number(123e45); 107 var number21 = new Number(number0); 108 var number22 = new Number(number0 + number1); 109 var number23 = new Number(number0 - number1); 110 var number24 = new Number(number0 * number1); 111 var number25 = new Number(number0 / number1); 112 var number26 = new Number(number0 % number1); 113 var number27 = 1.7976931348623157e+308; 114 115 var string1 = ""; 116 var string2 = string1; 117 var string3 = string1 + 'world'; 118 var string4 = 'hello' + 'world'; 119 var string5 = string4.charAt(1); 120 var string6 = string1 + number0; 121 var string7 = new String(string1); 122 var string8 = new String(set0); 123 var string9 = new String(number0); 124 var string10 = new String(string0); 125 var string11 = new String(obj0); 126 var string12 = new String(undefined0); 127 var string13 = new String(array0); 128 var string14 = new String(bigint0); 129 var string15 = new String(generator0); 130 var string16 = new String(regexp0); 131 var string17 = new String(arraybuffer0); 132 var string18 = new String(uint8array0); 133 var string19 = new String(dataview0); 134 var string20 = new String(map0); 135 var string21 = new String(function0); 136 137 var bigint1 = BigInt(9007199254740991n); 138 var bigint2 = BigInt(9007199254740991); 139 var bigint3 = BigInt("9007199254740991"); 140 var bigint4 = BigInt("0x1fffffffffffff"); 141 var bigint5 = BigInt(0x1fffffffffffff); 142 var bigint6 = BigInt("0b11111111111111111111111111111111111111111111111111111"); 143 var bigint7 = bigint0; 144 var bigint8 = bigint0 + bigint1; 145 var bigint9 = bigint0 - bigint1; 146 var bigint10 = bigint0 * bigint1; 147 var bigint11 = bigint0 / bigint1; 148 var bigint12 = bigint0 % bigint1; 149 var bigint13 = 10n ** 10n; 150 var bigint14 = 888888888888888888888888888888888888888888888n; 151 var bigint15 = BigInt(0b11111111111111); 152 var bigint16 = BigInt(0); 153 var bigint17 = 0n; 154 var bigint18 = BigInt(123e45); 155 var bigint19 = BigInt("01234567"); 156 var bigint20 = BigInt(number1); 157 158 var boolean1 = new Boolean(1); 159 var boolean2 = new Boolean(-1); 160 var boolean3 = new Boolean(true); 161 var boolean4 = new Boolean(false); 162 var boolean5 = new Boolean(boolean0 + boolean1); 163 var boolean6 = new Boolean(boolean0 && boolean1); 164 var boolean7 = new Boolean(boolean0 || boolean1); 165 var boolean8 = new Boolean(!boolean0); 166 var boolean9 = true; 167 var boolean10 = false; 168 var boolean11 = boolean0; 169 var boolean12 = boolean0 && boolean10; 170 var boolean13 = boolean0 || boolean10; 171 var boolean14 = !boolean10; 172 var boolean15 = new Boolean("hello"); 173 var boolean16 = new Boolean(""); 174 var boolean17 = new Boolean(function0); 175 var boolean18 = new Boolean(map0); 176 var boolean19 = new Boolean(set0); 177 var boolean20 = new Boolean(number0); 178 var boolean21 = new Boolean(string0); 179 var boolean22 = new Boolean(obj0); 180 var boolean23 = new Boolean(undefined0); 181 var boolean24 = new Boolean(array0); 182 var boolean25 = new Boolean(generator0); 183 var boolean26 = new Boolean(regexp0); 184 var boolean27 = new Boolean(arraybuffer0); 185 var boolean28 = new Boolean(uint8array0); 186 var boolean29 = new Boolean(dataview0); 187 188 var map1 = new Map(map0); 189 var map2 = new Map([ 190 [1, 'hello'], 191 [2, 'world'] 192 ]); 193 var map3 = new Map(); 194 map3.set(NaN, 'NaN'); 195 var map4 = new Map(); 196 map4[0] = 'hello'; 197 var map5 = new Map(); 198 map5.set(0, 'zero'); 199 map5.set(1, 'one'); 200 map5.set(2, 'two'); 201 map5.set(3, 'three'); 202 var map6 = new Map(); 203 map6.set(set0, "set0"); 204 var map7 = new Map(); 205 map7.set(number0, "number0"); 206 var map8 = new Map(); 207 map8.set(string0, "string0"); 208 var map9 = new Map(); 209 map9.set(obj0, "object0"); 210 var map10 = new Map(); 211 map10.set(undefined0, "undefined0"); 212 var map11 = new Map(); 213 map11.set(array0, "array0"); 214 var map12 = new Map(); 215 map12.set(map3, "map3"); 216 var map13 = new Map(); 217 map13.set(generator0, "generator0"); 218 var map14 = new Map(); 219 map14.set(regexp0, "regexp0"); 220 var map15 = new Map(); 221 map15.set(arraybuffer0, "arraybuffer0"); 222 var map16 = new Map(); 223 map16.set(uint8array0, "uint8array0"); 224 var map17 = new Map(); 225 map17.set(dataview0, "dataview0"); 226 var map18 = new Map(); 227 map18.set(bigint10, "bigint10"); 228 var map19 = new Map(); 229 map19.set(function0, "function0"); 230 231 var object1 = { 0: 'zero', 1: 'one', 2: 'two', 3: 'three', 4: 'four', 5: 'five' }; 232 var object2 = object1; 233 var object3 = new Object({ 0: 'zero', 1: 'one', 2: 'two', 3: 'three', 4: 'four', 5: 'five' }); 234 var object4 = new Object(set0); 235 var object5 = new Object(string0); 236 var object6 = new Object(map0); 237 var object7 = new Object(number0); 238 var object8 = new Object(obj0); 239 var object9 = new Object(undefined0); 240 var object10 = new Object(array0); 241 var object11 = new Object(bigint10); 242 var object12 = new Object(generator0); 243 var object13 = new Object(regexp0); 244 var object14 = new Object(bigint0); 245 var object15 = new Object(arraybuffer0); 246 var object16 = new Object(uint8array0); 247 var object17 = new Object(dataview0); 248 var object18 = new Object(boolean10); 249 var object19 = new Object(function0); 250 251 var regExp1 = /^a/g; 252 var regExp2 = new RegExp('^ab+c', 'g'); 253 var regExp3 = /123$/; 254 var regExp4 = /\d/i; 255 var regExp5 = new RegExp('^[a-zA-Z]/w{5,17}$', 'iu'); 256 var regExp6 = /[A-Z]/m; 257 var regExp7 = new RegExp('(/d{3}-|/d{4}-)?(/d{8}|/d{7})?', 'mg'); 258 var regExp8 = /[a-z]/y; 259 var regExp9 = /\s/u; 260 var regExp10 = /a+/s; 261 var regExp11 = new RegExp('(d+-)?(d{4}-?d{7}|d{3}-?d{8}|^d{7,8})(-d+)?', 's'); 262 var regExp12 = /a?/gy; 263 var regExp13 = new RegExp('/^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$/'); 264 var regExp14 = /a*/igmy; 265 var regExp15 = new RegExp('^[/w-]+(/.[/w-]+)*@[/w-]+(/.[/w-]+)+$', 'ig'); 266 var regExp16 = /a|b/iymsg; 267 var regExp17 = new RegExp('^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$'); 268 var regExp18 = /\/<(.*)>.*<\/\/\/1>|<(.*) \/\/>/i; 269 var regExp19 = new RegExp('^[1-9]*[1-9][0-9]*$', 'm'); 270 var regExp20 = /^[a-zA-Z]\/w{5,17}$/; 271 var regExp21 = new RegExp('^[0-9a-zA-Z_]{1,}$', 'u'); 272 273 var target = { 274 name: "openharmony", 275 age: 3 276 }; 277 var handler = { 278 get(target, key) { 279 let result = target[key]; 280 if (key === "age") result += "岁"; 281 return result; 282 }, 283 set(target, key, value) { 284 if (key === "age" && typeof value !== "number") { 285 throw Error("age字段必须为Number类型"); 286 } 287 return Reflect.set(target, key, value); 288 } 289 }; 290 var { proxy, revoke } = Proxy.revocable(target, handler); 291 var proxy1 = new Proxy(target, handler); 292 var proxy2 = Proxy.revocable(target, handler); 293 294 revoke(); 295 proxy2.revoke(); 296 297 var promiseFulfilled = new Promise((resolve, reject) => { 298 let result = { 299 flag: true 300 } 301 if (result.flag == true) { 302 resolve(result); 303 } else { 304 reject(new Error("The promise is rejected")); 305 } 306 }); 307 var string22 = "\uD83D"; 308 var string23 = string22 + "\uDE42"; 309 var string24 = "\u{1F468}"; 310 var string25 = string24 + "\u200D\u{1F468}\u200D\u{1F467}\u200D\u{1F466}\u200D"; 311 print(string22); 312 print(string23); 313 print(string24); 314 print(string25); 315 316 function resolveHandler(result) { 317 let a = promiseFulfilled; 318 print("promise is fulfilled with result.flag " + result.flag); 319 } 320 321 function rejectHandler(error) { 322 print(error.message); 323 } 324 325 promiseFulfilled.then(result => resolveHandler(result)).catch(error => rejectHandler(error)); 326 327 var nop = undefined; 328 } 329} 330 331o.foo();