Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/clone/wp-conte.../plugins/embedpre.../assets/pdf/web
File: viewer.js
scope.reportError(err);
[5500] Fix | Delete
return this.value.toString(10);
[5501] Fix | Delete
}
[5502] Fix | Delete
}
[5503] Fix | Delete
}
[5504] Fix | Delete
class FluentDateTime extends FluentType {
[5505] Fix | Delete
constructor(value, opts = {}) {
[5506] Fix | Delete
super(value);
[5507] Fix | Delete
this.opts = opts;
[5508] Fix | Delete
}
[5509] Fix | Delete
toString(scope) {
[5510] Fix | Delete
try {
[5511] Fix | Delete
const dtf = scope.memoizeIntlObject(Intl.DateTimeFormat, this.opts);
[5512] Fix | Delete
return dtf.format(this.value);
[5513] Fix | Delete
} catch (err) {
[5514] Fix | Delete
scope.reportError(err);
[5515] Fix | Delete
return new Date(this.value).toISOString();
[5516] Fix | Delete
}
[5517] Fix | Delete
}
[5518] Fix | Delete
}
[5519] Fix | Delete
;// CONCATENATED MODULE: ./node_modules/@fluent/bundle/esm/resolver.js
[5520] Fix | Delete
[5521] Fix | Delete
[5522] Fix | Delete
const MAX_PLACEABLES = 100;
[5523] Fix | Delete
const FSI = "\u2068";
[5524] Fix | Delete
const PDI = "\u2069";
[5525] Fix | Delete
function match(scope, selector, key) {
[5526] Fix | Delete
if (key === selector) {
[5527] Fix | Delete
return true;
[5528] Fix | Delete
}
[5529] Fix | Delete
if (key instanceof FluentNumber && selector instanceof FluentNumber && key.value === selector.value) {
[5530] Fix | Delete
return true;
[5531] Fix | Delete
}
[5532] Fix | Delete
if (selector instanceof FluentNumber && typeof key === "string") {
[5533] Fix | Delete
let category = scope.memoizeIntlObject(Intl.PluralRules, selector.opts).select(selector.value);
[5534] Fix | Delete
if (key === category) {
[5535] Fix | Delete
return true;
[5536] Fix | Delete
}
[5537] Fix | Delete
}
[5538] Fix | Delete
return false;
[5539] Fix | Delete
}
[5540] Fix | Delete
function getDefault(scope, variants, star) {
[5541] Fix | Delete
if (variants[star]) {
[5542] Fix | Delete
return resolvePattern(scope, variants[star].value);
[5543] Fix | Delete
}
[5544] Fix | Delete
scope.reportError(new RangeError("No default"));
[5545] Fix | Delete
return new FluentNone();
[5546] Fix | Delete
}
[5547] Fix | Delete
function getArguments(scope, args) {
[5548] Fix | Delete
const positional = [];
[5549] Fix | Delete
const named = Object.create(null);
[5550] Fix | Delete
for (const arg of args) {
[5551] Fix | Delete
if (arg.type === "narg") {
[5552] Fix | Delete
named[arg.name] = resolveExpression(scope, arg.value);
[5553] Fix | Delete
} else {
[5554] Fix | Delete
positional.push(resolveExpression(scope, arg));
[5555] Fix | Delete
}
[5556] Fix | Delete
}
[5557] Fix | Delete
return {
[5558] Fix | Delete
positional,
[5559] Fix | Delete
named
[5560] Fix | Delete
};
[5561] Fix | Delete
}
[5562] Fix | Delete
function resolveExpression(scope, expr) {
[5563] Fix | Delete
switch (expr.type) {
[5564] Fix | Delete
case "str":
[5565] Fix | Delete
return expr.value;
[5566] Fix | Delete
case "num":
[5567] Fix | Delete
return new FluentNumber(expr.value, {
[5568] Fix | Delete
minimumFractionDigits: expr.precision
[5569] Fix | Delete
});
[5570] Fix | Delete
case "var":
[5571] Fix | Delete
return resolveVariableReference(scope, expr);
[5572] Fix | Delete
case "mesg":
[5573] Fix | Delete
return resolveMessageReference(scope, expr);
[5574] Fix | Delete
case "term":
[5575] Fix | Delete
return resolveTermReference(scope, expr);
[5576] Fix | Delete
case "func":
[5577] Fix | Delete
return resolveFunctionReference(scope, expr);
[5578] Fix | Delete
case "select":
[5579] Fix | Delete
return resolveSelectExpression(scope, expr);
[5580] Fix | Delete
default:
[5581] Fix | Delete
return new FluentNone();
[5582] Fix | Delete
}
[5583] Fix | Delete
}
[5584] Fix | Delete
function resolveVariableReference(scope, {
[5585] Fix | Delete
name
[5586] Fix | Delete
}) {
[5587] Fix | Delete
let arg;
[5588] Fix | Delete
if (scope.params) {
[5589] Fix | Delete
if (Object.prototype.hasOwnProperty.call(scope.params, name)) {
[5590] Fix | Delete
arg = scope.params[name];
[5591] Fix | Delete
} else {
[5592] Fix | Delete
return new FluentNone(`$${name}`);
[5593] Fix | Delete
}
[5594] Fix | Delete
} else if (scope.args && Object.prototype.hasOwnProperty.call(scope.args, name)) {
[5595] Fix | Delete
arg = scope.args[name];
[5596] Fix | Delete
} else {
[5597] Fix | Delete
scope.reportError(new ReferenceError(`Unknown variable: $${name}`));
[5598] Fix | Delete
return new FluentNone(`$${name}`);
[5599] Fix | Delete
}
[5600] Fix | Delete
if (arg instanceof FluentType) {
[5601] Fix | Delete
return arg;
[5602] Fix | Delete
}
[5603] Fix | Delete
switch (typeof arg) {
[5604] Fix | Delete
case "string":
[5605] Fix | Delete
return arg;
[5606] Fix | Delete
case "number":
[5607] Fix | Delete
return new FluentNumber(arg);
[5608] Fix | Delete
case "object":
[5609] Fix | Delete
if (arg instanceof Date) {
[5610] Fix | Delete
return new FluentDateTime(arg.getTime());
[5611] Fix | Delete
}
[5612] Fix | Delete
default:
[5613] Fix | Delete
scope.reportError(new TypeError(`Variable type not supported: $${name}, ${typeof arg}`));
[5614] Fix | Delete
return new FluentNone(`$${name}`);
[5615] Fix | Delete
}
[5616] Fix | Delete
}
[5617] Fix | Delete
function resolveMessageReference(scope, {
[5618] Fix | Delete
name,
[5619] Fix | Delete
attr
[5620] Fix | Delete
}) {
[5621] Fix | Delete
const message = scope.bundle._messages.get(name);
[5622] Fix | Delete
if (!message) {
[5623] Fix | Delete
scope.reportError(new ReferenceError(`Unknown message: ${name}`));
[5624] Fix | Delete
return new FluentNone(name);
[5625] Fix | Delete
}
[5626] Fix | Delete
if (attr) {
[5627] Fix | Delete
const attribute = message.attributes[attr];
[5628] Fix | Delete
if (attribute) {
[5629] Fix | Delete
return resolvePattern(scope, attribute);
[5630] Fix | Delete
}
[5631] Fix | Delete
scope.reportError(new ReferenceError(`Unknown attribute: ${attr}`));
[5632] Fix | Delete
return new FluentNone(`${name}.${attr}`);
[5633] Fix | Delete
}
[5634] Fix | Delete
if (message.value) {
[5635] Fix | Delete
return resolvePattern(scope, message.value);
[5636] Fix | Delete
}
[5637] Fix | Delete
scope.reportError(new ReferenceError(`No value: ${name}`));
[5638] Fix | Delete
return new FluentNone(name);
[5639] Fix | Delete
}
[5640] Fix | Delete
function resolveTermReference(scope, {
[5641] Fix | Delete
name,
[5642] Fix | Delete
attr,
[5643] Fix | Delete
args
[5644] Fix | Delete
}) {
[5645] Fix | Delete
const id = `-${name}`;
[5646] Fix | Delete
const term = scope.bundle._terms.get(id);
[5647] Fix | Delete
if (!term) {
[5648] Fix | Delete
scope.reportError(new ReferenceError(`Unknown term: ${id}`));
[5649] Fix | Delete
return new FluentNone(id);
[5650] Fix | Delete
}
[5651] Fix | Delete
if (attr) {
[5652] Fix | Delete
const attribute = term.attributes[attr];
[5653] Fix | Delete
if (attribute) {
[5654] Fix | Delete
scope.params = getArguments(scope, args).named;
[5655] Fix | Delete
const resolved = resolvePattern(scope, attribute);
[5656] Fix | Delete
scope.params = null;
[5657] Fix | Delete
return resolved;
[5658] Fix | Delete
}
[5659] Fix | Delete
scope.reportError(new ReferenceError(`Unknown attribute: ${attr}`));
[5660] Fix | Delete
return new FluentNone(`${id}.${attr}`);
[5661] Fix | Delete
}
[5662] Fix | Delete
scope.params = getArguments(scope, args).named;
[5663] Fix | Delete
const resolved = resolvePattern(scope, term.value);
[5664] Fix | Delete
scope.params = null;
[5665] Fix | Delete
return resolved;
[5666] Fix | Delete
}
[5667] Fix | Delete
function resolveFunctionReference(scope, {
[5668] Fix | Delete
name,
[5669] Fix | Delete
args
[5670] Fix | Delete
}) {
[5671] Fix | Delete
let func = scope.bundle._functions[name];
[5672] Fix | Delete
if (!func) {
[5673] Fix | Delete
scope.reportError(new ReferenceError(`Unknown function: ${name}()`));
[5674] Fix | Delete
return new FluentNone(`${name}()`);
[5675] Fix | Delete
}
[5676] Fix | Delete
if (typeof func !== "function") {
[5677] Fix | Delete
scope.reportError(new TypeError(`Function ${name}() is not callable`));
[5678] Fix | Delete
return new FluentNone(`${name}()`);
[5679] Fix | Delete
}
[5680] Fix | Delete
try {
[5681] Fix | Delete
let resolved = getArguments(scope, args);
[5682] Fix | Delete
return func(resolved.positional, resolved.named);
[5683] Fix | Delete
} catch (err) {
[5684] Fix | Delete
scope.reportError(err);
[5685] Fix | Delete
return new FluentNone(`${name}()`);
[5686] Fix | Delete
}
[5687] Fix | Delete
}
[5688] Fix | Delete
function resolveSelectExpression(scope, {
[5689] Fix | Delete
selector,
[5690] Fix | Delete
variants,
[5691] Fix | Delete
star
[5692] Fix | Delete
}) {
[5693] Fix | Delete
let sel = resolveExpression(scope, selector);
[5694] Fix | Delete
if (sel instanceof FluentNone) {
[5695] Fix | Delete
return getDefault(scope, variants, star);
[5696] Fix | Delete
}
[5697] Fix | Delete
for (const variant of variants) {
[5698] Fix | Delete
const key = resolveExpression(scope, variant.key);
[5699] Fix | Delete
if (match(scope, sel, key)) {
[5700] Fix | Delete
return resolvePattern(scope, variant.value);
[5701] Fix | Delete
}
[5702] Fix | Delete
}
[5703] Fix | Delete
return getDefault(scope, variants, star);
[5704] Fix | Delete
}
[5705] Fix | Delete
function resolveComplexPattern(scope, ptn) {
[5706] Fix | Delete
if (scope.dirty.has(ptn)) {
[5707] Fix | Delete
scope.reportError(new RangeError("Cyclic reference"));
[5708] Fix | Delete
return new FluentNone();
[5709] Fix | Delete
}
[5710] Fix | Delete
scope.dirty.add(ptn);
[5711] Fix | Delete
const result = [];
[5712] Fix | Delete
const useIsolating = scope.bundle._useIsolating && ptn.length > 1;
[5713] Fix | Delete
for (const elem of ptn) {
[5714] Fix | Delete
if (typeof elem === "string") {
[5715] Fix | Delete
result.push(scope.bundle._transform(elem));
[5716] Fix | Delete
continue;
[5717] Fix | Delete
}
[5718] Fix | Delete
scope.placeables++;
[5719] Fix | Delete
if (scope.placeables > MAX_PLACEABLES) {
[5720] Fix | Delete
scope.dirty.delete(ptn);
[5721] Fix | Delete
throw new RangeError(`Too many placeables expanded: ${scope.placeables}, ` + `max allowed is ${MAX_PLACEABLES}`);
[5722] Fix | Delete
}
[5723] Fix | Delete
if (useIsolating) {
[5724] Fix | Delete
result.push(FSI);
[5725] Fix | Delete
}
[5726] Fix | Delete
result.push(resolveExpression(scope, elem).toString(scope));
[5727] Fix | Delete
if (useIsolating) {
[5728] Fix | Delete
result.push(PDI);
[5729] Fix | Delete
}
[5730] Fix | Delete
}
[5731] Fix | Delete
scope.dirty.delete(ptn);
[5732] Fix | Delete
return result.join("");
[5733] Fix | Delete
}
[5734] Fix | Delete
function resolvePattern(scope, value) {
[5735] Fix | Delete
if (typeof value === "string") {
[5736] Fix | Delete
return scope.bundle._transform(value);
[5737] Fix | Delete
}
[5738] Fix | Delete
return resolveComplexPattern(scope, value);
[5739] Fix | Delete
}
[5740] Fix | Delete
;// CONCATENATED MODULE: ./node_modules/@fluent/bundle/esm/scope.js
[5741] Fix | Delete
[5742] Fix | Delete
class Scope {
[5743] Fix | Delete
constructor(bundle, errors, args) {
[5744] Fix | Delete
this.dirty = new WeakSet();
[5745] Fix | Delete
this.params = null;
[5746] Fix | Delete
this.placeables = 0;
[5747] Fix | Delete
this.bundle = bundle;
[5748] Fix | Delete
this.errors = errors;
[5749] Fix | Delete
this.args = args;
[5750] Fix | Delete
}
[5751] Fix | Delete
reportError(error) {
[5752] Fix | Delete
if (!this.errors || !(error instanceof Error)) {
[5753] Fix | Delete
throw error;
[5754] Fix | Delete
}
[5755] Fix | Delete
this.errors.push(error);
[5756] Fix | Delete
}
[5757] Fix | Delete
memoizeIntlObject(ctor, opts) {
[5758] Fix | Delete
let cache = this.bundle._intls.get(ctor);
[5759] Fix | Delete
if (!cache) {
[5760] Fix | Delete
cache = {};
[5761] Fix | Delete
this.bundle._intls.set(ctor, cache);
[5762] Fix | Delete
}
[5763] Fix | Delete
let id = JSON.stringify(opts);
[5764] Fix | Delete
if (!cache[id]) {
[5765] Fix | Delete
cache[id] = new ctor(this.bundle.locales, opts);
[5766] Fix | Delete
}
[5767] Fix | Delete
return cache[id];
[5768] Fix | Delete
}
[5769] Fix | Delete
}
[5770] Fix | Delete
;// CONCATENATED MODULE: ./node_modules/@fluent/bundle/esm/builtins.js
[5771] Fix | Delete
[5772] Fix | Delete
function values(opts, allowed) {
[5773] Fix | Delete
const unwrapped = Object.create(null);
[5774] Fix | Delete
for (const [name, opt] of Object.entries(opts)) {
[5775] Fix | Delete
if (allowed.includes(name)) {
[5776] Fix | Delete
unwrapped[name] = opt.valueOf();
[5777] Fix | Delete
}
[5778] Fix | Delete
}
[5779] Fix | Delete
return unwrapped;
[5780] Fix | Delete
}
[5781] Fix | Delete
const NUMBER_ALLOWED = ["unitDisplay", "currencyDisplay", "useGrouping", "minimumIntegerDigits", "minimumFractionDigits", "maximumFractionDigits", "minimumSignificantDigits", "maximumSignificantDigits"];
[5782] Fix | Delete
function NUMBER(args, opts) {
[5783] Fix | Delete
let arg = args[0];
[5784] Fix | Delete
if (arg instanceof FluentNone) {
[5785] Fix | Delete
return new FluentNone(`NUMBER(${arg.valueOf()})`);
[5786] Fix | Delete
}
[5787] Fix | Delete
if (arg instanceof FluentNumber) {
[5788] Fix | Delete
return new FluentNumber(arg.valueOf(), {
[5789] Fix | Delete
...arg.opts,
[5790] Fix | Delete
...values(opts, NUMBER_ALLOWED)
[5791] Fix | Delete
});
[5792] Fix | Delete
}
[5793] Fix | Delete
if (arg instanceof FluentDateTime) {
[5794] Fix | Delete
return new FluentNumber(arg.valueOf(), {
[5795] Fix | Delete
...values(opts, NUMBER_ALLOWED)
[5796] Fix | Delete
});
[5797] Fix | Delete
}
[5798] Fix | Delete
throw new TypeError("Invalid argument to NUMBER");
[5799] Fix | Delete
}
[5800] Fix | Delete
const DATETIME_ALLOWED = ["dateStyle", "timeStyle", "fractionalSecondDigits", "dayPeriod", "hour12", "weekday", "era", "year", "month", "day", "hour", "minute", "second", "timeZoneName"];
[5801] Fix | Delete
function DATETIME(args, opts) {
[5802] Fix | Delete
let arg = args[0];
[5803] Fix | Delete
if (arg instanceof FluentNone) {
[5804] Fix | Delete
return new FluentNone(`DATETIME(${arg.valueOf()})`);
[5805] Fix | Delete
}
[5806] Fix | Delete
if (arg instanceof FluentDateTime) {
[5807] Fix | Delete
return new FluentDateTime(arg.valueOf(), {
[5808] Fix | Delete
...arg.opts,
[5809] Fix | Delete
...values(opts, DATETIME_ALLOWED)
[5810] Fix | Delete
});
[5811] Fix | Delete
}
[5812] Fix | Delete
if (arg instanceof FluentNumber) {
[5813] Fix | Delete
return new FluentDateTime(arg.valueOf(), {
[5814] Fix | Delete
...values(opts, DATETIME_ALLOWED)
[5815] Fix | Delete
});
[5816] Fix | Delete
}
[5817] Fix | Delete
throw new TypeError("Invalid argument to DATETIME");
[5818] Fix | Delete
}
[5819] Fix | Delete
;// CONCATENATED MODULE: ./node_modules/@fluent/bundle/esm/memoizer.js
[5820] Fix | Delete
const cache = new Map();
[5821] Fix | Delete
function getMemoizerForLocale(locales) {
[5822] Fix | Delete
const stringLocale = Array.isArray(locales) ? locales.join(" ") : locales;
[5823] Fix | Delete
let memoizer = cache.get(stringLocale);
[5824] Fix | Delete
if (memoizer === undefined) {
[5825] Fix | Delete
memoizer = new Map();
[5826] Fix | Delete
cache.set(stringLocale, memoizer);
[5827] Fix | Delete
}
[5828] Fix | Delete
return memoizer;
[5829] Fix | Delete
}
[5830] Fix | Delete
;// CONCATENATED MODULE: ./node_modules/@fluent/bundle/esm/bundle.js
[5831] Fix | Delete
[5832] Fix | Delete
[5833] Fix | Delete
[5834] Fix | Delete
[5835] Fix | Delete
[5836] Fix | Delete
[5837] Fix | Delete
class FluentBundle {
[5838] Fix | Delete
constructor(locales, {
[5839] Fix | Delete
functions,
[5840] Fix | Delete
useIsolating = true,
[5841] Fix | Delete
transform = v => v
[5842] Fix | Delete
} = {}) {
[5843] Fix | Delete
this._terms = new Map();
[5844] Fix | Delete
this._messages = new Map();
[5845] Fix | Delete
this.locales = Array.isArray(locales) ? locales : [locales];
[5846] Fix | Delete
this._functions = {
[5847] Fix | Delete
NUMBER: NUMBER,
[5848] Fix | Delete
DATETIME: DATETIME,
[5849] Fix | Delete
...functions
[5850] Fix | Delete
};
[5851] Fix | Delete
this._useIsolating = useIsolating;
[5852] Fix | Delete
this._transform = transform;
[5853] Fix | Delete
this._intls = getMemoizerForLocale(locales);
[5854] Fix | Delete
}
[5855] Fix | Delete
hasMessage(id) {
[5856] Fix | Delete
return this._messages.has(id);
[5857] Fix | Delete
}
[5858] Fix | Delete
getMessage(id) {
[5859] Fix | Delete
return this._messages.get(id);
[5860] Fix | Delete
}
[5861] Fix | Delete
addResource(res, {
[5862] Fix | Delete
allowOverrides = false
[5863] Fix | Delete
} = {}) {
[5864] Fix | Delete
const errors = [];
[5865] Fix | Delete
for (let i = 0; i < res.body.length; i++) {
[5866] Fix | Delete
let entry = res.body[i];
[5867] Fix | Delete
if (entry.id.startsWith("-")) {
[5868] Fix | Delete
if (allowOverrides === false && this._terms.has(entry.id)) {
[5869] Fix | Delete
errors.push(new Error(`Attempt to override an existing term: "${entry.id}"`));
[5870] Fix | Delete
continue;
[5871] Fix | Delete
}
[5872] Fix | Delete
this._terms.set(entry.id, entry);
[5873] Fix | Delete
} else {
[5874] Fix | Delete
if (allowOverrides === false && this._messages.has(entry.id)) {
[5875] Fix | Delete
errors.push(new Error(`Attempt to override an existing message: "${entry.id}"`));
[5876] Fix | Delete
continue;
[5877] Fix | Delete
}
[5878] Fix | Delete
this._messages.set(entry.id, entry);
[5879] Fix | Delete
}
[5880] Fix | Delete
}
[5881] Fix | Delete
return errors;
[5882] Fix | Delete
}
[5883] Fix | Delete
formatPattern(pattern, args = null, errors = null) {
[5884] Fix | Delete
if (typeof pattern === "string") {
[5885] Fix | Delete
return this._transform(pattern);
[5886] Fix | Delete
}
[5887] Fix | Delete
let scope = new Scope(this, errors, args);
[5888] Fix | Delete
try {
[5889] Fix | Delete
let value = resolveComplexPattern(scope, pattern);
[5890] Fix | Delete
return value.toString(scope);
[5891] Fix | Delete
} catch (err) {
[5892] Fix | Delete
if (scope.errors && err instanceof Error) {
[5893] Fix | Delete
scope.errors.push(err);
[5894] Fix | Delete
return new FluentNone().toString(scope);
[5895] Fix | Delete
}
[5896] Fix | Delete
throw err;
[5897] Fix | Delete
}
[5898] Fix | Delete
}
[5899] Fix | Delete
}
[5900] Fix | Delete
;// CONCATENATED MODULE: ./node_modules/@fluent/bundle/esm/resource.js
[5901] Fix | Delete
[5902] Fix | Delete
const RE_MESSAGE_START = /^(-?[a-zA-Z][\w-]*) *= */gm;
[5903] Fix | Delete
const RE_ATTRIBUTE_START = /\.([a-zA-Z][\w-]*) *= */y;
[5904] Fix | Delete
const RE_VARIANT_START = /\*?\[/y;
[5905] Fix | Delete
const RE_NUMBER_LITERAL = /(-?[0-9]+(?:\.([0-9]+))?)/y;
[5906] Fix | Delete
const RE_IDENTIFIER = /([a-zA-Z][\w-]*)/y;
[5907] Fix | Delete
const RE_REFERENCE = /([$-])?([a-zA-Z][\w-]*)(?:\.([a-zA-Z][\w-]*))?/y;
[5908] Fix | Delete
const RE_FUNCTION_NAME = /^[A-Z][A-Z0-9_-]*$/;
[5909] Fix | Delete
const RE_TEXT_RUN = /([^{}\n\r]+)/y;
[5910] Fix | Delete
const RE_STRING_RUN = /([^\\"\n\r]*)/y;
[5911] Fix | Delete
const RE_STRING_ESCAPE = /\\([\\"])/y;
[5912] Fix | Delete
const RE_UNICODE_ESCAPE = /\\u([a-fA-F0-9]{4})|\\U([a-fA-F0-9]{6})/y;
[5913] Fix | Delete
const RE_LEADING_NEWLINES = /^\n+/;
[5914] Fix | Delete
const RE_TRAILING_SPACES = / +$/;
[5915] Fix | Delete
const RE_BLANK_LINES = / *\r?\n/g;
[5916] Fix | Delete
const RE_INDENT = /( *)$/;
[5917] Fix | Delete
const TOKEN_BRACE_OPEN = /{\s*/y;
[5918] Fix | Delete
const TOKEN_BRACE_CLOSE = /\s*}/y;
[5919] Fix | Delete
const TOKEN_BRACKET_OPEN = /\[\s*/y;
[5920] Fix | Delete
const TOKEN_BRACKET_CLOSE = /\s*] */y;
[5921] Fix | Delete
const TOKEN_PAREN_OPEN = /\s*\(\s*/y;
[5922] Fix | Delete
const TOKEN_ARROW = /\s*->\s*/y;
[5923] Fix | Delete
const TOKEN_COLON = /\s*:\s*/y;
[5924] Fix | Delete
const TOKEN_COMMA = /\s*,?\s*/y;
[5925] Fix | Delete
const TOKEN_BLANK = /\s+/y;
[5926] Fix | Delete
class FluentResource {
[5927] Fix | Delete
constructor(source) {
[5928] Fix | Delete
this.body = [];
[5929] Fix | Delete
RE_MESSAGE_START.lastIndex = 0;
[5930] Fix | Delete
let cursor = 0;
[5931] Fix | Delete
while (true) {
[5932] Fix | Delete
let next = RE_MESSAGE_START.exec(source);
[5933] Fix | Delete
if (next === null) {
[5934] Fix | Delete
break;
[5935] Fix | Delete
}
[5936] Fix | Delete
cursor = RE_MESSAGE_START.lastIndex;
[5937] Fix | Delete
try {
[5938] Fix | Delete
this.body.push(parseMessage(next[1]));
[5939] Fix | Delete
} catch (err) {
[5940] Fix | Delete
if (err instanceof SyntaxError) {
[5941] Fix | Delete
continue;
[5942] Fix | Delete
}
[5943] Fix | Delete
throw err;
[5944] Fix | Delete
}
[5945] Fix | Delete
}
[5946] Fix | Delete
function test(re) {
[5947] Fix | Delete
re.lastIndex = cursor;
[5948] Fix | Delete
return re.test(source);
[5949] Fix | Delete
}
[5950] Fix | Delete
function consumeChar(char, errorClass) {
[5951] Fix | Delete
if (source[cursor] === char) {
[5952] Fix | Delete
cursor++;
[5953] Fix | Delete
return true;
[5954] Fix | Delete
}
[5955] Fix | Delete
if (errorClass) {
[5956] Fix | Delete
throw new errorClass(`Expected ${char}`);
[5957] Fix | Delete
}
[5958] Fix | Delete
return false;
[5959] Fix | Delete
}
[5960] Fix | Delete
function consumeToken(re, errorClass) {
[5961] Fix | Delete
if (test(re)) {
[5962] Fix | Delete
cursor = re.lastIndex;
[5963] Fix | Delete
return true;
[5964] Fix | Delete
}
[5965] Fix | Delete
if (errorClass) {
[5966] Fix | Delete
throw new errorClass(`Expected ${re.toString()}`);
[5967] Fix | Delete
}
[5968] Fix | Delete
return false;
[5969] Fix | Delete
}
[5970] Fix | Delete
function match(re) {
[5971] Fix | Delete
re.lastIndex = cursor;
[5972] Fix | Delete
let result = re.exec(source);
[5973] Fix | Delete
if (result === null) {
[5974] Fix | Delete
throw new SyntaxError(`Expected ${re.toString()}`);
[5975] Fix | Delete
}
[5976] Fix | Delete
cursor = re.lastIndex;
[5977] Fix | Delete
return result;
[5978] Fix | Delete
}
[5979] Fix | Delete
function match1(re) {
[5980] Fix | Delete
return match(re)[1];
[5981] Fix | Delete
}
[5982] Fix | Delete
function parseMessage(id) {
[5983] Fix | Delete
let value = parsePattern();
[5984] Fix | Delete
let attributes = parseAttributes();
[5985] Fix | Delete
if (value === null && Object.keys(attributes).length === 0) {
[5986] Fix | Delete
throw new SyntaxError("Expected message value or attributes");
[5987] Fix | Delete
}
[5988] Fix | Delete
return {
[5989] Fix | Delete
id,
[5990] Fix | Delete
value,
[5991] Fix | Delete
attributes
[5992] Fix | Delete
};
[5993] Fix | Delete
}
[5994] Fix | Delete
function parseAttributes() {
[5995] Fix | Delete
let attrs = Object.create(null);
[5996] Fix | Delete
while (test(RE_ATTRIBUTE_START)) {
[5997] Fix | Delete
let name = match1(RE_ATTRIBUTE_START);
[5998] Fix | Delete
let value = parsePattern();
[5999] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function