use rspack_util::SpanExt;
use swc_experimental_ecma_ast::ArrayLit;
use super::BasicEvaluatedExpression;
use crate::visitors::JavascriptParser;
#[inline]
pub fn eval_array_expression<'parser: 'a, 'a>(
scanner: &mut JavascriptParser<'parser>,
expr: &'a ArrayLit<'a>,
) -> Option<BasicEvaluatedExpression<'a>> {
let mut items = vec![];
for elem in &expr.elems {
if let Some(elem) = elem
&& elem.spread.is_none()
{
items.push(scanner.evaluate_expression(&elem.expr));
} else {
return None;
}
}
let mut res = BasicEvaluatedExpression::with_range(expr.span.real_lo(), expr.span.real_hi());
res.set_items(items);
Some(res)
}