mirror of
https://github.com/danbulant/oxc
synced 2026-05-24 20:32:10 +00:00
17 lines
606 B
Rust
17 lines
606 B
Rust
use crate::ToJsString;
|
|
use oxc_ast::ast::*;
|
|
|
|
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(",")))
|
|
}
|
|
}
|