##// END OF EJS Templates
repository reorganized
repository reorganized

File last commit:

r0:6a5387d69bf1 default
r0:6a5387d69bf1 default
Show More
override.js
72 lines | 1.7 KiB | application/javascript | JavascriptLexer
"use strict";
define([], function () {
var slice = Array.prototype.slice;
var override = function (method) {
var proxy;
/** @this target object */
proxy = function () {
var me = this;
var inherited = (this.getInherited && this.getInherited(proxy.nom, {
callee: proxy
})) || function () {};
return method.apply(me, [function () {
return inherited.apply(me, arguments);
}].concat(slice.apply(arguments)));
};
proxy.method = method;
proxy.overrides = true;
return proxy;
};
override.before = function (method) {
var proxy;
/** @this target object */
proxy = function () {
var me = this;
var inherited = (this.getInherited && this.getInherited(proxy.nom, {
callee: proxy
})) || function () {};
method.apply(me, arguments);
return inherited.apply(me, arguments);
};
proxy.method = method;
proxy.overrides = true;
return proxy;
};
override.after = function (method) {
var proxy;
/** @this target object */
proxy = function () {
var me = this;
var inherited = (this.getInherited && this.getInherited(proxy.nom, {
callee: proxy
})) || function () {};
inherited.apply(me, arguments);
return method.apply(me, arguments);
};
proxy.method = method;
proxy.overrides = true;
return proxy;
};
override.hide = function (method) {
method.overrides = false;
return method;
};
return override;
});