From 095fe460556d7b299601b780c6757095b206b299 Mon Sep 17 00:00:00 2001 From: zzhengxiang Date: Tue, 25 Feb 2025 16:45:21 +0800 Subject: [PATCH] fix v8Option Signed-off-by: zzhengxiang --- src/js_native_api_v8.cpp | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/js_native_api_v8.cpp b/src/js_native_api_v8.cpp index 6765235..1efcc74 100644 --- a/src/js_native_api_v8.cpp +++ b/src/js_native_api_v8.cpp @@ -1348,7 +1348,7 @@ public: for (size_t i = 0; i < length; i++) { switch (options[i].id) { case JSVM_COMPILE_MODE: { - v8Option = static_cast(options[i].content.num); + SetOption(options[i].content.num); break; } case JSVM_COMPILE_CODE_CACHE: { @@ -1406,6 +1406,23 @@ public: bool enableSourceMap = false; static size_t compileCount; bool hasInvalidOption = false; + +private: + v8::ScriptCompiler::CompileOptions jsvmToOptions[] = { + v8::ScriptCompiler::kNoCompileOptions, + v8::ScriptCompiler::kConsumeCodeCache, + v8::ScriptCompiler::kEagerCompile, + v8::ScriptCompiler::kProduceCompileHints, + v8::ScriptCompiler::kConsumeCompileHints}; + + void SetOption(int contentNum) + { + if (contentNum >= JSVM_COMPILE_MODE_DEFAULT && contentNum <= JSVM_COMPILE_MODE_CONSUME_COMPILE_PROFILE) { + v8Option = jsvmToOptions[contentNum]; + } else { + hasInvalidOption = true; + } + } }; size_t CompileOptionResolver::compileCount = 0; -- Gitee