Fix detection of indexed properties in Object.defineProperty()
authormstarzinger@chromium.org <mstarzinger@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Fri, 12 Apr 2013 08:45:14 +0000 (08:45 +0000)
committermstarzinger@chromium.org <mstarzinger@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Fri, 12 Apr 2013 08:45:14 +0000 (08:45 +0000)
commit75c388e691e80e5a4639061aeda5fc11b36e00db
treeae6eab897773ff4dbad652b60b34d4ac9fa19f32
parent66f5c75dabdd4716c499b8cac264fbf15d42befe
Fix detection of indexed properties in Object.defineProperty()

When defining an indexed property on an Array object, the object's
length property should (perhaps) be updated.  This was done for any
property for which

  ToUInt32(name) == ToNumber(name)

was true, meaning any property name that, when converted to a number,
was an integer in the range [0, 2^32).  The detection should be more
strict; an indexed property is one for which

  ToString(ToUInt32(name)) == name

is true only.

Review URL: https://codereview.chromium.org/13914003

Patch from Jens Lindström <jl@opera.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14242 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
src/v8natives.js
test/mjsunit/object-define-property.js