From 2a4b63b614edc482bee8ade5bfee686a643cb31b Mon Sep 17 00:00:00 2001 From: vsavkin Date: Sat, 18 Oct 2014 17:50:55 -0400 Subject: [PATCH] refactor(collection): use Map instead of Object --- modules/di/src/injector.js | 2 +- modules/di/src/key.js | 9 +++++---- modules/facade/src/collection.dart | 2 +- modules/facade/src/collection.es6 | 10 ++++------ 4 files changed, 11 insertions(+), 12 deletions(-) diff --git a/modules/di/src/injector.js b/modules/di/src/injector.js index 86ac5db99f..e99b797e79 100644 --- a/modules/di/src/injector.js +++ b/modules/di/src/injector.js @@ -45,7 +45,7 @@ export class Injector { _createListOfBindings(flattenBindings):List { var bindings = ListWrapper.createFixedSize(Key.numberOfKeys() + 1); - MapWrapper.forEach(flattenBindings, (keyId, v) => bindings[keyId] = v); + MapWrapper.forEach(flattenBindings, (v, keyId) => bindings[keyId] = v); return bindings; } diff --git a/modules/di/src/key.js b/modules/di/src/key.js index b9ec259079..a69087a73a 100644 --- a/modules/di/src/key.js +++ b/modules/di/src/key.js @@ -1,7 +1,7 @@ -import {MapWrapper} from 'facade/collection'; +import {MapWrapper, Map} from 'facade/collection'; import {FIELD, int, isPresent} from 'facade/lang'; -var _allKeys = {}; +var _allKeys = MapWrapper.create(); var _id:int = 0; export class Key { @@ -15,8 +15,9 @@ export class Key { static get(token) { if (token instanceof Key) return token; - var obj = MapWrapper.get(_allKeys, token); - if (isPresent(obj)) return obj; + if (MapWrapper.contains(_allKeys, token)) { + return MapWrapper.get(_allKeys, token); + } var newKey = new Key(token, ++_id); MapWrapper.set(_allKeys, token, newKey); diff --git a/modules/facade/src/collection.dart b/modules/facade/src/collection.dart index c3d72659d0..46f9e31b90 100644 --- a/modules/facade/src/collection.dart +++ b/modules/facade/src/collection.dart @@ -9,7 +9,7 @@ class MapWrapper { static void set(m, k, v){ m[k] = v; } static contains(m, k) => m.containsKey(k); static forEach(m, fn) { - m.forEach(fn); + m.forEach((k,v) => fn(v,k)); } } diff --git a/modules/facade/src/collection.es6 b/modules/facade/src/collection.es6 index d1dcdd4cac..647caa1c05 100644 --- a/modules/facade/src/collection.es6 +++ b/modules/facade/src/collection.es6 @@ -4,13 +4,11 @@ export var Set = window.Set; export class MapWrapper { static create():Map { return new Map(); } - static get(m, k) { return m[k]; } - static set(m, k, v) { m[k] = v; } - static contains(m, k) { return m[k] != undefined; } + static get(m, k) { return m.get(k); } + static set(m, k, v) { m.set(k,v); } + static contains(m, k) { return m.has(k); } static forEach(m, fn) { - for(var k in m) { - fn(k, m[k]); - } + m.forEach(fn); } }