Skip to main content

ferrijs_std/perf_hooks/
mod.rs

1// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2// SPDX-License-Identifier: Apache-2.0
3use crate::utils::module::{export_default, ModuleInfo};
4use rquickjs::{
5    module::{Declarations, Exports, ModuleDef},
6    Ctx, Object, Result,
7};
8
9
10pub struct PerfHooksModule;
11
12impl ModuleDef for PerfHooksModule {
13    fn declare(declare: &Declarations<'_>) -> Result<()> {
14        declare.declare("performance")?;
15        declare.declare("default")?;
16        Ok(())
17    }
18
19    fn evaluate<'js>(ctx: &Ctx<'js>, exports: &Exports<'js>) -> Result<()> {
20        export_default(ctx, exports, |default| {
21            let globals = ctx.globals();
22
23            let performance: Object = globals.get("performance")?;
24            default.set("performance", performance)?;
25
26            Ok(())
27        })
28    }
29}
30
31impl From<PerfHooksModule> for ModuleInfo<PerfHooksModule> {
32    fn from(val: PerfHooksModule) -> Self {
33        ModuleInfo {
34            name: "perf_hooks",
35            module: val,
36        }
37    }
38}