constructor(element, name, strings) {
        this.value = undefined;
        this._pendingValue = undefined;
        if (strings.length !== 2 || strings[0] !== '' || strings[1] !== '') {
            throw new Error('Boolean attributes can only contain a single expression');
        }
        this.element = element;
        this.name = name;
        this.strings = strings;
    }
Implements a boolean attribute, roughly as defined in the HTML
specification.

If the value is truthy, then the attribute is present with a value of
''. If the value is falsey, the attribute is removed.