boa_engine/environments/runtime/declarative/
lexical.rs1use boa_gc::{Finalize, Trace};
2
3use crate::JsValue;
4
5use super::PoisonableEnvironment;
6
7#[derive(Debug, Trace, Finalize)]
8pub(crate) struct LexicalEnvironment {
9 inner: PoisonableEnvironment,
10}
11
12impl LexicalEnvironment {
13 pub(crate) fn new(bindings: u32, poisoned: bool, with: bool) -> Self {
15 Self {
16 inner: PoisonableEnvironment::new(bindings, poisoned, with),
17 }
18 }
19
20 pub(crate) const fn poisonable_environment(&self) -> &PoisonableEnvironment {
22 &self.inner
23 }
24
25 #[track_caller]
31 pub(crate) fn get(&self, index: u32) -> Option<JsValue> {
32 self.inner.get(index)
33 }
34
35 #[track_caller]
41 pub(crate) fn set(&self, index: u32, value: JsValue) {
42 self.inner.set(index, value);
43 }
44}