As pointed out (#69, #59) some ligatures (e.g. !==) don't work well in Atom for JavaScript.
Using language-babel or language-javascript-jsx instead of the standard language-javascript package seems to fix this.
The problem is that _language-js_ expands a !== b into:
<span class="source js">
a
<span class="keyword operator js">!=</span>
<span class="keyword operator js">=</span>
b
</span>
instead of:
<span class="source js">
a
<span class="keyword operator js">!==</span>
b
</span>
And ligatures do not work across spans. This isn't fixable on FiraCode's side.
But it's fixable on Atom's side (hence workaround).
My experience is that the following language packages work for JavaScript:
You already need some fiddling with the Atom stylesheet to make ligatures work, so mentioning _language-javascript_ as an issue as well seems appropriate.
The real issue will apparently be fixed upstream soon
it鈥檚 fixed there now, so this can be closed
My arrow ligature only works inside a div.

In case anyone else is still having this problem, I fixed it by switching out language-javascript-jsx. I replaced it with language-babel and everything is working perfectly.
Most helpful comment
In case anyone else is still having this problem, I fixed it by switching out language-javascript-jsx. I replaced it with language-babel and everything is working perfectly.