--- /dev/null
+module.exports = ProxyHandler;
+
+function ProxyHandler(cbs) {
+ this._cbs = cbs || {};
+}
+
+var EVENTS = require("./").EVENTS;
+Object.keys(EVENTS).forEach(function(name) {
+ if (EVENTS[name] === 0) {
+ name = "on" + name;
+ ProxyHandler.prototype[name] = function() {
+ if (this._cbs[name]) this._cbs[name]();
+ };
+ } else if (EVENTS[name] === 1) {
+ name = "on" + name;
+ ProxyHandler.prototype[name] = function(a) {
+ if (this._cbs[name]) this._cbs[name](a);
+ };
+ } else if (EVENTS[name] === 2) {
+ name = "on" + name;
+ ProxyHandler.prototype[name] = function(a, b) {
+ if (this._cbs[name]) this._cbs[name](a, b);
+ };
+ } else {
+ throw Error("wrong number of arguments");
+ }
+});