| function extendPrototype(sources,destination){ |
| var i, len = sources.length, sourcePrototype; |
| for (i = 0;i < len;i += 1) { |
| sourcePrototype = sources[i].prototype; |
| for (var attr in sourcePrototype) { |
| if (sourcePrototype.hasOwnProperty(attr)) destination.prototype[attr] = sourcePrototype[attr]; |
| } |
| } |
| } |
| |
| function getDescriptor(object, prop) { |
| return Object.getOwnPropertyDescriptor(object, prop); |
| } |
| |
| function createProxyFunction(prototype) { |
| function ProxyFunction(){} |
| ProxyFunction.prototype = prototype; |
| return ProxyFunction; |
| } |