8303018: Unicode Emoji Properties

Reviewed-by: prr, erikj, rriggs
This commit is contained in:
Naoto Sato 2023-03-20 20:20:19 +00:00
parent bc0ed730f2
commit f593a6b52e
19 changed files with 643 additions and 278 deletions

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 2003, 2021, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2003, 2023, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -120,6 +120,30 @@ class CharacterData00 extends CharacterData {
return ((props & $$maskIdentifierInfo) == $$valueIgnorable);
}
boolean isEmoji(int ch) {
return (getPropertiesEx(ch) & $$maskEmoji) != 0;
}
boolean isEmojiPresentation(int ch) {
return (getPropertiesEx(ch) & $$maskEmojiPresentation) != 0;
}
boolean isEmojiModifier(int ch) {
return (getPropertiesEx(ch) & $$maskEmojiModifier) != 0;
}
boolean isEmojiModifierBase(int ch) {
return (getPropertiesEx(ch) & $$maskEmojiModifierBase) != 0;
}
boolean isEmojiComponent(int ch) {
return (getPropertiesEx(ch) & $$maskEmojiComponent) != 0;
}
boolean isExtendedPictographic(int ch) {
return (getPropertiesEx(ch) & $$maskExtendedPictographic) != 0;
}
int toLowerCase(int ch) {
int mapChar = ch;
int val = getProperties(ch);