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