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.
		
		
		
		
			
				
					33 lines
				
				986 B
			
		
		
			
		
	
	
					33 lines
				
				986 B
			| 
								 
											4 years ago
										 
									 | 
							
								var DESCRIPTORS = require('../internals/descriptors');
							 | 
						||
| 
								 | 
							
								var objectKeys = require('../internals/object-keys');
							 | 
						||
| 
								 | 
							
								var toIndexedObject = require('../internals/to-indexed-object');
							 | 
						||
| 
								 | 
							
								var propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// `Object.{ entries, values }` methods implementation
							 | 
						||
| 
								 | 
							
								var createMethod = function (TO_ENTRIES) {
							 | 
						||
| 
								 | 
							
								  return function (it) {
							 | 
						||
| 
								 | 
							
								    var O = toIndexedObject(it);
							 | 
						||
| 
								 | 
							
								    var keys = objectKeys(O);
							 | 
						||
| 
								 | 
							
								    var length = keys.length;
							 | 
						||
| 
								 | 
							
								    var i = 0;
							 | 
						||
| 
								 | 
							
								    var result = [];
							 | 
						||
| 
								 | 
							
								    var key;
							 | 
						||
| 
								 | 
							
								    while (length > i) {
							 | 
						||
| 
								 | 
							
								      key = keys[i++];
							 | 
						||
| 
								 | 
							
								      if (!DESCRIPTORS || propertyIsEnumerable.call(O, key)) {
							 | 
						||
| 
								 | 
							
								        result.push(TO_ENTRIES ? [key, O[key]] : O[key]);
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    return result;
							 | 
						||
| 
								 | 
							
								  };
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								module.exports = {
							 | 
						||
| 
								 | 
							
								  // `Object.entries` method
							 | 
						||
| 
								 | 
							
								  // https://tc39.github.io/ecma262/#sec-object.entries
							 | 
						||
| 
								 | 
							
								  entries: createMethod(true),
							 | 
						||
| 
								 | 
							
								  // `Object.values` method
							 | 
						||
| 
								 | 
							
								  // https://tc39.github.io/ecma262/#sec-object.values
							 | 
						||
| 
								 | 
							
								  values: createMethod(false)
							 | 
						||
| 
								 | 
							
								};
							 |