Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Added in integrated JSLint checking against the jQuery source. Just r…
…un 'make lint' to see the result.
  • Loading branch information
jeresig committed Mar 2, 2010
1 parent dcf0fa5 commit 950b5d6
Show file tree
Hide file tree
Showing 5 changed files with 5,548 additions and 3 deletions.
11 changes: 8 additions & 3 deletions Makefile
Expand Up @@ -29,11 +29,12 @@ JQ_MIN = ${DIST_DIR}/jquery.min.js
JQ_VER = `cat version.txt`
VER = sed s/@VERSION/${JQ_VER}/

RHINO = java -jar ${BUILD_DIR}/js.jar
MINJAR = java -jar ${BUILD_DIR}/google-compiler-20091218.jar

DATE=`git log -1 | grep Date: | sed 's/[^:]*: *//'`

all: jquery min
all: jquery lint min
@@echo "jQuery build complete."

${DIST_DIR}:
Expand All @@ -49,7 +50,7 @@ init:
jquery: ${DIST_DIR} selector ${JQ}
jq: ${DIST_DIR} ${JQ}

${JQ}: ${MODULES}
${JQ}: selector ${MODULES}
@@echo "Building" ${JQ}

@@mkdir -p ${DIST_DIR}
Expand All @@ -58,10 +59,14 @@ ${JQ}: ${MODULES}
sed 's/Date:./&'"${DATE}"'/' | \
${VER} > ${JQ};

selector: init
selector: ${DIST_DIR} init
@@echo "Building selector code from Sizzle"
@@sed '/EXPOSE/r src/sizzle-jquery.js' src/sizzle/sizzle.js > src/selector.js

lint: ${JQ}
@@echo "Checking jQuery against JSLint..."
@@${RHINO} build/jslint-check.js

min: ${JQ_MIN}

${JQ_MIN}: ${JQ}
Expand Down
4 changes: 4 additions & 0 deletions README.md
Expand Up @@ -36,6 +36,10 @@ Makes: ./dist/jquery.js
A compressed version of jQuery (made the Closure Compiler).
Makes: ./dist/jquery.min.js

`make lint`

Tests a build of jQuery against JSLint, looking for potential errors or bits of confusing code.

`make selector`

Builds the selector library for jQuery from Sizzle.
Expand Down
Binary file added build/js.jar
Binary file not shown.
36 changes: 36 additions & 0 deletions build/jslint-check.js
@@ -0,0 +1,36 @@
load("build/jslint.js");

var src = readFile("dist/jquery.js");

JSLINT(src, { evil: true, forin: true });

// All of the following are known issues that we think are 'ok'
// (in contradiction with JSLint) more information here:
// http://docs.jquery.com/JQuery_Core_Style_Guidelines
var ok = {
"Expected an identifier and instead saw 'undefined' (a reserved word).": true,
"Use '===' to compare with 'null'.": true,
"Use '!==' to compare with 'null'.": true,
"Expected an assignment or function call and instead saw an expression.": true,
"Expected a 'break' statement before 'case'.": true

};

var e = JSLINT.errors, found = 0, w;

for ( var i = 0; i < e.length; i++ ) {
w = e[i];

if ( !ok[ w.reason ] ) {
found++;
print( "\n" + w.evidence + "\n" );
print( " Problem at line " + w.line + " character " + w.character + ": " + w.reason );
}
}

if ( found > 0 ) {
print( "\n" + found + " Error(s) found." );

} else {
print( "JSLint check passed." );
}

0 comments on commit 950b5d6

Please sign in to comment.