Spaces:
Sleeping
Sleeping
// JSHINT has some GPL Compatability issues, so we are faking it out and using esprima for validation | |
// Based on https://github.com/jquery/esprima/blob/gh-pages/demo/validate.js which is MIT licensed | |
var fakeJSHINT = new function() { | |
var syntax, errors; | |
var that = this; | |
this.data = []; | |
this.convertError = function( error ){ | |
return { | |
line: error.lineNumber, | |
character: error.column, | |
reason: error.description, | |
code: 'E' | |
}; | |
}; | |
this.parse = function( code ){ | |
try { | |
syntax = window.esprima.parse(code, { tolerant: true, loc: true }); | |
errors = syntax.errors; | |
if ( errors.length > 0 ) { | |
for ( var i = 0; i < errors.length; i++) { | |
var error = errors[i]; | |
that.data.push( that.convertError( error ) ); | |
} | |
} else { | |
that.data = []; | |
} | |
} catch (e) { | |
that.data.push( that.convertError( e ) ); | |
} | |
}; | |
}; | |
window.JSHINT = function( text ){ | |
fakeJSHINT.parse( text ); | |
}; | |
window.JSHINT.data = function(){ | |
return { | |
errors: fakeJSHINT.data | |
}; | |
}; | |