From 5f5ebdb57a0cfaf1b9f5878578e29191e613e390 Mon Sep 17 00:00:00 2001 From: falsandtru Date: Sun, 19 Nov 2017 02:00:47 +0900 Subject: [PATCH 1/2] Add SVGElementTagNameMap --- TS.fsx | 15 ++++++- baselines/dom.generated.d.ts | 81 +++++++++++++++++++----------------- 2 files changed, 55 insertions(+), 41 deletions(-) diff --git a/TS.fsx b/TS.fsx index c9c99019b..6d9983a9e 100644 --- a/TS.fsx +++ b/TS.fsx @@ -818,11 +818,21 @@ module Emit = Pt.Printl "}" Pt.Printl "" + let EmitSVGElementTagNameMap () = + Pt.Printl "interface SVGElementTagNameMap {" + Pt.IncreaseIndent() + for e in tagNameToEleName do + if iNameToIDependList.ContainsKey e.Value && Seq.contains "SVGElement" iNameToIDependList.[e.Value] then + Pt.Printl "\"%s\": %s;" (e.Key.ToLower()) e.Value + Pt.DecreaseIndent() + Pt.Printl "}" + Pt.Printl "" + let EmitElementTagNameMap () = - Pt.Printl "interface ElementTagNameMap extends HTMLElementTagNameMap {" + Pt.Printl "interface ElementTagNameMap extends HTMLElementTagNameMap, SVGElementTagNameMap {" Pt.IncreaseIndent() for e in tagNameToEleName do - if iNameToIDependList.ContainsKey e.Value && not (Seq.contains "HTMLElement" iNameToIDependList.[e.Value]) then + if iNameToIDependList.ContainsKey e.Value && not (Seq.contains "HTMLElement" iNameToIDependList.[e.Value]) && not (Seq.contains "SVGElement" iNameToIDependList.[e.Value]) then Pt.Printl "\"%s\": %s;" (e.Key.ToLower()) e.Value Pt.DecreaseIndent() Pt.Printl "}" @@ -1516,6 +1526,7 @@ module Emit = if flavor <> Worker then EmitHTMLElementTagNameMap() + EmitSVGElementTagNameMap() EmitElementTagNameMap() EmitElementListTagNameMap() EmitNamedConstructors() diff --git a/baselines/dom.generated.d.ts b/baselines/dom.generated.d.ts index ec9bc6834..c65c5e37d 100644 --- a/baselines/dom.generated.d.ts +++ b/baselines/dom.generated.d.ts @@ -14922,27 +14922,12 @@ interface HTMLElementTagNameMap { "xmp": HTMLPreElement; } -interface ElementTagNameMap extends HTMLElementTagNameMap { - "abbr": HTMLElement; - "acronym": HTMLElement; - "address": HTMLElement; - "article": HTMLElement; - "aside": HTMLElement; - "b": HTMLElement; - "bdo": HTMLElement; - "big": HTMLElement; - "center": HTMLElement; +interface SVGElementTagNameMap { "circle": SVGCircleElement; - "cite": HTMLElement; "clippath": SVGClipPathElement; - "code": HTMLElement; - "dd": HTMLElement; "defs": SVGDefsElement; "desc": SVGDescElement; - "dfn": HTMLElement; - "dt": HTMLElement; "ellipse": SVGEllipseElement; - "em": HTMLElement; "feblend": SVGFEBlendElement; "fecolormatrix": SVGFEColorMatrixElement; "fecomponenttransfer": SVGFEComponentTransferElement; @@ -14967,57 +14952,75 @@ interface ElementTagNameMap extends HTMLElementTagNameMap { "fespotlight": SVGFESpotLightElement; "fetile": SVGFETileElement; "feturbulence": SVGFETurbulenceElement; - "figcaption": HTMLElement; - "figure": HTMLElement; "filter": SVGFilterElement; - "footer": HTMLElement; "foreignobject": SVGForeignObjectElement; "g": SVGGElement; - "header": HTMLElement; - "hgroup": HTMLElement; - "i": HTMLElement; "image": SVGImageElement; - "kbd": HTMLElement; - "keygen": HTMLElement; "line": SVGLineElement; "lineargradient": SVGLinearGradientElement; - "mark": HTMLElement; "marker": SVGMarkerElement; "mask": SVGMaskElement; "metadata": SVGMetadataElement; - "nav": HTMLElement; - "nobr": HTMLElement; - "noframes": HTMLElement; - "noscript": HTMLElement; "path": SVGPathElement; "pattern": SVGPatternElement; - "plaintext": HTMLElement; "polygon": SVGPolygonElement; "polyline": SVGPolylineElement; "radialgradient": SVGRadialGradientElement; "rect": SVGRectElement; + "stop": SVGStopElement; + "svg": SVGSVGElement; + "switch": SVGSwitchElement; + "symbol": SVGSymbolElement; + "text": SVGTextElement; + "textpath": SVGTextPathElement; + "tspan": SVGTSpanElement; + "use": SVGUseElement; + "view": SVGViewElement; +} + +interface ElementTagNameMap extends HTMLElementTagNameMap, SVGElementTagNameMap { + "abbr": HTMLElement; + "acronym": HTMLElement; + "address": HTMLElement; + "article": HTMLElement; + "aside": HTMLElement; + "b": HTMLElement; + "bdo": HTMLElement; + "big": HTMLElement; + "center": HTMLElement; + "cite": HTMLElement; + "code": HTMLElement; + "dd": HTMLElement; + "dfn": HTMLElement; + "dt": HTMLElement; + "em": HTMLElement; + "figcaption": HTMLElement; + "figure": HTMLElement; + "footer": HTMLElement; + "header": HTMLElement; + "hgroup": HTMLElement; + "i": HTMLElement; + "kbd": HTMLElement; + "keygen": HTMLElement; + "mark": HTMLElement; + "nav": HTMLElement; + "nobr": HTMLElement; + "noframes": HTMLElement; + "noscript": HTMLElement; + "plaintext": HTMLElement; "rt": HTMLElement; "ruby": HTMLElement; "s": HTMLElement; "samp": HTMLElement; "section": HTMLElement; "small": HTMLElement; - "stop": SVGStopElement; "strike": HTMLElement; "strong": HTMLElement; "sub": HTMLElement; "sup": HTMLElement; - "svg": SVGSVGElement; - "switch": SVGSwitchElement; - "symbol": SVGSymbolElement; - "text": SVGTextElement; - "textpath": SVGTextPathElement; - "tspan": SVGTSpanElement; "tt": HTMLElement; "u": HTMLElement; - "use": SVGUseElement; "var": HTMLElement; - "view": SVGViewElement; "wbr": HTMLElement; } From 6cddee383b09c920633c034cd953837f8835a28d Mon Sep 17 00:00:00 2001 From: falsandtru Date: Sun, 19 Nov 2017 07:36:03 +0900 Subject: [PATCH 2/2] Move HTML definitions from ElementTagNameMap to HTMLElementTagNameMap --- TS.fsx | 10 +--- baselines/dom.generated.d.ts | 89 ++++++++++++++++++------------------ 2 files changed, 46 insertions(+), 53 deletions(-) diff --git a/TS.fsx b/TS.fsx index 6d9983a9e..1e87f1873 100644 --- a/TS.fsx +++ b/TS.fsx @@ -812,7 +812,7 @@ module Emit = Pt.Printl "interface HTMLElementTagNameMap {" Pt.IncreaseIndent() for e in tagNameToEleName do - if iNameToIDependList.ContainsKey e.Value && Seq.contains "HTMLElement" iNameToIDependList.[e.Value] then + if iNameToIDependList.ContainsKey e.Value && not (Seq.contains "SVGElement" iNameToIDependList.[e.Value]) then Pt.Printl "\"%s\": %s;" (e.Key.ToLower()) e.Value Pt.DecreaseIndent() Pt.Printl "}" @@ -829,13 +829,7 @@ module Emit = Pt.Printl "" let EmitElementTagNameMap () = - Pt.Printl "interface ElementTagNameMap extends HTMLElementTagNameMap, SVGElementTagNameMap {" - Pt.IncreaseIndent() - for e in tagNameToEleName do - if iNameToIDependList.ContainsKey e.Value && not (Seq.contains "HTMLElement" iNameToIDependList.[e.Value]) && not (Seq.contains "SVGElement" iNameToIDependList.[e.Value]) then - Pt.Printl "\"%s\": %s;" (e.Key.ToLower()) e.Value - Pt.DecreaseIndent() - Pt.Printl "}" + Pt.Printl "interface ElementTagNameMap extends HTMLElementTagNameMap, SVGElementTagNameMap { }" Pt.Printl "" let EmitElementListTagNameMap () = diff --git a/baselines/dom.generated.d.ts b/baselines/dom.generated.d.ts index c65c5e37d..cb98799a1 100644 --- a/baselines/dom.generated.d.ts +++ b/baselines/dom.generated.d.ts @@ -14838,28 +14838,46 @@ interface VoidFunction { } interface HTMLElementTagNameMap { "a": HTMLAnchorElement; + "abbr": HTMLElement; + "acronym": HTMLElement; + "address": HTMLElement; "applet": HTMLAppletElement; "area": HTMLAreaElement; + "article": HTMLElement; + "aside": HTMLElement; "audio": HTMLAudioElement; + "b": HTMLElement; "base": HTMLBaseElement; "basefont": HTMLBaseFontElement; + "bdo": HTMLElement; + "big": HTMLElement; "blockquote": HTMLQuoteElement; "body": HTMLBodyElement; "br": HTMLBRElement; "button": HTMLButtonElement; "canvas": HTMLCanvasElement; "caption": HTMLTableCaptionElement; + "center": HTMLElement; + "cite": HTMLElement; + "code": HTMLElement; "col": HTMLTableColElement; "colgroup": HTMLTableColElement; "data": HTMLDataElement; "datalist": HTMLDataListElement; + "dd": HTMLElement; "del": HTMLModElement; + "dfn": HTMLElement; "dir": HTMLDirectoryElement; "div": HTMLDivElement; "dl": HTMLDListElement; + "dt": HTMLElement; + "em": HTMLElement; "embed": HTMLEmbedElement; "fieldset": HTMLFieldSetElement; + "figcaption": HTMLElement; + "figure": HTMLElement; "font": HTMLFontElement; + "footer": HTMLElement; "form": HTMLFormElement; "frame": HTMLFrameElement; "frameset": HTMLFrameSetElement; @@ -14870,24 +14888,34 @@ interface HTMLElementTagNameMap { "h5": HTMLHeadingElement; "h6": HTMLHeadingElement; "head": HTMLHeadElement; + "header": HTMLElement; + "hgroup": HTMLElement; "hr": HTMLHRElement; "html": HTMLHtmlElement; + "i": HTMLElement; "iframe": HTMLIFrameElement; "img": HTMLImageElement; "input": HTMLInputElement; "ins": HTMLModElement; "isindex": HTMLUnknownElement; + "kbd": HTMLElement; + "keygen": HTMLElement; "label": HTMLLabelElement; "legend": HTMLLegendElement; "li": HTMLLIElement; "link": HTMLLinkElement; "listing": HTMLPreElement; "map": HTMLMapElement; + "mark": HTMLElement; "marquee": HTMLMarqueeElement; "menu": HTMLMenuElement; "meta": HTMLMetaElement; "meter": HTMLMeterElement; + "nav": HTMLElement; "nextid": HTMLUnknownElement; + "nobr": HTMLElement; + "noframes": HTMLElement; + "noscript": HTMLElement; "object": HTMLObjectElement; "ol": HTMLOListElement; "optgroup": HTMLOptGroupElement; @@ -14896,14 +14924,25 @@ interface HTMLElementTagNameMap { "p": HTMLParagraphElement; "param": HTMLParamElement; "picture": HTMLPictureElement; + "plaintext": HTMLElement; "pre": HTMLPreElement; "progress": HTMLProgressElement; "q": HTMLQuoteElement; + "rt": HTMLElement; + "ruby": HTMLElement; + "s": HTMLElement; + "samp": HTMLElement; "script": HTMLScriptElement; + "section": HTMLElement; "select": HTMLSelectElement; + "small": HTMLElement; "source": HTMLSourceElement; "span": HTMLSpanElement; + "strike": HTMLElement; + "strong": HTMLElement; "style": HTMLStyleElement; + "sub": HTMLElement; + "sup": HTMLElement; "table": HTMLTableElement; "tbody": HTMLTableSectionElement; "td": HTMLTableDataCellElement; @@ -14916,8 +14955,12 @@ interface HTMLElementTagNameMap { "title": HTMLTitleElement; "tr": HTMLTableRowElement; "track": HTMLTrackElement; + "tt": HTMLElement; + "u": HTMLElement; "ul": HTMLUListElement; + "var": HTMLElement; "video": HTMLVideoElement; + "wbr": HTMLElement; "x-ms-webview": MSHTMLWebViewElement; "xmp": HTMLPreElement; } @@ -14978,51 +15021,7 @@ interface SVGElementTagNameMap { "view": SVGViewElement; } -interface ElementTagNameMap extends HTMLElementTagNameMap, SVGElementTagNameMap { - "abbr": HTMLElement; - "acronym": HTMLElement; - "address": HTMLElement; - "article": HTMLElement; - "aside": HTMLElement; - "b": HTMLElement; - "bdo": HTMLElement; - "big": HTMLElement; - "center": HTMLElement; - "cite": HTMLElement; - "code": HTMLElement; - "dd": HTMLElement; - "dfn": HTMLElement; - "dt": HTMLElement; - "em": HTMLElement; - "figcaption": HTMLElement; - "figure": HTMLElement; - "footer": HTMLElement; - "header": HTMLElement; - "hgroup": HTMLElement; - "i": HTMLElement; - "kbd": HTMLElement; - "keygen": HTMLElement; - "mark": HTMLElement; - "nav": HTMLElement; - "nobr": HTMLElement; - "noframes": HTMLElement; - "noscript": HTMLElement; - "plaintext": HTMLElement; - "rt": HTMLElement; - "ruby": HTMLElement; - "s": HTMLElement; - "samp": HTMLElement; - "section": HTMLElement; - "small": HTMLElement; - "strike": HTMLElement; - "strong": HTMLElement; - "sub": HTMLElement; - "sup": HTMLElement; - "tt": HTMLElement; - "u": HTMLElement; - "var": HTMLElement; - "wbr": HTMLElement; -} +interface ElementTagNameMap extends HTMLElementTagNameMap, SVGElementTagNameMap { } type ElementListTagNameMap = { [key in keyof ElementTagNameMap]: NodeListOf