It's sometimes desireable to leave user requested locale instead of ICU
supported one (zh-TW is equivalent to zh-Hant-TW, so we should keep shorter
one, if that was what user requested).
This function returns user specified tag if its maximized form matches ICU
resolved locale. If not we return ICU result.
function getOptimalLanguageTag(original, resolved) {
  // Returns Array<Object>, where each object has maximized and base properties.
  // Maximized: zh -> zh-Hans-CN
  // Base: zh-CN-u-ca-gregory -> zh-CN
  // Take care of grandfathered or simple cases.
  if (original === resolved) {
    return original;
  }

  var locales = %GetLanguageTagVariants([original, resolved]);
  if (locales[0].maximized !== locales[1].maximized) {
    return resolved;
  }

  // Preserve extensions of resolved locale, but swap base tags with original.
  var resolvedBase = new GlobalRegExp('^' + locales[1].base, 'g');
  return InternalRegExpReplace(resolvedBase, resolved, locales[0].base);
}