diff -u b/core/misc/states.es6.js b/core/misc/states.es6.js --- b/core/misc/states.es6.js +++ b/core/misc/states.es6.js @@ -255,11 +255,13 @@ else if ($.isPlainObject(constraints)) { // This constraint is an object (AND). - result = Object.keys(constraints).every(constraint => this.checkConstraints( - constraints[constraint], - selector, - constraint, - )); + if (Object.keys(constraints) + .every(constraint => ternary( + result, + this.checkConstraints(constraints[constraint], selector, constraint), + ))) { + return false; + } } return result; }, diff -u b/core/misc/states.js b/core/misc/states.js --- b/core/misc/states.js +++ b/core/misc/states.js @@ -128,9 +128,11 @@ } } } else if ($.isPlainObject(constraints)) { - result = Object.keys(constraints).every(function (constraint) { - return _this3.checkConstraints(constraints[constraint], selector, constraint); - }); + if (Object.keys(constraints).every(function (constraint) { + return ternary(result, _this3.checkConstraints(constraints[constraint], selector, constraint)); + })) { + return false; + } } return result; },