What would this `attributeNode.expando` property come from? I tried all kinds of things, but it looks like check doesn't do anything.

```js
// Chrome/31.0.1650.63

var div = document.createElement( "div" );
div.attributes[ "onclick" ]
//> undefined
div.setAttribute( "onclick", "t" );
div.attributes[ "onclick" ]
//> [object Attr]
div.attributes[ "onclick" ].expando
//> undefined
div.attributes[ "onclick" ].randomname
//> undefined

var div = document.createElement( "div" );
div.attributes[ "onrandomname" ]
//> undefined
div.setAttribute( "onrandomname", "t" );
div.attributes[ "onrandomname" ]
//> [object Attr]
div.attributes[ "onrandomname" ].expando
//> undefined
div.attributes[ "onrandomname" ].randomname
//> undefined
```

In previous versions of jQuery this used to be `typeof div[ eventName ] === "function"` which did properly detect support (browsers only evaluate and synchronise to the property if the attribute matches a known event). However that was removed because of the CSP policy (e.g. websites can set a header that will disallow inline scripts, github.com does that for example). And with such policy activated, `typeof div[eventName]` returns undefined because the browser will never evaluate the attribute string value and turn it into a function, thus making it indistinguishable from any other undefined property.

See also previous pr https://github.com/jquery/jquery/pull/1054.

So, I'm interested to understand where this came from.