On 20/05/2016 08:22, Niklas Keller wrote:
2016-05-20 4:13 GMT+02:00 Jesse Schalken <m...@jesseschalken.com>:
The top frame is the construction (get_error) and the site of the throw
(do_throw) doesn't appear in the stack at all.
The comparison with JavaScript isn't a good one, since you can throw
everything in JS. If they didn't provide the stack trace upon throw, you
would not have a stack trace at all if you throw a plain string.
That explanation justifies completely the opposite behaviour to what
Jesse described.
According to MDN [1] the "stack" property is completley unstandardised,
and some engines may indeed populate it on throw, but there's no hint on
that page that they'll attach it to anything not constructed as an Error.
So it's not a great comparison for either side (note that it was
originally brought up by Rasmus as an example where it *does* come from
the throw site) because the language doesn't actually guarantee you a
stack trace at all.
[1]
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/stack
Regards,
--
Rowan Collins
[IMSoP]
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php