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 array1 = [];
50e509ee18Sopenharmony_ci        array1.push('banana', 'apple', 'peach');
51e509ee18Sopenharmony_ci        var array2 = ['banana', 'apple'];
52e509ee18Sopenharmony_ci        array2.push('peach');
53e509ee18Sopenharmony_ci        var array3 = ['banana', 'apple', 'peach'];
54e509ee18Sopenharmony_ci        array3.pop();
55e509ee18Sopenharmony_ci        var array4 = array3.shift();
56e509ee18Sopenharmony_ci        var array5 = new Array(number0);
57e509ee18Sopenharmony_ci        var array6 = new Array(string0);
58e509ee18Sopenharmony_ci        var array7 = new Array(boolean0);
59e509ee18Sopenharmony_ci        var array8 = new Array(obj0);
60e509ee18Sopenharmony_ci        var array9 = new Array(function0);
61e509ee18Sopenharmony_ci        var array10 = new Array(map0);
62e509ee18Sopenharmony_ci        var array11 = new Array(set0);
63e509ee18Sopenharmony_ci        var array12 = new Array(undefined0);
64e509ee18Sopenharmony_ci        var array13 = new Array(array0);
65e509ee18Sopenharmony_ci        var array14 = new Array(generator0);
66e509ee18Sopenharmony_ci        var array15 = new Array(regexp0);
67e509ee18Sopenharmony_ci        var array16 = new Array(arraybuffer0);
68e509ee18Sopenharmony_ci        var array17 = new Array(uint8array0);
69e509ee18Sopenharmony_ci        var array18 = new Array(dataview0);
70e509ee18Sopenharmony_ci        var array19 = new Array(bigint0);
71e509ee18Sopenharmony_ci        var array20 = array1;
72e509ee18Sopenharmony_ci        var array21 = array4;
73e509ee18Sopenharmony_ci
74e509ee18Sopenharmony_ci        var typedarray1 = new Int8Array();
75e509ee18Sopenharmony_ci        var typedarray2 = new Uint8ClampedArray();
76e509ee18Sopenharmony_ci        var typedarray3 = new Int16Array();
77e509ee18Sopenharmony_ci        var typedarray4 = new Uint16Array();
78e509ee18Sopenharmony_ci        var typedarray5 = new Int32Array();
79e509ee18Sopenharmony_ci        var typedarray6 = new Uint32Array();
80e509ee18Sopenharmony_ci        var typedarray7 = new Float32Array();
81e509ee18Sopenharmony_ci        var typedarray8 = new Float64Array();
82e509ee18Sopenharmony_ci        var typedarray9 = new BigInt64Array();
83e509ee18Sopenharmony_ci        var typedarray10 = new BigUint64Array();
84e509ee18Sopenharmony_ci        var typedarray11 = new Uint8Array(number0);
85e509ee18Sopenharmony_ci
86e509ee18Sopenharmony_ci        var iterator1 = array0[Symbol.iterator];
87e509ee18Sopenharmony_ci        var iterator2 = map0[Symbol.iterator];
88e509ee18Sopenharmony_ci        var iterator3 = set0[Symbol.iterator];
89e509ee18Sopenharmony_ci        var iterator4 = uint8array0[Symbol.iterator];
90e509ee18Sopenharmony_ci        var iterator5 = iterator0;
91e509ee18Sopenharmony_ci        var iterator6 = typedarray0[Symbol.iterator];
92e509ee18Sopenharmony_ci        var iterator7 = typedarray1[Symbol.iterator];
93e509ee18Sopenharmony_ci        var iterator8 = typedarray2[Symbol.iterator];
94e509ee18Sopenharmony_ci        var iterator9 = typedarray3[Symbol.iterator];
95e509ee18Sopenharmony_ci        var iterator10 = typedarray4[Symbol.iterator];
96e509ee18Sopenharmony_ci        var iterator11 = typedarray5[Symbol.iterator];
97e509ee18Sopenharmony_ci        var iterator12 = typedarray6[Symbol.iterator];
98e509ee18Sopenharmony_ci        var iterator13 = typedarray7[Symbol.iterator];
99e509ee18Sopenharmony_ci        var iterator14 = typedarray8[Symbol.iterator];
100e509ee18Sopenharmony_ci        var iterator15 = typedarray9[Symbol.iterator];
101e509ee18Sopenharmony_ci        var iterator16 = typedarray10[Symbol.iterator];
102e509ee18Sopenharmony_ci        var iterator17 = obj0[Symbol.iterator];
103e509ee18Sopenharmony_ci        var iterator19 = sharedarraybuffer0[Symbol.iterator];
104e509ee18Sopenharmony_ci
105e509ee18Sopenharmony_ci        var weakMap0 = new WeakMap();
106e509ee18Sopenharmony_ci        var p1 = new Number(1);
107e509ee18Sopenharmony_ci        var p2 = new Number(2);
108e509ee18Sopenharmony_ci        var weakMap1 = new WeakMap([[p1, 'hello'], [p2, 'world']]);
109e509ee18Sopenharmony_ci        var weakMap2 = new WeakMap();
110e509ee18Sopenharmony_ci        weakMap2[0] = 'hello';
111e509ee18Sopenharmony_ci        var weakMap3 = new WeakMap();
112e509ee18Sopenharmony_ci        weakMap3.set(weakMap0, "weakMap0");
113e509ee18Sopenharmony_ci        var weakMap4 = new WeakMap();
114e509ee18Sopenharmony_ci        weakMap4.set(p1, 37);
115e509ee18Sopenharmony_ci        weakMap4.set(p2, 'azerty');
116e509ee18Sopenharmony_ci        var weakMap5 = new WeakMap();
117e509ee18Sopenharmony_ci        weakMap5.set(p1, undefined);
118e509ee18Sopenharmony_ci
119e509ee18Sopenharmony_ci        var weakSet0 = new WeakSet();
120e509ee18Sopenharmony_ci        var weakSet1 = new WeakSet();
121e509ee18Sopenharmony_ci        weakSet1.add(p1);
122e509ee18Sopenharmony_ci        var weakSet2 = new WeakSet();
123e509ee18Sopenharmony_ci        weakSet2.add(p2);
124e509ee18Sopenharmony_ci        weakSet2.add(weakSet1);
125e509ee18Sopenharmony_ci
126e509ee18Sopenharmony_ci        class Parent {
127e509ee18Sopenharmony_ci            name;
128e509ee18Sopenharmony_ci            age;
129e509ee18Sopenharmony_ci            constructor(name, age) {
130e509ee18Sopenharmony_ci                this.name = name;
131e509ee18Sopenharmony_ci                this.age = age;
132e509ee18Sopenharmony_ci            }
133e509ee18Sopenharmony_ci            print() {
134e509ee18Sopenharmony_ci                print(this.name + " " + this.age);
135e509ee18Sopenharmony_ci            }
136e509ee18Sopenharmony_ci        }
137e509ee18Sopenharmony_ci
138e509ee18Sopenharmony_ci        class Child extends Parent {
139e509ee18Sopenharmony_ci            idNumber;
140e509ee18Sopenharmony_ci            constructor(name, age, idNumber) {
141e509ee18Sopenharmony_ci                super(name, age);
142e509ee18Sopenharmony_ci                this.idNumber = idNumber;
143e509ee18Sopenharmony_ci            }
144e509ee18Sopenharmony_ci            print() {
145e509ee18Sopenharmony_ci                print(this.name + " " + this.age + " " + this.idNumber);
146e509ee18Sopenharmony_ci            }
147e509ee18Sopenharmony_ci        }
148e509ee18Sopenharmony_ci        let parent = new Parent("parent", 50);
149e509ee18Sopenharmony_ci        let child = new Child("child", 15, "1234");
150e509ee18Sopenharmony_ci        parent.print();
151e509ee18Sopenharmony_ci        child.print();
152e509ee18Sopenharmony_ci
153e509ee18Sopenharmony_ci        function customClass(a, b, child) {
154e509ee18Sopenharmony_ci            this._a = a;
155e509ee18Sopenharmony_ci            this._b = b;
156e509ee18Sopenharmony_ci            this.child = child;
157e509ee18Sopenharmony_ci            this.print = function() {
158e509ee18Sopenharmony_ci                print("customClass print is called");
159e509ee18Sopenharmony_ci            }
160e509ee18Sopenharmony_ci        }
161e509ee18Sopenharmony_ci        let class1 = new customClass(1, 2, child);
162e509ee18Sopenharmony_ci        class1.print();
163e509ee18Sopenharmony_ci
164e509ee18Sopenharmony_ci        let class2 = {
165e509ee18Sopenharmony_ci            name: "class2"
166e509ee18Sopenharmony_ci        }
167e509ee18Sopenharmony_ci        print(class2.name);
168e509ee18Sopenharmony_ci
169e509ee18Sopenharmony_ci        var nop = undefined;
170e509ee18Sopenharmony_ci    }
171e509ee18Sopenharmony_ci}
172e509ee18Sopenharmony_ci
173e509ee18Sopenharmony_cio.foo()