title: Ember set for Object and arrays
body: <p>In Ember,</p>
  
  <pre><code>var Test = Ember.Object.create({
  name: "Ember",
  changeableName: "",
  resetName: function() {
  this.set('changeableName', this.get('name'));
  }
  });
  
  Test.resetName();
  Test.get('changeableName');      // Ember
  Test.get('name');      // Ember
  Test.set('changeableName', "Ember Test");      
  Test.get('changeableName');      // Ember Test
  Test.get('name');      // Ember
  </code></pre>
  
  <p>This works well and it is expected behaviour.</p>
  
  <p>But if I use object or array in this way it reflects change back to the original property, </p>
  
  <pre><code>var Test = Ember.Object.create({ 
  nameObj: {"name":"Ember"}, 
  changeableName: {}, 
  resetName: function() { this.set('changeableName', this.get('nameObj')); } 
  });
  
  Test.resetName(); 
  Test.get('changeableName.name');      // Ember 
  Test.get('nameObj.name');      // Ember 
  Test.set('changeableName.name', "Ember Test");       
  Test.get('changeableName.name');      // Ember Test 
  Test.get('nameObj.name');      // Ember Test
  </code></pre>
  
  <p>This is not fair. I don't want the change reflected back to original object.Ember.set works well for primitive types but for object and array it is not I wanted. </p>
  
  <p>Is there any work around for this kinda cases?</p>