code: function $initializeCodesMap() {
          var k    = null,
              code = null;
  
          // validate codes mapping
          for(k in CODES) {
              code = CODES[k];
              if (code.map !== undefined)  {
                  if (CODES[code.map] === undefined) {
                      throw new Error("Invalid mapping for code = '" + k + "'");
                  }
              } else if (code.keyCode === undefined) {
                  throw new Error("unknown keyCode  for code = '" + k + "'");
              }
          }
  
          // build codes map table for the cases when "code" property
          CODES_MAP = {};
          for(k in CODES) {
              code = CODES[k];
              if (code.map !== undefined) {
                  if (code.keyCode !== undefined) {
                      CODES_MAP[code.keyCode] = code.map;
                  }
              } else {
                  CODES_MAP[code.keyCode] = k;
              }
          }
      }
docs: codes to that are not the same for different browsers