And so I somewhat regrettably introduce ESLint.

Nicholas Zakas, Introducing ESLint

The short version: ESLint is a two-pass linter based on the Esprima ECMAScript parser with a fully pluggable rule system that supports warnings, errors, disabling rules, and custom rules. Based on the description, sounds like you want to use JSHint for the real-time linting in your editor and ESLint for your builds.

That’s 3 seconds, down from 45 seconds before the change. Not bad.

a jshint pre-commit hook for git

As promised in "a JavaScriptCore wrapper for jshint": a git pre-commit hook to lint your JavaScript using jshint:

Full blog post appears here on

a JavaScriptCore wrapper for jshint

Last night, I opened a pull request (my second) on the JSHint project. I created a wrapper for Apple’s JavaScriptCore (JSC) engine, which ships with (effectively) every Mac that’s out there.

Why JavaScriptCore?

That’s the obvious question, right? Why even bother creating a wrapper for JSC when JSHint is already out-of-the-box ready for Node.js, and ships with environment scripts to cover Rhino and Windows Script Host?

The answer is simple: I think JSHint is a meaningful project in the JavaScript community and I wanted to help lower the barrier-of-entry for a few more people.

As I noted in my pull request, many folks are excited about and working on Node.js—but not everyone. Having to pull Node.js and futz about with building it, that’s a barrier for some people. Echo that sentiment with Rhino.

But I know a ton of JavaScript developers that are on Macs. And every Mac has JSC right there in /System/Library/Frameworks/JavaScriptCore.framework; you can’t hide from it.

So I thought to myself: take away that excuse. Don’t know how to build Node? Can’t be bothered to build a Rhino jar? “That’s fine, but I noticed your little glowing apple there…”

We’ll save the git pre-commit hook lessons for next time.

UPDATE: Not even 24 hours later, the JSC wrapper is accepted into the JSHint project. I promise to deliver that git pre-commit hook lesson soon.