Skip to content
This repository was archived by the owner on Oct 4, 2020. It is now read-only.

Commit 1e2a248

Browse files
Fix hasOwnProperty bug again and forever
1 parent e08029b commit 1e2a248

File tree

2 files changed

+11
-10
lines changed

2 files changed

+11
-10
lines changed

src/Data/StrMap.js

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
exports._copy = function (m) {
77
var r = {};
88
for (var k in m) {
9-
if (m.hasOwnProperty(k)) {
9+
if ({}.hasOwnProperty.call(m, k)) {
1010
r[k] = m[k];
1111
}
1212
}
@@ -17,7 +17,7 @@ exports._copyEff = function (m) {
1717
return function () {
1818
var r = {};
1919
for (var k in m) {
20-
if (m.hasOwnProperty(k)) {
20+
if ({}.hasOwnProperty.call(m, k)) {
2121
r[k] = m[k];
2222
}
2323
}
@@ -35,7 +35,7 @@ exports.runST = function (f) {
3535
exports._fmapStrMap = function (m0, f) {
3636
var m = {};
3737
for (var k in m0) {
38-
if (m0.hasOwnProperty(k)) {
38+
if ({}.hasOwnProperty.call(m0, k)) {
3939
m[k] = f(m0[k]);
4040
}
4141
}
@@ -46,7 +46,7 @@ exports._fmapStrMap = function (m0, f) {
4646
exports._mapWithKey = function (m0, f) {
4747
var m = {};
4848
for (var k in m0) {
49-
if (m0.hasOwnProperty(k)) {
49+
if ({}.hasOwnProperty.call(m0, k)) {
5050
m[k] = f(k)(m0[k]);
5151
}
5252
}
@@ -65,7 +65,7 @@ exports._foldM = function (bind) {
6565
};
6666
}
6767
for (var k in m) {
68-
if (m.hasOwnProperty(k)) {
68+
if ({}.hasOwnProperty.call(m, k)) {
6969
acc = bind(acc)(g(k));
7070
}
7171
}
@@ -78,7 +78,7 @@ exports._foldM = function (bind) {
7878
// jshint maxparams: 4
7979
exports._foldSCStrMap = function (m, z, f, fromMaybe) {
8080
for (var k in m) {
81-
if (m.hasOwnProperty(k)) {
81+
if ({}.hasOwnProperty.call(m, k)) {
8282
var maybeR = f(z)(k)(m[k]);
8383
var r = fromMaybe(null)(maybeR);
8484
if (r === null) return z;
@@ -92,7 +92,7 @@ exports._foldSCStrMap = function (m, z, f, fromMaybe) {
9292
exports.all = function (f) {
9393
return function (m) {
9494
for (var k in m) {
95-
if (m.hasOwnProperty(k) && !f(k)(m[k])) return false;
95+
if ({}.hasOwnProperty.call(m, k) && !f(k)(m[k])) return false;
9696
}
9797
return true;
9898
};
@@ -101,7 +101,7 @@ exports.all = function (f) {
101101
exports.size = function (m) {
102102
var s = 0;
103103
for (var k in m) {
104-
if (m.hasOwnProperty(k)) {
104+
if ({}.hasOwnProperty.call(m, k)) {
105105
++s;
106106
}
107107
}
@@ -130,7 +130,7 @@ function _collect(f) {
130130
return function (m) {
131131
var r = [];
132132
for (var k in m) {
133-
if (m.hasOwnProperty(k)) {
133+
if ({}.hasOwnProperty.call(m, k)) {
134134
r.push(f(k)(m[k]));
135135
}
136136
}

test/Test/Data/StrMap.purs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,8 @@ instance showInstruction :: (Show k, Show v) => Show (Instruction k v) where
3434
instance arbInstruction :: (Arbitrary v) => Arbitrary (Instruction String v) where
3535
arbitrary = do
3636
b <- arbitrary
37-
k <- arbitrary
37+
kIshasOwnProperty <- (&&) <$> arbitrary <*> arbitrary
38+
k <- if kIshasOwnProperty then pure "hasOwnProperty" else arbitrary
3839
case b of
3940
true -> do
4041
v <- arbitrary

0 commit comments

Comments
 (0)