!function(a,b){"use strict";if("undefined"!=typeof module&&module.exports&&"function"==typeof require)b(require("Ractive"));else if("function"==typeof define&&define.amd)define(["Ractive"],b);else{if(!a.Ractive)throw new Error("Could not find Ractive! It must be loaded before the Ractive-decorators-helpers plugin");b(a.Ractive)}}("undefined"!=typeof window?window:this,function(a){"use strict";a.decorators.create=function(a){return function(b){function c(){a.apply(b,arguments)}var d=Array.prototype.slice.call(arguments,1,arguments.length);return a.apply(b,d),{teardown:function(){},update:c}}},Array.isArray||(Array.isArray=function(a){var b;return b=a instanceof Array}),a.decorators.combine=function(a){return function(b,c){var d=[],e=this;return a.forEach(function(a){var f,g=Object.keys(a)[0];if(f=c[g]){var h=a[g],i=f?[b].concat(f):[b],j=h.apply(e,i);if(!j||!j.teardown)throw new Error('Decorator definition "'+g+'" must return an object with a teardown method');j._name=g,d.push(j)}}),{teardown:function(){d.forEach(function(a){a.teardown()})},update:function(a){d.forEach(function(c){var d=a[c._name];Array.isArray(d)||(d=[d]),c.update.apply(b,d)})}}}}});