UNPKG

scarlet

Version:

The simple fast javascript interceptor for methods and properties.

30 lines (22 loc) 616 B
var assert = require("assert"); module.exports = function ProxyFunction(actualFunction) { "use strict"; assert(actualFunction); this.__typename__ = "scarlet.lib.proxies.ProxyFunction"; this.wrap = function(whenCalled, replaceFunctionCallback) { assert(whenCalled); var proxiedFunction = function() { var args = Array.prototype.slice.call(arguments); return whenCalled.call(this, actualFunction.name, actualFunction, args); }; if (replaceFunctionCallback) replaceFunctionCallback(proxiedFunction); return this; }; this.unwrap = function() { return actualFunction; }; };