mirror of
https://github.com/facebook/react.git
synced 2025-11-01 09:12:30 +00:00
Fix encoding of Unicode keys greater than U+00FF (greater than U+FFFF handled by surrogate pairs)
This commit is contained in:
@@ -566,6 +566,8 @@ export function attach(
|
||||
|
||||
if (key !== null) {
|
||||
if (typeof key === 'number') {
|
||||
// unreachable code?
|
||||
// https://github.com/facebook/react/blob/master/packages/react/src/ReactElement.js#L187
|
||||
encodedKey = new Uint8Array(1);
|
||||
encodedKey[0] = key;
|
||||
} else {
|
||||
|
||||
+3
-3
@@ -51,7 +51,7 @@ export function getUID(): number {
|
||||
return ++uidCounter;
|
||||
}
|
||||
|
||||
export function utfDecodeString(array: Uint8Array): string {
|
||||
export function utfDecodeString(array: Uint16Array): string {
|
||||
let string = '';
|
||||
const { length } = array;
|
||||
for (let i = 0; i < length; i++) {
|
||||
@@ -60,8 +60,8 @@ export function utfDecodeString(array: Uint8Array): string {
|
||||
return string;
|
||||
}
|
||||
|
||||
export function utfEncodeString(string: string): Uint8Array {
|
||||
const array = new Uint8Array(string.length);
|
||||
export function utfEncodeString(string: string): Uint16Array {
|
||||
const array = new Uint16Array(string.length);
|
||||
const { length } = string;
|
||||
for (let i = 0; i < length; i++) {
|
||||
array[i] = string.charCodeAt(i);
|
||||
|
||||
Reference in New Issue
Block a user