Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 0 additions & 4 deletions crates/oxc_ast/src/ast/js.rs
Original file line number Diff line number Diff line change
Expand Up @@ -236,7 +236,6 @@ pub use match_expression;
pub struct IdentifierName<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
#[estree(json_safe)]
pub name: Ident<'a>,
}

Expand All @@ -257,7 +256,6 @@ pub struct IdentifierReference<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
/// The name of the identifier being referenced.
#[estree(json_safe)]
pub name: Ident<'a>,
/// Reference ID
///
Expand Down Expand Up @@ -287,7 +285,6 @@ pub struct BindingIdentifier<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
/// The identifier name being bound.
#[estree(json_safe)]
pub name: Ident<'a>,
/// Unique identifier for this binding.
///
Expand All @@ -314,7 +311,6 @@ pub struct BindingIdentifier<'a> {
pub struct LabelIdentifier<'a> {
pub node_id: Cell<NodeId>,
pub span: Span,
#[estree(json_safe)]
pub name: Ident<'a>,
}

Expand Down
8 changes: 4 additions & 4 deletions crates/oxc_ast/src/generated/derive_estree.rs
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ impl ESTree for IdentifierName<'_> {
let mut state = serializer.serialize_struct();
state.serialize_field("type", &JsonSafeString("Identifier"));
state.serialize_ts_field("decorators", &crate::serialize::basic::TsEmptyArray(self));
state.serialize_field("name", &JsonSafeString(self.name.as_str()));
state.serialize_field("name", &self.name);
state.serialize_ts_field("optional", &crate::serialize::basic::TsFalse(self));
state.serialize_ts_field("typeAnnotation", &crate::serialize::basic::TsNull(self));
state.serialize_span(self.span);
Expand All @@ -87,7 +87,7 @@ impl ESTree for IdentifierReference<'_> {
let mut state = serializer.serialize_struct();
state.serialize_field("type", &JsonSafeString("Identifier"));
state.serialize_ts_field("decorators", &crate::serialize::basic::TsEmptyArray(self));
state.serialize_field("name", &JsonSafeString(self.name.as_str()));
state.serialize_field("name", &self.name);
state.serialize_ts_field("optional", &crate::serialize::basic::TsFalse(self));
state.serialize_ts_field("typeAnnotation", &crate::serialize::basic::TsNull(self));
state.serialize_span(self.span);
Expand All @@ -100,7 +100,7 @@ impl ESTree for BindingIdentifier<'_> {
let mut state = serializer.serialize_struct();
state.serialize_field("type", &JsonSafeString("Identifier"));
state.serialize_ts_field("decorators", &crate::serialize::basic::TsEmptyArray(self));
state.serialize_field("name", &JsonSafeString(self.name.as_str()));
state.serialize_field("name", &self.name);
state.serialize_ts_field("optional", &crate::serialize::basic::TsFalse(self));
state.serialize_ts_field("typeAnnotation", &crate::serialize::basic::TsNull(self));
state.serialize_span(self.span);
Expand All @@ -113,7 +113,7 @@ impl ESTree for LabelIdentifier<'_> {
let mut state = serializer.serialize_struct();
state.serialize_field("type", &JsonSafeString("Identifier"));
state.serialize_ts_field("decorators", &crate::serialize::basic::TsEmptyArray(self));
state.serialize_field("name", &JsonSafeString(self.name.as_str()));
state.serialize_field("name", &self.name);
state.serialize_ts_field("optional", &crate::serialize::basic::TsFalse(self));
state.serialize_ts_field("typeAnnotation", &crate::serialize::basic::TsNull(self));
state.serialize_span(self.span);
Expand Down
5 changes: 3 additions & 2 deletions crates/oxc_str/src/ident.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ use oxc_allocator::{
ident_hash, pack_len_hash,
};
#[cfg(feature = "serialize")]
use oxc_estree::{ESTree, Serializer as ESTreeSerializer};
use oxc_estree::{ESTree, JsonSafeString, Serializer as ESTreeSerializer};
#[cfg(feature = "serialize")]
use serde::{Serialize, Serializer as SerdeSerializer};

Expand Down Expand Up @@ -435,7 +435,8 @@ impl Serialize for Ident<'_> {
impl ESTree for Ident<'_> {
#[inline] // Because it just delegates
fn serialize<S: ESTreeSerializer>(&self, serializer: S) {
ESTree::serialize(self.as_str(), serializer);
// `Ident`s are always JSON-safe
ESTree::serialize(&JsonSafeString(self.as_str()), serializer);
}
}

Expand Down
Loading