in Clients/AmbrosiaJS/Ambrosia-Node/src/Meta.ts [1292:1368]
private static isConstructedBuiltInObject(obj: any): boolean
{
// See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects
// Aside: An alternative, but MUCH slower approach, is this:
// const isBuiltInObject: boolean = /\{\s+\[native code\]/.test(Function.prototype.toString.call(obj.constructor))
const isBuiltInObject: boolean =
// Fundamental objects
// (obj instanceof Object) || // Omitted so that user-defined objects (eg. class instances) don't get reported as being built-in objects
(obj instanceof Function) ||
(obj instanceof Boolean) ||
(obj instanceof Symbol) ||
// Error objects
(obj instanceof Error) ||
// (obj instanceof AggregateError) || // No TypeScript definition for this [in TS 4.1.2]
(obj instanceof EvalError) ||
// (obj instanceof InternalError) || // No TypeScript definition for this [in TS 4.1.2]
(obj instanceof RangeError) ||
(obj instanceof ReferenceError) ||
(obj instanceof SyntaxError) ||
(obj instanceof TypeError) ||
(obj instanceof URIError) ||
// Numbers and dates
(obj instanceof Number) ||
(obj instanceof BigInt) ||
(obj instanceof Date) ||
// Text processing
(obj instanceof String) ||
(obj instanceof RegExp) ||
// Indexed collections
(obj instanceof Array) ||
(obj instanceof Int8Array) ||
(obj instanceof Uint8Array) ||
(obj instanceof Uint8ClampedArray) ||
(obj instanceof Int16Array) ||
(obj instanceof Uint16Array) ||
(obj instanceof Int32Array) ||
(obj instanceof Uint32Array) ||
(obj instanceof Float32Array) ||
(obj instanceof Float64Array) ||
(obj instanceof BigInt64Array) ||
(obj instanceof BigUint64Array) ||
// Keyed collections
(obj instanceof Map) ||
(obj instanceof Set) ||
(obj instanceof WeakMap) ||
(obj instanceof WeakSet) ||
// Structured data
(obj instanceof ArrayBuffer) ||
(obj instanceof SharedArrayBuffer) ||
(obj instanceof DataView) ||
// Control abstraction objects
(obj instanceof Promise) ||
// Internationalization
(obj instanceof Intl.Collator) ||
(obj instanceof Intl.DateTimeFormat) ||
(obj instanceof Intl.NumberFormat) ||
(obj instanceof Intl.PluralRules) ||
// WebAssembly
(obj instanceof WebAssembly.Module) ||
(obj instanceof WebAssembly.Instance) ||
(obj instanceof WebAssembly.Memory) ||
(obj instanceof WebAssembly.Table) ||
(obj instanceof WebAssembly.CompileError) ||
(obj instanceof WebAssembly.LinkError) ||
(obj instanceof WebAssembly.RuntimeError);
return (isBuiltInObject);
}