You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					81 lines
				
				1.9 KiB
			
		
		
			
		
	
	
					81 lines
				
				1.9 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								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;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    };
							 | 
						||
| 
								 | 
							
								}
							 |