September 2019 (version 1.29.0)
1.29.0 Update
Hi!
Welcome to the new DeepScan updates!
Please kindly go ahead with the highlights for the latest release.
Release Summary
This version includes a number of updates that we hope you've found some of them helpful.
The key highlights are:
- Analysis improvements - Better analysis for the
async
function and object literals! - Issue Link - New URL link for an individual issue.
- Enhanced ESLint support - Merge options are supported also for the Enterprise tools!
Analysis Improvements
- Support analyzing "multiple return values" through array or object literal
- Improve the analysis precision of object literals containing spread operators
- Better treatment of
async
function return value. This enables finding more CONSTANT_CONDITION alarms related to missingawait
as follows:async getValueByName(envVarName, appId) { console.log(`The App ${ appId } is getting the environmental variable value ${ envVarName }.`); // CONSTANT_CONDITION alarm is detected because 'await' is missing at 'this.isReadable()' function call if (this.isReadable(envVarName, appId)) { return process.env[envVarName]; } throw new Error(`The environmental variable "${ envVarName }" is not readable.`); } async isReadable(envVarName, appId) { console.log(`The App ${ appId } is checking if the environmental variable is readable ${ envVarName }.`); return this.allowed.includes(envVarName.toUpperCase()); }
Improved Rules
- Detect CALL_NON_CONSTRUCTOR alarm when an
async
function is used as constructor - Detect UNEXPECTED_GLOBAL_DECL alarm when an undeclared variable is assigned and accessed only inside loop
Issue Link
Instead of linking at the page level for the issues, now we provide a URL link to an individual issue.
In the Issues view, you can navigate to the view of a single issue by clicking the icon.
Using this URL, you can link to our specific issue directly such as from your email or JIRA ticket!
ESLint Integration
Like also the July release, now we support the merge options of DeepScan and ESLint issues for the Enterprise tools.
So you can merge identical issues according to your preferences (preferring either DeepScan, ESLint, or both) in the following tools:
- Eclipse plugin
- IntelliJ plugin
- VS Code extension
- Node.js package
Miscellaneous
- Forbid transitions from the GitHub Marketplace's plan to DeepScan's one
Bug Fixes
- Skipping CONSTANT_CONDITION alarms on defensive type checks is not working when the condition is negated like
!Array.isArray()