diff options
author | Ulrich-Matthias Schäfer <ulima.ums@googlemail.com> | 2018-11-06 13:48:05 +0100 |
---|---|---|
committer | Ulrich-Matthias Schäfer <ulima.ums@googlemail.com> | 2018-11-06 13:48:05 +0100 |
commit | a0b13ebcacfd74b9f521110c7225bb404325bcd3 (patch) | |
tree | a07c5cc422645e31d7dfef81ce4e54f03f0945f6 /src/modules/optional/memory.js | |
parent | 9f2696e8a2cf7e4eebc1cc7e31027fe2070094fa (diff) | |
download | svg.js-a0b13ebcacfd74b9f521110c7225bb404325bcd3.tar.gz svg.js-a0b13ebcacfd74b9f521110c7225bb404325bcd3.zip |
reordered modules, add es6 build
Diffstat (limited to 'src/modules/optional/memory.js')
-rw-r--r-- | src/modules/optional/memory.js | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/modules/optional/memory.js b/src/modules/optional/memory.js new file mode 100644 index 0000000..d1bf7cf --- /dev/null +++ b/src/modules/optional/memory.js @@ -0,0 +1,39 @@ +import { registerMethods } from '../../utils/methods.js' +// FIXME: We need a constructor to set this up + +// Remember arbitrary data +export function remember (k, v) { + // remember every item in an object individually + if (typeof arguments[0] === 'object') { + for (var key in k) { + this.remember(key, k[key]) + } + } else if (arguments.length === 1) { + // retrieve memory + return this.memory()[k] + } else { + // store memory + this.memory()[k] = v + } + + return this +} + +// Erase a given memory +export function forget () { + if (arguments.length === 0) { + this._memory = {} + } else { + for (var i = arguments.length - 1; i >= 0; i--) { + delete this.memory()[arguments[i]] + } + } + return this +} + +// return local memory object +export function memory () { + return (this._memory = this._memory || {}) +} + +registerMethods('Dom', { remember, forget, memory }) |