Skip to content

Commit

Permalink
refactor(identifier): add ZWSP to is_irregular_whitespace
Browse files Browse the repository at this point in the history
closes #6646
  • Loading branch information
Boshen committed Oct 18, 2024
1 parent 9d43a11 commit 04baf3c
Showing 1 changed file with 6 additions and 7 deletions.
13 changes: 6 additions & 7 deletions crates/oxc_syntax/src/identifier.rs
Original file line number Diff line number Diff line change
Expand Up @@ -52,21 +52,20 @@ const MMSP: char = '\u{205f}';

const IDEOGRAPHIC_SPACE: char = '\u{3000}';

// https://eslint.org/docs/latest/rules/no-irregular-whitespace#rule-details
#[rustfmt::skip]
pub fn is_irregular_whitespace(c: char) -> bool {
matches!(
c,
VT | FF | NBSP | ZWNBSP | NEL | OGHAM_SPACE_MARK | EN_QUAD
..ZWSP | NNBSP | MMSP | IDEOGRAPHIC_SPACE
matches!(c,
VT | FF | NBSP | ZWNBSP | NEL | OGHAM_SPACE_MARK
| EN_QUAD..=ZWSP | NNBSP | MMSP | IDEOGRAPHIC_SPACE
)
}

// https://github.com/microsoft/TypeScript/blob/b8e4ed8aeb0b228f544c5736908c31f136a9f7e3/src/compiler/scanner.ts#L556
// TODO: Unclear why we match `ZWSP` here, and not in `is_irregular_whitespace`.
// https://github.com/oxc-project/oxc/pull/6639
pub fn is_white_space_single_line(c: char) -> bool {
// Note: nextLine is in the Zs space, and should be considered to be a whitespace.
// It is explicitly not a line-break as it isn't in the exact set specified by EcmaScript.
matches!(c, SP | TAB | ZWSP) || is_irregular_whitespace(c)
matches!(c, SP | TAB) || is_irregular_whitespace(c)
}

// 11.3 Line Terminators
Expand Down

0 comments on commit 04baf3c

Please sign in to comment.