/*
 * Copyright (c) 2024 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import assert from 'assert';
var g = function k() {
    let r = 'test';
    return r;
};
g();
assert(g() === 'test');
var h = {
    c: function () {
        return h;
    },
    d: function f() {
        return h.c;
    }
};
h.c();
h.d();
assert(h.c() === h);
assert(h.d()() === h);
const { i: i = function () {
    let q = 'binding';
    return q;
}, j: j = function l() {
    let p = 'binding';
    return p;
} } = { i: undefined, j: () => {
        return 'test';
    } };
i();
j();
assert(i() == 'binding');
assert(j() === 'test');
var x = function m() {
    return m;
};
var y = function n() {
    return y;
};
x();
y()();
assert(x() === x);
assert(y()() === y);
var z = function o(s: any, ...t: any): any {
    return arguments;
};
z(1, 2, 3);
assert(z(1, 2, 3)['0'] === 1);
assert(z(1, 2, 3)['1'] === 2);
assert(z(1, 2, 3)['2'] === 3);
