google / google/closure-compiler
goog.isObject over two vars makes the compiler asume wrong things over properties
Open
OTI
- Dominant language
- JavaScript
- Stars
- 7.7k
- Forks
- 1.2k
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 6
Description
``` javascript
/**
* @param {*} o1
* @param {*} o2
* @return {boolean}
*/
function deepEquals(o1, o2) {
if (goog.isObject(o1) && goog.isObject(o2)) {
if (o1.length != o2.length) {
return true;
}
}
return false;
}
```
With `--jscomp_error=checkTypes test.js closure-library/closure/goog/base.js` gives me:
``` javascript
test.js:8: ERROR - condition always evaluates to false
left : None
right: None
if (o1.length != o2.length) {
^
1 error(s), 0 warning(s), 93.0% typed
```
Which is not correct.
Contributor guide
Assessment
This issue has not been assessed yet.