Commit 98386cfd authored by Mike Sherov's avatar Mike Sherov Committed by Dave Methvin

Fix #10692. JSLint is dead! Long live JSHint!

Still needs this sizzle PR: https://github.com/jquery/sizzle/pull/82
parent d6500cc8
...@@ -46,7 +46,7 @@ DATE=$(shell git log -1 --pretty=format:%ad) ...@@ -46,7 +46,7 @@ DATE=$(shell git log -1 --pretty=format:%ad)
all: update_submodules core all: update_submodules core
core: jquery min lint size core: jquery min hint size
@@echo "jQuery build complete." @@echo "jQuery build complete."
${DIST_DIR}: ${DIST_DIR}:
...@@ -67,12 +67,14 @@ ${SRC_DIR}/selector.js: ${SIZZLE_DIR}/sizzle.js ...@@ -67,12 +67,14 @@ ${SRC_DIR}/selector.js: ${SIZZLE_DIR}/sizzle.js
@@echo "Building selector code from Sizzle" @@echo "Building selector code from Sizzle"
@@sed '/EXPOSE/r src/sizzle-jquery.js' ${SIZZLE_DIR}/sizzle.js | grep -v window.Sizzle > ${SRC_DIR}/selector.js @@sed '/EXPOSE/r src/sizzle-jquery.js' ${SIZZLE_DIR}/sizzle.js | grep -v window.Sizzle > ${SRC_DIR}/selector.js
lint: jquery lint: hint
hint: jquery
@@if test ! -z ${JS_ENGINE}; then \ @@if test ! -z ${JS_ENGINE}; then \
echo "Checking jQuery against JSLint..."; \ echo "Checking jQuery against JSHint..."; \
${JS_ENGINE} build/jslint-check.js; \ ${JS_ENGINE} build/jshint-check.js; \
else \ else \
echo "You must have NodeJS installed in order to test jQuery against JSLint."; \ echo "You must have NodeJS installed in order to test jQuery against JSHint."; \
fi fi
size: jquery min size: jquery min
...@@ -134,4 +136,4 @@ pull_submodules: ...@@ -134,4 +136,4 @@ pull_submodules:
pull: pull_submodules pull: pull_submodules
@@git pull ${REMOTE} ${BRANCH} @@git pull ${REMOTE} ${BRANCH}
.PHONY: all jquery lint min clean distclean update_submodules pull_submodules pull core .PHONY: all jquery lint hint min clean distclean update_submodules pull_submodules pull core
var JSHINT = require("./lib/jshint").JSHINT,
print = require("sys").print,
src = require("fs").readFileSync("dist/jquery.js", "utf8");
JSHINT(src, {
evil: true,
undef: false,
browser: true,
wsh: true,
eqnull: true,
expr: true,
curly: true,
eqeq: true,
trailing: true,
predef: [
"define",
"DOMParser"
],
maxerr: 100
});
var e = JSHINT.errors, found = e.length, i = 0, w;
for ( ; i < e.length; i++ ) {
w = e[i];
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.\n" );
} else {
print( "JSHint check passed.\n" );
}
\ No newline at end of file
var JSLINT = require("./lib/jslint").JSLINT,
print = require("sys").print,
src = require("fs").readFileSync("dist/jquery.js", "utf8");
JSLINT(src, { evil: true, forin: true, maxerr: 100 });
// 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,
"'e' is already defined.": 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.\n" );
} else {
print( "JSLint check passed.\n" );
}
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