Tests/LibWeb: Add test that dumps all global JS constructors

(cherry picked from commit a84261ee7a5e0b76a03225d71ec64424d4865a78)
This commit is contained in:
Andreas Kling 2024-06-28 14:57:42 +02:00 committed by Nico Weber
parent cf5b1b7c10
commit bdf3071bd9
2 changed files with 389 additions and 0 deletions

View file

@ -0,0 +1,371 @@
AbortController
AbortSignal
AbstractRange
AggregateError
Animation
AnimationEffect
AnimationEvent
AnimationPlaybackEvent
AnimationTimeline
Array
ArrayBuffer
Attr
Audio
AudioBuffer
AudioContext
AudioNode
AudioParam
AudioScheduledSourceNode
AudioTrack
AudioTrackList
BaseAudioContext
BigInt
BigInt64Array
BigUint64Array
Blob
Boolean
ByteLengthQueuingStrategy
CDATASection
CSSAnimation
CSSConditionRule
CSSFontFaceRule
CSSGroupingRule
CSSImportRule
CSSKeyframeRule
CSSKeyframesRule
CSSMediaRule
CSSNamespaceRule
CSSRule
CSSRuleList
CSSStyleDeclaration
CSSStyleRule
CSSStyleSheet
CSSSupportsRule
CSSTransition
CanvasGradient
CanvasPattern
CanvasRenderingContext2D
CharacterData
Clipboard
CloseEvent
CloseWatcher
Comment
CountQueuingStrategy
Crypto
CryptoKey
CustomElementRegistry
CustomEvent
DOMException
DOMImplementation
DOMMatrix
DOMMatrixReadOnly
DOMParser
DOMPoint
DOMPointReadOnly
DOMQuad
DOMRect
DOMRectList
DOMRectReadOnly
DOMStringMap
DOMTokenList
DataTransfer
DataView
Date
DisposableStack
Document
DocumentFragment
DocumentTimeline
DocumentType
DynamicsCompressorNode
Element
ElementInternals
Error
ErrorEvent
EvalError
Event
EventSource
EventTarget
File
FileList
FileReader
FinalizationRegistry
Float32Array
Float64Array
FocusEvent
FontFace
FontFaceSet
FormData
FormDataEvent
Function
GainNode
HTMLAllCollection
HTMLAnchorElement
HTMLAreaElement
HTMLAudioElement
HTMLBRElement
HTMLBaseElement
HTMLBodyElement
HTMLButtonElement
HTMLCanvasElement
HTMLCollection
HTMLDListElement
HTMLDataElement
HTMLDataListElement
HTMLDetailsElement
HTMLDialogElement
HTMLDirectoryElement
HTMLDivElement
HTMLDocument
HTMLElement
HTMLEmbedElement
HTMLFieldSetElement
HTMLFontElement
HTMLFormControlsCollection
HTMLFormElement
HTMLFrameElement
HTMLFrameSetElement
HTMLHRElement
HTMLHeadElement
HTMLHeadingElement
HTMLHtmlElement
HTMLIFrameElement
HTMLImageElement
HTMLInputElement
HTMLLIElement
HTMLLabelElement
HTMLLegendElement
HTMLLinkElement
HTMLMapElement
HTMLMarqueeElement
HTMLMediaElement
HTMLMenuElement
HTMLMetaElement
HTMLMeterElement
HTMLModElement
HTMLOListElement
HTMLObjectElement
HTMLOptGroupElement
HTMLOptionElement
HTMLOptionsCollection
HTMLOutputElement
HTMLParagraphElement
HTMLParamElement
HTMLPictureElement
HTMLPreElement
HTMLProgressElement
HTMLQuoteElement
HTMLScriptElement
HTMLSelectElement
HTMLSlotElement
HTMLSourceElement
HTMLSpanElement
HTMLStyleElement
HTMLTableCaptionElement
HTMLTableCellElement
HTMLTableColElement
HTMLTableElement
HTMLTableRowElement
HTMLTableSectionElement
HTMLTemplateElement
HTMLTextAreaElement
HTMLTimeElement
HTMLTitleElement
HTMLTrackElement
HTMLUListElement
HTMLUnknownElement
HTMLVideoElement
HashChangeEvent
Headers
History
IDBFactory
IDBOpenDBRequest
IDBRequest
IdleDeadline
Image
ImageBitmap
ImageData
Int16Array
Int32Array
Int8Array
InternalError
IntersectionObserver
IntersectionObserverEntry
Iterator
KeyboardEvent
KeyframeEffect
Location
Map
MathMLElement
MediaError
MediaList
MediaQueryList
MediaQueryListEvent
MessageChannel
MessageEvent
MessagePort
MimeType
MimeTypeArray
MouseEvent
MutationObserver
MutationRecord
NamedNodeMap
NavigateEvent
Navigation
NavigationCurrentEntryChangeEvent
NavigationDestination
NavigationHistoryEntry
NavigationTransition
Navigator
Node
NodeFilter
NodeIterator
NodeList
Number
Object
OfflineAudioContext
Option
OscillatorNode
PageTransitionEvent
Path2D
Performance
PerformanceEntry
PerformanceMark
PerformanceMeasure
PerformanceObserver
PerformanceObserverEntryList
PerformanceTiming
PeriodicWave
Plugin
PluginArray
PointerEvent
PopStateEvent
ProcessingInstruction
ProgressEvent
Promise
PromiseRejectionEvent
RadioNodeList
Range
RangeError
ReadableByteStreamController
ReadableStream
ReadableStreamBYOBReader
ReadableStreamBYOBRequest
ReadableStreamDefaultController
ReadableStreamDefaultReader
ReferenceError
RegExp
Request
ResizeObserver
ResizeObserverEntry
ResizeObserverSize
Response
SVGAElement
SVGAnimatedLength
SVGAnimatedNumber
SVGAnimatedRect
SVGAnimatedString
SVGAnimatedTransformList
SVGCircleElement
SVGClipPathElement
SVGDefsElement
SVGDescElement
SVGElement
SVGEllipseElement
SVGForeignObjectElement
SVGGeometryElement
SVGGradientElement
SVGGraphicsElement
SVGLength
SVGLineElement
SVGLinearGradientElement
SVGMaskElement
SVGMatrix
SVGPathElement
SVGPoint
SVGPolygonElement
SVGPolylineElement
SVGRadialGradientElement
SVGRect
SVGRectElement
SVGSVGElement
SVGScriptElement
SVGStopElement
SVGStyleElement
SVGSymbolElement
SVGTSpanElement
SVGTextContentElement
SVGTextElement
SVGTextPathElement
SVGTextPositioningElement
SVGTitleElement
SVGTransform
SVGTransformList
SVGUseElement
Screen
ScreenOrientation
Selection
Set
ShadowRealm
ShadowRoot
SharedArrayBuffer
StaticRange
Storage
String
StyleSheet
StyleSheetList
SubmitEvent
SubtleCrypto
SuppressedError
Symbol
SyntaxError
Text
TextDecoder
TextEncoder
TextMetrics
TimeRanges
ToggleEvent
TrackEvent
TransformStream
TransformStreamDefaultController
TreeWalker
TypeError
UIEvent
URIError
URL
URLSearchParams
Uint16Array
Uint32Array
Uint8Array
Uint8ClampedArray
UserActivation
ValidityState
VideoTrack
VideoTrackList
VisualViewport
WeakMap
WeakRef
WeakSet
WebGLContextEvent
WebGLRenderingContext
WebKitCSSMatrix
WebSocket
WheelEvent
Window
Worker
WritableStream
WritableStreamDefaultController
WritableStreamDefaultWriter
XMLDocument
XMLHttpRequest
XMLHttpRequestEventTarget
XMLHttpRequestUpload
XMLSerializer
__preventMultipleTestFunctions
animationFrame
asyncTest
printElement
println
promiseTest
test
timeout
webkitURL

View file

@ -0,0 +1,18 @@
<script src="include.js"></script>
<script>
test(() => {
const properties = Object.getOwnPropertyNames(window);
const constructors = properties.filter(prop => {
try {
const value = window[prop];
return typeof value === 'function' && !!value.prototype;
} catch (e) {
return false;
}
});
constructors.sort();
for (const c of constructors)
println(c);
});
</script>