From e465bc7495c64e44b60c0e69a7de24d37b98d851 Mon Sep 17 00:00:00 2001 From: jinhyuk9714 Date: Wed, 20 May 2026 14:20:38 +0900 Subject: [PATCH] fix: handle emoji modifiers in previous grapheme breaks --- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown_pkg_readmes status: na - task: lint_markdown_docs status: na - task: lint_markdown status: na - task: lint_package_json status: na - task: lint_repl_help status: na - task: lint_javascript_src status: passed - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: passed - task: lint_javascript_benchmarks status: na - task: lint_python status: na - task: lint_r status: na - task: lint_c_src status: na - task: lint_c_examples status: na - task: lint_c_benchmarks status: na - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: passed - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- .../string/prev-grapheme-cluster-break/lib/main.js | 3 --- .../string/prev-grapheme-cluster-break/test/test.js | 9 +++++++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/lib/node_modules/@stdlib/string/prev-grapheme-cluster-break/lib/main.js b/lib/node_modules/@stdlib/string/prev-grapheme-cluster-break/lib/main.js index 5395038e6e4c..7d884ad62e4e 100644 --- a/lib/node_modules/@stdlib/string/prev-grapheme-cluster-break/lib/main.js +++ b/lib/node_modules/@stdlib/string/prev-grapheme-cluster-break/lib/main.js @@ -105,9 +105,6 @@ function prevGraphemeClusterBreak( str, fromIndex ) { for ( i = 1; i <= idx; i++ ) { // If the current character is part of a surrogate pair, move along... if ( hasUTF16SurrogatePairAt( str, i-1 ) ) { - ans = i-2; - breaks.length = 0; - emoji.length = 0; continue; } cp = codePointAt( str, i ); diff --git a/lib/node_modules/@stdlib/string/prev-grapheme-cluster-break/test/test.js b/lib/node_modules/@stdlib/string/prev-grapheme-cluster-break/test/test.js index e0811d476245..bbec778bb251 100644 --- a/lib/node_modules/@stdlib/string/prev-grapheme-cluster-break/test/test.js +++ b/lib/node_modules/@stdlib/string/prev-grapheme-cluster-break/test/test.js @@ -192,6 +192,15 @@ tape( 'the function returns the previous grapheme break position in a specified t.end(); }); +tape( 'the function treats emoji modifier sequences as a single extended grapheme cluster', function test( t ) { + var out; + + out = prevGraphemeClusterBreak( '👉🏿' ); + t.strictEqual( out, -1, 'returns expected value' ); + + t.end(); +}); + tape( 'the function returns zero when the second argument is a negative integer (equivalent to clamping the second argument to zero)', function test( t ) { var out;