mirror of
				https://kkgithub.com/actions/setup-python.git
				synced 2025-11-04 12:44:05 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			45 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
'use strict';
 | 
						|
 | 
						|
var ES = require('es-abstract/es7');
 | 
						|
 | 
						|
var defineProperty = Object.defineProperty;
 | 
						|
var getDescriptor = Object.getOwnPropertyDescriptor;
 | 
						|
var getOwnNames = Object.getOwnPropertyNames;
 | 
						|
var getSymbols = Object.getOwnPropertySymbols;
 | 
						|
var concat = Function.call.bind(Array.prototype.concat);
 | 
						|
var reduce = Function.call.bind(Array.prototype.reduce);
 | 
						|
var getAll = getSymbols ? function (obj) {
 | 
						|
	return concat(getOwnNames(obj), getSymbols(obj));
 | 
						|
} : getOwnNames;
 | 
						|
 | 
						|
var isES5 = ES.IsCallable(getDescriptor) && ES.IsCallable(getOwnNames);
 | 
						|
 | 
						|
var safePut = function put(obj, prop, val) { // eslint-disable-line max-params
 | 
						|
	if (defineProperty && prop in obj) {
 | 
						|
		defineProperty(obj, prop, {
 | 
						|
			configurable: true,
 | 
						|
			enumerable: true,
 | 
						|
			value: val,
 | 
						|
			writable: true
 | 
						|
		});
 | 
						|
	} else {
 | 
						|
		obj[prop] = val;
 | 
						|
	}
 | 
						|
};
 | 
						|
 | 
						|
module.exports = function getOwnPropertyDescriptors(value) {
 | 
						|
	ES.RequireObjectCoercible(value);
 | 
						|
	if (!isES5) {
 | 
						|
		throw new TypeError('getOwnPropertyDescriptors requires Object.getOwnPropertyDescriptor');
 | 
						|
	}
 | 
						|
 | 
						|
	var O = ES.ToObject(value);
 | 
						|
	return reduce(getAll(O), function (acc, key) {
 | 
						|
		var descriptor = getDescriptor(O, key);
 | 
						|
		if (typeof descriptor !== 'undefined') {
 | 
						|
			safePut(acc, key, descriptor);
 | 
						|
		}
 | 
						|
		return acc;
 | 
						|
	}, {});
 | 
						|
};
 |