Open Bug 1209190 Opened 6 years ago Updated 6 years ago

Assigning ternary operator to innerHTML isn't flagged


( Graveyard :: Add-on Validation, defect)

Not set


(Not tracked)


(Reporter: ecfbugzilla, Unassigned)


I noticed that innerHTML in some minified code wasn't flagged by the validator. After some reducing, the validator apparently doesn't consider the following dynamic:


This might be the same as bug 1197206, impossible to tell without real info over there.
Looking a bit into this, conditional expressions apparently aren't being processed at all, so that their value is considered to be None. While that isn't considered a literal by itself, the processing of the binary + operator will convert None into an empty string - so the result of adding a string to a ternary operator is always considered to be a string.

The same issue exists with the sequence expression, its value isn't being determined either - so the following won't trigger any warnings:


Also logical expression:


And yield expression:

  function* foo()
    a.innerHTML=(yield getHTML())+""

And array comprehension:

  a.innerHTML=[for (x of [foo, bar]) x]+""

While update expressions and generator comprehensions aren't handled either, these don't seem important in this context.
Summary: Assigning ternary operator to innerHTML isn't be flagged → Assigning ternary operator to innerHTML isn't flagged
Product: → Graveyard
You need to log in before you can comment on or make changes to this bug.