summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/memoize.js4
-rwxr-xr-xtest/test-async.js8
2 files changed, 10 insertions, 2 deletions
diff --git a/lib/memoize.js b/lib/memoize.js
index 963e031..30b989c 100644
--- a/lib/memoize.js
+++ b/lib/memoize.js
@@ -7,8 +7,8 @@ import has from 'lodash/has';
import setImmediate from './internal/setImmediate';
export default function memoize(fn, hasher) {
- var memo = {};
- var queues = {};
+ var memo = Object.create(null);
+ var queues = Object.create(null);
hasher = hasher || identity;
var memoized = rest(function memoized(args) {
var callback = args.pop();
diff --git a/test/test-async.js b/test/test-async.js
index 2b26b51..e27dd33 100755
--- a/test/test-async.js
+++ b/test/test-async.js
@@ -4296,6 +4296,14 @@ exports['memoize'] = {
},
'avoid __proto__ key return undefined': function (test) {
+ // Skip test if there is a Object.create bug (node 0.10 and some Chrome 30x versions)
+ var x = Object.create(null);
+ /* jshint proto: true */
+ x.__proto__ = 'foo';
+ if (x.__proto__ !== 'foo') {
+ return test.done();
+ }
+
test.expect(1);
var fn = async.memoize(function(name, callback) {
setTimeout(function(){