| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 | var isES5 = (function(){    "use strict";    return this === undefined;})();if (isES5) {    module.exports = {        freeze: Object.freeze,        defineProperty: Object.defineProperty,        getDescriptor: Object.getOwnPropertyDescriptor,        keys: Object.keys,        names: Object.getOwnPropertyNames,        getPrototypeOf: Object.getPrototypeOf,        isArray: Array.isArray,        isES5: isES5,        propertyIsWritable: function(obj, prop) {            var descriptor = Object.getOwnPropertyDescriptor(obj, prop);            return !!(!descriptor || descriptor.writable || descriptor.set);        }    };} else {    var has = {}.hasOwnProperty;    var str = {}.toString;    var proto = {}.constructor.prototype;    var ObjectKeys = function (o) {        var ret = [];        for (var key in o) {            if (has.call(o, key)) {                ret.push(key);            }        }        return ret;    };    var ObjectGetDescriptor = function(o, key) {        return {value: o[key]};    };    var ObjectDefineProperty = function (o, key, desc) {        o[key] = desc.value;        return o;    };    var ObjectFreeze = function (obj) {        return obj;    };    var ObjectGetPrototypeOf = function (obj) {        try {            return Object(obj).constructor.prototype;        }        catch (e) {            return proto;        }    };    var ArrayIsArray = function (obj) {        try {            return str.call(obj) === "[object Array]";        }        catch(e) {            return false;        }    };    module.exports = {        isArray: ArrayIsArray,        keys: ObjectKeys,        names: ObjectKeys,        defineProperty: ObjectDefineProperty,        getDescriptor: ObjectGetDescriptor,        freeze: ObjectFreeze,        getPrototypeOf: ObjectGetPrototypeOf,        isES5: isES5,        propertyIsWritable: function() {            return true;        }    };}
 |