Open zcorpan opened 4 years ago
It would be ideal if HTML didn't initialize JavaScript-facing IntersectionObserver objects at all. Instead there should be algorithms like "add intersection observer steps", which takes a series of spec steps, which HTML can use. Then the IntersectionObserver constructor would call "add intersection observer steps" with the steps being to invoke the provided callback.
Follow-up to https://github.com/w3c/IntersectionObserver/issues/427
In https://github.com/whatwg/html/pull/6097 I tried to update the HTML spec to use the new terms, but found additional issues.
isIntersecting
is not referenceable without referring to that API. Specifying it as an internal slot instead would help. Doing this for all things in the spec might be better than playing whack-a-mole.target
. https://w3c.github.io/IntersectionObserver/#dom-intersectionobserverentry-target (There is a term "target", but.target
does not use it, and it's not clear if it's a property/internal slot of an IntersectionObserver instance, or a general spec term.)So... we need a way to enumerate entries, but without triggering developer-modifiable array accessors or iteration hooks. I'm not entirely sure how to solve this concretely, but maybe @annevk or @domenic can advise?
In addition, @annevk mentioned this in IRC: https://w3c.github.io/IntersectionObserver/#initialize-new-intersection-observer says in step 8:
This should instead set an internal slot, and the definition of
thresholds
getter should say to return the value of that internal slot.