get: function (src) { var keys = this.keys, _keys = this._keys; if (keys.pending) { _keys.length = 0; _keys.push.apply(_keys, utils.chain(keys). map(function (key) { var from, to, by; switch (typeof key) { case 'string': case 'number': return key; case 'object': if (!utils.isArray(key)) { from = key.from || 0; to = key.to + 1; by = key.by || 1; key = utils.range(from, to, by); } return key; } }). flatten(). value()); keys.pending = false; } return utils.pick(src, _keys); }
tokens: { get: function () { if (!this._tokens) { this._tokens = utils.chain(this). keys(). map(function (key) { var fn; if (key !== 'define' && key !== 'tokens' && key !== 'parse' && (fn = exports[key]) && typeof fn === 'function' && fn.token instanceof RegExp ) { return fn.token; } }). compact(). sort(function (a, b) { return b.source.length - a.source.length; }). value(); } return this._tokens; }, enumerable: true },