@@ -895,6 +895,14 @@ static String doGeneric(Object self,
895
895
896
896
@ TruffleBoundary
897
897
private static String toLowerCase (String self ) {
898
+ if (ImageInfo .inImageBuildtimeCode ()) {
899
+ // Avoid initializing ICU4J in image build
900
+ return self .toLowerCase ();
901
+ }
902
+ return internalToLowerCase (self );
903
+ }
904
+
905
+ private static String internalToLowerCase (String self ) {
898
906
return UCharacter .toLowerCase (Locale .ENGLISH , self );
899
907
}
900
908
}
@@ -1718,7 +1726,7 @@ static boolean doString(String self) {
1718
1726
}
1719
1727
for (int i = 0 ; i < self .length ();) {
1720
1728
int codePoint = self .codePointAt (i );
1721
- if (!UCharacter . isLetterOrDigit (codePoint )) {
1729
+ if (!isLetterOrDigit (codePoint )) {
1722
1730
return false ;
1723
1731
}
1724
1732
i += Character .charCount (codePoint );
@@ -1733,6 +1741,18 @@ static boolean doGeneric(Object self,
1733
1741
}
1734
1742
}
1735
1743
1744
+ private static boolean isLetterOrDigit (int codePoint ) {
1745
+ if (ImageInfo .inImageBuildtimeCode ()) {
1746
+ // Avoid initializing ICU4J in image build
1747
+ return Character .isLetterOrDigit (codePoint );
1748
+ }
1749
+ return internalIsLetterOrDigit (codePoint );
1750
+ }
1751
+
1752
+ private static boolean internalIsLetterOrDigit (int codePoint ) {
1753
+ return UCharacter .isLetterOrDigit (codePoint );
1754
+ }
1755
+
1736
1756
@ Builtin (name = "isalpha" , minNumOfPositionalArgs = 1 )
1737
1757
@ GenerateNodeFactory
1738
1758
abstract static class IsAlphaNode extends PythonUnaryBuiltinNode {
0 commit comments