1_.mixin( 2 { 3 bindKeyRight: function(context, key) { 4 var args = _.toArray(arguments).slice(2); 5 6 args.unshift(_.bindKey(context, key)); 7 8 return _.partialRight.apply(_, args); 9 }, 10 11 bindRight: function(fn, context) { 12 var args = _.toArray(arguments).slice(2); 13 14 args.unshift(_.bind(fn, context)); 15 16 return _.partialRight.apply(_, args); 17 }, 18 19 cached: function(fn) { 20 return _.memoize( 21 fn, 22 function() { 23 return (arguments.length > 1) ? Array.prototype.join.call(arguments, '_') : String(arguments[0]); 24 } 25 ); 26 } 27 } 28); 29 30_.mixin( 31 { 32 namespace: function(obj, path) { 33 if (arguments.length === 1) { 34 path = obj; 35 obj = this; 36 } 37 38 if (_.isString(path)) { 39 path = path.split('.'); 40 } 41 42 for (var i = 0; i < path.length; i++) { 43 var name = path[i]; 44 45 obj[name] = obj[name] || {}; 46 obj = obj[name]; 47 } 48 49 return obj; 50 } 51 }, 52 { 53 chain: false 54 } 55);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.