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 4var 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 34window.JSHINT = function( text ){ 35 fakeJSHINT.parse( text ); 36}; 37window.JSHINT.data = function(){ 38 return { 39 errors: fakeJSHINT.data 40 }; 41}; 42 43
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.