// Underscore-contrib (underscore.function.dispatch.js 0.3.0) // (c) 2013 Justin Ridgewell // Underscore-contrib may be freely distributed under the MIT license. (function(root) { // Baseline setup // -------------- // Establish the root object, `window` in the browser, or `global` on the server. var _ = root._ || require('underscore'); // Helpers // ------- // Create quick reference variable for speed. var slice = Array.prototype.slice; // Mixing in the attempt function // ------------------------ _.mixin({ // If object is not undefined or null then invoke the named `method` function // with `object` as context and arguments; otherwise, return undefined. attempt: function(object, method) { if (object == null) return void 0; var func = object[method]; var args = slice.call(arguments, 2); return _.isFunction(func) ? func.apply(object, args) : void 0; } }); })(this);