/
githubmirror
/
pdf.js
Обзор
Документация
Войти
/
githubmirror
/
pdf.js
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/core/to_unicode_map.js
102 строки
2 KB
Jonas Jenwald
Replace simple return `if` statements with ternary operators
31 июл 2026, 13:24
31 июл 2026, 13:24
ee59db5
Код
Авторство
О чём код?
/* Copyright 2012 Mozilla Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { unreachable } from "../shared/util.js"; class ToUnicodeMap { constructor(cmap = []) { // The elements of this._map can be integers or strings, depending on how // `cmap` was created. this._map = cmap; } get length() { return this._map.length; } forEach(callback) { for (const charCode in this._map) { callback(charCode, this._map[charCode].codePointAt(0)); } } has(i) { return this._map[i] !== undefined; } get(i) { return this._map[i]; } charCodeOf(value) { // `Array.prototype.indexOf` is *extremely* inefficient for arrays which // are both very sparse and very large (see issue8372.pdf). const map = this._map; if (map.length <= 0x10000) { return map.indexOf(value); } for (const charCode in map) { if (map[charCode] === value) { return charCode | 0; } } return -1; } amend(map) { for (const charCode in map) { this._map[charCode] = map[charCode]; } } } class IdentityToUnicodeMap { constructor(firstChar, lastChar) { this.firstChar = firstChar; this.lastChar = lastChar; } get length() { return this.lastChar + 1 - this.firstChar; } forEach(callback) { for (let i = this.firstChar, ii = this.lastChar; i <= ii; i++) { callback(i, i); } } has(i) { return this.firstChar <= i && i <= this.lastChar; } get(i) { return this.firstChar <= i && i <= this.lastChar ? String.fromCharCode(i) : undefined; } charCodeOf(v) { return Number.isInteger(v) && v >= this.firstChar && v <= this.lastChar ? v : -1; } amend(map) { unreachable("Should not call amend()"); } } export { IdentityToUnicodeMap, ToUnicodeMap };