whole_func_string: function lookupSupportedLocalesOf(requestedLocales, availableLocales) {
    var matchedLocales = new InternalArray();
    for (var i = 0; i < requestedLocales.length; ++i) {
      // Remove -u- extension.
      var locale = InternalRegExpReplace(
          GetUnicodeExtensionRE(), requestedLocales[i], '');
      do {
        if (!IS_UNDEFINED(availableLocales[locale])) {
          // Push requested locale not the resolved one.
          %_Call(ArrayPush, matchedLocales, requestedLocales[i]);
          break;
        }
        // Truncate locale if possible, if not break.
        var pos = %_Call(StringLastIndexOf, locale, '-');
        if (pos === -1) {
          break;
        }
        locale = %_Call(StringSubstring, locale, 0, pos);
      } while (true);
    }
  
    return matchedLocales;
  }
func_code_string: function lookupSupportedLocalesOf(requestedLocales, availableLocales) {
    var matchedLocales = new InternalArray();
    for (var i = 0; i < requestedLocales.length; ++i) {
      // Remove -u- extension.
      var locale = InternalRegExpReplace(
          GetUnicodeExtensionRE(), requestedLocales[i], '');
      do {
        if (!IS_UNDEFINED(availableLocales[locale])) {
          // Push requested locale not the resolved one.
          %_Call(ArrayPush, matchedLocales, requestedLocales[i]);
          break;
        }
        // Truncate locale if possible, if not break.
        var pos = %_Call(StringLastIndexOf, locale, '-');
        if (pos === -1) {
          break;
        }
        locale = %_Call(StringSubstring, locale, 0, pos);
      } while (true);
    }
  
    return matchedLocales;
  }
func_documentation_string: Returns the subset of the provided BCP 47 language priority list for which
  this service has a matching locale when using the BCP 47 Lookup algorithm.
  Locales appear in the same order in the returned list as in the input list.