From a023ee0d7a2dab6fea1d03fcf8fac87bb87bbeb5 Mon Sep 17 00:00:00 2001 From: falsandtru Date: Tue, 21 Nov 2017 06:06:36 +0900 Subject: [PATCH 1/2] Remove ElementListTagNameMap --- TS.fsx | 11 ++--------- baselines/dom.generated.d.ts | 10 +++------- 2 files changed, 5 insertions(+), 16 deletions(-) diff --git a/TS.fsx b/TS.fsx index 1e87f1873..226919b74 100644 --- a/TS.fsx +++ b/TS.fsx @@ -793,7 +793,7 @@ module Emit = /// Emit overloads for the getElementsByTagName method let EmitGetElementsByTagNameOverloads (m: Browser.Method) = if matchSingleParamMethodSignature m "getElementsByTagName" "NodeList" "string" then - Pt.Printl "getElementsByTagName(%s: K): ElementListTagNameMap[K];" m.Params.[0].Name + Pt.Printl "getElementsByTagName(%s: K): NodeListOf;" m.Params.[0].Name Pt.Printl "getElementsByTagName(%s: string): NodeListOf;" m.Params.[0].Name /// Emit overloads for the querySelector method @@ -805,7 +805,7 @@ module Emit = /// Emit overloads for the querySelectorAll method let EmitQuerySelectorAllOverloads (m: Browser.Method) = if matchSingleParamMethodSignature m "querySelectorAll" "NodeList" "string" then - Pt.Printl "querySelectorAll(selectors: K): ElementListTagNameMap[K];" + Pt.Printl "querySelectorAll(selectors: K): NodeListOf;" Pt.Printl "querySelectorAll(selectors: string): NodeListOf;" let EmitHTMLElementTagNameMap () = @@ -832,12 +832,6 @@ module Emit = Pt.Printl "interface ElementTagNameMap extends HTMLElementTagNameMap, SVGElementTagNameMap { }" Pt.Printl "" - let EmitElementListTagNameMap () = - Pt.Printl "type ElementListTagNameMap = {" - Pt.PrintWithAddedIndent "[key in keyof ElementTagNameMap]: NodeListOf" - Pt.Printl "};" - Pt.Printl "" - /// Emit overloads for the createEvent method let EmitCreateEventOverloads (m: Browser.Method) = if matchSingleParamMethodSignature m "createEvent" "Event" "string" then @@ -1522,7 +1516,6 @@ module Emit = EmitHTMLElementTagNameMap() EmitSVGElementTagNameMap() EmitElementTagNameMap() - EmitElementListTagNameMap() EmitNamedConstructors() match GetGlobalPollutor flavor with diff --git a/baselines/dom.generated.d.ts b/baselines/dom.generated.d.ts index b9a7da426..b1bd1e791 100644 --- a/baselines/dom.generated.d.ts +++ b/baselines/dom.generated.d.ts @@ -3243,7 +3243,7 @@ interface Document extends Node, GlobalEventHandlers, NodeSelector, DocumentEven * Retrieves a collection of objects based on the specified element name. * @param name Specifies the name of an element. */ - getElementsByTagName(tagname: K): ElementListTagNameMap[K]; + getElementsByTagName(tagname: K): NodeListOf; getElementsByTagName(tagname: string): NodeListOf; getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1999/xhtml", localName: string): HTMLCollectionOf; getElementsByTagNameNS(namespaceURI: "http://www.w3.org/2000/svg", localName: string): HTMLCollectionOf; @@ -3600,7 +3600,7 @@ interface Element extends Node, GlobalEventHandlers, ElementTraversal, NodeSelec getAttributeNS(namespaceURI: string, localName: string): string; getBoundingClientRect(): ClientRect; getClientRects(): ClientRectList; - getElementsByTagName(name: K): ElementListTagNameMap[K]; + getElementsByTagName(name: K): NodeListOf; getElementsByTagName(name: string): NodeListOf; getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1999/xhtml", localName: string): HTMLCollectionOf; getElementsByTagNameNS(namespaceURI: "http://www.w3.org/2000/svg", localName: string): HTMLCollectionOf; @@ -14133,7 +14133,7 @@ interface NavigatorUserMedia { interface NodeSelector { querySelector(selectors: K): ElementTagNameMap[K] | null; querySelector(selectors: string): E | null; - querySelectorAll(selectors: K): ElementListTagNameMap[K]; + querySelectorAll(selectors: K): NodeListOf; querySelectorAll(selectors: string): NodeListOf; } @@ -15026,10 +15026,6 @@ interface SVGElementTagNameMap { interface ElementTagNameMap extends HTMLElementTagNameMap, SVGElementTagNameMap { } -type ElementListTagNameMap = { - [key in keyof ElementTagNameMap]: NodeListOf -}; - declare var Audio: { new(src?: string): HTMLAudioElement; }; declare var Image: { new(width?: number, height?: number): HTMLImageElement; }; declare var Option: { new(text?: string, value?: string, defaultSelected?: boolean, selected?: boolean): HTMLOptionElement; }; From fd02fcc9de9887759c3801f40bff24d71a96eb3e Mon Sep 17 00:00:00 2001 From: falsandtru Date: Tue, 21 Nov 2017 06:23:22 +0900 Subject: [PATCH 2/2] Remove ElementTagNameMap --- TS.fsx | 14 ++++++-------- baselines/dom.generated.d.ts | 17 ++++++++++------- inputfiles/addedTypes.json | 3 ++- 3 files changed, 18 insertions(+), 16 deletions(-) diff --git a/TS.fsx b/TS.fsx index 226919b74..a584a2138 100644 --- a/TS.fsx +++ b/TS.fsx @@ -793,19 +793,22 @@ module Emit = /// Emit overloads for the getElementsByTagName method let EmitGetElementsByTagNameOverloads (m: Browser.Method) = if matchSingleParamMethodSignature m "getElementsByTagName" "NodeList" "string" then - Pt.Printl "getElementsByTagName(%s: K): NodeListOf;" m.Params.[0].Name + Pt.Printl "getElementsByTagName(%s: K): NodeListOf;" m.Params.[0].Name + Pt.Printl "getElementsByTagName(%s: K): NodeListOf;" m.Params.[0].Name Pt.Printl "getElementsByTagName(%s: string): NodeListOf;" m.Params.[0].Name /// Emit overloads for the querySelector method let EmitQuerySelectorOverloads (m: Browser.Method) = if matchSingleParamMethodSignature m "querySelector" "Element" "string" then - Pt.Printl "querySelector(selectors: K): ElementTagNameMap[K] | null;" + Pt.Printl "querySelector(selectors: K): HTMLElementTagNameMap[K] | null;" + Pt.Printl "querySelector(selectors: K): SVGElementTagNameMap[K] | null;" Pt.Printl "querySelector(selectors: string): E | null;" /// Emit overloads for the querySelectorAll method let EmitQuerySelectorAllOverloads (m: Browser.Method) = if matchSingleParamMethodSignature m "querySelectorAll" "NodeList" "string" then - Pt.Printl "querySelectorAll(selectors: K): NodeListOf;" + Pt.Printl "querySelectorAll(selectors: K): NodeListOf;" + Pt.Printl "querySelectorAll(selectors: K): NodeListOf;" Pt.Printl "querySelectorAll(selectors: string): NodeListOf;" let EmitHTMLElementTagNameMap () = @@ -828,10 +831,6 @@ module Emit = Pt.Printl "}" Pt.Printl "" - let EmitElementTagNameMap () = - Pt.Printl "interface ElementTagNameMap extends HTMLElementTagNameMap, SVGElementTagNameMap { }" - Pt.Printl "" - /// Emit overloads for the createEvent method let EmitCreateEventOverloads (m: Browser.Method) = if matchSingleParamMethodSignature m "createEvent" "Event" "string" then @@ -1515,7 +1514,6 @@ module Emit = if flavor <> Worker then EmitHTMLElementTagNameMap() EmitSVGElementTagNameMap() - EmitElementTagNameMap() EmitNamedConstructors() match GetGlobalPollutor flavor with diff --git a/baselines/dom.generated.d.ts b/baselines/dom.generated.d.ts index b1bd1e791..519e21d64 100644 --- a/baselines/dom.generated.d.ts +++ b/baselines/dom.generated.d.ts @@ -3243,7 +3243,8 @@ interface Document extends Node, GlobalEventHandlers, NodeSelector, DocumentEven * Retrieves a collection of objects based on the specified element name. * @param name Specifies the name of an element. */ - getElementsByTagName(tagname: K): NodeListOf; + getElementsByTagName(tagname: K): NodeListOf; + getElementsByTagName(tagname: K): NodeListOf; getElementsByTagName(tagname: string): NodeListOf; getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1999/xhtml", localName: string): HTMLCollectionOf; getElementsByTagNameNS(namespaceURI: "http://www.w3.org/2000/svg", localName: string): HTMLCollectionOf; @@ -3600,7 +3601,8 @@ interface Element extends Node, GlobalEventHandlers, ElementTraversal, NodeSelec getAttributeNS(namespaceURI: string, localName: string): string; getBoundingClientRect(): ClientRect; getClientRects(): ClientRectList; - getElementsByTagName(name: K): NodeListOf; + getElementsByTagName(name: K): NodeListOf; + getElementsByTagName(name: K): NodeListOf; getElementsByTagName(name: string): NodeListOf; getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1999/xhtml", localName: string): HTMLCollectionOf; getElementsByTagNameNS(namespaceURI: "http://www.w3.org/2000/svg", localName: string): HTMLCollectionOf; @@ -3629,7 +3631,8 @@ interface Element extends Node, GlobalEventHandlers, ElementTraversal, NodeSelec webkitRequestFullScreen(): void; getElementsByClassName(classNames: string): NodeListOf; matches(selector: string): boolean; - closest(selector: K): ElementTagNameMap[K] | null; + closest(selector: K): HTMLElementTagNameMap[K] | null; + closest(selector: K): SVGElementTagNameMap[K] | null; closest(selector: string): Element | null; scrollIntoView(arg?: boolean | ScrollIntoViewOptions): void; scroll(options?: ScrollToOptions): void; @@ -14131,9 +14134,11 @@ interface NavigatorUserMedia { } interface NodeSelector { - querySelector(selectors: K): ElementTagNameMap[K] | null; + querySelector(selectors: K): HTMLElementTagNameMap[K] | null; + querySelector(selectors: K): SVGElementTagNameMap[K] | null; querySelector(selectors: string): E | null; - querySelectorAll(selectors: K): NodeListOf; + querySelectorAll(selectors: K): NodeListOf; + querySelectorAll(selectors: K): NodeListOf; querySelectorAll(selectors: string): NodeListOf; } @@ -15024,8 +15029,6 @@ interface SVGElementTagNameMap { "view": SVGViewElement; } -interface ElementTagNameMap extends HTMLElementTagNameMap, SVGElementTagNameMap { } - declare var Audio: { new(src?: string): HTMLAudioElement; }; declare var Image: { new(width?: number, height?: number): HTMLImageElement; }; declare var Option: { new(text?: string, value?: string, defaultSelected?: boolean, selected?: boolean): HTMLOptionElement; }; diff --git a/inputfiles/addedTypes.json b/inputfiles/addedTypes.json index dc900d056..7b2238807 100644 --- a/inputfiles/addedTypes.json +++ b/inputfiles/addedTypes.json @@ -458,7 +458,8 @@ "kind": "method", "interface": "Element", "signatures": [ - "closest(selector: K): ElementTagNameMap[K] | null" + "closest(selector: K): HTMLElementTagNameMap[K] | null", + "closest(selector: K): SVGElementTagNameMap[K] | null" ] }, {