From a3a82c115281d1afe17d0bb0c15820f8c8fd55e8 Mon Sep 17 00:00:00 2001 From: yaochaonan Date: Fri, 23 May 2025 18:39:48 +0800 Subject: [PATCH] Add sharedModule restriction Issue: https://gitee.com/openharmony/arkcompiler_ets_runtime/issues/ICA5MM?from=project-issue Signed-off-by: yaochaonan Change-Id: Ica6f6a4f5bd8ebf4b1b6a1e8eea3064e6672cd9b --- ecmascript/module/js_module_execute_type.h | 5 +++++ ecmascript/module/js_module_source_text.cpp | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/ecmascript/module/js_module_execute_type.h b/ecmascript/module/js_module_execute_type.h index 5290d401bd..53033ebcee 100644 --- a/ecmascript/module/js_module_execute_type.h +++ b/ecmascript/module/js_module_execute_type.h @@ -30,5 +30,10 @@ namespace panda::ecmascript { { return executeType == ExecuteTypes::STATIC; } + + inline bool IsNapiImport(const ExecuteTypes &executeType) + { + return executeType == ExecuteTypes::NAPI; + } } // namespace panda::ecmascript #endif // ECMASCRIPT_MODULE_EXECUTE_TYPES_H diff --git a/ecmascript/module/js_module_source_text.cpp b/ecmascript/module/js_module_source_text.cpp index e82877f2e5..30d4f4f8fe 100644 --- a/ecmascript/module/js_module_source_text.cpp +++ b/ecmascript/module/js_module_source_text.cpp @@ -460,6 +460,10 @@ int SourceTextModule::Instantiate(JSThread *thread, const JSHandle module = JSHandle::Cast(moduleHdl); // 1. Let module be this Source Text Module Record. // 2. Assert: module.[[Status]] is one of UNLINKED, LINKED, EVALUATING-ASYNC, or EVALUATED. + if (SourceTextModule::IsSharedModule(module) && IsNapiImport(executeType)) { + CString msg = "Doesn't support load shared module " + module->GetEcmaModuleRecordNameString(); + THROW_REFERENCE_ERROR_AND_RETURN(thread, msg.c_str(), false); + } ModuleStatus status = module->GetStatus(); ASSERT(status == ModuleStatus::UNINSTANTIATED || status == ModuleStatus::INSTANTIATED || status == ModuleStatus::EVALUATING_ASYNC || status == ModuleStatus::EVALUATED || -- Gitee