- From: Boris Zbarsky <notifications@github.com>
- Date: Mon, 24 Jun 2019 17:59:18 -0700
- To: heycam/webidl <webidl@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <heycam/webidl/issues/738/505235523@github.com>
> I wonder if browsers actually follow the spec here :-/. It's a bit exciting to test given lack of use for maplike/setlike in the wild... Gecko implements nothing that's setlike, for example, and I think the only default-exposed maplike is `RTCStatsReport`. For `FontFaceSet` Gecko fakes setlike via regular interface members, which are of course enumerable. Within that constraint, this testcase: ``` <pre> <script> let objs = [URLSearchParams, RTCStatsReport, FontFaceSet]; let props = ["keys", "values", "entries"]; for (let obj of objs) { for (let prop of props) { document.writeln(obj.name, ".", prop, ": ", Object.getOwnPropertyDescriptor(obj.prototype, prop).enumerable); } } </script> ``` shows that Gecko does in fact make the iterable case enumerable and the maplike case non-enumerable like the spec says. In Safari the behavior is like Gecko (including having FontFaceSet stuff enumerable, but maybe it doesn't use setlike there either?). Chrome has `FontFaceSet` as `[NoInterfaceObject]`. If I use `document.fonts.constructor` instead of `FontFaceSet`, the testcase shows that Chrome makes all these methods enumerable, looks like, so it's not following the current spec. I don't have strong opinions about the desired behavior here. -- 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/issues/738#issuecomment-505235523
Received on Tuesday, 25 June 2019 00:59:40 UTC