Skip to content

Commit

Permalink
Implementation.
Browse files Browse the repository at this point in the history
  • Loading branch information
ljharb committed Sep 2, 2015
1 parent b02e54e commit 9a0c315
Show file tree
Hide file tree
Showing 4 changed files with 46 additions and 0 deletions.
14 changes: 14 additions & 0 deletions implementation.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
'use strict';

var ES = require('es-abstract/es7');
var keys = require('object-keys');

module.exports = function values(O) {
var obj = ES.RequireObjectCoercible(O);
var objKeys = keys(obj);
var vals = [];
for (var i = 0; i < objKeys.length; ++i) {
vals.push(obj[objKeys[i]]);
}
return vals;
};
15 changes: 15 additions & 0 deletions index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
'use strict';

var define = require('define-properties');

var implementation = require('./implementation');
var getPolyfill = require('./polyfill');
var shim = require('./shim');

define(implementation, {
getPolyfill: getPolyfill,
implementation: implementation,
shim: shim
});

module.exports = implementation;
7 changes: 7 additions & 0 deletions polyfill.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
'use strict';

var implementation = require('./implementation');

module.exports = function getPolyfill() {
return typeof Object.values === 'function' ? Object.values : implementation;
};
10 changes: 10 additions & 0 deletions shim.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
'use strict';

var getPolyfill = require('./polyfill');
var define = require('define-properties');

module.exports = function shimValues() {
var polyfill = getPolyfill();
define(Object, { values: polyfill }, { values: function () { return Object.values !== polyfill; } });
return polyfill;
};

0 comments on commit 9a0c315

Please sign in to comment.