mirror of
https://github.com/react/react-native-devtools-frontend.git
synced 2026-10-07 04:26:32 +08:00
This reverts commitdca9ea19e0. Reason for revert: Trying again now that https://crrev.com/c/chromium/src/+/1962191 has landed in Chromium Original change's description: > Revert "Reland "Updates common/ legacy; resoves internal refs"" > > This reverts commitcea2ead2fb. > > Reason for revert: https://ci.chromium.org/p/devtools-frontend/builders/ci/DevTools%20Linux/b8894363207681558512 > > Original change's description: > > Reland "Updates common/ legacy; resoves internal refs" > > > > This is a reland of1309e5c39a> > > > Original change's description: > > > Updates common/ legacy; resoves internal refs > > > > > > Bug: 1006759 > > > Change-Id: If67d6626f45ae7fc6b5f7da3f04a74fd1362b058 > > > Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/1960455 > > > Commit-Queue: Paul Lewis <aerotwist@chromium.org> > > > Reviewed-by: Tim van der Lippe <tvanderlippe@chromium.org> > > > > TBR=tvanderlippe@chromium.org > > Bug: 1006759 > > Change-Id: Ia656aff34ccae0ef9b1819670906ff74b04eb580 > > Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/1959983 > > Commit-Queue: Paul Lewis <aerotwist@chromium.org> > > Reviewed-by: Paul Lewis <aerotwist@chromium.org> > > TBR=aerotwist@chromium.org,tvanderlippe@chromium.org > > Change-Id: I18857c0d060e83584a8f643efbe65f90cbd814fe > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: 1006759 > Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/1962285 > Reviewed-by: Paul Lewis <aerotwist@chromium.org> > Commit-Queue: Paul Lewis <aerotwist@chromium.org> TBR=aerotwist@chromium.org,tvanderlippe@chromium.org Change-Id: Id996b598ed5903b7a74be83424a862e43283d0eb No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: 1006759 Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/1962286 Reviewed-by: Paul Lewis <aerotwist@chromium.org> Commit-Queue: Paul Lewis <aerotwist@chromium.org>
47 lines
1.1 KiB
JavaScript
47 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
|
|
*/
|
|
export class CharacterIdMap {
|
|
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;
|
|
}
|
|
}
|