mirror of
https://github.com/denoland/deno.git
synced 2025-08-04 02:48:24 +00:00
perf: static bootstrap options in snapshot (#21213)
Closes https://github.com/denoland/deno/issues/21133
This commit is contained in:
parent
c67de43ff3
commit
7f3902b41f
8 changed files with 66 additions and 47 deletions
|
@ -2,6 +2,7 @@
|
|||
|
||||
use deno_core::op2;
|
||||
use deno_core::OpState;
|
||||
use serde::Serialize;
|
||||
|
||||
use crate::BootstrapOptions;
|
||||
|
||||
|
@ -16,9 +17,34 @@ deno_core::extension!(
|
|||
op_bootstrap_log_level,
|
||||
op_bootstrap_no_color,
|
||||
op_bootstrap_is_tty,
|
||||
op_snapshot_options,
|
||||
],
|
||||
options = {
|
||||
snapshot_options: Option<SnapshotOptions>,
|
||||
},
|
||||
state = |state, options| {
|
||||
if let Some(snapshot_options) = options.snapshot_options {
|
||||
state.put::<SnapshotOptions>(snapshot_options);
|
||||
}
|
||||
},
|
||||
);
|
||||
|
||||
#[derive(Serialize)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct SnapshotOptions {
|
||||
pub deno_version: String,
|
||||
pub ts_version: String,
|
||||
pub v8_version: &'static str,
|
||||
pub target: String,
|
||||
}
|
||||
|
||||
// Note: Called at snapshot time, op perf is not a concern.
|
||||
#[op2]
|
||||
#[serde]
|
||||
pub fn op_snapshot_options(state: &mut OpState) -> SnapshotOptions {
|
||||
state.take::<SnapshotOptions>()
|
||||
}
|
||||
|
||||
#[op2]
|
||||
#[serde]
|
||||
pub fn op_bootstrap_args(state: &mut OpState) -> Vec<String> {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue