Change on 2013-03-05 23:42:45-08:00 by vagrawal

	Semicolon is needed at the end of object literal. But that getting a false positive then used without assignment.
	Making sure the if code block is object literal then don't give warning of extra semicolon.
	Bug 7588405

	R=ajp
	DELTA=14 (10 added, 0 deleted, 4 changed)

Change on 2013-03-07 14:51:29-08:00 by johnlenz

	Add @classTemplate as acceptable extensions to JsDoc.

	R=ajp
	DELTA=12 (12 added, 0 deleted, 0 changed)

Change on 2013-03-12 10:18:56-07:00 by vagrawal

	Show warning with sorted goog.require & goog.provide to help in copy paste.

	R=michaelthomas
	DELTA=119 (96 added, 8 deleted, 15 changed)

Change on 2013-03-12 21:13:21-07:00 by vagrawal

	Preventing crash when file ends with an identifier.
	Bug 7643404
	http://sponge/5f883666-bed8-4ad5-b250-90ab40946545

	R=ajp,michaelthomas,gjslint-tech
	DELTA=35 (27 added, 0 deleted, 8 changed)

Change on 2013-03-22 07:06:29-07:00 by forster

	Allow @visibility lines in JavaScript files to take more than 80 columns.

	Tested:

	blaze test //devtools/javascript/gjslint:all
	blaze run //devtools/javascript/gjslint -- \
	    --custom_jsdoc_tags=mods,modName \
	    --limited_doc_files=_test.js \
	    --ignored_extra_namespaces=goog.testing.jsunit \
	    --closurized_namespaces=ac,apps,goog,fava,flee,oz,picnik,pinto,ppl,proto,tacotown \
	    $PWD/java/com/google/privacy/accountcentral/internal/data/client/initialdataservice.js

	See discussion here: https://groups.google.com/a/google.com/d/msg/javascript-style/G2pQbLd_Xcc/1kGNp0PKdIAJ

	R=nnaze,ajp,michaelthomas
	DELTA=14 (10 added, 0 deleted, 4 changed)

Change on 2013-03-22 07:15:11-07:00 by vagrawal

	Fixing a issue where function parameter is in new line has spaces then don't get indented properly.
	/* This is getting indented properly */
	function a(
	b) {
	}

	/* This is not getting indented properly */
	function a(
	  b) {
	}

	R=michaelthomas,ajp,gjslint-tech
	DELTA=26 (26 added, 0 deleted, 0 changed)

Change on 2013-03-22 07:31:44-07:00 by vagrawal

	Fixing type annotation fix for optional & variable length parameters when type is record type.

	Bug 2281970

	R=ajp,gjslint-tech,michaelthomas
	DELTA=97 (70 added, 0 deleted, 27 changed)

Change on 2013-03-28 09:07:12-07:00 by vagrawal

	Fixing the issue of crash when goog.require or goog.provide is first token in file.

	R=ajp,gjslint-tech,michaelthomas
	DELTA=210 (156 added, 0 deleted, 54 changed)

Change on 2013-03-28 12:45:04-07:00 by yesudeep

	Adds ngInject as a recognized annotation.

	R=nnaze
	DELTA=3 (3 added, 0 deleted, 0 changed)

Change on 2013-04-01 15:03:17-07:00 by mks

	This change migrates all PRESUBMIT.py MailTo entries to use the
	METADATA Presubmit "review_notify" field.

	Any PRESUBMIT.py "PRESUBMIT ALSO" sections are also converted to
	METADATA Presubmit "include_presubmit" fields, without removing
	them from the PRESUBMIT.py file, in order to preserve references
	to removed MailTo entries.

	For more information on METADATA Presubmit checks, please see:

	https://wiki.corp.google.com/twiki/bin/view/Main/PiperFAQPresubmit

	For questions about this change please contact piper-team@google.com.

	R=jperkins
	DELTA=2684 (1022 added, 1628 deleted, 34 changed)

Change on 2013-04-02 20:35:40-07:00 by vagrawal

	If semicolon is after keywords like 'else', 'do' then show error.

	R=ajp,michaelthomas
	DELTA=19 (19 added, 0 deleted, 0 changed)

Change on 2013-04-05 10:36:12-07:00 by albright

	Adding support for detecting unused local variables to gjslint. The
	code works by tracking local variable usages across a stack of function
	block contexts.

	R=michaelthomas
	DELTA=188 (165 added, 1 deleted, 22 changed)

Change on 2013-04-10 13:46:35-07:00 by supertri

	Adding the --compile option for a slight performance improvement when run on the linter service.

	Tested:
	    TAP presubmits for global presubmit queue
	    http://test/OCL:44770828:BASE:44770861:1364955315751:b5a42051

	R=ajp
	DELTA=1 (1 added, 0 deleted, 0 changed)

Change on 2013-04-10 15:27:33-07:00 by augie

	Remove all /usr/bin/python2.4 shebangs on files with 2.6-only try/except syntax.

	These files can't possibly parse with python2.4, so it's
	impossible that they're actually in use via the shebang. The
	most likely state is that they're part of a larger binary
	built by blaze, which ignores shebang lines entirely.

	Methodology:
	augie% gsearch '^ *except .* as .*:' -f='.py$' -l | \
	       sed 's$/home/build/google3/$$'| \
	       sort -u > ~/new-type-tryexcept.txt
	augie% gsearch '^#!/usr/bin/python2.4' -f='.py$' -l | \
	       sed 's$/home/build/google3/$$'| sort -u > ~/old-shebang.txt
	augie% comm -1 -2 ~/new-type-tryexcept.txt ~/old-shebang.txt | \
	       xargs -P 20 python trim-shebang.py

	Where trim-shebang.py is:

	#!/usr/bin/env python
	import sys
	import os


	def main(argv):
	  for path in argv[1:]:
	    with open(path) as f:
	      data = f.read()
	    first, rest = data.split('\n', 1)
	    if first == '#!/usr/bin/python2.4':
	      # Trim any lingering leading empty comment lines
	      newfirst, newrest = rest.split('\n', 1)
	      while newfirst.strip() in ('', '#'):
	        rest = newrest
	        newfirst, newrest = rest.split('\n', 1)
	      os.system('g4 edit %s' % path)
	      with open(path, 'w') as f:
	        f.write(rest)


	if __name__ == '__main__':
	  main(sys.argv)

	Tested:
	    $ blaze test //devtools/actionscript/gaslint:full_test //devtools/actionscript/gaslint:test_lib //devtools/javascript/closuredoc:commentutil_test //devtools/javascript/closuredoc:jsdocparser_test //devtools/javascript/closuredoc:namespaceutil_test //devtools/javascript/gjslint/common:all //devtools/javascript/gjslint:__closure_linter_fileset //devtools/javascript/gjslint:__closure_linter_genrule //devtools/javascript/gjslint:__closure_linter_original_fileset //devtools/javascript/gjslint:aliaspass_test //devtools/javascript/gjslint:closure_linter_codebase //devtools/javascript/gjslint:closure_linter_scrubbed //devtools/javascript/gjslint:closurizednamespacesinfo_test //devtools/javascript/gjslint:error_fixer_test //devtools/javascript/gjslint:fixjsstyle_test //devtools/javascript/gjslint:full_test //devtools/javascript/gjslint:javascriptstatetracker_test //devtools/javascript/gjslint:not_strict_test //devtools/javascript/gjslint:requireprovidesorter_test //devtools/javascript/gjslint:runner_test //devtools/javascript/gjslint:scopeutil_test //devtools/javascript/gjslint:statetracker_test //devtools/javascript/gjslint:test_lib //devtools/javascript/gjslint:tokenutil_test //devtools/javascript/proxfyler:instrumenter_test //devtools/javascript/proxfyler:server_test //devtools/javascript/proxfyler:test_lib
	    http://sponge/48c3d33d-77d1-42c6-81c5-a5bf1116c74c
	    Some tests failed; test failures are believed to be unrelated to this CL

	R=ajp
	DELTA=4 (0 added, 4 deleted, 0 changed)

Change on 2013-04-18 20:06:18-07:00 by vagrawal

	For open source added a flag --disable to disable warning.

	R=ajp
	DELTA=256 (251 added, 0 deleted, 5 changed)

Change on 2013-04-28 21:15:38-07:00 by vagrawal

	Fixing help string of --disable flag. Currently it excepts only numbers not error strings.

	R=ajp
	DELTA=1 (0 added, 0 deleted, 1 changed)

Change on 2013-04-28 21:29:45-07:00 by vagrawal

	For open source allowing users to specify max length of lines. Default is 80.

	R=ajp,michaelthomas
	DELTA=95 (81 added, 0 deleted, 14 changed)

Change on 2013-04-29 09:46:14-07:00 by vagrawal

	When type is defined as object literal as follows then suppress jsdoc warning of @this.

	var Foo = function();
	Foo.prototype = {
	 /**
	  * @return {number} Never.
	  */
	 method: function() {
	   return this.method();
	 }
	};

	R=ajp
	DELTA=71 (67 added, 0 deleted, 4 changed)

Change on 2013-05-05 13:07:49-07:00 by michaelthomas

	Fixes a bug in ClosurizedNamespacesInfo where multi-line identifiers were not
	handled properly when determining whethere a namespace was created by a member
	definition.

	R=ajp,nnaze
	DELTA=161 (151 added, 3 deleted, 7 changed)

Change on 2013-05-06 01:56:01-07:00 by rumpel

	Fix require/provide checking for scopified files.

	There were basically these issues:
	a) aliaspass wasn't run at all.
	b) aliaspass is broken if the aliases directly follow goog.scope, because it searched a token whose context is a statement inside goog.scope, however if there is only the VAR definition (inside such a statement), no token will have the statement as context. Instead now, the code searches for a VAR definition inside goog.scope.
	c) alias usage tracking only worked for the exact alias, but not for namespace aliases (e.g. var events = goog.events; new events.Event();)

	R=nnaze,michaelthomas
	DELTA=200 (137 added, 23 deleted, 40 changed)


Revision created by MOE tool push_codebase.
MOE_MIGRATION=6399


git-svn-id: http://closure-linter.googlecode.com/svn/trunk@23 71da9934-2b21-84e7-0a4e-7ab6f78df257

GJsLint release 2.3.10.

R=nnaze


Revision created by MOE tool push_codebase.
MOE_MIGRATION=6400


git-svn-id: http://closure-linter.googlecode.com/svn/trunk@24 71da9934-2b21-84e7-0a4e-7ab6f78df257
Updated indentation rules to use 4 spaces instead of 2 for default block indentation.