oxc_ecmascript 0.48.1

A collection of JavaScript tools written in Rust.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use oxc_ast::ast::*;

use crate::ToJsString;

pub trait ArrayJoin<'a> {
    /// `Array.prototype.join ( separator )`
    /// <https://tc39.es/ecma262/#sec-array.prototype.join>
    fn array_join(&self, separator: Option<&str>) -> Option<String>;
}

impl<'a> ArrayJoin<'a> for ArrayExpression<'a> {
    fn array_join(&self, separator: Option<&str>) -> Option<String> {
        let strings =
            self.elements.iter().map(ToJsString::to_js_string).collect::<Option<Vec<_>>>();
        strings
            .map(|v| v.iter().map(AsRef::as_ref).collect::<Vec<_>>().join(separator.unwrap_or(",")))
    }
}