Hello, Being new to the ImpactJS community I thought I'll start by contributing with a little bit of code.

I needed a quick way to communicate between objects on a per update basis and wrote an object to keep track of states without constantly needing to define everything to avoid errors and warnings. Nothing fancy just a quick solution that takes care of incompatibilities.

Will probably be updating it so I add the jsfiddle. Oh and it's not packed as a module due to jsfiddle.

jsfiddle link

window.ig.Bob = function(){
	this.current = {};
	this.log = {};
	
	};window.ig.Bob.prototype = {

		// Set to true / specified value
		set: function( name, value ){
			this.current[name] = typeof value !== 'undefined' ? value : true; },

		// Set to oposite of log
		toggle: function( name ){
			if(typeof this.log[name] === 'undefined') this.current[name] = true; },

		// Use logged value
		repeat: function( name ){
			if(typeof this.log[name] !== 'undefined') this.current[name] = this.log[name]; },

		// Get value
		get: function( name ){
			return typeof this.current[name] !== 'undefined' ? this.current[name] : false; },

		// Check if true
		chk: function( name ){ return (typeof this.current[name] !== 'undefined') },

		// Get log value
		lget: function( name ){
			return typeof this.log[name] !== 'undefined' ? this.log[name] : false; },

		// Check log if true
		lchk: function( name ){ return (typeof this.log[name] !== 'undefined') },

		// Get full list
		getAll: function(  ){ return this.current; },

		// Get full log
		getLog: function(  ){ return this.log; },

		// Log and reset current
		reset: function(  ){
			this.clean(this.log); /**/ this.copy(this.current, this.log); /**/ this.clean(this.current); /**/ },

		// Clean object
		clean: function( obj ){
			for (var p in obj) /**/ if(typeof obj[p] !== 'undefined') /**/ delete obj[p]; /**/ },

		// Copy object
		copy: function( source, target ){
			for(var k in source) /**/ target[k]=source[k]; /**/ },

		// Count object for debug
		count: function( countlog ){ var i = 0;
			if(countlog) for(var k in this.log) i++;
			else for(var k in this.current) i++;
			return i;
		}

};

(edit: updated the code) 19.01.13