test


PASS CSSOM setters function as expected for unregistered properties
PASS CSS.registerProperty
PASS Formerly valid values are still readable from inline styles but are computed as the unset value
PASS Values not matching the registered type can't be set
PASS Values can be removed from inline styles
PASS Stylesheets can be modified by CSSOM
PASS Valid values can be set on inline styles
PASS Var values are accepted
PASS Var values are accepted without validation
PASS Var values are accepted without validation, even when it is obvious they will not parse
PASS Var values are accepted without validation, even when it is obvious they will not parse (typed)

