diff --git a/string.c b/string.c index 0ab2012c89..4e62f5971e 100644 --- a/string.c +++ b/string.c @@ -8426,7 +8426,7 @@ rb_str_enumerate_grapheme_clusters(VALUE str, VALUE ary) static VALUE rb_str_each_grapheme_cluster(VALUE str) { - RETURN_SIZED_ENUMERATOR(str, 0, 0, rb_str_each_char_size); + RETURN_ENUMERATOR(str, 0, 0); return rb_str_enumerate_grapheme_clusters(str, 0); } diff --git a/test/ruby/test_string.rb b/test/ruby/test_string.rb index f71dfc7fee..31b7abe31c 100644 --- a/test/ruby/test_string.rb +++ b/test/ruby/test_string.rb @@ -989,6 +989,9 @@ CODE assert_equal ["a", "b", "c"], "abc".b.each_grapheme_cluster.to_a s = ("x"+"\u{10ABCD}"*250000) assert_empty(s.each_grapheme_cluster {s.clear}) + + assert_nil "\u{20 200d}".each_grapheme_cluster.size + assert_nil "\u{a 308}".each_grapheme_cluster.size end def test_grapheme_clusters