code: void translate() {
              make.at(pos.getStartPosition());
              JCClassDecl owner = classDef((ClassSymbol)mapVar.owner);
  
              // synthetic static final int[] $SwitchMap$Color = new int[Color.values().length];
              MethodSymbol valuesMethod = lookupMethod(pos,
                                                       names.values,
                                                       forEnum.type,
                                                       List.nil());
              JCExpression size = make // Color.values().length
                  .Select(make.App(make.QualIdent(valuesMethod)),
                          syms.lengthVar);
              JCExpression mapVarInit = make
                  .NewArray(make.Type(syms.intType), List.of(size), null)
                  .setType(new ArrayType(syms.intType, syms.arrayClass));
  
              // try { $SwitchMap$Color[red.ordinal()] = 1; } catch (java.lang.NoSuchFieldError ex) {}
              ListBuffer<JCStatement> stmts = new ListBuffer<>();
              Symbol ordinalMethod = lookupMethod(pos,
                                                  names.ordinal,
                                                  forEnum.type,
                                                  List.nil());
              List<JCCatch> catcher = List.<JCCatch>nil()
                  .prepend(make.Catch(make.VarDef(new VarSymbol(PARAMETER, names.ex,
                                                                syms.noSuchFieldErrorType,
                                                                syms.noSymbol),
                                                  null),
                                      make.Block(0, List.nil())));
              for (Map.Entry<VarSymbol,Integer> e : values.entrySet()) {
                  VarSymbol enumerator = e.getKey();
                  Integer mappedValue = e.getValue();
                  JCExpression assign = make
                      .Assign(make.Indexed(mapVar,
                                           make.App(make.Select(make.QualIdent(enumerator),
                                                                ordinalMethod))),
                              make.Literal(mappedValue))
                      .setType(syms.intType);
                  JCStatement exec = make.Exec(assign);
                  JCStatement _try = make.Try(make.Block(0, List.of(exec)), catcher, null);
                  stmts.append(_try);
              }
  
              owner.defs = owner.defs
                  .prepend(make.Block(STATIC, stmts.toList()))
                  .prepend(make.VarDef(mapVar, mapVarInit));
          }
docs: generate the field initializer for the map