whole_func_string: function lookupMatcher(service, requestedLocales) {
    if (IS_NULL(InternalRegExpMatch(GetServiceRE(), service))) {
      throw MakeError(kWrongServiceType, service);
    }
  
    // Cache these, they don't ever change per service.
    if (IS_UNDEFINED(AVAILABLE_LOCALES[service])) {
      AVAILABLE_LOCALES[service] = getAvailableLocalesOf(service);
    }
  
    for (var i = 0; i < requestedLocales.length; ++i) {
      // Remove all extensions.
      var locale = InternalRegExpReplace(
          GetAnyExtensionRE(), requestedLocales[i], '');
      do {
        if (!IS_UNDEFINED(AVAILABLE_LOCALES[service][locale])) {
          // Return the resolved locale and extension.
          var extensionMatch = InternalRegExpMatch(
              GetUnicodeExtensionRE(), requestedLocales[i]);
          var extension = IS_NULL(extensionMatch) ? '' : extensionMatch[0];
          return {'locale': locale, 'extension': extension, 'position': i};
        }
        // Truncate locale if possible.
        var pos = %_Call(StringLastIndexOf, locale, '-');
        if (pos === -1) {
          break;
        }
        locale = %_Call(StringSubstring, locale, 0, pos);
      } while (true);
    }
  
    // Didn't find a match, return default.
    return {'locale': GetDefaultICULocaleJS(), 'extension': '', 'position': -1};
  }
func_code_string: function lookupMatcher(service, requestedLocales) {
    if (IS_NULL(InternalRegExpMatch(GetServiceRE(), service))) {
      throw MakeError(kWrongServiceType, service);
    }
  
    // Cache these, they don't ever change per service.
    if (IS_UNDEFINED(AVAILABLE_LOCALES[service])) {
      AVAILABLE_LOCALES[service] = getAvailableLocalesOf(service);
    }
  
    for (var i = 0; i < requestedLocales.length; ++i) {
      // Remove all extensions.
      var locale = InternalRegExpReplace(
          GetAnyExtensionRE(), requestedLocales[i], '');
      do {
        if (!IS_UNDEFINED(AVAILABLE_LOCALES[service][locale])) {
          // Return the resolved locale and extension.
          var extensionMatch = InternalRegExpMatch(
              GetUnicodeExtensionRE(), requestedLocales[i]);
          var extension = IS_NULL(extensionMatch) ? '' : extensionMatch[0];
          return {'locale': locale, 'extension': extension, 'position': i};
        }
        // Truncate locale if possible.
        var pos = %_Call(StringLastIndexOf, locale, '-');
        if (pos === -1) {
          break;
        }
        locale = %_Call(StringSubstring, locale, 0, pos);
      } while (true);
    }
  
    // Didn't find a match, return default.
    return {'locale': GetDefaultICULocaleJS(), 'extension': '', 'position': -1};
  }
func_documentation_string: Returns best matched supported locale and extension info using basic
  lookup algorithm.