 FUNCTION = 'function'
 CODE = 'code'
 
-ids = null
+ids = extensions = null
 
 uid = ->
 	'c' + Math.random().toString(16).slice(2)


	if isView
		code += "setImmediate(function(){\n"
	code += "for (var _id in ids){\n"
	code += "	ids[_id]._isReady = true; ids[_id].ready(); ids[_id].onReady.disconnectAll();\n"
	code += "}\n"

	assert obj.type is OBJECT, "stringObject: type must be an object"

	if getByType(obj.body, ID).length > 0
		if MODIFIERS_NAMES[obj.name]
			extensions[obj.id] = true
		else
			ids[obj.id] = true

	rendererCtor = Renderer[obj.name.split('.')[0]]
	isLocal = rendererCtor?
	decl = if isLocal then "new #{obj.name}" else "#{obj.name}"
	if MODIFIERS_NAMES[obj.name]
		r = "var #{obj.id} = extensions.#{obj.id} = #{decl}();\n"
	else
		r = "var #{obj.id} = ids.#{obj.id} = #{decl}();\n"
	r += "#{obj.id}._id = '#{obj.id}';\n"
	r += "#{obj.id}._isReady = false;\n"

