debug-server-next
Version:
Dev server for hippy-core.
34 lines (33 loc) • 1.11 kB
JavaScript
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
/* eslint-disable rulesdir/no_underscored_properties */
export class CharacterIdMap {
elementToCharacter;
characterToElement;
charCode;
constructor() {
this.elementToCharacter = new Map();
this.characterToElement = new Map();
this.charCode = 33;
}
toChar(object) {
let character = this.elementToCharacter.get(object);
if (!character) {
if (this.charCode >= 0xFFFF) {
throw new Error('CharacterIdMap ran out of capacity!');
}
character = String.fromCharCode(this.charCode++);
this.elementToCharacter.set(object, character);
this.characterToElement.set(character, object);
}
return character;
}
fromChar(character) {
const object = this.characterToElement.get(character);
if (object === undefined) {
return null;
}
return object;
}
}