blob: a4958f712932edfb4f72174f4c703e7b403dd688 [file] [log] [blame]
Tim van der Lippefdbd42e2020-04-07 15:14:36 +01001'use strict';
2
Tim van der Lippebc3a0b72021-11-08 15:22:37 +00003var RequireObjectCoercible = require('es-abstract/2021/RequireObjectCoercible');
Tim van der Lippe2c891972021-07-29 16:22:50 +01004var callBound = require('call-bind/callBound');
Tim van der Lippefdbd42e2020-04-07 15:14:36 +01005
6var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable');
Tim van der Lippebc3a0b72021-11-08 15:22:37 +00007var $push = callBound('Array.prototype.push');
Tim van der Lippefdbd42e2020-04-07 15:14:36 +01008
9module.exports = function values(O) {
10 var obj = RequireObjectCoercible(O);
11 var vals = [];
12 for (var key in obj) {
Tim van der Lippe2c891972021-07-29 16:22:50 +010013 if ($isEnumerable(obj, key)) { // checks own-ness as well
Tim van der Lippebc3a0b72021-11-08 15:22:37 +000014 $push(vals, obj[key]);
Tim van der Lippefdbd42e2020-04-07 15:14:36 +010015 }
16 }
17 return vals;
18};