#[repr(C)]pub struct Program<'gc> {
pub metadata: NodeMetadata<'gc>,
pub body: NodeList<'gc>,
pub scope: Cell<Option<SemaId>>,
pub sem_info: Cell<Option<SemaId>>,
pub strictness: Cell<Strictness>,
pub is_method_definition: Cell<bool>,
pub decorations: Cell<NodeList<'gc>>,
pub dummy_param_list: Cell<NodeList<'gc>>,
}Expand description
The Program AST node.
Fields§
§metadata: NodeMetadata<'gc>Source range, debug location, paren count, and node id.
body: NodeList<'gc>ESTree body property.
scope: Cell<Option<SemaId>>Sema: the lexical scope created by this node, if any.
sem_info: Cell<Option<SemaId>>Sema: FunctionInfo for this function.
strictness: Cell<Strictness>Sema: strict-mode state of this function.
is_method_definition: Cell<bool>Whether this function is a method definition (getters and setters
included) rather than a function. Used for lazy reparsing.
decorations: Cell<NodeList<'gc>>Decorations attached to this function by Hermes.decorate(...)
calls in typed mode; each entry wraps a decoration expression.
dummy_param_list: Cell<NodeList<'gc>>An always-empty parameter list, for uniformity with functions.
Implementations§
Trait Implementations§
Auto Trait Implementations§
impl<'gc> !Freeze for Program<'gc>
impl<'gc> !RefUnwindSafe for Program<'gc>
impl<'gc> !Send for Program<'gc>
impl<'gc> !Sync for Program<'gc>
impl<'gc> !UnwindSafe for Program<'gc>
impl<'gc> Unpin for Program<'gc>
impl<'gc> UnsafeUnpin for Program<'gc>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more