istanbul-lib-instrument
Advanced tools
Comparing version 5.1.0 to 5.2.0
@@ -6,2 +6,9 @@ # Change Log | ||
## [5.2.0](https://github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument-v5.1.0...istanbul-lib-instrument-v5.2.0) (2022-02-21) | ||
### Features | ||
* exclude Empty Object and Arrays in Truthy Detection ([#666](https://github.com/istanbuljs/istanbuljs/issues/666)) ([e279684](https://github.com/istanbuljs/istanbuljs/commit/e279684e735f4b7dbe2b632cde2515f6862099de)) | ||
## [5.1.0](https://www.github.com/istanbuljs/istanbuljs/compare/istanbul-lib-instrument-v5.0.4...istanbul-lib-instrument-v5.1.0) (2021-10-27) | ||
@@ -8,0 +15,0 @@ |
{ | ||
"name": "istanbul-lib-instrument", | ||
"version": "5.1.0", | ||
"version": "5.2.0", | ||
"description": "Core istanbul API for JS code coverage", | ||
@@ -5,0 +5,0 @@ "author": "Krishnan Anantheswaran <kananthmail-github@yahoo.com>", |
@@ -203,6 +203,3 @@ const { createHash } = require('crypto'); | ||
T.conditionalExpression( | ||
T.memberExpression( | ||
T.callExpression(T.identifier(this.varName), []), | ||
T.identifier(tempName) | ||
), | ||
this.validateTrueNonTrivial(T, tempName), | ||
this.increase(type, id, index), | ||
@@ -219,2 +216,93 @@ T.nullLiteral() | ||
validateTrueNonTrivial(T, tempName) { | ||
return T.logicalExpression( | ||
'&&', | ||
T.memberExpression( | ||
T.callExpression(T.identifier(this.varName), []), | ||
T.identifier(tempName) | ||
), | ||
T.logicalExpression( | ||
'&&', | ||
T.parenthesizedExpression( | ||
T.logicalExpression( | ||
'||', | ||
T.unaryExpression( | ||
'!', | ||
T.callExpression( | ||
T.memberExpression( | ||
T.identifier('Array'), | ||
T.identifier('isArray') | ||
), | ||
[ | ||
T.memberExpression( | ||
T.callExpression( | ||
T.identifier(this.varName), | ||
[] | ||
), | ||
T.identifier(tempName) | ||
) | ||
] | ||
) | ||
), | ||
T.memberExpression( | ||
T.memberExpression( | ||
T.callExpression( | ||
T.identifier(this.varName), | ||
[] | ||
), | ||
T.identifier(tempName) | ||
), | ||
T.identifier('length') | ||
) | ||
) | ||
), | ||
T.parenthesizedExpression( | ||
T.logicalExpression( | ||
'||', | ||
T.binaryExpression( | ||
'!==', | ||
T.callExpression( | ||
T.memberExpression( | ||
T.identifier('Object'), | ||
T.identifier('getPrototypeOf') | ||
), | ||
[ | ||
T.memberExpression( | ||
T.callExpression( | ||
T.identifier(this.varName), | ||
[] | ||
), | ||
T.identifier(tempName) | ||
) | ||
] | ||
), | ||
T.memberExpression( | ||
T.identifier('Object'), | ||
T.identifier('prototype') | ||
) | ||
), | ||
T.memberExpression( | ||
T.callExpression( | ||
T.memberExpression( | ||
T.identifier('Object'), | ||
T.identifier('values') | ||
), | ||
[ | ||
T.memberExpression( | ||
T.callExpression( | ||
T.identifier(this.varName), | ||
[] | ||
), | ||
T.identifier(tempName) | ||
) | ||
] | ||
), | ||
T.identifier('length') | ||
) | ||
) | ||
) | ||
) | ||
); | ||
} | ||
insertCounter(path, increment) { | ||
@@ -221,0 +309,0 @@ const T = this.types; |
69302
1157