From 4e51fb0531b7367c8529c7fe877cb643f5f3e5a7 Mon Sep 17 00:00:00 2001 From: Conduitry Date: Sun, 18 Mar 2018 04:27:15 -0400 Subject: [PATCH] update docs --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 56548ec..315d27e 100644 --- a/README.md +++ b/README.md @@ -22,10 +22,12 @@ memoizedFunction(/* ... */) Keying of primitives, arrays, regexes, dates, and buffers works according to their values. Any additional custom properties added to the objects will *not* be considered as part of the key. (More specifically, arrays are keyed according to their length and their elements, regexes and buffers are keyed according to their `.toString()`s, and dates are keyed according to their `.getTime()`s.) -Keying of POJOs works according to their (own) enumerable and non-enumerable property names and values, without regard to order. Symbolic keys and their values are also part of the keying, but these *are* sensitive to order, due to the lack of a canonical ordering on symbols. +Keying of POJOs works according to their enumerable and non-enumerable property names and symbols and their values, without regard to the order they appear. Other objects (those without a prototype of `Object.prototype`) are simply keyed according to their identity (i.e., `===`). +Take a look at the unit tests in [`test.js`](test.js) for some specific examples of what will and will not get keyed the same way. + ## Misc - [changelog](CHANGELOG.md#readme)