- From: Boris Zbarsky <notifications@github.com>
- Date: Thu, 20 Feb 2020 12:20:26 -0800
- To: heycam/webidl <webidl@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <heycam/webidl/pull/840/review/362205744@github.com>
bzbarsky commented on this pull request. > + 1. If [=!=] [$IsAccessorDescriptor$](|descriptor|) is <emu-val>true</emu-val>, then return + <emu-val>false</emu-val>. + 1. If |descriptor| has a \[[Configurable]] field and |descriptor|.\[[Configurable]] is + <emu-val>false</emu-val>, return <emu-val>false</emu-val>. + 1. If |descriptor| has a \[[Enumerable]] field and |descriptor|.\[[Enumerable]] is + <emu-val>false</emu-val>, return <emu-val>false</emu-val>. + 1. If |descriptor| has a \[[Writable]] field and |descriptor|.\[[Writable]] is + <emu-val>false</emu-val>, return <emu-val>false</emu-val>. + 1. If [=!=] [$ToUint32$](|P|) > |oldLen|, return <emu-val>false</emu-val>. + 1. Let |idlValue| be the result of [=converted to an IDL value|converting=] + |descriptor|.\[[Value]] to the type given by |handler|.\[[Type]]. + 1. Let |existingDescriptor| be [=!=] [$OrdinaryGetOwnProperty$](|O|, |P|). + 1. Assert: |existingDescriptor| is not <emu-val>undefined</emu-val>. + 1. Let |existingIDLValue| be the result of [=converted to an IDL value|converting=] + |existingDescriptor|.\[[Value]] to the type given by |handler|.\[[Type]]. + 1. Assert: the above step never throws an exception, since we already went through the The record case is interesting. _If_ our canonical storage here is ES values, then records are fine in the sense that indexed gets just keep getting the same ES object, and the to-idl steps have no side-effects. Indexed sets convert the incoming object to an IDL record and then to a new object, which might be somewhat surprising behavior. In practice, excluding records here is probably fine. Maybe we should have some sort of general "non-primitives which are passed by value" definition that we can refer to here and have a hope of updating if we add a new one. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/heycam/webidl/pull/840#discussion_r382236053
Received on Thursday, 20 February 2020 20:20:38 UTC