1/*
2 * Copyright (c) 2022 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// Ordinary dynamic import test
16const objA = {
17    toString() {
18        return './A.js';
19    }
20};
21const objB = {
22    toString() {
23        return './B.js';
24    }
25};
26
27import(objA).then(animalA => {
28    print('full name : ', animalA.name);
29    print(animalA.familyCrets);
30}).then().catch();
31
32async function f() {
33    var animalB = await import(objB);
34    print('full name : ', animalB.name);
35    print(animalB.familyCrets);
36}
37f().then().catch();
38
39// Import script file test
40import("./C.js").then(m => {
41    print(JSON.stringify(m));
42}).then();
43
44// Catch error test
45import('./throwerror.js').catch(error => {
46    print(error.name);
47}).then();
48
49var _v_1 = {};
50function _f_8() {
51    try{
52        _f_8();
53    } catch (e) {
54        import(_v_1).then();
55    }
56}
57_f_8();
58
59import('./1.json').then(m => {
60    print(m.default.name);
61}).then().catch();
62
63import('@native:system.app').then(m => {
64    print("native module");
65}).then().catch();
66
67import('@native:system.app').then(m => {
68    print("native module");
69}).then().catch();
70// Dynamic Loading Reload Test
71import('./aaa.js').then(m => {
72    print("dynamic import aaa.js 1st time");
73})
74import('./aaa.js').then(m => {
75    print("dynamic import aaa.js 2nd time");
76})
77