jslint
Function is delivered as a set of files:
Filename | Content |
---|---|
browser.js |
Browser based UI, uses
adsafe.js
for DOM manipulation. |
function.html |
This page that you are looking at right now. |
help.html |
Using jslint as a single page |
jslint.html |
Single page js files. |
jslint.js |
The jslint function. |
report.js |
The REPORT object, containing report generator functions for HTML. |
function jslint
The jslint
function is written in ES5 JavaScript. It has no dependence on other files.
The jslint
function has three arguments:
Parameter name | Type | Volition | Description |
---|---|---|---|
source | string or array | required | This is the source of the program to be analyzed. It can be either a string containing \n , \r , or \r\n line breaks, or an array of strings, one element per line. |
option_object | object | optional | This object contains the chosen options for this analysis. The keys are the names of the options described on the help page. The values are either the boolean true or a small number. |
global_array | array | optional | This is an array of strings. Each string names one global variable that may be used by the program. Listing names here will silence warnings about the names. It will not introduce the names into the runtime environment. |
The jslint
function will not modify any of its arguments.
The jslint
function will return a result object contain the following properties:
Property name | Type | Content |
---|---|---|
directives |
array | An array of comments containing directives. |
edition | string | The verison of jslint that produced the result. |
functions | array | An array of function objects. |
global | object | The global object, a body that contains the outermost statements and variables. |
id | string | (JSLint) |
imports | array | All of the strings named in import statements. |
json | boolean | true if the source was a JSON text. |
lines | array | An array of strings, one for each line of text in the source. |
module | boolean | true if the file contains an import or export . |
ok | boolean | true if no warnings were found. |
option | object | The option object that was passed in, or an empty substitute. |
property | object | The names are the names of properties used in the source. The values are the number of times each name occurred. |
stop | boolean | true if |
tokens | array | All of the token objects in source order. |
tree | array | The token objects that represent the outermost statements. Those will be linked to other tokens, forming an abstract parse tree. |
warnings | array | The warning objects. |
A source file is composed of tokens. Each identifier, each operator, each punctuator, each literal, and each comment is a token. The whitespace between tokens is not a token.
An object is made for each token. The properties in each token will vary according to the type of the token. More properties will be added to the tokens during the analysis to indicate the token's purpose or relationship with other tokens. The tokens will be woven together to form a tree.
Property name | Type | Description | Where |
---|---|---|---|
arity |
string | unary , binary , ternary , assignment , statement , variable , function , pre , post |
non-literals |
block |
token or array of tokens | This is the contents of a block or compound statement. Each token represents a statement. | statement |
body |
boolean | true if the block is a function body. |
block |
catch |
token | The catch clause. |
try |
closure |
boolean | true if accessed by inner functions |
variable |
constant |
boolean | true if the thing is a compile-time constant |
token |
context |
object | The container of variables, parameters, labels, and exception variables declared in a function. | function |
directive |
boolean | jslint , global , property |
comment |
disrupt |
boolean | true if a disruptive statement, or a block ending with a distruption. An if will disrupt if both of its branches disrupt. |
statement |
dot |
boolean | true if the previous token was a dot. |
identifier |
ellipsis |
boolean | true if the parameter or argument is preceded by the ellipsis. |
token |
else |
array of tokens | Alternate block in
if (else ),
switch (default ),
try (finally ) |
statement |
expression |
token or array of tokens | One or more expressions. | operator or statement |
extra |
string | get , set |
properties |
flag |
object | An object containing the properties g , i , m , u , or y . |
regexp |
from |
number | The starting position of the token within its line of source code. A token at the extreme left margin has a from of 0. |
token |
function |
token | The function in which the variable was declared. | variable |
id |
string | The id of the token. For most tokens, this is the token text itself. For comments, id is '(comment)' .For number literals, id is '(number)' . For regular expression literals, id is '(regexp)' .For string literals, id is '(string)' . The end of the file has an id of '(end)' .The global object has an id of '(global)' . |
token |
identifier |
boolean | true if the token is an identifier. |
token |
import |
string | The import from string literal. |
import |
inc |
token | The increment clause of a for statement. |
for |
initial |
token | The initialization clause of a for statement. |
for |
label |
token | The label of a statement, or the name of a property in an object literal. | statement or object literal |
level |
number | The function nesting level. The global context is 0. The outermost functions are 1. Their inner functions are 2. | function |
line |
number | The line number on which the token was found. A token on the first line will have a line of 0. If the token spans multiple lines (such as a long comment) line will be the number of the last line it occupied. |
token |
name |
token or string | The name of a function | function |
names |
token or array of tokens | Parameters or variables on the left of = . |
= or ( |
new |
boolean | true if this token was preceded by new . |
token |
parameters |
array of tokens | The parameter list. | function |
quote |
string | The quote character. | string literal |
role |
string | exception , function , label , parameter , variable |
identifier |
statement |
boolean | true if the token is the first token of a statement. |
token |
strict |
boolean | true if it contained the 'use strict' pragma. |
block |
thru |
number | The ending position of the token within its line of source code. It is usually from plus the length of the token. |
token |
value |
string or array of strings | The text of the token. For a long comment or megastring, this could be an array of strings. | literals |
variable |
token | This links a variable to its definition. | variable |
warning |
object | A warning object triggered by this token. | token |
wrapped |
boolean | true if the expression was wrapped in parens. |
expression |
writable |
boolean | true if the variable can be assigned to. |
variable |
The REPORT
object contains three functions that all take a result from the jslint
function as input. report.js
has no other dependence on other files.
Function name | Description |
---|---|
error |
This function takes a result and returns an HTML text fragment from the warnings that are found. |
function |
This function takes a result and returns an HTML text fragment detailing the declarations of every function. |
property |
This function takes a result and returns a |