Q:

What is the real effect of the 'function' keyword in method definitions of javascript object initializer

Consider next example of a javascript object with two methods
let O = {
  foo: function() { return 'foo'},
  bar () { return 'bar' },
}

Both foo and bar are methods of object O the latter being defined with a documented shorthand without the function keyword.  I thought these definitions where equivalent, it seems not. 
At first glance, O.foo and O.bar look like regular functions but there is a difference at least on FireFox (73) and Safari (13) : the former is a constructor whereas the latter is not:
new O.foo() // OK
new O.bar() // TypeError: O.bar is not a constructor

Where does this difference come from ? 
Is it the only difference ? 
Is it documented ? 

A:

I hope this article would help understanding the cause.