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
16'use strict';
17
18try {} catch (e) {
19    const dummy = new Proxy(function () {
20        return dummy;
21    },handler);
22}
23let test_gc;
24(function () {
25    test_gc = function() {};
26})();
27function f0(v0, v1= "Bad assertion") {}
28f0.aarEq = function f2(v5, v6, v7 = `Expected «${v6to be «${v5}».`){};
29{
30    let v11 = [];
31    let v12 = new Proxy(Object.create(null, {
32        x: {
33            enumerable: true,
34            configurable: true,
35            value: 0
36        }
37    }), {
38        getOwnPropertyDescriptor(v13, v14) {
39            v11.push(`gopd ${v14}`);
40            v13[test_func8(v13, 1040732)] = true, test_gc();
41        }
42    });
43    try {
44        for (let v15 in v12) {
45            if (v15 != null && typeof v15 == "object") Object.defineProperty(v15, test_func8(v15, 647748), {
46                get: function () {},
47                set: function (value) {
48                    v15[test_func8(v15, 586990)], test_gc();
49                }
50            })
51        }
52    } catch (e) {}
53    try {
54        f0.aarEq(["gopd x", "enumerate x"], v11);
55    }catch (e) {}
56}
57print("success");
58