// Run this script to build jsprops.json const fs = require('fs') // Compatibility fix for some standard defined globals not defined on every js environment var new_globals = ["Symbol", "Map", "Promise", "Proxy", "Reflect", "Set", "WeakMap", "WeakSet"]; var objects = {}; var global_ref = typeof global === "object" ? global : self; new_globals.forEach(function (new_global) { objects[new_global] = global_ref[new_global] || new Function(); }); const addedProps = new Set(); const add = propName => addedProps.add(propName); [ "null", "true", "false", "NaN", "Infinity", "-Infinity", "undefined", ].forEach(add); [ Object, Array, Function, Number, String, Boolean, Error, Math, Date, RegExp, objects.Symbol, ArrayBuffer, DataView, decodeURI, decodeURIComponent, encodeURI, encodeURIComponent, eval, EvalError, Float32Array, Float64Array, Int8Array, Int16Array, Int32Array, isFinite, isNaN, JSON, objects.Map, parseFloat, parseInt, objects.Promise, objects.Proxy, RangeError, ReferenceError, objects.Reflect, objects.Set, SyntaxError, TypeError, Uint8Array, Uint8ClampedArray, Uint16Array, Uint32Array, URIError, objects.WeakMap, objects.WeakSet ].forEach((ctor) => { Object.getOwnPropertyNames(ctor).map(add); if (ctor.prototype) { Object.getOwnPropertyNames(ctor.prototype).map(add); } }); const propsJSON = JSON.stringify([...addedProps].sort(), null, 4) fs.writeFileSync(__dirname + '/../src/lists/jsprops.json', propsJSON)