# Changelog ## [Unreleased] ## [2.6.0] - 2025-11-10 ### Added - Added pseudo-selector :lexbor-contains(). The selector is intended for searching by text within elements. - DOM: added the DOMException interface/object. - DOM::Node: added functions for manipulating with DOM by specification. - URL: add test case. - Added interface for the DOM getElementById() function. - DOM: added the lxb_dom_document_type_create() function. - URL: added support URLSearchParams interface. ### Fixed - URL: Fix host setters for opaque paths. - Fixed warning on Windows with gcc. - Fixed warnings with -Wsign-compare -Wformat. - URL: Fix port setter for malformed ports. - URL: fixed a use-after-free bug in parser logs. ### Changed - Unicode: update to version 17.0.0. - HTML: relax tag has been changed according to the specification. Regarding recent changes to the specifications. ## [2.5.0] - 2025-08-13 ### Added - Added new module Engine. - Added benchmarks. - Added LEXBOR_BUILD_WITH_MSAN definition for building with msan. - CSS::Syntax: added UNICODE-RANGE token. - Added link to external bindings for Julia. ### Fixed - Core: Fix undefined behavior in function lexbor_str_append(). - Core: Fix undefined behavior in function lexbor_in_node_make(). - Core: fixed slow realloc for large strings. - HTML: fixed error report for whitespace characters reference. - HTML: fixed error report on self-closing tag parsing. - HTML: fixed attribute cloning for bad HTML. - HTML: fixed duplicate attributes in svg namespace. - CSS::Syntax: fixed consume a numeric token. - Style: fixed use-after-poison when the element is destroyed. - URL: fixed hostname setter if port is specified. - Selectors: fixed selector :has(). It didn't always work properly. ### Changed - HTML: allowed `
` to be used inside `