I see. Since we map DISPIDs to indices in the props list, maybe I should place these at the upper end (signed), so first one is i.e. `2147483648 - idx_length` and so on. Not 100% sure how it will work yet since it needs a larger revamp, we'll see.
I guess that something like `UINT_MAX/2` for the first indexed property would be nicer to work with.
I still don't fully understand how overriding props should work, but we only really have `arguments` so far that needs it. Maybe just special casing it in there would be enough? (handling any jsval only, because it's not configurable in the first place)
I'm not sure I follow, can we structure the code to use `Arguments_idx_put` in this case?
I tried and it doesn't work. The current checks basically replace a writable non-configurable jsval with another jsval (it can be anything, not related to the original; i.e. if original was a number, it can now be a string). It never calls prop_put or anything of the sort. For typed arrays we need strings to be coerced into the underlying type in this case, as if prop_put was called on it, instead of define_property.
I meant it for check and error handling. For the actual value setting, it sounds to me like the could use `idx_put` instead of `copy_jsval` when it's dealing with builtin indexed props.