use oxc_ast::ast::Expression;
use crate::GlobalContext;
#[derive(Default, Clone, Copy, Debug, PartialEq, Eq)]
pub enum PropertyReadSideEffects {
None,
#[default]
All,
}
pub trait MayHaveSideEffectsContext<'a>: GlobalContext<'a> {
fn annotations(&self) -> bool;
fn manual_pure_functions(&self, callee: &Expression) -> bool;
fn property_read_side_effects(&self) -> PropertyReadSideEffects;
fn property_write_side_effects(&self) -> bool {
true
}
fn unknown_global_side_effects(&self) -> bool;
}