14514f5e3Sopenharmony_ci/*
24514f5e3Sopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd.
34514f5e3Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
44514f5e3Sopenharmony_ci * you may not use this file except in compliance with the License.
54514f5e3Sopenharmony_ci * You may obtain a copy of the License at
64514f5e3Sopenharmony_ci *
74514f5e3Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
84514f5e3Sopenharmony_ci *
94514f5e3Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
104514f5e3Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
114514f5e3Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
124514f5e3Sopenharmony_ci * See the License for the specific language governing permissions and
134514f5e3Sopenharmony_ci * limitations under the License.
144514f5e3Sopenharmony_ci */
154514f5e3Sopenharmony_ci// Ordinary dynamic import test
164514f5e3Sopenharmony_ciconst objA = {
174514f5e3Sopenharmony_ci    toString() {
184514f5e3Sopenharmony_ci        return './A.js';
194514f5e3Sopenharmony_ci    }
204514f5e3Sopenharmony_ci};
214514f5e3Sopenharmony_ciconst objB = {
224514f5e3Sopenharmony_ci    toString() {
234514f5e3Sopenharmony_ci        return './B.js';
244514f5e3Sopenharmony_ci    }
254514f5e3Sopenharmony_ci};
264514f5e3Sopenharmony_ci
274514f5e3Sopenharmony_ciimport(objA).then(animalA => {
284514f5e3Sopenharmony_ci    print('full name : ', animalA.name);
294514f5e3Sopenharmony_ci    print(animalA.familyCrets);
304514f5e3Sopenharmony_ci}).then().catch();
314514f5e3Sopenharmony_ci
324514f5e3Sopenharmony_ciasync function f() {
334514f5e3Sopenharmony_ci    var animalB = await import(objB);
344514f5e3Sopenharmony_ci    print('full name : ', animalB.name);
354514f5e3Sopenharmony_ci    print(animalB.familyCrets);
364514f5e3Sopenharmony_ci}
374514f5e3Sopenharmony_cif().then().catch();
384514f5e3Sopenharmony_ci
394514f5e3Sopenharmony_ci// Import script file test
404514f5e3Sopenharmony_ciimport("./C.js").then(m => {
414514f5e3Sopenharmony_ci    print(JSON.stringify(m));
424514f5e3Sopenharmony_ci}).then();
434514f5e3Sopenharmony_ci
444514f5e3Sopenharmony_ci// Catch error test
454514f5e3Sopenharmony_ciimport('./throwerror.js').catch(error => {
464514f5e3Sopenharmony_ci    print(error.name);
474514f5e3Sopenharmony_ci}).then();
484514f5e3Sopenharmony_ci
494514f5e3Sopenharmony_civar _v_1 = {};
504514f5e3Sopenharmony_cifunction _f_8() {
514514f5e3Sopenharmony_ci    try{
524514f5e3Sopenharmony_ci        _f_8();
534514f5e3Sopenharmony_ci    } catch (e) {
544514f5e3Sopenharmony_ci        import(_v_1).then();
554514f5e3Sopenharmony_ci    }
564514f5e3Sopenharmony_ci}
574514f5e3Sopenharmony_ci_f_8();
584514f5e3Sopenharmony_ci
594514f5e3Sopenharmony_ciimport('./1.json').then(m => {
604514f5e3Sopenharmony_ci    print(m.default.name);
614514f5e3Sopenharmony_ci}).then().catch();
624514f5e3Sopenharmony_ci
634514f5e3Sopenharmony_ciimport('@native:system.app').then(m => {
644514f5e3Sopenharmony_ci    print("native module");
654514f5e3Sopenharmony_ci}).then().catch();
664514f5e3Sopenharmony_ci
674514f5e3Sopenharmony_ciimport('@native:system.app').then(m => {
684514f5e3Sopenharmony_ci    print("native module");
694514f5e3Sopenharmony_ci}).then().catch();
704514f5e3Sopenharmony_ci// Dynamic Loading Reload Test
714514f5e3Sopenharmony_ciimport('./aaa.js').then(m => {
724514f5e3Sopenharmony_ci    print("dynamic import aaa.js 1st time");
734514f5e3Sopenharmony_ci})
744514f5e3Sopenharmony_ciimport('./aaa.js').then(m => {
754514f5e3Sopenharmony_ci    print("dynamic import aaa.js 2nd time");
764514f5e3Sopenharmony_ci})
77