docs: function find_builtins(reserved) {
        reserved.push.apply(reserved, domprops);
  
        // 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();
        });
  
        // NaN will be included due to Number.NaN
        [
            "null",
            "true",
            "false",
            "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(function(ctor) {
            Object.getOwnPropertyNames(ctor).map(add);
            if (ctor.prototype) {
                Object.getOwnPropertyNames(ctor.prototype).map(add);
            }
        });
        function add(name) {
            push_uniq(reserved, name);
        }
    }