function Data(element) {
    // Use a string member so Uglify doesn't mangle it.
    var data = element[dataName];
    if (data) {
        return data;
    }
    var window = element.ownerDocument.defaultView;
    var types = 0;
    for (var index = 0; index < constructors.length; index++) {
        var _constructor = constructors[index];
        if (isString(_constructor)) {
            if (element instanceof window[_constructor]) {
                types |= 1 << index; // tslint:disable-line:no-bitwise
            }
        } else if (element instanceof _constructor) {
            types |= 1 << index; // tslint:disable-line:no-bitwise
        }
    }
    // Use an intermediate object so it errors on incorrect data.
    var newData = {
        types: types,
        count: 0,
        computedStyle: null,
        cache: {},
        queueList: {},
        lastAnimationList: {},
        lastFinishList: {},
        window: window
    };
    Object.defineProperty(element, dataName, {
        value: newData
    });
    return newData;
}
Get (and create) the internal data store for an element.