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-inclu.../js/codemirr...
File: esprima.js
var declaration = this.parseFunctionDeclaration();
[4000] Fix | Delete
if (this.context.strict) {
[4001] Fix | Delete
this.tolerateUnexpectedToken(token, messages_1.Messages.StrictFunction);
[4002] Fix | Delete
}
[4003] Fix | Delete
else if (declaration.generator) {
[4004] Fix | Delete
this.tolerateUnexpectedToken(token, messages_1.Messages.GeneratorInLegacyContext);
[4005] Fix | Delete
}
[4006] Fix | Delete
body = declaration;
[4007] Fix | Delete
}
[4008] Fix | Delete
else {
[4009] Fix | Delete
body = this.parseStatement();
[4010] Fix | Delete
}
[4011] Fix | Delete
delete this.context.labelSet[key];
[4012] Fix | Delete
statement = new Node.LabeledStatement(id, body);
[4013] Fix | Delete
}
[4014] Fix | Delete
else {
[4015] Fix | Delete
this.consumeSemicolon();
[4016] Fix | Delete
statement = new Node.ExpressionStatement(expr);
[4017] Fix | Delete
}
[4018] Fix | Delete
return this.finalize(node, statement);
[4019] Fix | Delete
};
[4020] Fix | Delete
// https://tc39.github.io/ecma262/#sec-throw-statement
[4021] Fix | Delete
Parser.prototype.parseThrowStatement = function () {
[4022] Fix | Delete
var node = this.createNode();
[4023] Fix | Delete
this.expectKeyword('throw');
[4024] Fix | Delete
if (this.hasLineTerminator) {
[4025] Fix | Delete
this.throwError(messages_1.Messages.NewlineAfterThrow);
[4026] Fix | Delete
}
[4027] Fix | Delete
var argument = this.parseExpression();
[4028] Fix | Delete
this.consumeSemicolon();
[4029] Fix | Delete
return this.finalize(node, new Node.ThrowStatement(argument));
[4030] Fix | Delete
};
[4031] Fix | Delete
// https://tc39.github.io/ecma262/#sec-try-statement
[4032] Fix | Delete
Parser.prototype.parseCatchClause = function () {
[4033] Fix | Delete
var node = this.createNode();
[4034] Fix | Delete
this.expectKeyword('catch');
[4035] Fix | Delete
this.expect('(');
[4036] Fix | Delete
if (this.match(')')) {
[4037] Fix | Delete
this.throwUnexpectedToken(this.lookahead);
[4038] Fix | Delete
}
[4039] Fix | Delete
var params = [];
[4040] Fix | Delete
var param = this.parsePattern(params);
[4041] Fix | Delete
var paramMap = {};
[4042] Fix | Delete
for (var i = 0; i < params.length; i++) {
[4043] Fix | Delete
var key = '$' + params[i].value;
[4044] Fix | Delete
if (Object.prototype.hasOwnProperty.call(paramMap, key)) {
[4045] Fix | Delete
this.tolerateError(messages_1.Messages.DuplicateBinding, params[i].value);
[4046] Fix | Delete
}
[4047] Fix | Delete
paramMap[key] = true;
[4048] Fix | Delete
}
[4049] Fix | Delete
if (this.context.strict && param.type === syntax_1.Syntax.Identifier) {
[4050] Fix | Delete
if (this.scanner.isRestrictedWord(param.name)) {
[4051] Fix | Delete
this.tolerateError(messages_1.Messages.StrictCatchVariable);
[4052] Fix | Delete
}
[4053] Fix | Delete
}
[4054] Fix | Delete
this.expect(')');
[4055] Fix | Delete
var body = this.parseBlock();
[4056] Fix | Delete
return this.finalize(node, new Node.CatchClause(param, body));
[4057] Fix | Delete
};
[4058] Fix | Delete
Parser.prototype.parseFinallyClause = function () {
[4059] Fix | Delete
this.expectKeyword('finally');
[4060] Fix | Delete
return this.parseBlock();
[4061] Fix | Delete
};
[4062] Fix | Delete
Parser.prototype.parseTryStatement = function () {
[4063] Fix | Delete
var node = this.createNode();
[4064] Fix | Delete
this.expectKeyword('try');
[4065] Fix | Delete
var block = this.parseBlock();
[4066] Fix | Delete
var handler = this.matchKeyword('catch') ? this.parseCatchClause() : null;
[4067] Fix | Delete
var finalizer = this.matchKeyword('finally') ? this.parseFinallyClause() : null;
[4068] Fix | Delete
if (!handler && !finalizer) {
[4069] Fix | Delete
this.throwError(messages_1.Messages.NoCatchOrFinally);
[4070] Fix | Delete
}
[4071] Fix | Delete
return this.finalize(node, new Node.TryStatement(block, handler, finalizer));
[4072] Fix | Delete
};
[4073] Fix | Delete
// https://tc39.github.io/ecma262/#sec-debugger-statement
[4074] Fix | Delete
Parser.prototype.parseDebuggerStatement = function () {
[4075] Fix | Delete
var node = this.createNode();
[4076] Fix | Delete
this.expectKeyword('debugger');
[4077] Fix | Delete
this.consumeSemicolon();
[4078] Fix | Delete
return this.finalize(node, new Node.DebuggerStatement());
[4079] Fix | Delete
};
[4080] Fix | Delete
// https://tc39.github.io/ecma262/#sec-ecmascript-language-statements-and-declarations
[4081] Fix | Delete
Parser.prototype.parseStatement = function () {
[4082] Fix | Delete
var statement;
[4083] Fix | Delete
switch (this.lookahead.type) {
[4084] Fix | Delete
case 1 /* BooleanLiteral */:
[4085] Fix | Delete
case 5 /* NullLiteral */:
[4086] Fix | Delete
case 6 /* NumericLiteral */:
[4087] Fix | Delete
case 8 /* StringLiteral */:
[4088] Fix | Delete
case 10 /* Template */:
[4089] Fix | Delete
case 9 /* RegularExpression */:
[4090] Fix | Delete
statement = this.parseExpressionStatement();
[4091] Fix | Delete
break;
[4092] Fix | Delete
case 7 /* Punctuator */:
[4093] Fix | Delete
var value = this.lookahead.value;
[4094] Fix | Delete
if (value === '{') {
[4095] Fix | Delete
statement = this.parseBlock();
[4096] Fix | Delete
}
[4097] Fix | Delete
else if (value === '(') {
[4098] Fix | Delete
statement = this.parseExpressionStatement();
[4099] Fix | Delete
}
[4100] Fix | Delete
else if (value === ';') {
[4101] Fix | Delete
statement = this.parseEmptyStatement();
[4102] Fix | Delete
}
[4103] Fix | Delete
else {
[4104] Fix | Delete
statement = this.parseExpressionStatement();
[4105] Fix | Delete
}
[4106] Fix | Delete
break;
[4107] Fix | Delete
case 3 /* Identifier */:
[4108] Fix | Delete
statement = this.matchAsyncFunction() ? this.parseFunctionDeclaration() : this.parseLabelledStatement();
[4109] Fix | Delete
break;
[4110] Fix | Delete
case 4 /* Keyword */:
[4111] Fix | Delete
switch (this.lookahead.value) {
[4112] Fix | Delete
case 'break':
[4113] Fix | Delete
statement = this.parseBreakStatement();
[4114] Fix | Delete
break;
[4115] Fix | Delete
case 'continue':
[4116] Fix | Delete
statement = this.parseContinueStatement();
[4117] Fix | Delete
break;
[4118] Fix | Delete
case 'debugger':
[4119] Fix | Delete
statement = this.parseDebuggerStatement();
[4120] Fix | Delete
break;
[4121] Fix | Delete
case 'do':
[4122] Fix | Delete
statement = this.parseDoWhileStatement();
[4123] Fix | Delete
break;
[4124] Fix | Delete
case 'for':
[4125] Fix | Delete
statement = this.parseForStatement();
[4126] Fix | Delete
break;
[4127] Fix | Delete
case 'function':
[4128] Fix | Delete
statement = this.parseFunctionDeclaration();
[4129] Fix | Delete
break;
[4130] Fix | Delete
case 'if':
[4131] Fix | Delete
statement = this.parseIfStatement();
[4132] Fix | Delete
break;
[4133] Fix | Delete
case 'return':
[4134] Fix | Delete
statement = this.parseReturnStatement();
[4135] Fix | Delete
break;
[4136] Fix | Delete
case 'switch':
[4137] Fix | Delete
statement = this.parseSwitchStatement();
[4138] Fix | Delete
break;
[4139] Fix | Delete
case 'throw':
[4140] Fix | Delete
statement = this.parseThrowStatement();
[4141] Fix | Delete
break;
[4142] Fix | Delete
case 'try':
[4143] Fix | Delete
statement = this.parseTryStatement();
[4144] Fix | Delete
break;
[4145] Fix | Delete
case 'var':
[4146] Fix | Delete
statement = this.parseVariableStatement();
[4147] Fix | Delete
break;
[4148] Fix | Delete
case 'while':
[4149] Fix | Delete
statement = this.parseWhileStatement();
[4150] Fix | Delete
break;
[4151] Fix | Delete
case 'with':
[4152] Fix | Delete
statement = this.parseWithStatement();
[4153] Fix | Delete
break;
[4154] Fix | Delete
default:
[4155] Fix | Delete
statement = this.parseExpressionStatement();
[4156] Fix | Delete
break;
[4157] Fix | Delete
}
[4158] Fix | Delete
break;
[4159] Fix | Delete
default:
[4160] Fix | Delete
statement = this.throwUnexpectedToken(this.lookahead);
[4161] Fix | Delete
}
[4162] Fix | Delete
return statement;
[4163] Fix | Delete
};
[4164] Fix | Delete
// https://tc39.github.io/ecma262/#sec-function-definitions
[4165] Fix | Delete
Parser.prototype.parseFunctionSourceElements = function () {
[4166] Fix | Delete
var node = this.createNode();
[4167] Fix | Delete
this.expect('{');
[4168] Fix | Delete
var body = this.parseDirectivePrologues();
[4169] Fix | Delete
var previousLabelSet = this.context.labelSet;
[4170] Fix | Delete
var previousInIteration = this.context.inIteration;
[4171] Fix | Delete
var previousInSwitch = this.context.inSwitch;
[4172] Fix | Delete
var previousInFunctionBody = this.context.inFunctionBody;
[4173] Fix | Delete
this.context.labelSet = {};
[4174] Fix | Delete
this.context.inIteration = false;
[4175] Fix | Delete
this.context.inSwitch = false;
[4176] Fix | Delete
this.context.inFunctionBody = true;
[4177] Fix | Delete
while (this.lookahead.type !== 2 /* EOF */) {
[4178] Fix | Delete
if (this.match('}')) {
[4179] Fix | Delete
break;
[4180] Fix | Delete
}
[4181] Fix | Delete
body.push(this.parseStatementListItem());
[4182] Fix | Delete
}
[4183] Fix | Delete
this.expect('}');
[4184] Fix | Delete
this.context.labelSet = previousLabelSet;
[4185] Fix | Delete
this.context.inIteration = previousInIteration;
[4186] Fix | Delete
this.context.inSwitch = previousInSwitch;
[4187] Fix | Delete
this.context.inFunctionBody = previousInFunctionBody;
[4188] Fix | Delete
return this.finalize(node, new Node.BlockStatement(body));
[4189] Fix | Delete
};
[4190] Fix | Delete
Parser.prototype.validateParam = function (options, param, name) {
[4191] Fix | Delete
var key = '$' + name;
[4192] Fix | Delete
if (this.context.strict) {
[4193] Fix | Delete
if (this.scanner.isRestrictedWord(name)) {
[4194] Fix | Delete
options.stricted = param;
[4195] Fix | Delete
options.message = messages_1.Messages.StrictParamName;
[4196] Fix | Delete
}
[4197] Fix | Delete
if (Object.prototype.hasOwnProperty.call(options.paramSet, key)) {
[4198] Fix | Delete
options.stricted = param;
[4199] Fix | Delete
options.message = messages_1.Messages.StrictParamDupe;
[4200] Fix | Delete
}
[4201] Fix | Delete
}
[4202] Fix | Delete
else if (!options.firstRestricted) {
[4203] Fix | Delete
if (this.scanner.isRestrictedWord(name)) {
[4204] Fix | Delete
options.firstRestricted = param;
[4205] Fix | Delete
options.message = messages_1.Messages.StrictParamName;
[4206] Fix | Delete
}
[4207] Fix | Delete
else if (this.scanner.isStrictModeReservedWord(name)) {
[4208] Fix | Delete
options.firstRestricted = param;
[4209] Fix | Delete
options.message = messages_1.Messages.StrictReservedWord;
[4210] Fix | Delete
}
[4211] Fix | Delete
else if (Object.prototype.hasOwnProperty.call(options.paramSet, key)) {
[4212] Fix | Delete
options.stricted = param;
[4213] Fix | Delete
options.message = messages_1.Messages.StrictParamDupe;
[4214] Fix | Delete
}
[4215] Fix | Delete
}
[4216] Fix | Delete
/* istanbul ignore next */
[4217] Fix | Delete
if (typeof Object.defineProperty === 'function') {
[4218] Fix | Delete
Object.defineProperty(options.paramSet, key, { value: true, enumerable: true, writable: true, configurable: true });
[4219] Fix | Delete
}
[4220] Fix | Delete
else {
[4221] Fix | Delete
options.paramSet[key] = true;
[4222] Fix | Delete
}
[4223] Fix | Delete
};
[4224] Fix | Delete
Parser.prototype.parseRestElement = function (params) {
[4225] Fix | Delete
var node = this.createNode();
[4226] Fix | Delete
this.expect('...');
[4227] Fix | Delete
var arg = this.parsePattern(params);
[4228] Fix | Delete
if (this.match('=')) {
[4229] Fix | Delete
this.throwError(messages_1.Messages.DefaultRestParameter);
[4230] Fix | Delete
}
[4231] Fix | Delete
if (!this.match(')')) {
[4232] Fix | Delete
this.throwError(messages_1.Messages.ParameterAfterRestParameter);
[4233] Fix | Delete
}
[4234] Fix | Delete
return this.finalize(node, new Node.RestElement(arg));
[4235] Fix | Delete
};
[4236] Fix | Delete
Parser.prototype.parseFormalParameter = function (options) {
[4237] Fix | Delete
var params = [];
[4238] Fix | Delete
var param = this.match('...') ? this.parseRestElement(params) : this.parsePatternWithDefault(params);
[4239] Fix | Delete
for (var i = 0; i < params.length; i++) {
[4240] Fix | Delete
this.validateParam(options, params[i], params[i].value);
[4241] Fix | Delete
}
[4242] Fix | Delete
options.simple = options.simple && (param instanceof Node.Identifier);
[4243] Fix | Delete
options.params.push(param);
[4244] Fix | Delete
};
[4245] Fix | Delete
Parser.prototype.parseFormalParameters = function (firstRestricted) {
[4246] Fix | Delete
var options;
[4247] Fix | Delete
options = {
[4248] Fix | Delete
simple: true,
[4249] Fix | Delete
params: [],
[4250] Fix | Delete
firstRestricted: firstRestricted
[4251] Fix | Delete
};
[4252] Fix | Delete
this.expect('(');
[4253] Fix | Delete
if (!this.match(')')) {
[4254] Fix | Delete
options.paramSet = {};
[4255] Fix | Delete
while (this.lookahead.type !== 2 /* EOF */) {
[4256] Fix | Delete
this.parseFormalParameter(options);
[4257] Fix | Delete
if (this.match(')')) {
[4258] Fix | Delete
break;
[4259] Fix | Delete
}
[4260] Fix | Delete
this.expect(',');
[4261] Fix | Delete
if (this.match(')')) {
[4262] Fix | Delete
break;
[4263] Fix | Delete
}
[4264] Fix | Delete
}
[4265] Fix | Delete
}
[4266] Fix | Delete
this.expect(')');
[4267] Fix | Delete
return {
[4268] Fix | Delete
simple: options.simple,
[4269] Fix | Delete
params: options.params,
[4270] Fix | Delete
stricted: options.stricted,
[4271] Fix | Delete
firstRestricted: options.firstRestricted,
[4272] Fix | Delete
message: options.message
[4273] Fix | Delete
};
[4274] Fix | Delete
};
[4275] Fix | Delete
Parser.prototype.matchAsyncFunction = function () {
[4276] Fix | Delete
var match = this.matchContextualKeyword('async');
[4277] Fix | Delete
if (match) {
[4278] Fix | Delete
var state = this.scanner.saveState();
[4279] Fix | Delete
this.scanner.scanComments();
[4280] Fix | Delete
var next = this.scanner.lex();
[4281] Fix | Delete
this.scanner.restoreState(state);
[4282] Fix | Delete
match = (state.lineNumber === next.lineNumber) && (next.type === 4 /* Keyword */) && (next.value === 'function');
[4283] Fix | Delete
}
[4284] Fix | Delete
return match;
[4285] Fix | Delete
};
[4286] Fix | Delete
Parser.prototype.parseFunctionDeclaration = function (identifierIsOptional) {
[4287] Fix | Delete
var node = this.createNode();
[4288] Fix | Delete
var isAsync = this.matchContextualKeyword('async');
[4289] Fix | Delete
if (isAsync) {
[4290] Fix | Delete
this.nextToken();
[4291] Fix | Delete
}
[4292] Fix | Delete
this.expectKeyword('function');
[4293] Fix | Delete
var isGenerator = isAsync ? false : this.match('*');
[4294] Fix | Delete
if (isGenerator) {
[4295] Fix | Delete
this.nextToken();
[4296] Fix | Delete
}
[4297] Fix | Delete
var message;
[4298] Fix | Delete
var id = null;
[4299] Fix | Delete
var firstRestricted = null;
[4300] Fix | Delete
if (!identifierIsOptional || !this.match('(')) {
[4301] Fix | Delete
var token = this.lookahead;
[4302] Fix | Delete
id = this.parseVariableIdentifier();
[4303] Fix | Delete
if (this.context.strict) {
[4304] Fix | Delete
if (this.scanner.isRestrictedWord(token.value)) {
[4305] Fix | Delete
this.tolerateUnexpectedToken(token, messages_1.Messages.StrictFunctionName);
[4306] Fix | Delete
}
[4307] Fix | Delete
}
[4308] Fix | Delete
else {
[4309] Fix | Delete
if (this.scanner.isRestrictedWord(token.value)) {
[4310] Fix | Delete
firstRestricted = token;
[4311] Fix | Delete
message = messages_1.Messages.StrictFunctionName;
[4312] Fix | Delete
}
[4313] Fix | Delete
else if (this.scanner.isStrictModeReservedWord(token.value)) {
[4314] Fix | Delete
firstRestricted = token;
[4315] Fix | Delete
message = messages_1.Messages.StrictReservedWord;
[4316] Fix | Delete
}
[4317] Fix | Delete
}
[4318] Fix | Delete
}
[4319] Fix | Delete
var previousAllowAwait = this.context.await;
[4320] Fix | Delete
var previousAllowYield = this.context.allowYield;
[4321] Fix | Delete
this.context.await = isAsync;
[4322] Fix | Delete
this.context.allowYield = !isGenerator;
[4323] Fix | Delete
var formalParameters = this.parseFormalParameters(firstRestricted);
[4324] Fix | Delete
var params = formalParameters.params;
[4325] Fix | Delete
var stricted = formalParameters.stricted;
[4326] Fix | Delete
firstRestricted = formalParameters.firstRestricted;
[4327] Fix | Delete
if (formalParameters.message) {
[4328] Fix | Delete
message = formalParameters.message;
[4329] Fix | Delete
}
[4330] Fix | Delete
var previousStrict = this.context.strict;
[4331] Fix | Delete
var previousAllowStrictDirective = this.context.allowStrictDirective;
[4332] Fix | Delete
this.context.allowStrictDirective = formalParameters.simple;
[4333] Fix | Delete
var body = this.parseFunctionSourceElements();
[4334] Fix | Delete
if (this.context.strict && firstRestricted) {
[4335] Fix | Delete
this.throwUnexpectedToken(firstRestricted, message);
[4336] Fix | Delete
}
[4337] Fix | Delete
if (this.context.strict && stricted) {
[4338] Fix | Delete
this.tolerateUnexpectedToken(stricted, message);
[4339] Fix | Delete
}
[4340] Fix | Delete
this.context.strict = previousStrict;
[4341] Fix | Delete
this.context.allowStrictDirective = previousAllowStrictDirective;
[4342] Fix | Delete
this.context.await = previousAllowAwait;
[4343] Fix | Delete
this.context.allowYield = previousAllowYield;
[4344] Fix | Delete
return isAsync ? this.finalize(node, new Node.AsyncFunctionDeclaration(id, params, body)) :
[4345] Fix | Delete
this.finalize(node, new Node.FunctionDeclaration(id, params, body, isGenerator));
[4346] Fix | Delete
};
[4347] Fix | Delete
Parser.prototype.parseFunctionExpression = function () {
[4348] Fix | Delete
var node = this.createNode();
[4349] Fix | Delete
var isAsync = this.matchContextualKeyword('async');
[4350] Fix | Delete
if (isAsync) {
[4351] Fix | Delete
this.nextToken();
[4352] Fix | Delete
}
[4353] Fix | Delete
this.expectKeyword('function');
[4354] Fix | Delete
var isGenerator = isAsync ? false : this.match('*');
[4355] Fix | Delete
if (isGenerator) {
[4356] Fix | Delete
this.nextToken();
[4357] Fix | Delete
}
[4358] Fix | Delete
var message;
[4359] Fix | Delete
var id = null;
[4360] Fix | Delete
var firstRestricted;
[4361] Fix | Delete
var previousAllowAwait = this.context.await;
[4362] Fix | Delete
var previousAllowYield = this.context.allowYield;
[4363] Fix | Delete
this.context.await = isAsync;
[4364] Fix | Delete
this.context.allowYield = !isGenerator;
[4365] Fix | Delete
if (!this.match('(')) {
[4366] Fix | Delete
var token = this.lookahead;
[4367] Fix | Delete
id = (!this.context.strict && !isGenerator && this.matchKeyword('yield')) ? this.parseIdentifierName() : this.parseVariableIdentifier();
[4368] Fix | Delete
if (this.context.strict) {
[4369] Fix | Delete
if (this.scanner.isRestrictedWord(token.value)) {
[4370] Fix | Delete
this.tolerateUnexpectedToken(token, messages_1.Messages.StrictFunctionName);
[4371] Fix | Delete
}
[4372] Fix | Delete
}
[4373] Fix | Delete
else {
[4374] Fix | Delete
if (this.scanner.isRestrictedWord(token.value)) {
[4375] Fix | Delete
firstRestricted = token;
[4376] Fix | Delete
message = messages_1.Messages.StrictFunctionName;
[4377] Fix | Delete
}
[4378] Fix | Delete
else if (this.scanner.isStrictModeReservedWord(token.value)) {
[4379] Fix | Delete
firstRestricted = token;
[4380] Fix | Delete
message = messages_1.Messages.StrictReservedWord;
[4381] Fix | Delete
}
[4382] Fix | Delete
}
[4383] Fix | Delete
}
[4384] Fix | Delete
var formalParameters = this.parseFormalParameters(firstRestricted);
[4385] Fix | Delete
var params = formalParameters.params;
[4386] Fix | Delete
var stricted = formalParameters.stricted;
[4387] Fix | Delete
firstRestricted = formalParameters.firstRestricted;
[4388] Fix | Delete
if (formalParameters.message) {
[4389] Fix | Delete
message = formalParameters.message;
[4390] Fix | Delete
}
[4391] Fix | Delete
var previousStrict = this.context.strict;
[4392] Fix | Delete
var previousAllowStrictDirective = this.context.allowStrictDirective;
[4393] Fix | Delete
this.context.allowStrictDirective = formalParameters.simple;
[4394] Fix | Delete
var body = this.parseFunctionSourceElements();
[4395] Fix | Delete
if (this.context.strict && firstRestricted) {
[4396] Fix | Delete
this.throwUnexpectedToken(firstRestricted, message);
[4397] Fix | Delete
}
[4398] Fix | Delete
if (this.context.strict && stricted) {
[4399] Fix | Delete
this.tolerateUnexpectedToken(stricted, message);
[4400] Fix | Delete
}
[4401] Fix | Delete
this.context.strict = previousStrict;
[4402] Fix | Delete
this.context.allowStrictDirective = previousAllowStrictDirective;
[4403] Fix | Delete
this.context.await = previousAllowAwait;
[4404] Fix | Delete
this.context.allowYield = previousAllowYield;
[4405] Fix | Delete
return isAsync ? this.finalize(node, new Node.AsyncFunctionExpression(id, params, body)) :
[4406] Fix | Delete
this.finalize(node, new Node.FunctionExpression(id, params, body, isGenerator));
[4407] Fix | Delete
};
[4408] Fix | Delete
// https://tc39.github.io/ecma262/#sec-directive-prologues-and-the-use-strict-directive
[4409] Fix | Delete
Parser.prototype.parseDirective = function () {
[4410] Fix | Delete
var token = this.lookahead;
[4411] Fix | Delete
var node = this.createNode();
[4412] Fix | Delete
var expr = this.parseExpression();
[4413] Fix | Delete
var directive = (expr.type === syntax_1.Syntax.Literal) ? this.getTokenRaw(token).slice(1, -1) : null;
[4414] Fix | Delete
this.consumeSemicolon();
[4415] Fix | Delete
return this.finalize(node, directive ? new Node.Directive(expr, directive) : new Node.ExpressionStatement(expr));
[4416] Fix | Delete
};
[4417] Fix | Delete
Parser.prototype.parseDirectivePrologues = function () {
[4418] Fix | Delete
var firstRestricted = null;
[4419] Fix | Delete
var body = [];
[4420] Fix | Delete
while (true) {
[4421] Fix | Delete
var token = this.lookahead;
[4422] Fix | Delete
if (token.type !== 8 /* StringLiteral */) {
[4423] Fix | Delete
break;
[4424] Fix | Delete
}
[4425] Fix | Delete
var statement = this.parseDirective();
[4426] Fix | Delete
body.push(statement);
[4427] Fix | Delete
var directive = statement.directive;
[4428] Fix | Delete
if (typeof directive !== 'string') {
[4429] Fix | Delete
break;
[4430] Fix | Delete
}
[4431] Fix | Delete
if (directive === 'use strict') {
[4432] Fix | Delete
this.context.strict = true;
[4433] Fix | Delete
if (firstRestricted) {
[4434] Fix | Delete
this.tolerateUnexpectedToken(firstRestricted, messages_1.Messages.StrictOctalLiteral);
[4435] Fix | Delete
}
[4436] Fix | Delete
if (!this.context.allowStrictDirective) {
[4437] Fix | Delete
this.tolerateUnexpectedToken(token, messages_1.Messages.IllegalLanguageModeDirective);
[4438] Fix | Delete
}
[4439] Fix | Delete
}
[4440] Fix | Delete
else {
[4441] Fix | Delete
if (!firstRestricted && token.octal) {
[4442] Fix | Delete
firstRestricted = token;
[4443] Fix | Delete
}
[4444] Fix | Delete
}
[4445] Fix | Delete
}
[4446] Fix | Delete
return body;
[4447] Fix | Delete
};
[4448] Fix | Delete
// https://tc39.github.io/ecma262/#sec-method-definitions
[4449] Fix | Delete
Parser.prototype.qualifiedPropertyName = function (token) {
[4450] Fix | Delete
switch (token.type) {
[4451] Fix | Delete
case 3 /* Identifier */:
[4452] Fix | Delete
case 8 /* StringLiteral */:
[4453] Fix | Delete
case 1 /* BooleanLiteral */:
[4454] Fix | Delete
case 5 /* NullLiteral */:
[4455] Fix | Delete
case 6 /* NumericLiteral */:
[4456] Fix | Delete
case 4 /* Keyword */:
[4457] Fix | Delete
return true;
[4458] Fix | Delete
case 7 /* Punctuator */:
[4459] Fix | Delete
return token.value === '[';
[4460] Fix | Delete
default:
[4461] Fix | Delete
break;
[4462] Fix | Delete
}
[4463] Fix | Delete
return false;
[4464] Fix | Delete
};
[4465] Fix | Delete
Parser.prototype.parseGetterMethod = function () {
[4466] Fix | Delete
var node = this.createNode();
[4467] Fix | Delete
var isGenerator = false;
[4468] Fix | Delete
var previousAllowYield = this.context.allowYield;
[4469] Fix | Delete
this.context.allowYield = false;
[4470] Fix | Delete
var formalParameters = this.parseFormalParameters();
[4471] Fix | Delete
if (formalParameters.params.length > 0) {
[4472] Fix | Delete
this.tolerateError(messages_1.Messages.BadGetterArity);
[4473] Fix | Delete
}
[4474] Fix | Delete
var method = this.parsePropertyMethod(formalParameters);
[4475] Fix | Delete
this.context.allowYield = previousAllowYield;
[4476] Fix | Delete
return this.finalize(node, new Node.FunctionExpression(null, formalParameters.params, method, isGenerator));
[4477] Fix | Delete
};
[4478] Fix | Delete
Parser.prototype.parseSetterMethod = function () {
[4479] Fix | Delete
var node = this.createNode();
[4480] Fix | Delete
var isGenerator = false;
[4481] Fix | Delete
var previousAllowYield = this.context.allowYield;
[4482] Fix | Delete
this.context.allowYield = false;
[4483] Fix | Delete
var formalParameters = this.parseFormalParameters();
[4484] Fix | Delete
if (formalParameters.params.length !== 1) {
[4485] Fix | Delete
this.tolerateError(messages_1.Messages.BadSetterArity);
[4486] Fix | Delete
}
[4487] Fix | Delete
else if (formalParameters.params[0] instanceof Node.RestElement) {
[4488] Fix | Delete
this.tolerateError(messages_1.Messages.BadSetterRestParameter);
[4489] Fix | Delete
}
[4490] Fix | Delete
var method = this.parsePropertyMethod(formalParameters);
[4491] Fix | Delete
this.context.allowYield = previousAllowYield;
[4492] Fix | Delete
return this.finalize(node, new Node.FunctionExpression(null, formalParameters.params, method, isGenerator));
[4493] Fix | Delete
};
[4494] Fix | Delete
Parser.prototype.parseGeneratorMethod = function () {
[4495] Fix | Delete
var node = this.createNode();
[4496] Fix | Delete
var isGenerator = true;
[4497] Fix | Delete
var previousAllowYield = this.context.allowYield;
[4498] Fix | Delete
this.context.allowYield = true;
[4499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function