It isn't, it just has different incorrect behavior. As stated in the article, function declarations shouldn't be supported as statements at all -- but FireFox DOES support them, it just doesn't go as far as to hoist them. This seems like a bad compromise: because it half supports the feature but surprises you in that it works subtly differently. It probably wasn't a conscious decision but rather the result of fixing some random compatibility issue with a site that expected to be able to use functions declarations as statements but didn't rely on hoisting.