rem: var args = $A(arguments).associate({'inline': 'string', 'properties': 'object', 'text': 'string', 'children': 'array', 'callback': 'function'}); 
add: var args = Array.associate(arguments, {'inline': 'string', 'properties': 'object', 'text': 'string', 'children': 'array', 'callback': 'function'}); 
context: var $build = function() {	var args = $A(arguments).associate({'inline': 'string', 'properties': 'object', 'text': 'string', 'children': 'array', 'callback': 'function'});	var element = false;	var parent = ($type(this) == 'element') ? this : false;	if (!$build.root){		$build.root = parent || true;		$build.clearRefs();	}	if (args.inline){		var inline = Selectors.$parse(args.inline);		if (inline.tag == '*') return false;		var attributes = $merge(args.properties || {});		if (inline.id) attributes.id = inline.id;		inline.attributes.each(function(item) {			attributes[item[1]] = item[3];		});		inline.pseudos.each(function(item) {			switch (item.name){				case 'ref': args.ref = item.argument; break;			}		});		if (inline.classes.length) attributes['class'] = ((attributes['class'] || '') + ' ' + inline.classes.join(' ')).trim();		element = new Element(inline.tag, attributes);		if (args.text) element.appendText(args.text);		if (args.callback) element = args.callback(element, args);		if (args.ref) $build.refs[args.ref] = element;	}	if (args.children && args.children.length){		var childs = (element) ? args.children : $A(arguments);		if ($type(childs[0]) == 'string'){			$build.apply(element || parent, childs);		} else{			var collect = childs.map(function(child) {				return $build.apply(element || parent, child);			});			if (!element) return new Elements(collect, true);		}	}	return (parent) ? element.inject(parent) : element;};
meta: 5409	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/5409/cb4ed86abbd4ce91b07a45c4671c3cb8a8e2c5cf/Element.Builder.js/buggy/Element/Element.Builder.js