MCPcopy Index your code
hub / github.com/tdewolff/minify / optimizeBooleanExpr

Function optimizeBooleanExpr

js/util.go:688–702  ·  view source on GitHub ↗
(expr js.IExpr, invert bool, prec js.OpPrec)

Source from the content-addressed store, hash-verified

686}
687
688func optimizeBooleanExpr(expr js.IExpr, invert bool, prec js.OpPrec) js.IExpr {
689 if invert {
690 // unary !(boolean) has already been handled
691 if binaryExpr, ok := expr.(*js.BinaryExpr); ok && binaryOpPrecMap[binaryExpr.Op] == js.OpEquals {
692 binaryExpr.Op = invertBooleanOp(binaryExpr.Op)
693 return expr
694 } else {
695 return optimizeUnaryExpr(&js.UnaryExpr{js.NotToken, groupExpr(expr, js.OpUnary)}, prec)
696 }
697 } else if isBooleanExpr(expr) {
698 return groupExpr(expr, prec)
699 } else {
700 return &js.UnaryExpr{js.NotToken, &js.UnaryExpr{js.NotToken, groupExpr(expr, js.OpUnary)}}
701 }
702}
703
704func optimizeUnaryExpr(expr *js.UnaryExpr, prec js.OpPrec) js.IExpr {
705 if expr.Op == js.NotToken {

Callers 1

optimizeCondExprMethod · 0.85

Calls 4

invertBooleanOpFunction · 0.85
optimizeUnaryExprFunction · 0.85
groupExprFunction · 0.85
isBooleanExprFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…