mirror of
https://github.com/jquery/jquery.git
synced 2024-11-23 02:54:22 +00:00
Fix #10692. JSLint is dead! Long live JSHint!
Still needs this sizzle PR: https://github.com/jquery/sizzle/pull/82
This commit is contained in:
parent
d6500cc8de
commit
98386cfd77
14
Makefile
14
Makefile
@ -46,7 +46,7 @@ DATE=$(shell git log -1 --pretty=format:%ad)
|
||||
|
||||
all: update_submodules core
|
||||
|
||||
core: jquery min lint size
|
||||
core: jquery min hint size
|
||||
@@echo "jQuery build complete."
|
||||
|
||||
${DIST_DIR}:
|
||||
@ -67,12 +67,14 @@ ${SRC_DIR}/selector.js: ${SIZZLE_DIR}/sizzle.js
|
||||
@@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
|
||||
|
||||
lint: jquery
|
||||
lint: hint
|
||||
|
||||
hint: jquery
|
||||
@@if test ! -z ${JS_ENGINE}; then \
|
||||
echo "Checking jQuery against JSLint..."; \
|
||||
${JS_ENGINE} build/jslint-check.js; \
|
||||
echo "Checking jQuery against JSHint..."; \
|
||||
${JS_ENGINE} build/jshint-check.js; \
|
||||
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
|
||||
|
||||
size: jquery min
|
||||
@ -134,4 +136,4 @@ pull_submodules:
|
||||
pull: pull_submodules
|
||||
@@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
|
||||
|
35
build/jshint-check.js
Normal file
35
build/jshint-check.js
Normal file
@ -0,0 +1,35 @@
|
||||
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" );
|
||||
}
|
@ -1,36 +0,0 @@
|
||||
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" );
|
||||
}
|
4256
build/lib/jshint.js
Normal file
4256
build/lib/jshint.js
Normal file
File diff suppressed because it is too large
Load Diff
5504
build/lib/jslint.js
5504
build/lib/jslint.js
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user