mirror of
https://github.com/react/react-native-devtools-frontend.git
synced 2026-10-10 05:35:05 +08:00
Move and rename files. NOAUTOREVERT=true NOPRESUBMIT=true NOTREECHECKS=true Bug: 768828 TBR=darin@chromium.org NOTRY=true Change-Id: I66d3b155808bc5bdbf237b80208e1e552bcf7f28 Reviewed-on: https://chromium-review.googlesource.com/1001153 Reviewed-by: Blink Reformat <blink-reformat@chromium.org> Commit-Queue: Blink Reformat <blink-reformat@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#549061} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 0aee4434a4dba42a42abaea9bfbc0cd196a63bc1
44 lines
1.1 KiB
JavaScript
44 lines
1.1 KiB
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.
|
|
/**
|
|
* @template T
|
|
* @unrestricted
|
|
*/
|
|
Common.CharacterIdMap = class {
|
|
constructor() {
|
|
/** @type {!Map<T, string>} */
|
|
this._elementToCharacter = new Map();
|
|
/** @type {!Map<string, T>} */
|
|
this._characterToElement = new Map();
|
|
this._charCode = 33;
|
|
}
|
|
|
|
/**
|
|
* @param {T} object
|
|
* @return {string}
|
|
*/
|
|
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;
|
|
}
|
|
|
|
/**
|
|
* @param {string} character
|
|
* @return {?T}
|
|
*/
|
|
fromChar(character) {
|
|
const object = this._characterToElement.get(character);
|
|
if (object === undefined)
|
|
return null;
|
|
return object;
|
|
}
|
|
};
|