super keyword unexpected here : <p>According to ES6 shorthand initialiser, following 2 methods are same:</p>

<h2>In ES5</h2>

<pre><code>var person = {
  name: "Person",
  greet: function() {
     return "Hello " + this.name;
  }
};
</code></pre>

<h2>In ES6</h2>

<pre><code>var person = {
  name: "Person",
  greet() {
     return "Hello " + this.name;
  }
};
</code></pre>

<p>Do the ES6 way is in anyway different from the previous way? If not then using "super" inside them should be also treated as equal, which doesn't hold true, please see below two variaiton:</p>

<h2>Below works</h2>

<pre><code>let person = {
  greet(){
   super.greet(); 
  }
};

Object.setPrototypeOf(person, {
  greet: function(){ console.log("Prototype method"); }
});

person.greet();
</code></pre>

<h2>Below fails</h2>

<pre><code>let person = {
  greet: function(){
   super.greet(); // Throw error: Uncaught SyntaxError: 'super' keyword unexpected here
  }
};

Object.setPrototypeOf(person, {
  greet: function(){ console.log("Prototype method"); }
});

person.greet();
</code></pre>

<hr>

<p>The only difference in above 2 examples is the way we declare method greet in person object, which should be same. So, why do we get error?</p>
