Fortunately, the fix turns out to be pretty simple. Komodo ships with SpiderMonkey 1.7 as an executable, so I first built SpiderMonkey 1.8 (on Linux) using the SpiderMonkey build instructions:
cvs -d :pserver:firstname.lastname@example.org:/cvsroot co -l mozilla/js/src mozilla/js/src/config mozilla/js/src/editline mozilla/js/src/fdlibm<br />cd mozilla/js/src<br />BUILD_OPT=1 make -f Makefile.ref<br />
Then I backed up Komodo’s version and replaced it with the one I built:
cp Linux_All_OPT.OBJ/js ~/Applications/Komodo-IDE-4/lib/mozilla/js18<br />cd ~/Applications/Komodo-IDE-4/lib/mozilla<br />mv js js17<br />ln -s js18 js<br />
Voila! Syntax checking works for expression closures:
If it does create problems, however, then a more contained fix, as ActiveState’s Todd Whiteman points out on the Komodo Discuss mailing list, would be to update koXPCShellLinter.py’s jsInterp variable to point to the 1.8 executable.