[Exposed=Window] interface Selection { readonly attribute Node? anchorNode; readonly attribute unsigned long anchorOffset; readonly attribute Node? focusNode; readonly attribute unsigned long focusOffset; readonly attribute boolean isCollapsed; readonly attribute unsigned long rangeCount; readonly attribute DOMString type; Range getRangeAt(unsigned long index); undefined addRange(Range range); undefined removeRange(Range range); undefined removeAllRanges(); undefined empty(); undefined collapse(Node? node, optional unsigned long offset = 0); undefined setPosition(Node? node, optional unsigned long offset = 0); undefined collapseToStart(); undefined collapseToEnd(); undefined extend(Node node, optional unsigned long offset = 0); undefined setBaseAndExtent(Node anchorNode, unsigned long anchorOffset, Node focusNode, unsigned long focusOffset); undefined selectAllChildren(Node node); [CEReactions] undefined deleteFromDocument(); boolean containsNode(Node node, optional boolean allowPartialContainment = false); stringifier; };