title: Error in accessor property: can't redefine non-configurable property 'status'
body: <p>I'm trying to define an object and create an <strong>accessor property</strong> for it.</p>
  
  <p>HTML:</p>
  
  <pre><code>&lt;input type='hidden' id='crudMode' value='Create' /&gt;
  </code></pre>
  
  <p>JavaScript:</p>
  
  <pre><code>crudMode = {
     create: "Create",
     read: "Read",
     update: "Update",
     delete: "Delete",
     current: function () { return $('#crudMode').val(); }
  }
  
  Object.defineProperty(crudMode, 'mode', {
      get: function(){
          return this.current();
      },
      set: function(value){ 
          $('#crudMode').val(value);
      }
  });
  </code></pre>
  
  <p>But when I use it, it throws the mentioned error in the question title:</p>
  
  <pre><code>console.log(crudMode.mode);
  </code></pre>
  
  <p>Throws:</p>
  
  <blockquote>
    <p>TypeError: can't redefine non-configurable property 'mode'</p>
  </blockquote>
  
  <p>What's wrong here?</p>