From: David Vázquez Date: Sun, 16 Feb 2014 19:38:45 +0000 (+0100) Subject: Merge branch 'hashtables' X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=6e5e8f58051235ab5eb4fbab77bf3275426a2cec;hp=5f08fa4cef4c16e019a9160faeeb83a5a6e1f47e;p=jscl.git Merge branch 'hashtables' --- diff --git a/src/hash-table.lisp b/src/hash-table.lisp index 8125e9e..0641ca8 100644 --- a/src/hash-table.lisp +++ b/src/hash-table.lisp @@ -13,21 +13,20 @@ ;; You should have received a copy of the GNU General Public License ;; along with JSCL. If not, see . -;;; Javascript dictionaries are the natural way to implement Common +;;; Plain Javascript objects are the natural way to implement Common ;;; Lisp hash tables. However, there is a big differences betweent -;;; them which we need to work around. Javascript dictionaries require -;;; the keys to be strings. To solve that, we map Lisp objects to -;;; strings such that "equivalent" values map to the same string, -;;; regarding the equality predicate used (one of `eq', `eql', `equal' -;;; and `equalp'). +;;; them which we need to work around. Javascript objects require the +;;; keys to be strings. To solve that, we map Lisp objects to strings +;;; such that "equivalent" values map to the same string, regarding +;;; the equality predicate used (one of `eq', `eql', `equal' and +;;; `equalp'). ;;; ;;; If a hash table has `eq' as test, we need to generate unique ;;; strings for each Lisp object. To do this, we tag the objects with -;;; a `$$jscl_id' property. As a special case, numbers are not -;;; objects, but they can be used for indexin a Javascript dictionary, -;;; we do not need to tag them. +;;; a `$$jscl_id' property. As a special case, numbers do not need to +;;; be tagged, as they can be used to index Javascript objects. (defvar *eq-hash-counter* 0) (defun eq-hash (x) (cond