re-generated from upstream WHATWG