Summary: | ArraySetLength should coerce [[Value]] before descriptor validation | ||||||
---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | André Bargull <andre.bargull> | ||||
Component: | JavaScriptCore | Assignee: | Alexey Shvayka <ashvayka> | ||||
Status: | RESOLVED FIXED | ||||||
Severity: | Trivial | CC: | ashvayka, darin, ews-watchlist, ggaren, keith_miller, mark.lam, msaboff, saam, tzagallo, webkit-bug-importer, ysuzuki | ||||
Priority: | P2 | Keywords: | InRadar, WebExposed | ||||
Version: | WebKit Nightly Build | ||||||
Hardware: | All | ||||||
OS: | All | ||||||
Attachments: |
|
Description
André Bargull
2016-06-15 10:23:00 PDT
interesting. ToUint32(Desc.[[Value]]) causes the invocation of valueOf, and it changes the writablility of the "length" prop during [[DefineOwnProperty]]. Created attachment 408664 [details]
Patch
Committed r267037: <https://trac.webkit.org/changeset/267037> Thank you for taking time to review this, Darin! It's not very easy to vet spec compliance here. There is a similar bug in SpiderMonkey with [[Set]] + unchanged length: test262 coverage update is on the way. Also, we might consider tweaking the spec to a) remove step 12 and b) always set [[Writable]]: false separately. |