Why does a javascript object property assignment via the dot notation NOT trigger a setter defined for that property?
<p>Any Javascript ninjas or people who have read ECMA-262 5th care to explain the following behavior?</p>

<pre><code>var obj = {
  p: {},
  set prop(val){
    for (var key in val){
      this.p[key] = "Set: " + val[key];
    }
  },
  get prop(){
    return this.p;
  }
}

obj.prop = {  // Assignment triggers setter
  foo: "Foo"
}

obj.prop.bar = "Bar";  // Assignment does not trigger setter

console.log(obj.prop.foo); // Set: Foo
console.log(obj.prop.bar); // Bar
</code></pre>

<p>I found the above behavior a bit confusing because I expected the two assignment notations to be functionally equivalent.</p>
