@jslint-org/jslint 2025.10.31 → 2025.12.28

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 CHANGED
@@ -6,6 +6,12 @@
6
6
  - jslint - add new warning requiring paren around plus-separated concatenations.
7
7
  - jslint - try to improve parser to be able to parse jquery.js without stopping.
8
8
 
9
+ # v2025.12.28
10
+ - ci - Update file publish.yml to use trusted-publishing for npm packages.
11
+ - jslint - regression-fix - Warn about variable usage before initialization.
12
+ - jslint - Allow parenthesis after ellipsis inside a function call.
13
+ - ci - Upgrade nodejs used in ci to v24.
14
+
9
15
  # v2025.10.31
10
16
  - coverage - Add coverage-directives '/*coverage-disable*/', '/*coverage-enable*/'. '//coverage-ignore-line'.
11
17
 
package/README.md CHANGED
@@ -3,7 +3,7 @@ Douglas Crockford <douglas@crockford.com>
3
3
 
4
4
 
5
5
  # Status
6
- | Branch | [master<br>(v2025.10.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) |
6
+ | Branch | [master<br>(v2025.12.28)](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 | [![ci](https://github.com/jslint-org/jslint/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/jslint-org/jslint/actions?query=branch%3Amaster) | [![ci](https://github.com/jslint-org/jslint/actions/workflows/ci.yml/badge.svg?branch=beta)](https://github.com/jslint-org/jslint/actions?query=branch%3Abeta) | [![ci](https://github.com/jslint-org/jslint/actions/workflows/ci.yml/badge.svg?branch=alpha)](https://github.com/jslint-org/jslint/actions?query=branch%3Aalpha) |
9
9
  | Coverage | [![coverage](https://jslint-org.github.io/jslint/branch-master/.artifact/coverage/coverage_badge.svg)](https://jslint-org.github.io/jslint/branch-master/.artifact/coverage/index.html) | [![coverage](https://jslint-org.github.io/jslint/branch-beta/.artifact/coverage/coverage_badge.svg)](https://jslint-org.github.io/jslint/branch-beta/.artifact/coverage/index.html) | [![coverage](https://jslint-org.github.io/jslint/branch-alpha/.artifact/coverage/coverage_badge.svg)](https://jslint-org.github.io/jslint/branch-alpha/.artifact/coverage/index.html) |
@@ -947,13 +947,14 @@ if (false) {
947
947
  <br><br>
948
948
  ### pull-request merge
949
949
  - find highest issue-number at https://github.com/jslint-org/jslint/issues/, https://github.com/jslint-org/jslint/pulls/, and add +1 to it for PR-xxx
950
+ - checkpoint local-branch-beta
950
951
  - `shGitPullrequest beta beta`
951
952
  - verify ci-success for origin-branch-alpha
952
953
  - https://github.com/kaizhu256/jslint/actions
953
954
  - `git push upstream alpha -f`
954
955
  - verify ci-success for upstream-branch-alpha
955
956
  - https://github.com/jslint-org/jslint/actions
956
- - goto https://github.com/jslint-org/jslint/compare/beta...kaizhu256:jslint:branch-p2025.10.28
957
+ - goto https://github.com/jslint-org/jslint/compare/beta...kaizhu256:jslint:branch-p2025.12.14
957
958
  - click `Create pull request`
958
959
  - input `Add your description here...` with:
959
960
  ```
@@ -973,7 +974,7 @@ This PR will additionally:
973
974
  - verify ci-success for pull-request
974
975
  - https://github.com/jslint-org/jslint/actions/workflows/on_pull_request.yml
975
976
  - wait awhile before continuing ...
976
- - click `Rebase and merge`
977
+ - click `Squash and merge`
977
978
  - verify ci-success for upstream-branch-beta
978
979
  - https://github.com/jslint-org/jslint/actions
979
980
  - `shGitPullrequestCleanup`
@@ -987,13 +988,15 @@ This PR will additionally:
987
988
 
988
989
  <br><br>
989
990
  ### branch-master commit
990
- - `shGitPullrequest master beta`
991
+ - update ci.yml to latest nodejs-lts
992
+ - checkpoint local-branch-beta
993
+ - `shGitPullrequest master beta # re-run until version propagates`
991
994
  - verify ci-success for origin-branch-alpha
992
995
  - https://github.com/kaizhu256/jslint/actions
993
996
  - `git push upstream alpha -f`
994
997
  - verify ci-success for upstream-branch-alpha
995
998
  - https://github.com/jslint-org/jslint/actions
996
- - goto https://github.com/jslint-org/jslint/compare/beta...kaizhu256:jslint:branch-v2025.10.31
999
+ - goto https://github.com/jslint-org/jslint/compare/beta...kaizhu256:jslint:branch-v2025.12.28
997
1000
  - click `Create pull request`
998
1001
  - input `Add a title` with: `# v20yy.mm.dd`
999
1002
  - input `Add a description` with:
@@ -1006,7 +1009,7 @@ This PR will additionally:
1006
1009
  - verify ci-success for pull-request
1007
1010
  - https://github.com/jslint-org/jslint/actions/workflows/on_pull_request.yml
1008
1011
  - wait awhile before continuing ...
1009
- - click `Rebase and merge`
1012
+ - click `Squash and merge`
1010
1013
  - verify ci-success for upstream-branch-beta
1011
1014
  - https://github.com/jslint-org/jslint/actions
1012
1015
  - `shGitPullrequestCleanup`
@@ -1026,6 +1029,12 @@ This PR will additionally:
1026
1029
 
1027
1030
  <br><br>
1028
1031
  ### branch-master publish
1032
+ - goto https://www.npmjs.com/package/@jslint-org/jslint/access <!--no-validate-->
1033
+ - click `Github Actions`
1034
+ - input `Organization or user*` with: `jslint-org`
1035
+ - input `Repository*` with: `jslint`
1036
+ - input `Workflow filename*` with: `publish.yml`
1037
+ - click `Set up connection` or `Update Package Settings`
1029
1038
  - `git push upstream beta:master`
1030
1039
  - verify ci-success for upstream-branch-master
1031
1040
  - https://github.com/jslint-org/jslint/actions
package/jslint.mjs CHANGED
@@ -163,7 +163,7 @@ let jslint_charset_ascii = (
163
163
  + "@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_"
164
164
  + "`abcdefghijklmnopqrstuvwxyz{|}~\u007f"
165
165
  );
166
- let jslint_edition = "v2025.10.31";
166
+ let jslint_edition = "v2025.12.28";
167
167
  let jslint_export; // The jslint object to be exported.
168
168
  let jslint_fudge = 1; // Fudge starting line and starting
169
169
  // ... column to 1.
@@ -4674,7 +4674,13 @@ function jslint_phase3_parse(state) {
4674
4674
 
4675
4675
  test_cause("free");
4676
4676
  the_paren.free = true;
4677
- if (the_argument.wrapped === true) {
4677
+ if (
4678
+ the_argument.wrapped === true
4679
+
4680
+ // PR-483 - Allow parenthesis after ellipsis inside a function call.
4681
+
4682
+ && the_argument.ellipsis !== true
4683
+ ) {
4678
4684
 
4679
4685
  // test_cause:
4680
4686
  // ["aa((0))", "infix_lparen", "unexpected_a", "(", 3]
@@ -5158,6 +5164,10 @@ function jslint_phase3_parse(state) {
5158
5164
  the_label.dead = false;
5159
5165
  the_label.init = true;
5160
5166
  the_statement = parse_statement();
5167
+
5168
+ // Issue #458 - Regression - Warn about variable usage before initialization.
5169
+
5170
+ the_label.dead = true;
5161
5171
  functionage.statement_prv = the_statement;
5162
5172
  the_statement.label = the_label;
5163
5173
  the_statement.statement = true;
@@ -5204,9 +5214,13 @@ function jslint_phase3_parse(state) {
5204
5214
  }
5205
5215
  semicolon();
5206
5216
  }
5207
- if (the_label !== undefined) {
5208
- the_label.dead = true;
5209
- }
5217
+
5218
+ // Issue #458 - Regression - Warn about variable usage before initialization.
5219
+
5220
+ // if (the_label !== undefined) {
5221
+ // the_label.dead = true;
5222
+ // }
5223
+
5210
5224
  return the_statement;
5211
5225
  }
5212
5226
 
@@ -6987,8 +7001,16 @@ function jslint_phase3_parse(state) {
6987
7001
  the_variable.names.push(name);
6988
7002
  enroll(name, "variable", mode_const);
6989
7003
  }
6990
- name.dead = false;
7004
+
7005
+ // Issue #458 - Regression - Warn about variable usage before initialization.
7006
+
7007
+ // name.dead = false;
7008
+
6991
7009
  name.init = true;
7010
+
7011
+ // test_cause:
7012
+ // ["const {aa}=bb;\nconst bb=0;", "lookup", "out_of_scope_a", "bb", 12]
7013
+
6992
7014
  if (token_nxt.id === "=") {
6993
7015
 
6994
7016
  // test_cause:
@@ -7039,8 +7061,16 @@ function jslint_phase3_parse(state) {
7039
7061
  advance();
7040
7062
  the_variable.names.push(name);
7041
7063
  enroll(name, "variable", mode_const);
7042
- name.dead = false;
7064
+
7065
+ // Issue #458 - Regression - Warn about variable usage before initialization.
7066
+
7067
+ // name.dead = false;
7068
+
7043
7069
  name.init = true;
7070
+
7071
+ // test_cause:
7072
+ // ["const [aa]=bb;\nconst bb=0;", "lookup", "out_of_scope_a", "bb", 12]
7073
+
7044
7074
  if (ellipsis) {
7045
7075
  name.ellipsis = true;
7046
7076
  break;
@@ -7073,8 +7103,16 @@ function jslint_phase3_parse(state) {
7073
7103
  enroll(name, "variable", mode_const);
7074
7104
  if (token_nxt.id === "=" || mode_const) {
7075
7105
  advance("=");
7076
- name.dead = false;
7106
+
7107
+ // Issue #458 - Regression - Warn about variable usage before initialization.
7108
+
7109
+ // name.dead = false;
7110
+
7077
7111
  name.init = true;
7112
+
7113
+ // test_cause:
7114
+ // ["const aa=bb;\nconst bb=0;", "lookup", "out_of_scope_a", "bb", 10]
7115
+
7078
7116
  name.expression = parse_expression(0);
7079
7117
  }
7080
7118
  the_variable.names.push(name);
package/package.json CHANGED
@@ -35,5 +35,5 @@
35
35
  "shCiArtifactUpload": 1,
36
36
  "shCiPublishNpm": 1,
37
37
  "type": "module",
38
- "version": "2025.10.31"
38
+ "version": "2025.12.28"
39
39
  }