advice.js
function(base, before) {
            return Advice.around(base, function() {
                var args = [].slice.call(arguments, 0),
                    orig = args.shift(),
                    beforeFn;

                beforeFn = (typeof before == 'function') ? before : before.obj[before.fnName];
                beforeFn.apply(this, args);
                return (orig).apply(this, args);
            });
        }
function(base, before) {
            return Advice.around(base, function() {
                var args = [].slice.call(arguments, 0),
                    orig = args.shift(),
                    beforeFn;

                beforeFn = (typeof before == 'function') ? before : before.obj[before.fnName];
                beforeFn.apply(this, args);
                return (orig).apply(this, args);
            });
        }
#### before
will call the new function before the old one with same arguments
on the target object.
@param base {function} Base Function
@param before {function} Function to be called before base fn
@returns {function}