facebook/hhvm — pull request #2855 by danslo (2014-06-04 14:45:02+00:00)
Title: improve performance in simplexml

When casting a SimpleXML element to boolean, we're only concerned with
the object having an XML node, *or* having attributes. Building
attributes is done by sxe_get_prop_hash that also recursively builds the
entire element tree starting from that element.

We shortcircuit when the object has a valid XML node to prevent excessive
amount of object creation when all your program is doing is loading
XML strings and doing read/toBool operations.

Before: http://i.imgur.com/TFFj97u.gif
After: http://i.imgur.com/3kNpwIM.gif