From 587288a6573fc2331d2486ca1963b7c0185d9953 Mon Sep 17 00:00:00 2001 From: Daniel Freedman Date: Fri, 13 Sep 2013 17:19:56 -0700 Subject: [PATCH] remove sidetable, use WeakMap --- build.json | 2 +- karma.conf.js | 2 +- pointergestures.js | 2 +- src/dispatcher.js | 4 ++-- src/sidetable.js | 40 ---------------------------------------- 5 files changed, 5 insertions(+), 45 deletions(-) delete mode 100644 src/sidetable.js diff --git a/build.json b/build.json index 7a34a58..8ff2f1c 100644 --- a/build.json +++ b/build.json @@ -1,7 +1,7 @@ [ "src/PointerGestureEvent.js", "src/initialize.js", - "src/sidetable.js", + "../WeakMap/weakmap.js", "src/pointermap.js", "src/dispatcher.js", "src/hold.js", diff --git a/karma.conf.js b/karma.conf.js index 128c4c8..2519737 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -21,7 +21,7 @@ module.exports = function(karma) { 'PointerEvents/src/capture.js', 'PointerGestures/src/PointerGestureEvent.js', 'PointerGestures/src/initialize.js', - 'PointerGestures/src/sidetable.js', + 'WeakMap/weakmap.js', 'PointerGestures/src/pointermap.js', 'PointerGestures/src/dispatcher.js', 'PointerGestures/src/hold.js', diff --git a/pointergestures.js b/pointergestures.js index 24657a5..0b27094 100644 --- a/pointergestures.js +++ b/pointergestures.js @@ -12,7 +12,7 @@ var modules = [ 'src/PointerGestureEvent.js', 'src/initialize.js', - 'src/sidetable.js', + '../WeakMap/weakmap.js', 'src/pointermap.js', 'src/dispatcher.js', 'src/hold.js', diff --git a/src/dispatcher.js b/src/dispatcher.js index d39f644..1ea4c49 100644 --- a/src/dispatcher.js +++ b/src/dispatcher.js @@ -6,8 +6,8 @@ (function(scope) { var dispatcher = { - handledEvents: new SideTable, - targets: new SideTable, + handledEvents: new WeakMap, + targets: new WeakMap, handlers: {}, recognizers: {}, events: {}, diff --git a/src/sidetable.js b/src/sidetable.js deleted file mode 100644 index 4d79d45..0000000 --- a/src/sidetable.js +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright 2012 The Polymer Authors. All rights reserved. - * Use of this source code is governed by a BSD-style - * license that can be found in the LICENSE file. - */ - -// SideTable is a weak map where possible. If WeakMap is not available the -// association is stored as an expando property. -var SideTable; -// TODO(arv): WeakMap does not allow for Node etc to be keys in Firefox -if (typeof WeakMap !== 'undefined' && navigator.userAgent.indexOf('Firefox/') < 0) { - SideTable = WeakMap; -} else { - (function() { - var defineProperty = Object.defineProperty; - var counter = Date.now() % 1e9; - - SideTable = function() { - this.name = '__st' + (Math.random() * 1e9 >>> 0) + (counter++ + '__'); - }; - - SideTable.prototype = { - set: function(key, value) { - var entry = key[this.name]; - if (entry && entry[0] === key) - entry[1] = value; - else - defineProperty(key, this.name, {value: [key, value], writable: true}); - }, - get: function(key) { - var entry; - return (entry = key[this.name]) && entry[0] === key ? - entry[1] : undefined; - }, - delete: function(key) { - this.set(key, undefined); - } - } - })(); -}