• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/**
2 * Copyright (c) 2024-2025 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 */
15export const tsInt = 1;
16export class MainClass {
17	constructor(value) {
18		this._value = value;
19	}
20};
21export let IIFEClass = (function () {
22	return class {
23		constructor(value) {
24			this._value = value;
25		}
26	};
27})();
28export let AnonymousClass = class {
29	constructor(value) {
30		this._value = value;
31	}
32};
33export class ParentClass {
34	constructor(otherClass) {
35		this._otherClass = new otherClass(tsInt);
36	}
37};
38export function createClassWithArgFromTs(arg) {
39	return new ParentClass(arg);
40};
41export function createMainClassFromTs() {
42	return new ParentClass(MainClass);
43};
44export let mainClassInstance = new ParentClass(MainClass);
45export function createAnonymousClassFromTs() {
46	return new ParentClass(AnonymousClass);
47};
48export let anonymousClassInstance = new ParentClass(AnonymousClass);
49export function createIIFEClassFromTs() {
50	return new ParentClass(IIFEClass);
51};
52export let iifeClassInstance = new ParentClass(IIFEClass);
53export class ChildClass extends ParentClass {
54	constructor(otherClass) {
55		super(otherClass);
56	}
57};
58export function createChildClassWithArgFromTs(arg) {
59	return new ChildClass(arg);
60};
61export function createChildClassWithMainFromTs() {
62	return new ChildClass(MainClass);
63};
64export let childClassWithMainInstance = new ChildClass(MainClass);
65export function createChildClassWithAnonymousFromTs() {
66	return new ChildClass(MainClass);
67};
68export let childClassWithAnonymousInstance = new ChildClass(MainClass);
69export function createChildClassWithIIFEFromTs() {
70	return new ChildClass(IIFEClass);
71};
72export let childClassWithIIFEInstance = new ChildClass(IIFEClass);
73export let AnonymousClassCreateClass = class {
74	constructor(otherClass) {
75		this._otherClass = new otherClass(tsInt);
76	}
77};
78export function createAnonymousClassCreateClassWithArgFromTs(arg) {
79	return new AnonymousClassCreateClass(arg);
80};
81export function createAnonymousClassCreateClassFromTs() {
82	return new AnonymousClassCreateClass(MainClass);
83};
84export function createAnonymousClassCreateIIFEClassFromTs() {
85	return new AnonymousClassCreateClass(IIFEClass);
86};
87export let anonymousClassCreateMainInstance = new AnonymousClassCreateClass(MainClass);
88export let anonymousClassCreateIIFEInstance = new AnonymousClassCreateClass(IIFEClass);
89export let IIFECreateClassMain = (function (ctor, value) {
90	return new ctor(value);
91})(MainClass, tsInt);
92export let IIFECreateClassAnonymous = (function (ctor, value) {
93	return new ctor(value);
94})(AnonymousClass, tsInt);
95export let IIFECreateClass = (function (ctor, value) {
96	return new ctor(value);
97})(IIFEClass, tsInt);
98export class MethodClass {
99	init(anyClass, value) {
100		return new anyClass(value);
101	}
102};
103export function CreateClassFunction(Arg, val) {
104	return new Arg(val);
105};
106export function CreateClassArrowFunction(Arg, val) {
107	return new Arg(val);
108};
109export function checkInstance(MainClass, instance) {
110	if (typeof MainClass !== 'function' || typeof instance !== 'object' || instance === null) {
111		throw new TypeError('must be a class');
112	}
113	return instance instanceof MainClass;
114};
115