Skip to content

Conversation

youzi-forge
Copy link
Contributor

@youzi-forge youzi-forge commented Oct 14, 2025

Resolves #8235.

Description

What is the purpose of this pull request?

This pull request:

  • Removes all unused file-level /* eslint-disable no-new-wrappers / directives across @stdlib/assert/**/examples/index.js where the rule does not trigger (e.g., Number/Boolean are shadowed via @stdlib//ctor or no wrapper constructors are used at all). Also includes the specific fix for the CI‑flagged file in issue Fix JavaScript lint errors #8235 (lib/node_modules/@stdlib/assert/is-nonpositive-integer-array/examples/index.js) by removing its unused directive;

Rationale:

  • The root cause of issue Fix JavaScript lint errors #8235: the CI lint runs ESLint with --report-unused-disable-directives. In several examples, a top‑level no-new-wrappers disable is present, but the rule never fires because the code either (a) does not use wrapper constructors or (b) uses locally shadowed constructors (e.g., var Number = require('@stdlib/number/ctor'); new Number(...)), which are not the global wrappers the rule targets. An unused disable becomes an error under this CI flag.
  • The lint_random_files workflow lints a random subset of files on each run. Fixing only the one CI‑flagged file in issue Fix JavaScript lint errors #8235 would not prevent future failures when a different example containing the same unused disable is randomly selected. This PR proactively cleans all confirmed “unused” instances within @stdlib/assert examples to eliminate this class of failures.
  • For files that genuinely rely on global wrappers (e.g., new String(...) without a local shadow, or deliberate new Number(...) use), their disables are left intact; only truly unused no-new-wrappers disables are removed. No runtime logic or example output is changed. The examples ESLint config already sets no-new-wrappers to “warn”, so removals do not introduce new errors.

Selection criteria:

  • Remove the directive when:
    - no new Number/String/Boolean is used; or
    - new Number/Boolean is used but the corresponding constructor is locally shadowed via @stdlib/*/ctor, so no-new-wrappers does not apply.

  • Keep the directive when:
    - the example intentionally uses a global wrapper (e.g., new String(...)) and no local shadow exists, meaning the rule would trigger without the disable.

  • One special case:
    - is-finite/examples/index.js: the disable line contained no-new-wrappers, stdlib/no-redeclare; only no-new-wrappers was unused, so it was dropped and stdlib/no-redeclare retained.

Net effect:

  • Removes unused no-new-wrappers disables from a set of assert example files; adjusts one combined directive; retains disables only where necessary. This resolves the current CI failure and prevents similar random lint failures in future runs.

Related Issues

Does this pull request have any related issues?

This pull request:

Questions

Any questions for reviewers of this pull request?

No.

Other

Any other information relevant to this pull request? This may include screenshots, references, and/or implementation notes.

No.

Checklist

Please ensure the following tasks are completed before submitting this pull request.


@stdlib-js/reviewers

@stdlib-bot stdlib-bot added Good First PR A pull request resolving a Good First Issue. Needs Review A pull request which needs code review. labels Oct 14, 2025
@stdlib-bot
Copy link
Contributor

Coverage Report

Package Statements Branches Functions Lines
assert/is-boolean-array $\color{green}78/78$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}0/0$
$\color{green}+100.00\%$
$\color{green}78/78$
$\color{green}+100.00\%$
assert/is-boolean $\color{green}325/325$
$\color{green}+100.00\%$
$\color{green}19/19$
$\color{green}+100.00\%$
$\color{green}4/4$
$\color{green}+100.00\%$
$\color{green}325/325$
$\color{green}+100.00\%$
assert/is-composite $\color{green}247/247$
$\color{green}+100.00\%$
$\color{green}12/12$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}247/247$
$\color{green}+100.00\%$
assert/is-cube-number $\color{green}255/255$
$\color{green}+100.00\%$
$\color{green}12/12$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}255/255$
$\color{green}+100.00\%$
assert/is-even $\color{green}254/254$
$\color{green}+100.00\%$
$\color{green}10/10$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}254/254$
$\color{green}+100.00\%$
assert/is-finite-array $\color{green}82/82$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}0/0$
$\color{green}+100.00\%$
$\color{green}82/82$
$\color{green}+100.00\%$
assert/is-finite $\color{green}246/246$
$\color{green}+100.00\%$
$\color{green}10/10$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}246/246$
$\color{green}+100.00\%$
assert/is-infinite $\color{green}240/240$
$\color{green}+100.00\%$
$\color{green}10/10$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}240/240$
$\color{green}+100.00\%$
assert/is-integer $\color{green}290/290$
$\color{green}+100.00\%$
$\color{green}12/12$
$\color{green}+100.00\%$
$\color{green}4/4$
$\color{green}+100.00\%$
$\color{green}290/290$
$\color{green}+100.00\%$
assert/is-nan-array $\color{green}73/73$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}0/0$
$\color{green}+100.00\%$
$\color{green}73/73$
$\color{green}+100.00\%$
assert/is-nan $\color{green}247/247$
$\color{green}+100.00\%$
$\color{green}10/10$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}247/247$
$\color{green}+100.00\%$
assert/is-negative-integer-array $\color{green}82/82$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}0/0$
$\color{green}+100.00\%$
$\color{green}82/82$
$\color{green}+100.00\%$
assert/is-negative-integer $\color{green}245/245$
$\color{green}+100.00\%$
$\color{green}10/10$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}245/245$
$\color{green}+100.00\%$
assert/is-negative-number-array $\color{green}76/76$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}0/0$
$\color{green}+100.00\%$
$\color{green}76/76$
$\color{green}+100.00\%$
assert/is-negative-number $\color{green}247/247$
$\color{green}+100.00\%$
$\color{green}10/10$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}247/247$
$\color{green}+100.00\%$
assert/is-negative-zero $\color{green}254/254$
$\color{green}+100.00\%$
$\color{green}10/10$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}254/254$
$\color{green}+100.00\%$
assert/is-nonnegative-integer-array $\color{green}76/76$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}0/0$
$\color{green}+100.00\%$
$\color{green}76/76$
$\color{green}+100.00\%$
assert/is-nonnegative-integer $\color{green}245/245$
$\color{green}+100.00\%$
$\color{green}10/10$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}245/245$
$\color{green}+100.00\%$
assert/is-nonnegative-number-array $\color{green}76/76$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}0/0$
$\color{green}+100.00\%$
$\color{green}76/76$
$\color{green}+100.00\%$
assert/is-nonnegative-number $\color{green}245/245$
$\color{green}+100.00\%$
$\color{green}10/10$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}245/245$
$\color{green}+100.00\%$
assert/is-nonpositive-integer-array $\color{green}76/76$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}0/0$
$\color{green}+100.00\%$
$\color{green}76/76$
$\color{green}+100.00\%$
assert/is-nonpositive-integer $\color{green}245/245$
$\color{green}+100.00\%$
$\color{green}10/10$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}245/245$
$\color{green}+100.00\%$
assert/is-nonpositive-number-array $\color{green}76/76$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}0/0$
$\color{green}+100.00\%$
$\color{green}76/76$
$\color{green}+100.00\%$
assert/is-nonpositive-number $\color{green}245/245$
$\color{green}+100.00\%$
$\color{green}10/10$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}245/245$
$\color{green}+100.00\%$
assert/is-number-array $\color{green}76/76$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}0/0$
$\color{green}+100.00\%$
$\color{green}76/76$
$\color{green}+100.00\%$
assert/is-number $\color{green}330/330$
$\color{green}+100.00\%$
$\color{green}19/19$
$\color{green}+100.00\%$
$\color{green}4/4$
$\color{green}+100.00\%$
$\color{green}330/330$
$\color{green}+100.00\%$
assert/is-odd $\color{green}262/262$
$\color{green}+100.00\%$
$\color{green}18/18$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}262/262$
$\color{green}+100.00\%$
assert/is-positive-integer-array $\color{green}76/76$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}0/0$
$\color{green}+100.00\%$
$\color{green}76/76$
$\color{green}+100.00\%$
assert/is-positive-integer $\color{green}249/249$
$\color{green}+100.00\%$
$\color{green}10/10$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}249/249$
$\color{green}+100.00\%$
assert/is-positive-number-array $\color{green}76/76$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}0/0$
$\color{green}+100.00\%$
$\color{green}76/76$
$\color{green}+100.00\%$
assert/is-positive-number $\color{green}245/245$
$\color{green}+100.00\%$
$\color{green}10/10$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}245/245$
$\color{green}+100.00\%$
assert/is-positive-zero $\color{green}254/254$
$\color{green}+100.00\%$
$\color{green}10/10$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}254/254$
$\color{green}+100.00\%$
assert/is-prime $\color{green}247/247$
$\color{green}+100.00\%$
$\color{green}12/12$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}247/247$
$\color{green}+100.00\%$
assert/is-probability $\color{green}247/247$
$\color{green}+100.00\%$
$\color{green}12/12$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}247/247$
$\color{green}+100.00\%$
assert/is-safe-integer-array $\color{green}82/82$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}0/0$
$\color{green}+100.00\%$
$\color{green}82/82$
$\color{green}+100.00\%$
assert/is-safe-integer $\color{green}247/247$
$\color{green}+100.00\%$
$\color{green}10/10$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}247/247$
$\color{green}+100.00\%$
assert/is-square-number $\color{green}255/255$
$\color{green}+100.00\%$
$\color{green}12/12$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}255/255$
$\color{green}+100.00\%$
assert/is-square-triangular-number $\color{green}282/282$
$\color{green}+100.00\%$
$\color{green}18/18$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}282/282$
$\color{green}+100.00\%$
assert/is-triangular-number $\color{green}269/269$
$\color{green}+100.00\%$
$\color{green}12/12$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}269/269$
$\color{green}+100.00\%$

The above coverage report was generated for the changes in this PR.

@stdlib-bot stdlib-bot removed the Needs Review A pull request which needs code review. label Oct 14, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Good First PR A pull request resolving a Good First Issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Fix JavaScript lint errors

2 participants