[whatwg] Spec for handling runtime script errors doesn't seem to match reality
Boris Zbarsky
bzbarsky at MIT.EDU
Mon Nov 12 01:55:36 PST 2012
Consider the attached testcase, which calls setTimeout on a window and
passes in a function from a different window.
When this function is then called, it throws.
Gecko, WebKit, and Presto all seem to trigger the onerror handler of the
window setTimeout was called on in this case.
Per spec, section 7.1.3.5.1, we have:
Whenever an uncaught runtime script error occurs in one of the
scripts associated with a Document, the user agent must report
the error at the URL of the resource containing the script (as
established when the script was created), with the problematic
position (line number and column number) in that resource, in
the script's origin, using the onerror event handler of the
script's global object.
But the global object is the window the function came from. So the spec
doesn't seem to match any of the above three rendering engines. Does it
match Trident?
I ask because I'm worried about web compat here. While I agree that
what the spec says to do is the sensible thing (and in fact, I had
accidentally switched Gecko to doing what the spec says here as part of
working on something else entirely), if none of the UAs do it then there
may be web content that relies on it not happening. There are certainly
tests in Mozilla's regression test suite that inadvertently rely on
Gecko's current behavior...
-Boris
More information about the whatwg
mailing list