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/wp-inclu.../js/codemirr...
File: esprima.js
if (!this.config.comment) {
[2000] Fix | Delete
this.scanner.scanComments();
[2001] Fix | Delete
}
[2002] Fix | Delete
else {
[2003] Fix | Delete
var comments = this.scanner.scanComments();
[2004] Fix | Delete
if (comments.length > 0 && this.delegate) {
[2005] Fix | Delete
for (var i = 0; i < comments.length; ++i) {
[2006] Fix | Delete
var e = comments[i];
[2007] Fix | Delete
var node = void 0;
[2008] Fix | Delete
node = {
[2009] Fix | Delete
type: e.multiLine ? 'BlockComment' : 'LineComment',
[2010] Fix | Delete
value: this.scanner.source.slice(e.slice[0], e.slice[1])
[2011] Fix | Delete
};
[2012] Fix | Delete
if (this.config.range) {
[2013] Fix | Delete
node.range = e.range;
[2014] Fix | Delete
}
[2015] Fix | Delete
if (this.config.loc) {
[2016] Fix | Delete
node.loc = e.loc;
[2017] Fix | Delete
}
[2018] Fix | Delete
var metadata = {
[2019] Fix | Delete
start: {
[2020] Fix | Delete
line: e.loc.start.line,
[2021] Fix | Delete
column: e.loc.start.column,
[2022] Fix | Delete
offset: e.range[0]
[2023] Fix | Delete
},
[2024] Fix | Delete
end: {
[2025] Fix | Delete
line: e.loc.end.line,
[2026] Fix | Delete
column: e.loc.end.column,
[2027] Fix | Delete
offset: e.range[1]
[2028] Fix | Delete
}
[2029] Fix | Delete
};
[2030] Fix | Delete
this.delegate(node, metadata);
[2031] Fix | Delete
}
[2032] Fix | Delete
}
[2033] Fix | Delete
}
[2034] Fix | Delete
};
[2035] Fix | Delete
// From internal representation to an external structure
[2036] Fix | Delete
Parser.prototype.getTokenRaw = function (token) {
[2037] Fix | Delete
return this.scanner.source.slice(token.start, token.end);
[2038] Fix | Delete
};
[2039] Fix | Delete
Parser.prototype.convertToken = function (token) {
[2040] Fix | Delete
var t = {
[2041] Fix | Delete
type: token_1.TokenName[token.type],
[2042] Fix | Delete
value: this.getTokenRaw(token)
[2043] Fix | Delete
};
[2044] Fix | Delete
if (this.config.range) {
[2045] Fix | Delete
t.range = [token.start, token.end];
[2046] Fix | Delete
}
[2047] Fix | Delete
if (this.config.loc) {
[2048] Fix | Delete
t.loc = {
[2049] Fix | Delete
start: {
[2050] Fix | Delete
line: this.startMarker.line,
[2051] Fix | Delete
column: this.startMarker.column
[2052] Fix | Delete
},
[2053] Fix | Delete
end: {
[2054] Fix | Delete
line: this.scanner.lineNumber,
[2055] Fix | Delete
column: this.scanner.index - this.scanner.lineStart
[2056] Fix | Delete
}
[2057] Fix | Delete
};
[2058] Fix | Delete
}
[2059] Fix | Delete
if (token.type === 9 /* RegularExpression */) {
[2060] Fix | Delete
var pattern = token.pattern;
[2061] Fix | Delete
var flags = token.flags;
[2062] Fix | Delete
t.regex = { pattern: pattern, flags: flags };
[2063] Fix | Delete
}
[2064] Fix | Delete
return t;
[2065] Fix | Delete
};
[2066] Fix | Delete
Parser.prototype.nextToken = function () {
[2067] Fix | Delete
var token = this.lookahead;
[2068] Fix | Delete
this.lastMarker.index = this.scanner.index;
[2069] Fix | Delete
this.lastMarker.line = this.scanner.lineNumber;
[2070] Fix | Delete
this.lastMarker.column = this.scanner.index - this.scanner.lineStart;
[2071] Fix | Delete
this.collectComments();
[2072] Fix | Delete
if (this.scanner.index !== this.startMarker.index) {
[2073] Fix | Delete
this.startMarker.index = this.scanner.index;
[2074] Fix | Delete
this.startMarker.line = this.scanner.lineNumber;
[2075] Fix | Delete
this.startMarker.column = this.scanner.index - this.scanner.lineStart;
[2076] Fix | Delete
}
[2077] Fix | Delete
var next = this.scanner.lex();
[2078] Fix | Delete
this.hasLineTerminator = (token.lineNumber !== next.lineNumber);
[2079] Fix | Delete
if (next && this.context.strict && next.type === 3 /* Identifier */) {
[2080] Fix | Delete
if (this.scanner.isStrictModeReservedWord(next.value)) {
[2081] Fix | Delete
next.type = 4 /* Keyword */;
[2082] Fix | Delete
}
[2083] Fix | Delete
}
[2084] Fix | Delete
this.lookahead = next;
[2085] Fix | Delete
if (this.config.tokens && next.type !== 2 /* EOF */) {
[2086] Fix | Delete
this.tokens.push(this.convertToken(next));
[2087] Fix | Delete
}
[2088] Fix | Delete
return token;
[2089] Fix | Delete
};
[2090] Fix | Delete
Parser.prototype.nextRegexToken = function () {
[2091] Fix | Delete
this.collectComments();
[2092] Fix | Delete
var token = this.scanner.scanRegExp();
[2093] Fix | Delete
if (this.config.tokens) {
[2094] Fix | Delete
// Pop the previous token, '/' or '/='
[2095] Fix | Delete
// This is added from the lookahead token.
[2096] Fix | Delete
this.tokens.pop();
[2097] Fix | Delete
this.tokens.push(this.convertToken(token));
[2098] Fix | Delete
}
[2099] Fix | Delete
// Prime the next lookahead.
[2100] Fix | Delete
this.lookahead = token;
[2101] Fix | Delete
this.nextToken();
[2102] Fix | Delete
return token;
[2103] Fix | Delete
};
[2104] Fix | Delete
Parser.prototype.createNode = function () {
[2105] Fix | Delete
return {
[2106] Fix | Delete
index: this.startMarker.index,
[2107] Fix | Delete
line: this.startMarker.line,
[2108] Fix | Delete
column: this.startMarker.column
[2109] Fix | Delete
};
[2110] Fix | Delete
};
[2111] Fix | Delete
Parser.prototype.startNode = function (token) {
[2112] Fix | Delete
return {
[2113] Fix | Delete
index: token.start,
[2114] Fix | Delete
line: token.lineNumber,
[2115] Fix | Delete
column: token.start - token.lineStart
[2116] Fix | Delete
};
[2117] Fix | Delete
};
[2118] Fix | Delete
Parser.prototype.finalize = function (marker, node) {
[2119] Fix | Delete
if (this.config.range) {
[2120] Fix | Delete
node.range = [marker.index, this.lastMarker.index];
[2121] Fix | Delete
}
[2122] Fix | Delete
if (this.config.loc) {
[2123] Fix | Delete
node.loc = {
[2124] Fix | Delete
start: {
[2125] Fix | Delete
line: marker.line,
[2126] Fix | Delete
column: marker.column,
[2127] Fix | Delete
},
[2128] Fix | Delete
end: {
[2129] Fix | Delete
line: this.lastMarker.line,
[2130] Fix | Delete
column: this.lastMarker.column
[2131] Fix | Delete
}
[2132] Fix | Delete
};
[2133] Fix | Delete
if (this.config.source) {
[2134] Fix | Delete
node.loc.source = this.config.source;
[2135] Fix | Delete
}
[2136] Fix | Delete
}
[2137] Fix | Delete
if (this.delegate) {
[2138] Fix | Delete
var metadata = {
[2139] Fix | Delete
start: {
[2140] Fix | Delete
line: marker.line,
[2141] Fix | Delete
column: marker.column,
[2142] Fix | Delete
offset: marker.index
[2143] Fix | Delete
},
[2144] Fix | Delete
end: {
[2145] Fix | Delete
line: this.lastMarker.line,
[2146] Fix | Delete
column: this.lastMarker.column,
[2147] Fix | Delete
offset: this.lastMarker.index
[2148] Fix | Delete
}
[2149] Fix | Delete
};
[2150] Fix | Delete
this.delegate(node, metadata);
[2151] Fix | Delete
}
[2152] Fix | Delete
return node;
[2153] Fix | Delete
};
[2154] Fix | Delete
// Expect the next token to match the specified punctuator.
[2155] Fix | Delete
// If not, an exception will be thrown.
[2156] Fix | Delete
Parser.prototype.expect = function (value) {
[2157] Fix | Delete
var token = this.nextToken();
[2158] Fix | Delete
if (token.type !== 7 /* Punctuator */ || token.value !== value) {
[2159] Fix | Delete
this.throwUnexpectedToken(token);
[2160] Fix | Delete
}
[2161] Fix | Delete
};
[2162] Fix | Delete
// Quietly expect a comma when in tolerant mode, otherwise delegates to expect().
[2163] Fix | Delete
Parser.prototype.expectCommaSeparator = function () {
[2164] Fix | Delete
if (this.config.tolerant) {
[2165] Fix | Delete
var token = this.lookahead;
[2166] Fix | Delete
if (token.type === 7 /* Punctuator */ && token.value === ',') {
[2167] Fix | Delete
this.nextToken();
[2168] Fix | Delete
}
[2169] Fix | Delete
else if (token.type === 7 /* Punctuator */ && token.value === ';') {
[2170] Fix | Delete
this.nextToken();
[2171] Fix | Delete
this.tolerateUnexpectedToken(token);
[2172] Fix | Delete
}
[2173] Fix | Delete
else {
[2174] Fix | Delete
this.tolerateUnexpectedToken(token, messages_1.Messages.UnexpectedToken);
[2175] Fix | Delete
}
[2176] Fix | Delete
}
[2177] Fix | Delete
else {
[2178] Fix | Delete
this.expect(',');
[2179] Fix | Delete
}
[2180] Fix | Delete
};
[2181] Fix | Delete
// Expect the next token to match the specified keyword.
[2182] Fix | Delete
// If not, an exception will be thrown.
[2183] Fix | Delete
Parser.prototype.expectKeyword = function (keyword) {
[2184] Fix | Delete
var token = this.nextToken();
[2185] Fix | Delete
if (token.type !== 4 /* Keyword */ || token.value !== keyword) {
[2186] Fix | Delete
this.throwUnexpectedToken(token);
[2187] Fix | Delete
}
[2188] Fix | Delete
};
[2189] Fix | Delete
// Return true if the next token matches the specified punctuator.
[2190] Fix | Delete
Parser.prototype.match = function (value) {
[2191] Fix | Delete
return this.lookahead.type === 7 /* Punctuator */ && this.lookahead.value === value;
[2192] Fix | Delete
};
[2193] Fix | Delete
// Return true if the next token matches the specified keyword
[2194] Fix | Delete
Parser.prototype.matchKeyword = function (keyword) {
[2195] Fix | Delete
return this.lookahead.type === 4 /* Keyword */ && this.lookahead.value === keyword;
[2196] Fix | Delete
};
[2197] Fix | Delete
// Return true if the next token matches the specified contextual keyword
[2198] Fix | Delete
// (where an identifier is sometimes a keyword depending on the context)
[2199] Fix | Delete
Parser.prototype.matchContextualKeyword = function (keyword) {
[2200] Fix | Delete
return this.lookahead.type === 3 /* Identifier */ && this.lookahead.value === keyword;
[2201] Fix | Delete
};
[2202] Fix | Delete
// Return true if the next token is an assignment operator
[2203] Fix | Delete
Parser.prototype.matchAssign = function () {
[2204] Fix | Delete
if (this.lookahead.type !== 7 /* Punctuator */) {
[2205] Fix | Delete
return false;
[2206] Fix | Delete
}
[2207] Fix | Delete
var op = this.lookahead.value;
[2208] Fix | Delete
return op === '=' ||
[2209] Fix | Delete
op === '*=' ||
[2210] Fix | Delete
op === '**=' ||
[2211] Fix | Delete
op === '/=' ||
[2212] Fix | Delete
op === '%=' ||
[2213] Fix | Delete
op === '+=' ||
[2214] Fix | Delete
op === '-=' ||
[2215] Fix | Delete
op === '<<=' ||
[2216] Fix | Delete
op === '>>=' ||
[2217] Fix | Delete
op === '>>>=' ||
[2218] Fix | Delete
op === '&=' ||
[2219] Fix | Delete
op === '^=' ||
[2220] Fix | Delete
op === '|=';
[2221] Fix | Delete
};
[2222] Fix | Delete
// Cover grammar support.
[2223] Fix | Delete
//
[2224] Fix | Delete
// When an assignment expression position starts with an left parenthesis, the determination of the type
[2225] Fix | Delete
// of the syntax is to be deferred arbitrarily long until the end of the parentheses pair (plus a lookahead)
[2226] Fix | Delete
// or the first comma. This situation also defers the determination of all the expressions nested in the pair.
[2227] Fix | Delete
//
[2228] Fix | Delete
// There are three productions that can be parsed in a parentheses pair that needs to be determined
[2229] Fix | Delete
// after the outermost pair is closed. They are:
[2230] Fix | Delete
//
[2231] Fix | Delete
// 1. AssignmentExpression
[2232] Fix | Delete
// 2. BindingElements
[2233] Fix | Delete
// 3. AssignmentTargets
[2234] Fix | Delete
//
[2235] Fix | Delete
// In order to avoid exponential backtracking, we use two flags to denote if the production can be
[2236] Fix | Delete
// binding element or assignment target.
[2237] Fix | Delete
//
[2238] Fix | Delete
// The three productions have the relationship:
[2239] Fix | Delete
//
[2240] Fix | Delete
// BindingElements ⊆ AssignmentTargets ⊆ AssignmentExpression
[2241] Fix | Delete
//
[2242] Fix | Delete
// with a single exception that CoverInitializedName when used directly in an Expression, generates
[2243] Fix | Delete
// an early error. Therefore, we need the third state, firstCoverInitializedNameError, to track the
[2244] Fix | Delete
// first usage of CoverInitializedName and report it when we reached the end of the parentheses pair.
[2245] Fix | Delete
//
[2246] Fix | Delete
// isolateCoverGrammar function runs the given parser function with a new cover grammar context, and it does not
[2247] Fix | Delete
// effect the current flags. This means the production the parser parses is only used as an expression. Therefore
[2248] Fix | Delete
// the CoverInitializedName check is conducted.
[2249] Fix | Delete
//
[2250] Fix | Delete
// inheritCoverGrammar function runs the given parse function with a new cover grammar context, and it propagates
[2251] Fix | Delete
// the flags outside of the parser. This means the production the parser parses is used as a part of a potential
[2252] Fix | Delete
// pattern. The CoverInitializedName check is deferred.
[2253] Fix | Delete
Parser.prototype.isolateCoverGrammar = function (parseFunction) {
[2254] Fix | Delete
var previousIsBindingElement = this.context.isBindingElement;
[2255] Fix | Delete
var previousIsAssignmentTarget = this.context.isAssignmentTarget;
[2256] Fix | Delete
var previousFirstCoverInitializedNameError = this.context.firstCoverInitializedNameError;
[2257] Fix | Delete
this.context.isBindingElement = true;
[2258] Fix | Delete
this.context.isAssignmentTarget = true;
[2259] Fix | Delete
this.context.firstCoverInitializedNameError = null;
[2260] Fix | Delete
var result = parseFunction.call(this);
[2261] Fix | Delete
if (this.context.firstCoverInitializedNameError !== null) {
[2262] Fix | Delete
this.throwUnexpectedToken(this.context.firstCoverInitializedNameError);
[2263] Fix | Delete
}
[2264] Fix | Delete
this.context.isBindingElement = previousIsBindingElement;
[2265] Fix | Delete
this.context.isAssignmentTarget = previousIsAssignmentTarget;
[2266] Fix | Delete
this.context.firstCoverInitializedNameError = previousFirstCoverInitializedNameError;
[2267] Fix | Delete
return result;
[2268] Fix | Delete
};
[2269] Fix | Delete
Parser.prototype.inheritCoverGrammar = function (parseFunction) {
[2270] Fix | Delete
var previousIsBindingElement = this.context.isBindingElement;
[2271] Fix | Delete
var previousIsAssignmentTarget = this.context.isAssignmentTarget;
[2272] Fix | Delete
var previousFirstCoverInitializedNameError = this.context.firstCoverInitializedNameError;
[2273] Fix | Delete
this.context.isBindingElement = true;
[2274] Fix | Delete
this.context.isAssignmentTarget = true;
[2275] Fix | Delete
this.context.firstCoverInitializedNameError = null;
[2276] Fix | Delete
var result = parseFunction.call(this);
[2277] Fix | Delete
this.context.isBindingElement = this.context.isBindingElement && previousIsBindingElement;
[2278] Fix | Delete
this.context.isAssignmentTarget = this.context.isAssignmentTarget && previousIsAssignmentTarget;
[2279] Fix | Delete
this.context.firstCoverInitializedNameError = previousFirstCoverInitializedNameError || this.context.firstCoverInitializedNameError;
[2280] Fix | Delete
return result;
[2281] Fix | Delete
};
[2282] Fix | Delete
Parser.prototype.consumeSemicolon = function () {
[2283] Fix | Delete
if (this.match(';')) {
[2284] Fix | Delete
this.nextToken();
[2285] Fix | Delete
}
[2286] Fix | Delete
else if (!this.hasLineTerminator) {
[2287] Fix | Delete
if (this.lookahead.type !== 2 /* EOF */ && !this.match('}')) {
[2288] Fix | Delete
this.throwUnexpectedToken(this.lookahead);
[2289] Fix | Delete
}
[2290] Fix | Delete
this.lastMarker.index = this.startMarker.index;
[2291] Fix | Delete
this.lastMarker.line = this.startMarker.line;
[2292] Fix | Delete
this.lastMarker.column = this.startMarker.column;
[2293] Fix | Delete
}
[2294] Fix | Delete
};
[2295] Fix | Delete
// https://tc39.github.io/ecma262/#sec-primary-expression
[2296] Fix | Delete
Parser.prototype.parsePrimaryExpression = function () {
[2297] Fix | Delete
var node = this.createNode();
[2298] Fix | Delete
var expr;
[2299] Fix | Delete
var token, raw;
[2300] Fix | Delete
switch (this.lookahead.type) {
[2301] Fix | Delete
case 3 /* Identifier */:
[2302] Fix | Delete
if ((this.context.isModule || this.context.await) && this.lookahead.value === 'await') {
[2303] Fix | Delete
this.tolerateUnexpectedToken(this.lookahead);
[2304] Fix | Delete
}
[2305] Fix | Delete
expr = this.matchAsyncFunction() ? this.parseFunctionExpression() : this.finalize(node, new Node.Identifier(this.nextToken().value));
[2306] Fix | Delete
break;
[2307] Fix | Delete
case 6 /* NumericLiteral */:
[2308] Fix | Delete
case 8 /* StringLiteral */:
[2309] Fix | Delete
if (this.context.strict && this.lookahead.octal) {
[2310] Fix | Delete
this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.StrictOctalLiteral);
[2311] Fix | Delete
}
[2312] Fix | Delete
this.context.isAssignmentTarget = false;
[2313] Fix | Delete
this.context.isBindingElement = false;
[2314] Fix | Delete
token = this.nextToken();
[2315] Fix | Delete
raw = this.getTokenRaw(token);
[2316] Fix | Delete
expr = this.finalize(node, new Node.Literal(token.value, raw));
[2317] Fix | Delete
break;
[2318] Fix | Delete
case 1 /* BooleanLiteral */:
[2319] Fix | Delete
this.context.isAssignmentTarget = false;
[2320] Fix | Delete
this.context.isBindingElement = false;
[2321] Fix | Delete
token = this.nextToken();
[2322] Fix | Delete
raw = this.getTokenRaw(token);
[2323] Fix | Delete
expr = this.finalize(node, new Node.Literal(token.value === 'true', raw));
[2324] Fix | Delete
break;
[2325] Fix | Delete
case 5 /* NullLiteral */:
[2326] Fix | Delete
this.context.isAssignmentTarget = false;
[2327] Fix | Delete
this.context.isBindingElement = false;
[2328] Fix | Delete
token = this.nextToken();
[2329] Fix | Delete
raw = this.getTokenRaw(token);
[2330] Fix | Delete
expr = this.finalize(node, new Node.Literal(null, raw));
[2331] Fix | Delete
break;
[2332] Fix | Delete
case 10 /* Template */:
[2333] Fix | Delete
expr = this.parseTemplateLiteral();
[2334] Fix | Delete
break;
[2335] Fix | Delete
case 7 /* Punctuator */:
[2336] Fix | Delete
switch (this.lookahead.value) {
[2337] Fix | Delete
case '(':
[2338] Fix | Delete
this.context.isBindingElement = false;
[2339] Fix | Delete
expr = this.inheritCoverGrammar(this.parseGroupExpression);
[2340] Fix | Delete
break;
[2341] Fix | Delete
case '[':
[2342] Fix | Delete
expr = this.inheritCoverGrammar(this.parseArrayInitializer);
[2343] Fix | Delete
break;
[2344] Fix | Delete
case '{':
[2345] Fix | Delete
expr = this.inheritCoverGrammar(this.parseObjectInitializer);
[2346] Fix | Delete
break;
[2347] Fix | Delete
case '/':
[2348] Fix | Delete
case '/=':
[2349] Fix | Delete
this.context.isAssignmentTarget = false;
[2350] Fix | Delete
this.context.isBindingElement = false;
[2351] Fix | Delete
this.scanner.index = this.startMarker.index;
[2352] Fix | Delete
token = this.nextRegexToken();
[2353] Fix | Delete
raw = this.getTokenRaw(token);
[2354] Fix | Delete
expr = this.finalize(node, new Node.RegexLiteral(token.regex, raw, token.pattern, token.flags));
[2355] Fix | Delete
break;
[2356] Fix | Delete
default:
[2357] Fix | Delete
expr = this.throwUnexpectedToken(this.nextToken());
[2358] Fix | Delete
}
[2359] Fix | Delete
break;
[2360] Fix | Delete
case 4 /* Keyword */:
[2361] Fix | Delete
if (!this.context.strict && this.context.allowYield && this.matchKeyword('yield')) {
[2362] Fix | Delete
expr = this.parseIdentifierName();
[2363] Fix | Delete
}
[2364] Fix | Delete
else if (!this.context.strict && this.matchKeyword('let')) {
[2365] Fix | Delete
expr = this.finalize(node, new Node.Identifier(this.nextToken().value));
[2366] Fix | Delete
}
[2367] Fix | Delete
else {
[2368] Fix | Delete
this.context.isAssignmentTarget = false;
[2369] Fix | Delete
this.context.isBindingElement = false;
[2370] Fix | Delete
if (this.matchKeyword('function')) {
[2371] Fix | Delete
expr = this.parseFunctionExpression();
[2372] Fix | Delete
}
[2373] Fix | Delete
else if (this.matchKeyword('this')) {
[2374] Fix | Delete
this.nextToken();
[2375] Fix | Delete
expr = this.finalize(node, new Node.ThisExpression());
[2376] Fix | Delete
}
[2377] Fix | Delete
else if (this.matchKeyword('class')) {
[2378] Fix | Delete
expr = this.parseClassExpression();
[2379] Fix | Delete
}
[2380] Fix | Delete
else {
[2381] Fix | Delete
expr = this.throwUnexpectedToken(this.nextToken());
[2382] Fix | Delete
}
[2383] Fix | Delete
}
[2384] Fix | Delete
break;
[2385] Fix | Delete
default:
[2386] Fix | Delete
expr = this.throwUnexpectedToken(this.nextToken());
[2387] Fix | Delete
}
[2388] Fix | Delete
return expr;
[2389] Fix | Delete
};
[2390] Fix | Delete
// https://tc39.github.io/ecma262/#sec-array-initializer
[2391] Fix | Delete
Parser.prototype.parseSpreadElement = function () {
[2392] Fix | Delete
var node = this.createNode();
[2393] Fix | Delete
this.expect('...');
[2394] Fix | Delete
var arg = this.inheritCoverGrammar(this.parseAssignmentExpression);
[2395] Fix | Delete
return this.finalize(node, new Node.SpreadElement(arg));
[2396] Fix | Delete
};
[2397] Fix | Delete
Parser.prototype.parseArrayInitializer = function () {
[2398] Fix | Delete
var node = this.createNode();
[2399] Fix | Delete
var elements = [];
[2400] Fix | Delete
this.expect('[');
[2401] Fix | Delete
while (!this.match(']')) {
[2402] Fix | Delete
if (this.match(',')) {
[2403] Fix | Delete
this.nextToken();
[2404] Fix | Delete
elements.push(null);
[2405] Fix | Delete
}
[2406] Fix | Delete
else if (this.match('...')) {
[2407] Fix | Delete
var element = this.parseSpreadElement();
[2408] Fix | Delete
if (!this.match(']')) {
[2409] Fix | Delete
this.context.isAssignmentTarget = false;
[2410] Fix | Delete
this.context.isBindingElement = false;
[2411] Fix | Delete
this.expect(',');
[2412] Fix | Delete
}
[2413] Fix | Delete
elements.push(element);
[2414] Fix | Delete
}
[2415] Fix | Delete
else {
[2416] Fix | Delete
elements.push(this.inheritCoverGrammar(this.parseAssignmentExpression));
[2417] Fix | Delete
if (!this.match(']')) {
[2418] Fix | Delete
this.expect(',');
[2419] Fix | Delete
}
[2420] Fix | Delete
}
[2421] Fix | Delete
}
[2422] Fix | Delete
this.expect(']');
[2423] Fix | Delete
return this.finalize(node, new Node.ArrayExpression(elements));
[2424] Fix | Delete
};
[2425] Fix | Delete
// https://tc39.github.io/ecma262/#sec-object-initializer
[2426] Fix | Delete
Parser.prototype.parsePropertyMethod = function (params) {
[2427] Fix | Delete
this.context.isAssignmentTarget = false;
[2428] Fix | Delete
this.context.isBindingElement = false;
[2429] Fix | Delete
var previousStrict = this.context.strict;
[2430] Fix | Delete
var previousAllowStrictDirective = this.context.allowStrictDirective;
[2431] Fix | Delete
this.context.allowStrictDirective = params.simple;
[2432] Fix | Delete
var body = this.isolateCoverGrammar(this.parseFunctionSourceElements);
[2433] Fix | Delete
if (this.context.strict && params.firstRestricted) {
[2434] Fix | Delete
this.tolerateUnexpectedToken(params.firstRestricted, params.message);
[2435] Fix | Delete
}
[2436] Fix | Delete
if (this.context.strict && params.stricted) {
[2437] Fix | Delete
this.tolerateUnexpectedToken(params.stricted, params.message);
[2438] Fix | Delete
}
[2439] Fix | Delete
this.context.strict = previousStrict;
[2440] Fix | Delete
this.context.allowStrictDirective = previousAllowStrictDirective;
[2441] Fix | Delete
return body;
[2442] Fix | Delete
};
[2443] Fix | Delete
Parser.prototype.parsePropertyMethodFunction = function () {
[2444] Fix | Delete
var isGenerator = false;
[2445] Fix | Delete
var node = this.createNode();
[2446] Fix | Delete
var previousAllowYield = this.context.allowYield;
[2447] Fix | Delete
this.context.allowYield = false;
[2448] Fix | Delete
var params = this.parseFormalParameters();
[2449] Fix | Delete
var method = this.parsePropertyMethod(params);
[2450] Fix | Delete
this.context.allowYield = previousAllowYield;
[2451] Fix | Delete
return this.finalize(node, new Node.FunctionExpression(null, params.params, method, isGenerator));
[2452] Fix | Delete
};
[2453] Fix | Delete
Parser.prototype.parsePropertyMethodAsyncFunction = function () {
[2454] Fix | Delete
var node = this.createNode();
[2455] Fix | Delete
var previousAllowYield = this.context.allowYield;
[2456] Fix | Delete
var previousAwait = this.context.await;
[2457] Fix | Delete
this.context.allowYield = false;
[2458] Fix | Delete
this.context.await = true;
[2459] Fix | Delete
var params = this.parseFormalParameters();
[2460] Fix | Delete
var method = this.parsePropertyMethod(params);
[2461] Fix | Delete
this.context.allowYield = previousAllowYield;
[2462] Fix | Delete
this.context.await = previousAwait;
[2463] Fix | Delete
return this.finalize(node, new Node.AsyncFunctionExpression(null, params.params, method));
[2464] Fix | Delete
};
[2465] Fix | Delete
Parser.prototype.parseObjectPropertyKey = function () {
[2466] Fix | Delete
var node = this.createNode();
[2467] Fix | Delete
var token = this.nextToken();
[2468] Fix | Delete
var key;
[2469] Fix | Delete
switch (token.type) {
[2470] Fix | Delete
case 8 /* StringLiteral */:
[2471] Fix | Delete
case 6 /* NumericLiteral */:
[2472] Fix | Delete
if (this.context.strict && token.octal) {
[2473] Fix | Delete
this.tolerateUnexpectedToken(token, messages_1.Messages.StrictOctalLiteral);
[2474] Fix | Delete
}
[2475] Fix | Delete
var raw = this.getTokenRaw(token);
[2476] Fix | Delete
key = this.finalize(node, new Node.Literal(token.value, raw));
[2477] Fix | Delete
break;
[2478] Fix | Delete
case 3 /* Identifier */:
[2479] Fix | Delete
case 1 /* BooleanLiteral */:
[2480] Fix | Delete
case 5 /* NullLiteral */:
[2481] Fix | Delete
case 4 /* Keyword */:
[2482] Fix | Delete
key = this.finalize(node, new Node.Identifier(token.value));
[2483] Fix | Delete
break;
[2484] Fix | Delete
case 7 /* Punctuator */:
[2485] Fix | Delete
if (token.value === '[') {
[2486] Fix | Delete
key = this.isolateCoverGrammar(this.parseAssignmentExpression);
[2487] Fix | Delete
this.expect(']');
[2488] Fix | Delete
}
[2489] Fix | Delete
else {
[2490] Fix | Delete
key = this.throwUnexpectedToken(token);
[2491] Fix | Delete
}
[2492] Fix | Delete
break;
[2493] Fix | Delete
default:
[2494] Fix | Delete
key = this.throwUnexpectedToken(token);
[2495] Fix | Delete
}
[2496] Fix | Delete
return key;
[2497] Fix | Delete
};
[2498] Fix | Delete
Parser.prototype.isPropertyKey = function (key, value) {
[2499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function