layer.min.js 1.5 KB

12
  1. // Copyright 2013 lovebear https://github.com/lovebear/layer.js
  2. "use strict";var layer={};"undefined"!=typeof module&&module.exports&&(layer._isNode=!0),layer._default_context=layer._isNode?{}:this,layer._find_context=function(e,t){for(var r=Object.keys(e),n=0,l=r.length;l>n;n++){var a=e[r[n]];if(a&&a===t)return[e,r[n]]}throw Error("Unable to find context")},layer._call=function(e,t,r){var n;switch(r.length){case 0:n=t.call(e);break;case 1:n=t.call(e,r[0]);break;case 2:n=t.call(e,r[0],r[1]);break;case 3:n=t.call(e,r[0],r[1],r[2]);break;case 4:n=t.call(e,r[0],r[1],r[2],r[3]);break;default:n=t.apply(e,r)}return n},layer.set=function(e,t,r){var n=!1;e||(e=layer._default_context);var l=this._find_context(e,t,this._context_level);if(l){var a=l[0][l[1]];l[0][l[1]]=function(){var e=[r,a];return function(){function t(){var o;if(void 0===r?r=0:(r+=1,a=arguments),e.length===r+1)o=layer._call(l[0],e[r],a);else{var c=a.length;a[c]=t,a.length=c+1,o=layer._call(l[0],e[r],a)}o&&(n=o)}var r,n,a=arguments;return t(),n}}(),l[0][l[1]].skip=a,l[0][l[1]].skip._context=l[0],n=!0}if(!n)throw Error("Could not set proxy")},layer.unset=function(e){var t=!1,r=e.skip;if(e.skip&&e.skip._context){var n=this._find_context(e.skip._context,e,this._context_level);n&&(r._context&&delete r._context,n[0][n[1]]=r,t=!0)}if(!t)throw Error("Could not unset proxy")},layer.replace=function(e,t,r){var n=!1,l=this._find_context(e,t,this._context_level);if(l&&(l[0][l[1]]=r,n=!0),!n)throw Error("Could not replace function")},layer._isNode&&(module.exports=layer);