feat: add Object.entries

This commit is contained in:
Mariusz Nowak
2018-05-29 09:58:31 +02:00
parent c8df624dea
commit c294f80d7e
9 changed files with 58 additions and 0 deletions
+10
View File
@@ -0,0 +1,10 @@
"use strict";
if (!require("./is-implemented")()) {
Object.defineProperty(Object, "entries", {
value: require("./shim"),
configurable: true,
enumerable: false,
writable: true
});
}
+3
View File
@@ -0,0 +1,3 @@
"use strict";
module.exports = require("./is-implemented")() ? Object.entries : require("./shim");
+9
View File
@@ -0,0 +1,9 @@
"use strict";
module.exports = function () {
try {
return Object.entries({ foo: 12 })[0][0] === "foo";
} catch (e) {
return false;
}
};
+14
View File
@@ -0,0 +1,14 @@
"use strict";
var ensureValue = require("../valid-value");
module.exports = function (object) {
ensureValue(object);
var result = [];
object = Object(object);
for (var key in object) {
if (!propertyIsEnumerable.call(object, key)) continue;
result.push([key, object[key]]);
}
return result;
};
+1
View File
@@ -18,6 +18,7 @@ module.exports = {
ensurePlainFunction: require("./ensure-plain-function"),
ensurePromise: require("./ensure-promise"),
ensureThenable: require("./ensure-thenable"),
entries: require("./entries"),
eq: require("./eq"),
every: require("./every"),
filter: require("./filter"),
+5
View File
@@ -0,0 +1,5 @@
"use strict";
var isImplemented = require("../../../object/entries/is-implemented");
module.exports = function (a) { a(isImplemented(), true); };
+3
View File
@@ -0,0 +1,3 @@
"use strict";
module.exports = require("./shim");
+5
View File
@@ -0,0 +1,5 @@
"use strict";
module.exports = function (t, a) {
a(typeof t(), "boolean");
};
+8
View File
@@ -0,0 +1,8 @@
"use strict";
module.exports = function (t, a) {
a.deep(t({ foo: "bar" }), [["foo", "bar"]], "Object");
a.deep(t("raz"), [["0", "r"], ["1", "a"], ["2", "z"]], "Primitive");
a.throws(function () { t(); }, TypeError, "Undefined");
a.throws(function () { t(null); }, TypeError, "Undefined");
};