move utf32ToString to TextDecoder.ts
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
* @license MIT
|
||||
*/
|
||||
import { assert } from 'chai';
|
||||
import { fillFallback, concat, utf32ToString } from './TypedArrayUtils';
|
||||
import { fillFallback, concat } from './TypedArrayUtils';
|
||||
|
||||
type TypedArray = Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray
|
||||
| Int8Array | Int16Array | Int32Array
|
||||
@@ -94,12 +94,4 @@ describe('typed array convenience functions', () => {
|
||||
const merged = concat(a, b);
|
||||
deepEquals(merged, new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8, 9, 0]));
|
||||
});
|
||||
it('utf16ToString', () => {
|
||||
const s = 'abcdefg';
|
||||
const data = new Uint16Array(s.length);
|
||||
for (let i = 0; i < s.length; ++i) {
|
||||
data[i] = s.charCodeAt(i);
|
||||
}
|
||||
assert.equal(utf32ToString(data), s);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -2,10 +2,7 @@
|
||||
* Copyright (c) 2018 The xterm.js authors. All rights reserved.
|
||||
* @license MIT
|
||||
*/
|
||||
|
||||
type TypedArray = Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray
|
||||
| Int8Array | Int16Array | Int32Array
|
||||
| Float32Array | Float64Array;
|
||||
import { TypedArray } from './Types';
|
||||
|
||||
/**
|
||||
* polyfill for TypedArray.fill
|
||||
@@ -49,20 +46,3 @@ export function concat<T extends TypedArray>(a: T, b: T): T {
|
||||
result.set(b, a.length);
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert UTF32 char codes into JS string.
|
||||
*/
|
||||
export function utf32ToString<T extends TypedArray>(data: T, start: number = 0, end: number = data.length): string {
|
||||
let result = '';
|
||||
let cp;
|
||||
for (let i = start; i < end; ++i) {
|
||||
if ((cp = data[i]) > 0xFFFF) {
|
||||
cp -= 0x10000;
|
||||
result += String.fromCharCode((cp >> 10) + 0xD800) + String.fromCharCode((cp % 0x400) + 0xDC00);
|
||||
} else {
|
||||
result += String.fromCharCode(cp);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -35,3 +35,7 @@ export interface ICircularList<T> extends IEventEmitter {
|
||||
trimStart(count: number): void;
|
||||
shiftElements(start: number, count: number, offset: number): void;
|
||||
}
|
||||
|
||||
export type TypedArray = Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray
|
||||
| Int8Array | Int16Array | Int32Array
|
||||
| Float32Array | Float64Array;
|
||||
|
||||
Reference in New Issue
Block a user