In webkit nightly not even the getter gets invoked. On Tue, Oct 18, 2011 at 9:31 PM, felix <feli...@gmail.com> wrote:
> If I define a setter for Array.prototype[0], does [].push invoke that > setter? > > Test code: > > <!doctype html><html><body> > <script> > Object.defineProperty( > Array.prototype, 0, > { get : function() { alert('get 0'); return this.zero; }, > set : function(v) { alert('set 0 ' + v); this.zero = v; }, > enumerable : true, > configurable : false }); > var a = []; > alert('before push a[0] = ' + a[0]); > a.push(44); > alert('after push a[0] = ' + a[0]); > </script> > </body></html> > > On all the browsers I've tried so far, the setter doesn't get invoked. > > However, it looks to me like the ES5.1 spec says the setter should get > invoked: > > 15.4.4.7 says push() invokes the [[Put]] internal method > > 8.12.5 says [[Put]] tries to use an inherited property descriptor if > there isn't an own property descriptor. > _______________________________________________ > es-discuss mailing list > es-discuss@mozilla.org > https://mail.mozilla.org/listinfo/es-discuss >
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss