mirror of
https://github.com/denoland/rusty_v8.git
synced 2025-01-12 17:09:28 -05:00
feat: pass source as mut ref to script_compiler::compile (#1420)
This commit is contained in:
parent
bc5ac4d486
commit
2371c4534b
2 changed files with 9 additions and 6 deletions
|
@ -265,7 +265,7 @@ pub fn compile_module2<'s>(
|
||||||
#[inline(always)]
|
#[inline(always)]
|
||||||
pub fn compile<'s>(
|
pub fn compile<'s>(
|
||||||
scope: &mut HandleScope<'s>,
|
scope: &mut HandleScope<'s>,
|
||||||
mut source: Source,
|
source: &mut Source,
|
||||||
options: CompileOptions,
|
options: CompileOptions,
|
||||||
no_cache_reason: NoCacheReason,
|
no_cache_reason: NoCacheReason,
|
||||||
) -> Option<Local<'s, Script>> {
|
) -> Option<Local<'s, Script>> {
|
||||||
|
@ -273,7 +273,7 @@ pub fn compile<'s>(
|
||||||
scope.cast_local(|sd| {
|
scope.cast_local(|sd| {
|
||||||
v8__ScriptCompiler__Compile(
|
v8__ScriptCompiler__Compile(
|
||||||
&*sd.get_current_context(),
|
&*sd.get_current_context(),
|
||||||
&mut source,
|
source,
|
||||||
options,
|
options,
|
||||||
no_cache_reason,
|
no_cache_reason,
|
||||||
)
|
)
|
||||||
|
|
|
@ -8913,10 +8913,10 @@ fn eager_compile_script() {
|
||||||
let scope = &mut v8::ContextScope::new(scope, context);
|
let scope = &mut v8::ContextScope::new(scope, context);
|
||||||
|
|
||||||
let code = v8::String::new(scope, "1 + 1").unwrap();
|
let code = v8::String::new(scope, "1 + 1").unwrap();
|
||||||
let source = v8::script_compiler::Source::new(code, None);
|
let mut source = v8::script_compiler::Source::new(code, None);
|
||||||
let script = v8::script_compiler::compile(
|
let script = v8::script_compiler::compile(
|
||||||
scope,
|
scope,
|
||||||
source,
|
&mut source,
|
||||||
v8::script_compiler::CompileOptions::EagerCompile,
|
v8::script_compiler::CompileOptions::EagerCompile,
|
||||||
v8::script_compiler::NoCacheReason::NoReason,
|
v8::script_compiler::NoCacheReason::NoReason,
|
||||||
)
|
)
|
||||||
|
@ -8953,18 +8953,21 @@ fn code_cache_script() {
|
||||||
let scope = &mut v8::ContextScope::new(scope, context);
|
let scope = &mut v8::ContextScope::new(scope, context);
|
||||||
|
|
||||||
let code = v8::String::new(scope, CODE).unwrap();
|
let code = v8::String::new(scope, CODE).unwrap();
|
||||||
let source = v8::script_compiler::Source::new_with_cached_data(
|
let mut source = v8::script_compiler::Source::new_with_cached_data(
|
||||||
code,
|
code,
|
||||||
None,
|
None,
|
||||||
v8::CachedData::new(&code_cache),
|
v8::CachedData::new(&code_cache),
|
||||||
);
|
);
|
||||||
let script = v8::script_compiler::compile(
|
let script = v8::script_compiler::compile(
|
||||||
scope,
|
scope,
|
||||||
source,
|
&mut source,
|
||||||
v8::script_compiler::CompileOptions::ConsumeCodeCache,
|
v8::script_compiler::CompileOptions::ConsumeCodeCache,
|
||||||
v8::script_compiler::NoCacheReason::NoReason,
|
v8::script_compiler::NoCacheReason::NoReason,
|
||||||
)
|
)
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
let code_cache = source.get_cached_data();
|
||||||
|
assert!(code_cache.is_some());
|
||||||
|
assert!(!code_cache.unwrap().rejected());
|
||||||
let ret = script.run(scope).unwrap();
|
let ret = script.run(scope).unwrap();
|
||||||
assert_eq!(ret.uint32_value(scope).unwrap(), 2);
|
assert_eq!(ret.uint32_value(scope).unwrap(), 2);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue