You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
969 B
40 lines
969 B
4 years ago
|
'use strict';
|
||
|
|
||
|
const fs = require('fs');
|
||
|
const path = require('path');
|
||
|
const bitfield = require('sparse-bitfield');
|
||
|
|
||
|
/* eslint-disable-next-line security/detect-non-literal-fs-filename */
|
||
|
const memory = fs.readFileSync(path.resolve(__dirname, '../code-points.mem'));
|
||
|
let offset = 0;
|
||
|
|
||
|
/**
|
||
|
* Loads each code points sequence from buffer.
|
||
|
* @returns {bitfield}
|
||
|
*/
|
||
|
function read() {
|
||
|
const size = memory.readUInt32BE(offset);
|
||
|
offset += 4;
|
||
|
|
||
|
const codepoints = memory.slice(offset, offset + size);
|
||
|
offset += size;
|
||
|
|
||
|
return bitfield({ buffer: codepoints });
|
||
|
}
|
||
|
|
||
|
const unassigned_code_points = read();
|
||
|
const commonly_mapped_to_nothing = read();
|
||
|
const non_ASCII_space_characters = read();
|
||
|
const prohibited_characters = read();
|
||
|
const bidirectional_r_al = read();
|
||
|
const bidirectional_l = read();
|
||
|
|
||
|
module.exports = {
|
||
|
unassigned_code_points,
|
||
|
commonly_mapped_to_nothing,
|
||
|
non_ASCII_space_characters,
|
||
|
prohibited_characters,
|
||
|
bidirectional_r_al,
|
||
|
bidirectional_l,
|
||
|
};
|