feat(ast): add ArrowFunctionExpression::has_use_strict_directive method (#7784)

Add `ArrowFunctionExpression::has_use_strict_directive` method to go with `Function::has_use_strict_directive` etc.
This commit is contained in:
overlookmotel 2024-12-10 23:57:41 +00:00
parent 96a26d3b29
commit f7900ab246
4 changed files with 8 additions and 3 deletions

View file

@ -1701,7 +1701,7 @@ pub struct FunctionBody<'a> {
#[ast(visit)]
#[scope(
flags(ScopeFlags::Function | ScopeFlags::Arrow),
strict_if(self.body.has_use_strict_directive()),
strict_if(self.has_use_strict_directive()),
)]
#[derive(Debug)]
#[generate_derive(CloneIn, GetSpan, GetSpanMut, ContentEq, ContentHash, ESTree)]

View file

@ -1094,6 +1094,11 @@ impl<'a> ArrowFunctionExpression<'a> {
}
None
}
/// Returns `true` if this arrow function's body has a `"use strict"` directive.
pub fn has_use_strict_directive(&self) -> bool {
self.body.has_use_strict_directive()
}
}
impl Class<'_> {

View file

@ -1684,7 +1684,7 @@ pub mod walk {
visitor.enter_scope(
{
let mut flags = ScopeFlags::Function | ScopeFlags::Arrow;
if it.body.has_use_strict_directive() {
if it.has_use_strict_directive() {
flags |= ScopeFlags::StrictMode;
}
flags

View file

@ -1703,7 +1703,7 @@ pub mod walk_mut {
visitor.enter_scope(
{
let mut flags = ScopeFlags::Function | ScopeFlags::Arrow;
if it.body.has_use_strict_directive() {
if it.has_use_strict_directive() {
flags |= ScopeFlags::StrictMode;
}
flags