var Pumpkin = function()
{
	this.data = null;
	this.works = {};
};

Pumpkin.prototype.setData = function(data)
{
	this.data = data;
};

Pumpkin.prototype.addWork = function(name, work)
{
	this.works[name] = work;
};

Pumpkin.prototype.execute = function(list, done, index, params)
{
	if(list)
	{
		if(!index)
			index = 0;
		
		if(typeof index == 'object')
		{
			params = index;
			index = 0;
		}
		
		if(list.length == index)
		{
			done.call({data : this.data}, params);
			return;
		}
		
		var that = this;
		var work = this.works[list[index]];
		work.call({data : this.data, next : function(params)
		{
			that.execute(list, done, index+1, params);
		}}, params);
	}
};

module.exports = Pumpkin;
@@ -669,16 +669,23 @@
 %0A%09%7D%0A%7D;%0A%0A
+try%0A%7B%0A%09
 module.e
@@ -701,8 +701,25 @@
 Pumpkin;
+%09%0A%7D%0Acatch(err)%0A%7B%7D

Update for using pumpkin on html.