April 2017 (version 1.1.0-alpha)
1.1.0 Update
We've released a 1.1.0 DeepScan service to address performance and usability issues.
Keep reading for the highlights for this release.
Release Summary
This version includes a number of updates that we hope you will enjoy. The notable highlights are:
- Faster analysis - Architecture improvements, increased analysis capacity.
- Helpful messages - We're working to make message for detection clear to show you the cause.
- New file viewer - See file content faster.
- Repository language - See your repository language.
Analysis Improvements
To make it super-fast to analyze a project, we have constructed new analyzer service architecture. It dramatically reduced CPU and disk operations and enabled 6x more throughput for projects and 10x faster response time for demo requests.
It is now possible to get the results more quickly!
And some files or lines are excluded from analysis for efficiency. Please note the limitations.
Improved Message for Detection
To help you fix a problem, we are continuously improving a message for detection to show the cause of the problem.
We added support for showing the cause of detected problem for the following 10 rules:
- ARRAY_INDEX_NEGATIVE
- ASSIGN_SAME_VALUE
- CALL_NON_CONSTRUCTOR
- CALL_NON_FUNC (partial)
- CONSTANT_CONDITION (partial)
- NULL_POINTER (partial)
- SAME_OPERAND_VALUE
- STRICT_MODE_ASSIGN_TO_READONLY_VAR
- UNITIALIZED_LOCAL_VAR
- UNUSED_VAR_ASSIGN
Here are some examples:
Null pointerif (x) {
y = x;
} else {
y = x.a;
}
- 1.0.0: Variable 'x' has a falsy value, but its property is accessed at this point.
- 1.1.0: Variable 'x' has a falsy value due to condition 'x' at line 1. But its property is accessed at this point.
if (x >= 10) {
if (x >= 5) {
}
}
- 1.0.0: Condition 'x >= 5' is always true at this point because it is redundant.
- 1.1.0: Condition 'x >= 5' is always true at this point because it is already checked by condition 'x >= 10' at line 1.
New Rules
The following rule has been added:
- UNUSED_REQUIRE: Unused
require()
should be removed
New File Viewer
We have newly implemented the file viewer with lightweight syntax highlighter, prism.js.
It brings up performance improvements around 2x faster than the old one.
And you can browse the files more conveniently because Files view now supports sorting.
Repository Language
DeepScan is an inspection tool for JavaScript.
If you analyze a repository with Go language, we are afraid we cannot help you. So, when browsing repositories, a repository language is exposed and JavaScript ones are displayed first.
Miscellaneous
Analyzer
- Increase impact level to medium for some CONSTANT_CONDITION issues that may cause omission of intended code execution.
- Automatically identify whether analyzed file is a Node.js module and detect more alarms including newly added UNUSED_REQUIRE rule.
- Filter-out UNUSED_DECL and UNUSED_EXPR issues corresponding to JSDoc type definitions.
Rules
Version information is provided in rule document, and Rule Viewer in Issues view now shows tag information.
Bug Fixes
- The badge is not refreshed.
- The number of issues in the file is wrong in Files view.
- Project Dashboard does not work when the repository was deleted in GitHub.
- Demo: Clear markText in editor when analysis is started.
- Fix scrollbar overlay in Internet Explorer
- Fixed many small bugs.
Known Issues
- On Safari before 10.1, you cannot download a file in file viewer of Issues and Files view.