[javascriptlint-commit] SF.net SVN: javascriptlint:[305] trunk
Status: Beta
Brought to you by:
matthiasmiller
From: <mat...@us...> - 2013-09-28 03:38:26
|
Revision: 305 http://sourceforge.net/p/javascriptlint/code/305 Author: matthiasmiller Date: 2013-09-28 03:38:24 +0000 (Sat, 28 Sep 2013) Log Message: ----------- #41 python re-write doesn't support option explicit Move Edit Fix traceback mentioned in comment regarding invalid control comments Modified Paths: -------------- trunk/javascriptlint/lint.py trunk/tests/control_comments/control_comments.js Modified: trunk/javascriptlint/lint.py =================================================================== --- trunk/javascriptlint/lint.py 2013-09-28 03:06:19 UTC (rev 304) +++ trunk/javascriptlint/lint.py 2013-09-28 03:38:24 UTC (rev 305) @@ -54,29 +54,28 @@ control_comment = comment.atom[1:-1] else: return None + control_comment = control_comment.lower().rstrip() - control_comments = { - 'ignoreall': (False), - 'ignore': (False), - 'end': (False), - 'option explicit': (False), - 'import': (True), - 'fallthru': (False), - 'pass': (False), - 'declare': (True), - 'unused': (True), - 'content-type': (True), - } - if control_comment.lower() in control_comments: - keyword = control_comment.lower() - else: - keyword = control_comment.lower().split()[0] - if not keyword in control_comments: - return None + keywords = ( + 'ignoreall', + 'ignore', + 'end', + 'option explicit', + 'import', + 'fallthru', + 'pass', + 'declare', + 'unused', + 'content-type', + ) + for keyword in keywords: + # The keyword must either match or be separated by a space. + if control_comment == keyword or \ + (control_comment.startswith(keyword) and \ + control_comment[len(keyword)].isspace()): + parms = control_comment[len(keyword):].strip() + return (comment, keyword, parms.strip()) - parms = control_comment[len(keyword):].strip() - return (comment, keyword, parms) - class Scope: """ Outer-level scopes will never be associated with a node. Inner-level scopes will always be associated with a node. Modified: trunk/tests/control_comments/control_comments.js =================================================================== --- trunk/tests/control_comments/control_comments.js 2013-09-28 03:06:19 UTC (rev 304) +++ trunk/tests/control_comments/control_comments.js 2013-09-28 03:38:24 UTC (rev 305) @@ -29,5 +29,15 @@ /* illegal - don't forget to end */ /*jsl:ignore*/ /*warning:mismatch_ctrl_comments*/ + + // The following are illegal. Make sure jsl doesn't choke. + /*jsl:*/ /*warning:jsl_cc_not_understood*/ + if (a) + { + /*jsl:pass */ + } + /*jsl:ignoreal*/ /*warning:jsl_cc_not_understood*/ + /*jsl:declarebogus*/ /*warning:jsl_cc_not_understood*/ + /*jsl:declare bogus */ } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |