Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 17 additions & 2 deletions driver/js/src/napi/jsh/jsh_ctx.cc
Original file line number Diff line number Diff line change
Expand Up @@ -372,6 +372,19 @@ std::shared_ptr<CtxValue> JSHCtx::InternalRunScript(
if(!CheckJSVMStatus(env_, status)) {
return nullptr;
}
if (!script) {
return nullptr;
}
if (cacheRejected) {
const uint8_t *data = nullptr;
size_t length = 0;
status = OH_JSVM_CreateCodeCache(env_, script, &data, &length);
FOOTSTONE_DCHECK(status == JSVM_OK);
if (status == JSVM_OK && data && length > 0) {
*cache = string_view(data, length);
delete[] data;
}
}
} else {
FOOTSTONE_UNREACHABLE();
}
Expand All @@ -389,8 +402,10 @@ std::shared_ptr<CtxValue> JSHCtx::InternalRunScript(
size_t length = 0;
status = OH_JSVM_CreateCodeCache(env_, script, &data, &length);
FOOTSTONE_DCHECK(status == JSVM_OK);
*cache = string_view(data, length);
delete[] data;
if (status == JSVM_OK && data && length > 0) {
*cache = string_view(data, length);
delete[] data;
}
} else {
status = OH_JSVM_CompileScript(env_, jsh_source_value->GetValue(), nullptr, 0, true, nullptr, &script);
if(!CheckJSVMStatus(env_, status)) {
Expand Down
6 changes: 6 additions & 0 deletions driver/js/src/napi/v8/v8_ctx.cc
Original file line number Diff line number Diff line change
Expand Up @@ -430,6 +430,12 @@ std::shared_ptr<CtxValue> V8Ctx::InternalRunScript(
v8::ScriptCompiler::Source script_source(source, origin, cached_data);
script = v8::ScriptCompiler::Compile(
context, &script_source, v8::ScriptCompiler::kConsumeCodeCache);
if (cached_data && cached_data->rejected) {
const v8::ScriptCompiler::CachedData* new_cached_data =
v8::ScriptCompiler::CreateCodeCache(script.ToLocalChecked()->GetUnboundScript());
*cache = string_view(new_cached_data->data,
footstone::checked_numeric_cast<int, size_t>(new_cached_data->length));
}
} else {
FOOTSTONE_UNREACHABLE();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ class HippyEngineWrapper//TODO: Coming soon
//TODO: Coming soon
}
}
initParams.codeCacheTag = "common"
initParams.codeCacheTag = "common_1.0" // 建议tag拼接js version,tag会用来拼接v8 code cache文件的路径,不同js不同cache文件
initParams.exceptionHandler = object : HippyExceptionHandlerAdapter {
override fun handleJsException(e: HippyJsException) {
LogUtils.e("hippy", e.message)
Expand Down Expand Up @@ -156,7 +156,7 @@ class HippyEngineWrapper//TODO: Coming soon
val loadParams = ModuleLoadParams()
loadParams.context = context
loadParams.componentName = "Demo"
loadParams.codeCacheTag = "Demo"
loadParams.codeCacheTag = "Demo_1.0" // 建议tag拼接js version,tag会用来拼接v8 code cache文件的路径,不同js不同cache文件
when(driverMode) {
PageConfiguration.DriverMode.JS_REACT -> {
loadParams.jsAssetsPath = "react/index.android.js"
Expand Down Expand Up @@ -258,4 +258,4 @@ class HippyEngineWrapper//TODO: Coming soon
fun onReplaySnapshotViewCompleted(snapshotView: ViewGroup)
fun onLoadModuleCompleted(statusCode: ModuleLoadStatus, msg: String?)
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ class DefaultEngineListener implements EngineListener {
null,
)
loadParams.componentName = "Demo"
loadParams.codeCacheTag = "Demo"
loadParams.codeCacheTag = "Demo_1.0" // 建议tag拼接js version,tag会用来拼接v8 code cache文件的路径,不同js不同cache文件
loadParams.jsParams = new Map<string, HippyValue>()
loadParams.jsParams.set(
"msgFromNative",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ class DefaultEngineListener implements EngineListener {
null
)
loadParams.componentName = "Demo"
loadParams.codeCacheTag = "Demo"
loadParams.codeCacheTag = "Demo_1.0" // 建议tag拼接js version,tag会用来拼接v8 code cache文件的路径,不同js不同cache文件
loadParams.jsParams = new Map<string, HippyValue>()
loadParams.jsParams.set(
"msgFromNative",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ class DefaultEngineListener implements EngineListener {
null,
)
loadParams.componentName = "Demo"
loadParams.codeCacheTag = "Demo"
loadParams.codeCacheTag = "Demo_1.0" // 建议tag拼接js version,tag会用来拼接v8 code cache文件的路径,不同js不同cache文件
loadParams.jsParams = new Map<string, HippyValue>()
loadParams.jsParams.set(
"msgFromNative",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ class DefaultEngineListener implements EngineListener {
null,
)
loadParams.componentName = "Demo"
loadParams.codeCacheTag = "Demo"
loadParams.codeCacheTag = "Demo1"
loadParams.jsParams = new Map<string, HippyValue>()
loadParams.jsParams.set(
"msgFromNative",
Expand Down Expand Up @@ -146,7 +146,7 @@ class DefaultEngineListener2 implements EngineListener {
null,
)
loadParams.componentName = "Demo"
loadParams.codeCacheTag = "Demo"
loadParams.codeCacheTag = "Demo2"
loadParams.jsParams = new Map<string, HippyValue>()
loadParams.jsParams.set(
"msgFromNative",
Expand Down
Loading