code: function getSymbol(symbols, propertyName) {
    if (symbols.has(propertyName)) {
      return {
        symbol: symbols.get(propertyName),
        isNew: false
      }
    }
  
    let symbol = Symbol(propertyName)
    symbols.set(propertyName, symbol)
    return {
      symbol,
      isNew: true
    }
  }
docs: Retrieves or generates and caches the private field symbol for the private
  property of the specified name.
  
  @param {Map<string, symbol>} symbols Cache of private property symbols.
  @param {string} propertyName The name of the private property.
  @return {{symbol: symbol, isNew: boolean}} An object wrapping the symbol to
  use for setting and retrieving the value of the specified private
  property. The {@code isNew} flag specifies whether the symbol has
  just been created.