archives

« Bugzilla Issues Index

#3958 — 9.3: contradiction re [[Construct]]?


In 9.3 "Built-in Function Objects",
para 4 says:
The behaviour specified for each built-in function via algorithm steps
or other means is the specification of the function body behaviour for
both [[Call]] and [[Construct]] invocations of the function.

but para 5 says:
Built-in function objects that are not identified as constructors do not
implement the [[Construct]] internal method unless otherwise specified in
the description of a particular function.

These seem to be contradictory. Is the para 5 sentence obsolete? Or is the para 4 sentence over-general?

---

(Also, it's unclear what para 5's "otherwise specified" means. How (and why) would the description of a function indicate that it implements the [[Construct]] internal method *without* identifying the function as a constructor?)


fixed in rev34 editor's draft

added a clarifying sentence to paragraphs 4.

"otherwise specified" is a general loophole that allows spec. text to explicitly over-ride such general statements on an "as needed" basis.

For example, 19.2.4 doesn't identify bound function instances as constructors, but 9.4.1.3 conditionally give them a [[Construct]] is the target function has a [[Construct]]


fixed in rev34