@jslint-org/jslint 2026.6.30 → 2026.8.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +45 -2
- package/README.md +36 -74
- package/asset_codemirror_rollup.js +76 -67
- package/jslint.mjs +2268 -1990
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,15 +1,58 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
3
|
# Todo
|
|
4
|
-
- jslint-
|
|
4
|
+
- jslint-ecma - Add ES2018-feature Asynchronous Iteration.
|
|
5
|
+
- jslint-ecma - Add ES2015-feature iterators.
|
|
6
|
+
- jslint - Audit token-property '.free'.
|
|
5
7
|
- jslint-ecma - Expand ES2015-feature-support for es-module-export-statement.
|
|
6
8
|
- jslint - Relax warning expected_line_break_a_b for ternary-operator inside template-literal.
|
|
7
9
|
- jslint - Add ability to auto-fix whitespace.
|
|
8
|
-
- jslint - bugfix - Fix false-positive Unused-variable when variable is used in function argument-default.
|
|
9
10
|
- jslint - Add html and css linting back into jslint.
|
|
10
11
|
- jslint - Add new warning requiring paren around plus-separated concatenations.
|
|
11
12
|
- jslint - Try to improve parser to be able to parse jquery.js without stopping.
|
|
12
13
|
|
|
14
|
+
# v2026.8.31
|
|
15
|
+
- jslint-ci - Update ci-shell-function shGitLsTree() to include sha256 hash of files.
|
|
16
|
+
- jslint-editor - Update codemirror-editor to v5.65.21.
|
|
17
|
+
|
|
18
|
+
# v2026.7.30
|
|
19
|
+
- jslint-ecma - Add ES2015-feature for..of.
|
|
20
|
+
- jslint - Disable directive-option /*jslint for*/, replacing it with for-loop specific warnings.
|
|
21
|
+
- jslint - Update scope-related warnings for variables, depending on whether they are let/const (scope_block) or var (scope_function).
|
|
22
|
+
- jslint - Change warning 'out_of_scope_a' to 'temporal_dead_zone_a'.
|
|
23
|
+
- jslint - Change warning 'uninitialized_a' to 'unassigned_var_a'.
|
|
24
|
+
- jslint - Change scope from scope_function to scope_block:
|
|
25
|
+
- const-declaration
|
|
26
|
+
- let-declaration
|
|
27
|
+
- function-declaration
|
|
28
|
+
- jslint - Add implicit scope_block for:
|
|
29
|
+
- do-while
|
|
30
|
+
- for-loop
|
|
31
|
+
- if-else
|
|
32
|
+
- while-loop
|
|
33
|
+
- jslint - Add hidden scope_block for:
|
|
34
|
+
- catch-variable
|
|
35
|
+
- for-variable
|
|
36
|
+
- function-parameter
|
|
37
|
+
- label-name
|
|
38
|
+
- jslint - Restrict scope from scope_function to its own function-body:
|
|
39
|
+
- named-function-expression
|
|
40
|
+
- jslint - Rename internal scope-variables to imporove readability of scope-logic:
|
|
41
|
+
- 'blockage' to 'scope_block'
|
|
42
|
+
- 'functionage' to 'scope_function'
|
|
43
|
+
- jslint - Add block-scope to internal-function jslint_phase3_parse().
|
|
44
|
+
- jslint - Expand built-in-globals for browser, ecma, and node - auto-generated from online-sources.
|
|
45
|
+
- jslint-ci - Add automated ci for shellcheck to lint shell-scripts.
|
|
46
|
+
- jslint-regression - Cleanup indent for multiline-method-chaining.
|
|
47
|
+
- jslint-regression - Fix jslint crashing before warning about dangling ')' or ']'.
|
|
48
|
+
- jslint-parse - Fix jslint unable to continue parsing 'async aa => 0'.
|
|
49
|
+
- jslint-parse - Fix jslint unable to continue parsing 'function aa(){}0'.
|
|
50
|
+
- jslint-regression - Fix long-running regression where 'let x = x;' doesn't warn about temporal-dead-zone.
|
|
51
|
+
- jslint-warning - Tighten warning of unused variables to be always on, regardless of module / nodejs mode.
|
|
52
|
+
- jslint - Wrap all property-updates 'name.init = true/false' with calls to:
|
|
53
|
+
name_declare() - 'let aa=0'
|
|
54
|
+
post_a_assignment() - 'aa=0'
|
|
55
|
+
|
|
13
56
|
# v2026.6.30
|
|
14
57
|
- jslint-ecma - Update README.md, documenting supported ES2015+ features.
|
|
15
58
|
- jslint-ecma - Unify ES2015-destructure-logic into function prefix_destructure().
|
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@ Douglas Crockford <douglas@crockford.com>
|
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
# Status
|
|
6
|
-
| Branch | [master<br>(v2026.
|
|
6
|
+
| Branch | [master<br>(v2026.8.31)](https://github.com/jslint-org/jslint/tree/master) | [beta<br>(Web Demo)](https://github.com/jslint-org/jslint/tree/beta) | [alpha<br>(Development)](https://github.com/jslint-org/jslint/tree/alpha) |
|
|
7
7
|
|--:|:--:|:--:|:--:|
|
|
8
8
|
| CI | [](https://github.com/jslint-org/jslint/actions?query=branch%3Amaster) | [](https://github.com/jslint-org/jslint/actions?query=branch%3Abeta) | [](https://github.com/jslint-org/jslint/actions?query=branch%3Aalpha) |
|
|
9
9
|
| Coverage | [](https://jslint-org.github.io/jslint/branch-master/.artifact/coverage/index.html) | [](https://jslint-org.github.io/jslint/branch-beta/.artifact/coverage/index.html) | [](https://jslint-org.github.io/jslint/branch-alpha/.artifact/coverage/index.html) |
|
|
@@ -12,34 +12,44 @@ Douglas Crockford <douglas@crockford.com>
|
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
<br><br>
|
|
15
|
-
#
|
|
15
|
+
# Web Demo
|
|
16
|
+
- https://www.jslint.com
|
|
17
|
+
|
|
18
|
+
[](https://jslint-org.github.io/jslint/index.html)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
<br><br>
|
|
22
|
+
# Web Demo Archived
|
|
23
|
+
- [Web Demo 2020](https://www.jslint.com/branch-v2020.11.6/index.html)
|
|
24
|
+
- [Web Demo 2014 (ES5 only)](https://www.jslint.com/branch-v2014.7.8/jslint.html)
|
|
25
|
+
- [Web Demo 2013 (ES5, CSS, HTML)](https://www.jslint.com/branch-v2013.3.13/jslint.html)
|
|
16
26
|
|
|
17
|
-
1. [Web Demo](#web-demo)
|
|
18
27
|
|
|
19
|
-
|
|
28
|
+
<br><br>
|
|
29
|
+
# Table of Contents
|
|
20
30
|
|
|
21
|
-
|
|
31
|
+
1. [Quickstart Install](#quickstart-install)
|
|
22
32
|
- [To install, just download and save https://www.jslint.com/jslint.mjs to file:](#to-install-just-download-and-save-httpswwwjslintcomjslintmjs-to-file)
|
|
23
33
|
- [To run `jslint.mjs` in shell:](#to-run-jslintmjs-in-shell)
|
|
24
34
|
- [To import `jslint.mjs` in ES Module environment:](#to-import-jslintmjs-in-es-module-environment)
|
|
25
35
|
- [To import `jslint.mjs` in CommonJS environment:](#to-import-jslintmjs-in-commonjs-environment)
|
|
26
36
|
- [To JSLint entire directory in shell:](#to-jslint-entire-directory-in-shell)
|
|
27
37
|
|
|
28
|
-
|
|
38
|
+
2. [Quickstart JSLint Report](#quickstart-jslint-report)
|
|
29
39
|
- [To create a JSLint report in shell:](#to-create-a-jslint-report-in-shell)
|
|
30
40
|
- [To create a JSLint report in javascript:](#to-create-a-jslint-report-in-javascript)
|
|
31
41
|
|
|
32
|
-
|
|
42
|
+
3. [Quickstart V8 Coverage Report](#quickstart-v8-coverage-report)
|
|
33
43
|
- [To create V8 coverage report from Node.js / Npm program in shell:](#to-create-v8-coverage-report-from-nodejs--npm-program-in-shell)
|
|
34
44
|
- [To create V8 coverage report from Node.js / Npm program in javascript:](#to-create-v8-coverage-report-from-nodejs--npm-program-in-javascript)
|
|
35
45
|
|
|
36
|
-
|
|
46
|
+
4. [Quickstart JSLint in CodeMirror](#quickstart-jslint-in-codemirror)
|
|
37
47
|
|
|
38
|
-
|
|
48
|
+
5. [Quickstart JSLint in Vim](#quickstart-jslint-in-vim)
|
|
39
49
|
|
|
40
|
-
|
|
50
|
+
6. [Quickstart JSLint in VSCode](#quickstart-jslint-in-vscode)
|
|
41
51
|
|
|
42
|
-
|
|
52
|
+
7. [Documentation](#documentation)
|
|
43
53
|
- [API Doc](#api-doc)
|
|
44
54
|
- [Directive](#directive)
|
|
45
55
|
- [`/*jslint beta*/`](#jslint-beta)
|
|
@@ -50,7 +60,6 @@ Douglas Crockford <douglas@crockford.com>
|
|
|
50
60
|
- [`/*jslint devel*/`](#jslint-devel)
|
|
51
61
|
- [`/*jslint eval*/`](#jslint-eval)
|
|
52
62
|
- [`/*jslint fart*/`](#jslint-fart)
|
|
53
|
-
- [`/*jslint for*/`](#jslint-for)
|
|
54
63
|
- [`/*jslint getset*/`](#jslint-getset)
|
|
55
64
|
- [`/*jslint indent2*/`](#jslint-indent2)
|
|
56
65
|
- [`/*jslint long*/`](#jslint-long)
|
|
@@ -70,33 +79,19 @@ Douglas Crockford <douglas@crockford.com>
|
|
|
70
79
|
- [`//coverage-ignore-line`](#coverage-ignore-line)
|
|
71
80
|
- [ECMAScript Feature Support](#ecmascript-feature-support)
|
|
72
81
|
|
|
73
|
-
|
|
82
|
+
8. [Package Listing](#package-listing)
|
|
74
83
|
|
|
75
|
-
|
|
84
|
+
9. [Changelog](#changelog)
|
|
76
85
|
|
|
77
|
-
|
|
86
|
+
10. [License](#license)
|
|
78
87
|
|
|
79
|
-
|
|
88
|
+
11. [Devops Instruction](#devops-instruction)
|
|
80
89
|
- [pull-request merge](#pull-request-merge)
|
|
81
90
|
- [branch-master commit](#branch-master-commit)
|
|
82
91
|
- [branch-master publish](#branch-master-publish)
|
|
83
92
|
- [vscode-jslint publish](#vscode-jslint-publish)
|
|
84
93
|
|
|
85
94
|
|
|
86
|
-
<br><br>
|
|
87
|
-
# Web Demo
|
|
88
|
-
- https://www.jslint.com
|
|
89
|
-
|
|
90
|
-
[](https://jslint-org.github.io/jslint/index.html)
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
<br><br>
|
|
94
|
-
# Web Demo Archived
|
|
95
|
-
- [Web Demo 2020](https://www.jslint.com/branch-v2020.11.6/index.html)
|
|
96
|
-
- [Web Demo 2014 (ES5 only)](https://www.jslint.com/branch-v2014.7.8/jslint.html)
|
|
97
|
-
- [Web Demo 2013 (ES5, CSS, HTML)](https://www.jslint.com/branch-v2013.3.13/jslint.html)
|
|
98
|
-
|
|
99
|
-
|
|
100
95
|
<br><br>
|
|
101
96
|
# Quickstart Install
|
|
102
97
|
|
|
@@ -402,11 +397,11 @@ import jslint from "../jslint.mjs";
|
|
|
402
397
|
|
|
403
398
|
<!-- Assets from codemirror. -->
|
|
404
399
|
|
|
405
|
-
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.
|
|
406
|
-
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.
|
|
407
|
-
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.
|
|
408
|
-
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.
|
|
409
|
-
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.
|
|
400
|
+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.21/codemirror.css">
|
|
401
|
+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.21/addon/lint/lint.css">
|
|
402
|
+
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.21/codemirror.js"></script>
|
|
403
|
+
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.21/mode/javascript/javascript.js"></script>
|
|
404
|
+
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.21/addon/lint/lint.js"></script>
|
|
410
405
|
|
|
411
406
|
<!-- Assets from jslint. -->
|
|
412
407
|
|
|
@@ -637,21 +632,6 @@ let foo = async ({bar, baz}) => {
|
|
|
637
632
|
|
|
638
633
|
<br>
|
|
639
634
|
|
|
640
|
-
##### `/*jslint for*/`
|
|
641
|
-
```js
|
|
642
|
-
/*jslint for*/
|
|
643
|
-
// Allow for-loop.
|
|
644
|
-
|
|
645
|
-
function foo() {
|
|
646
|
-
let ii;
|
|
647
|
-
for (ii = 0; ii < 10; ii += 1) {
|
|
648
|
-
foo();
|
|
649
|
-
}
|
|
650
|
-
}
|
|
651
|
-
```
|
|
652
|
-
|
|
653
|
-
<br>
|
|
654
|
-
|
|
655
635
|
##### `/*jslint getset*/`
|
|
656
636
|
```js
|
|
657
637
|
/*jslint getset, this, devel*/
|
|
@@ -969,7 +949,7 @@ if (false) {
|
|
|
969
949
|
| 17. | ✅ | ES2015 | [`destructuring`](https://github.com/lukehoban/es6features#destructuring) |
|
|
970
950
|
| 16. | ✅ | ES2015 | [`default + rest + spread`](https://github.com/lukehoban/es6features#default--rest--spread) |
|
|
971
951
|
| 15. | ✅ | ES2015 | [`let + const`](https://github.com/lukehoban/es6features#let--const) |
|
|
972
|
-
| 14. |
|
|
952
|
+
| 14. | ⚠️ | ES2015 | [`iterators + for..of`](https://github.com/lukehoban/es6features#iterators--forof) |
|
|
973
953
|
| 13. | ❌ | ES2015 | [`generators`](https://github.com/lukehoban/es6features#generators) |
|
|
974
954
|
| 12. | ✅ | ES2015 | [`unicode`](https://github.com/lukehoban/es6features#unicode) |
|
|
975
955
|
| 11. | ⚠️ | ES2015 | [`modules`](https://github.com/lukehoban/es6features#modules) |
|
|
@@ -1000,7 +980,7 @@ if (false) {
|
|
|
1000
980
|
<br><br>
|
|
1001
981
|
# License
|
|
1002
982
|
- JSLint is under [Unlicense License](LICENSE).
|
|
1003
|
-
- CodeMirror editor is under [MIT License](https://github.com/codemirror/codemirror5/blob/
|
|
983
|
+
- CodeMirror editor is under [MIT License](https://github.com/codemirror/codemirror5/blob/34b84359c4ce289086c82c203f66ef74614d8a0d/LICENSE).
|
|
1004
984
|
- Function `v8CoverageListMerge` is derived from [MIT Licensed v8-coverage](https://github.com/demurgos/v8-coverage/blob/73446087dc38f61b09832c9867122a23f8577099/ts/LICENSE.md).
|
|
1005
985
|
|
|
1006
986
|
|
|
@@ -1023,23 +1003,14 @@ if (false) {
|
|
|
1023
1003
|
sh jslint_ci.sh shGithubPrUpdatePrxxx
|
|
1024
1004
|
|
|
1025
1005
|
# re-run until version propagates
|
|
1026
|
-
sh jslint_ci.sh shGithubPrCreate alpha beta #
|
|
1027
|
-
|
|
1028
|
-
# squash intermediary commits
|
|
1029
|
-
sh jslint_ci.sh shGitSquashPop __pr_beta_pre "- ci - shGithubPrUpdatePrxxx."
|
|
1030
|
-
|
|
1031
|
-
# squash intermediary commits
|
|
1032
|
-
sh jslint_ci.sh shGithubPrCreate alpha beta # v20xx.xx.xx
|
|
1033
|
-
|
|
1034
|
-
# squash intermediary commits
|
|
1035
|
-
git push . __pr_beta_pre~:__pr_beta_pre -f
|
|
1006
|
+
sh jslint_ci.sh shGithubPrCreate alpha beta # v20yy.mm.dd __pr_beta_pre
|
|
1036
1007
|
|
|
1037
1008
|
git push upstream alpha -f
|
|
1038
1009
|
```
|
|
1039
1010
|
- verify ci-success @ https://github.com/kaizhu256/jslint/actions
|
|
1040
1011
|
- verify ci-success @ https://github.com/jslint-org/jslint/actions
|
|
1041
1012
|
|
|
1042
|
-
1. goto https://github.com/jslint-org/jslint/compare/beta...kaizhu256:jslint:branch-p2026.7.
|
|
1013
|
+
1. goto https://github.com/jslint-org/jslint/compare/beta...kaizhu256:jslint:branch-p2026.7.20
|
|
1043
1014
|
- click `Create pull request`
|
|
1044
1015
|
- input `Add a title *` with: `<CHANGELOG.md entry #1>`
|
|
1045
1016
|
- input `Add a description` with:
|
|
@@ -1090,23 +1061,14 @@ if (false) {
|
|
|
1090
1061
|
sh jslint_ci.sh shGithubPrUpdatePrxxx
|
|
1091
1062
|
|
|
1092
1063
|
# re-run until version propagates
|
|
1093
|
-
sh jslint_ci.sh shGithubPrCreate alpha master #
|
|
1094
|
-
|
|
1095
|
-
# squash intermediary commits
|
|
1096
|
-
sh jslint_ci.sh shGitSquashPop __pr_master_pre "- ci - shGithubPrUpdatePrxxx."
|
|
1097
|
-
|
|
1098
|
-
# squash intermediary commits
|
|
1099
|
-
sh jslint_ci.sh shGithubPrCreate alpha master # v20xx.xx.xx
|
|
1100
|
-
|
|
1101
|
-
# squash intermediary commits
|
|
1102
|
-
git push . __pr_master_pre~:__pr_master_pre -f
|
|
1064
|
+
sh jslint_ci.sh shGithubPrCreate alpha master # v20yy.mm.dd __pr_master_pre
|
|
1103
1065
|
|
|
1104
1066
|
git push upstream alpha -f
|
|
1105
1067
|
```
|
|
1106
1068
|
- verify ci-success @ https://github.com/kaizhu256/jslint/actions
|
|
1107
1069
|
- verify ci-success @ https://github.com/jslint-org/jslint/actions
|
|
1108
1070
|
|
|
1109
|
-
1. goto https://github.com/jslint-org/jslint/compare/beta...kaizhu256:jslint:branch-v2026.
|
|
1071
|
+
1. goto https://github.com/jslint-org/jslint/compare/beta...kaizhu256:jslint:branch-v2026.8.31
|
|
1110
1072
|
- click `Create pull request`
|
|
1111
1073
|
- input `Add a title *` with: `# v20yy.mm.dd`
|
|
1112
1074
|
- input `Add a description` with:
|