src/vs/editor/standalone/common/monarch/monarchLexer.ts/MonarchModernTokensCollector/_merge
class MonarchModernTokensCollector:	private static _merge(a: Uint32Array | null, b: number[], c: Uint32Array | null): Uint32Array {
		let aLen = (a !== null ? a.length : 0);
		let bLen = b.length;
		let cLen = (c !== null ? c.length : 0);

		if (aLen === 0 && bLen === 0 && cLen === 0) {
			return new Uint32Array(0);
		}
		if (aLen === 0 && bLen === 0) {
			return c!;
		}
		if (bLen === 0 && cLen === 0) {
			return a!;
		}

		let result = new Uint32Array(aLen + bLen + cLen);
		if (a !== null) {
			result.set(a);
		}
		for (let i = 0; i < bLen; i++) {
			result[aLen + i] = b[i];
		}
		if (c !== null) {
			result.set(c, aLen + bLen);
		}
		return result;
	}