71 lines
2.1 KiB
JavaScript
71 lines
2.1 KiB
JavaScript
// Module ID: 13232
|
|
// Function ID: 101860
|
|
// Name: UnicodeExtensionComponents
|
|
// Dependencies: [13227]
|
|
|
|
// Module 13232 (UnicodeExtensionComponents)
|
|
const require = arg1;
|
|
const dependencyMap = arg6;
|
|
arg5.UnicodeExtensionComponents = function UnicodeExtensionComponents(str) {
|
|
let obj;
|
|
obj(13227).invariant(str === str.toLowerCase(), "Expected extension to be lowercase");
|
|
let num = 3;
|
|
obj(13227).invariant("-u-" === str.slice(0, 3), "Expected extension to be a Unicode locale extension");
|
|
const attributes = [];
|
|
const keywords = [];
|
|
if (3 < str.length) {
|
|
while (true) {
|
|
let index = str.indexOf("-", num);
|
|
let tmp4 = num;
|
|
let tmp5 = -1 === index ? length - num : index - num;
|
|
let substr = str.slice(num, num + tmp5);
|
|
let tmp7 = obj;
|
|
let tmp8 = dependencyMap;
|
|
let invariantResult2 = obj(13227).invariant(tmp5 >= 2, "Expected a subtag to have at least 2 characters");
|
|
if (undefined === iter) {
|
|
if (2 !== tmp5) {
|
|
let tmp14 = iter;
|
|
if (-1 === attributes.indexOf(substr)) {
|
|
let arr = attributes.push(substr);
|
|
tmp14 = iter;
|
|
}
|
|
num = num + (tmp5 + 1);
|
|
iter = tmp14;
|
|
if (num >= length) {
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
if (2 === tmp5) {
|
|
obj = { key: substr, value: "" };
|
|
tmp14 = obj;
|
|
if (undefined === keywords.find((key) => {
|
|
key = undefined;
|
|
if (null != obj) {
|
|
key = obj.key;
|
|
}
|
|
return key.key === key;
|
|
})) {
|
|
arr = keywords.push(obj);
|
|
tmp14 = obj;
|
|
}
|
|
} else {
|
|
let value;
|
|
if (null != iter) {
|
|
value = iter.value;
|
|
}
|
|
if ("" === value) {
|
|
iter.value = substr;
|
|
tmp14 = iter;
|
|
} else {
|
|
let tmp11 = obj;
|
|
let tmp12 = dependencyMap;
|
|
let invariantResult3 = obj(13227).invariant(undefined !== iter, "Expected keyword to be defined");
|
|
iter.value = `${iter.value}-${tmp6}`;
|
|
tmp14 = iter;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return { attributes, keywords };
|
|
};
|