JavaScript: Global Functions Without Property Key "prototype"
Here is code to print all global function objects and report if they have key
"prototype"
.
// print all global function objects and report if they have key "prototype" const x_yes = []; const x_no = []; (Reflect.ownKeys(globalThis)).forEach( (x) => { if (typeof globalThis[x] === "function") { if (globalThis[x].hasOwnProperty("prototype")) { x_yes.push(x); } else x_no.push(x); } }, ); console.log("Has key prototype", x_yes); /* [ "Object", "Function", "Array", "Number", "Boolean", "String", "Symbol", "Date", "Promise", "RegExp", "Error", "AggregateError", "EvalError", "RangeError", "ReferenceError", "SyntaxError", "TypeError", "URIError", "ArrayBuffer", "Uint8Array", "Int8Array", "Uint16Array", "Int16Array", "Uint32Array", "Int32Array", "Float32Array", "Float64Array", "Uint8ClampedArray", "BigUint64Array", "BigInt64Array", "DataView", "Map", "BigInt", "Set", "WeakMap", "WeakSet", "FinalizationRegistry", "WeakRef", "queueMicrotask", "Event", "EventTarget", "ErrorEvent", "CloseEvent", "MessageEvent", "CustomEvent", "ProgressEvent", "reportError", "AbortSignal", "AbortController", "SharedArrayBuffer", "Blob", "ByteLengthQueuingStrategy", "CompressionStream", "CountQueuingStrategy", "CryptoKey", "DecompressionStream", "DOMException", "File", "FileReader", "FormData", "Headers", "Performance", "PerformanceEntry", "PerformanceMark", "PerformanceMeasure", "ReadableStream", "ReadableStreamDefaultReader", "Request", "Response", "TextDecoder", "TextEncoder", "TextDecoderStream", "TextEncoderStream", "TransformStream", "URL", "URLPattern", "URLSearchParams", "WebSocket", "MessageChannel", "MessagePort", "Worker", "WritableStream", "WritableStreamDefaultWriter", "WritableStreamDefaultController", "ReadableByteStreamController", "ReadableStreamBYOBReader", "ReadableStreamBYOBRequest", "ReadableStreamDefaultController", "TransformStreamDefaultController", "atob", "btoa", "clearInterval", "clearTimeout", "Crypto", "SubtleCrypto", "fetch", "setInterval", "setTimeout", "structuredClone", "Location", ... 7 more items ] */ console.log("No key prototype", x_no); /* [ "parseFloat", "parseInt", "Proxy", "decodeURI", "decodeURIComponent", "encodeURI", "encodeURIComponent", "escape", "unescape", "eval", "isFinite", "isNaN", "dispatchEvent", "addEventListener", "removeEventListener" ] */