Commit 950b5d64 authored by jeresig's avatar jeresig

Added in integrated JSLint checking against the jQuery source. Just run 'make...

Added in integrated JSLint checking against the jQuery source. Just run 'make lint' to see the result.
parent dcf0fa50
......@@ -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}:
......@@ -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}
......@@ -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}
......
......@@ -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.
......
File added
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." );
}
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment