2015-04-25 20:58:39 +08:00
|
|
|
export function extend(object, func, extension) {
|
2015-05-05 15:34:42 +08:00
|
|
|
var original = object[func];
|
2015-04-25 20:58:39 +08:00
|
|
|
object[func] = function() {
|
|
|
|
var args = [].slice.apply(arguments);
|
2015-05-05 15:34:42 +08:00
|
|
|
var value = original.apply(this, args);
|
|
|
|
extension.apply(this, [value].concat(args));
|
|
|
|
return value;
|
2015-04-25 20:58:39 +08:00
|
|
|
}
|
|
|
|
};
|
2015-05-02 07:16:38 +08:00
|
|
|
|
|
|
|
export function override(object, func, override) {
|
2015-05-05 15:34:42 +08:00
|
|
|
var original = object[func];
|
2015-05-02 07:16:38 +08:00
|
|
|
object[func] = function() {
|
|
|
|
var args = [].slice.apply(arguments);
|
2015-05-05 15:34:42 +08:00
|
|
|
return override.apply(this, [original.bind(this)].concat(args));
|
2015-05-02 07:16:38 +08:00
|
|
|
}
|
2015-05-05 15:34:42 +08:00
|
|
|
};
|