diff options
| author | Misko Hevery | 2011-04-18 16:33:30 -0700 |
|---|---|---|
| committer | Misko Hevery | 2011-06-08 15:21:31 -0700 |
| commit | 8cad231bd219eddd518de8b8bd040d3f12f08d17 (patch) | |
| tree | 75016fa6de683a877916f45a0fd06b1d0f312231 /src/apis.js | |
| parent | 0e17ade959cc77369dc102d180e43be2af68505a (diff) | |
| download | angular.js-8cad231bd219eddd518de8b8bd040d3f12f08d17.tar.bz2 | |
Refactor injector to have invoke method for speed reasons
Diffstat (limited to 'src/apis.js')
| -rw-r--r-- | src/apis.js | 34 |
1 files changed, 31 insertions, 3 deletions
diff --git a/src/apis.js b/src/apis.js index 11fa9838..1e1bcae1 100644 --- a/src/apis.js +++ b/src/apis.js @@ -807,6 +807,16 @@ var angularFunction = { } }; +/** + * Computes a hash of an 'obj'. + * Hash of a: + * string is string + * number is number as string + * object is either call $hashKey function on object or assign unique hashKey id. + * + * @param obj + * @returns {String} hash string such that the same input will have the same hash string + */ function hashKey(obj) { var objType = typeof obj; var key = obj; @@ -821,17 +831,37 @@ function hashKey(obj) { return objType + ':' + key; } +/** + * HashMap which can use objects as keys + */ function HashMap(){} HashMap.prototype = { + /** + * Store key value pair + * @param key key to store can be any type + * @param value value to store can be any type + * @returns old value if any + */ put: function(key, value) { var _key = hashKey(key); var oldValue = this[_key]; this[_key] = value; return oldValue; }, + + /** + * @param key + * @returns the value for the key + */ get: function(key) { return this[hashKey(key)]; }, + + /** + * Remove the key/value pair + * @param key + * @returns value associated with key before it was removed + */ remove: function(key) { var _key = hashKey(key); var value = this[_key]; @@ -852,8 +882,6 @@ defineApi('Array', [angularGlobal, angularCollection, angularArray]); defineApi('Object', [angularGlobal, angularCollection, angularObject]); defineApi('String', [angularGlobal, angularString]); defineApi('Date', [angularGlobal, angularDate]); -// TODO: enable and document this API -//defineApi('HashMap', [HashMap]); //IE bug -angular['Date']['toString'] = angularDate['toString']; +angular.Date.toString = angularDate.toString; defineApi('Function', [angularGlobal, angularCollection, angularFunction]); |
