title: Unset and set a new value to a property defined with defineProperty
body: <p>I define an object property with <code>Object.defineProperty</code>. But then how can I unset it?</p>
  
  <p>I tried to unset it with <code>delete foo.bar</code> (where <code>bar</code> is the property), but it seems it doesn't work:</p>
  
  <pre><code>var foo = {};
  Object.defineProperty(foo, "bar", {
      get: function () {
          console.log("first call");
          delete foo.bar;
          var value = 3;
          foo.bar = value;               
          return value;            
      }
    , writeable: true
    , enumerable: true
  });
  console.log(foo.bar);
  console.log(foo.bar);
  </code></pre>
  
  <p>Output is:</p>
  
  <pre><code>first call
  3
  first call
  3
  </code></pre>
  
  <p>I expected the following output:</p>
  
  <pre><code>first call
  3
  3
  </code></pre>
  
  <p>The idea is that after the first <code>get</code> I want to replace the property with a value.</p>
  
  <p>How can this be done?</p>