Files
tubestation/addon-sdk/source/lib/sdk/ui/id.js
Kris Maglione 9f593b06aa Bug 1314861: Lazily load UI modules, as much as possible. r=rpl
MozReview-Commit-ID: JdHHw639Lwv
2017-04-07 16:28:42 -07:00

28 lines
770 B
JavaScript

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
'use strict';
module.metadata = {
'stability': 'experimental'
};
const method = require('../../method/core');
lazyRequire(this, '../util/uuid', "uuid");
// NOTE: use lang/functional memoize when it is updated to use WeakMap
function memoize(f) {
const memo = new WeakMap();
return function memoizer(o) {
let key = o;
if (!memo.has(key))
memo.set(key, f.apply(this, arguments));
return memo.get(key);
};
}
var identify = method('identify');
identify.define(Object, memoize(function() { return uuid(); }));
exports.identify = identify;