ru-se.com

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

fakejshint.js (1002B)


      1 // JSHINT has some GPL Compatability issues, so we are faking it out and using esprima for validation
      2 // Based on https://github.com/jquery/esprima/blob/gh-pages/demo/validate.js which is MIT licensed
      3 
      4 var fakeJSHINT = new function() {
      5 	var syntax, errors;
      6 	var that = this;
      7 	this.data = [];
      8 	this.convertError = function( error ){
      9 		return {
     10 			line: error.lineNumber,
     11 			character: error.column,
     12 			reason: error.description,
     13 			code: 'E'
     14 		};
     15 	};
     16 	this.parse = function( code ){
     17 		try {
     18 			syntax = window.esprima.parse(code, { tolerant: true, loc: true });
     19 			errors = syntax.errors;
     20 			if ( errors.length > 0 ) {
     21 				for ( var i = 0; i < errors.length; i++) {
     22 					var error = errors[i];
     23 					that.data.push( that.convertError( error ) );
     24 				}
     25 			} else {
     26 				that.data = [];
     27 			}
     28 		} catch (e) {
     29 			that.data.push( that.convertError( e ) );
     30 		}
     31 	};
     32 };
     33 
     34 window.JSHINT = function( text ){
     35 	fakeJSHINT.parse( text );
     36 };
     37 window.JSHINT.data = function(){
     38 	return {
     39 		errors: fakeJSHINT.data
     40 	};
     41 };
     42 
     43