In this case, object created from object literal and Object.create had difference result in spread operator. From what i know, spread operator just spread own properties not inherited properties, but in this case why in object literal the result is 1 not undefined? Isn't o inheriting to p?
let o = {x: 1};
let p = { ...o };
console.log(p.x) // => 1
let q = Object.create({y: 1});
let r = { ...q };
console.log(r.y) // => undefined