- From: ShinWonho <notifications@github.com>
- Date: Tue, 03 Nov 2026 21:17:10 -0800
- To: whatwg/webidl <webidl@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <whatwg/webidl/pull/1659@github.com>
In [create an interface object](https://webidl.spec.whatwg.org/#create-an-interface-object), the step "Set |F|.\[[Unforgeables]] to |unforgeables|" comes before "Let |F| be CreateBuiltinFunction(…)". That is, it writes to |F| before |F| is defined.
This PR moves the |unforgeables| steps, along with their note, to right after |F| is created:
1. Let |length| be 0.
1. If |I| was declared with a constructor operation, then … set |length| …
1. Let |F| be CreateBuiltinFunction(|steps|, |length|, |id|, « \[[Unforgeables]] », |realm|, |constructorProto|).
1. Let |unforgeables| be OrdinaryObjectCreate(null).
1. Define the unforgeable regular operations of |I| on |unforgeables|, given |realm|.
1. Define the unforgeable regular attributes of |I| on |unforgeables|, given |realm|.
1. Set |F|.\[[Unforgeables]] to |unforgeables|.
The steps in between only compute |length| and don't use |unforgeables| or |F|, so the meaning doesn't change.
This is introduced in #1539, which moved the CreateBuiltinFunction call later.
You can view, comment on, or merge this pull request online at:
https://github.com/whatwg/webidl/pull/1659
-- Commit Summary --
* Editorial: create the interface object before setting its [[Unforgeables]]
-- File Changes --
M index.bs (16)
-- Patch Links --
https://github.com/whatwg/webidl/pull/1659.patch
https://github.com/whatwg/webidl/pull/1659.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/whatwg/webidl/pull/1659
You are receiving this because you are subscribed to this thread.
Message ID: <whatwg/webidl/pull/1659@github.com>
Received on Wednesday, 4 November 2026 05:17:14 UTC