void Analytics::JSExportInitialize() {
		JSExport<Analytics>::SetClassVersion(1);
		JSExport<Analytics>::SetParent(JSExport<Module>::Class());

		TITANIUM_ADD_PROPERTY_READONLY(Analytics, lastEvent);
		TITANIUM_ADD_FUNCTION(Analytics, _start);
		TITANIUM_ADD_FUNCTION(Analytics, featureEvent);
		TITANIUM_ADD_FUNCTION(Analytics, navEvent);
		TITANIUM_ADD_FUNCTION(Analytics, getLastEvent);
	}
	void IOStream::JSExportInitialize() 
	{
		JSExport<IOStream>::SetClassVersion(1);
		JSExport<IOStream>::SetParent(JSExport<Module>::Class());

		TITANIUM_ADD_FUNCTION(IOStream, read);
		TITANIUM_ADD_FUNCTION(IOStream, write);
		TITANIUM_ADD_FUNCTION(IOStream, isWritable);
		TITANIUM_ADD_FUNCTION(IOStream, isReadable);
		TITANIUM_ADD_FUNCTION(IOStream, close);
	}
		void DB::JSExportInitialize()
		{
			JSExport<DB>::SetClassVersion(1);
			JSExport<DB>::SetParent(JSExport<Module>::Class());
			TITANIUM_ADD_PROPERTY_READONLY(DB, file);
			TITANIUM_ADD_PROPERTY_READONLY(DB, lastInsertRowId);
			TITANIUM_ADD_PROPERTY_READONLY(DB, name);
			TITANIUM_ADD_PROPERTY_READONLY(DB, rowsAffected);

			TITANIUM_ADD_FUNCTION(DB, close);
			TITANIUM_ADD_FUNCTION(DB, execute);
			TITANIUM_ADD_FUNCTION(DB, remove);
		}
	void API::JSExportInitialize()
	{
		JSExport<API>::SetClassVersion(1);
		JSExport<API>::SetParent(JSExport<Module>::Class());

		TITANIUM_ADD_FUNCTION(API, info);
		TITANIUM_ADD_FUNCTION(API, warn);
		TITANIUM_ADD_FUNCTION(API, error);
		TITANIUM_ADD_FUNCTION(API, debug);
		TITANIUM_ADD_FUNCTION(API, trace);
		TITANIUM_ADD_FUNCTION(API, log);
	}
	void TiModule::JSExportInitialize()
	{
		JSExport<TiModule>::SetClassVersion(1);
		JSExport<TiModule>::SetParent(JSExport<Module>::Class());
		TITANIUM_ADD_PROPERTY_READONLY(TiModule, version);
		TITANIUM_ADD_PROPERTY_READONLY(TiModule, buildDate);
		TITANIUM_ADD_PROPERTY_READONLY(TiModule, buildHash);
		TITANIUM_ADD_PROPERTY(TiModule, userAgent);
		TITANIUM_ADD_FUNCTION(TiModule, getVersion);
		TITANIUM_ADD_FUNCTION(TiModule, getBuildDate);
		TITANIUM_ADD_FUNCTION(TiModule, getBuildHash);
		TITANIUM_ADD_FUNCTION(TiModule, getUserAgent);
		TITANIUM_ADD_FUNCTION(TiModule, setUserAgent);
		TITANIUM_ADD_FUNCTION(TiModule, createBuffer);
	}
	void TiModule::JSExportInitialize()
	{
		JSExport<TiModule>::SetClassVersion(1);
		JSExport<TiModule>::SetParent(JSExport<Module>::Class());
		TITANIUM_ADD_CONSTANT_PROPERTY(TiModule, version);
		TITANIUM_ADD_CONSTANT_PROPERTY(TiModule, buildDate);
		TITANIUM_ADD_CONSTANT_PROPERTY(TiModule, buildHash);

		TITANIUM_ADD_CONSTANT_PROPERTY(TiModule, Accelerometer);
		TITANIUM_ADD_CONSTANT_PROPERTY(TiModule, Analytics);
		TITANIUM_ADD_CONSTANT_PROPERTY(TiModule, API);
		TITANIUM_ADD_CONSTANT_PROPERTY(TiModule, App);
		TITANIUM_ADD_CONSTANT_PROPERTY(TiModule, Blob);
		TITANIUM_ADD_CONSTANT_PROPERTY(TiModule, BlobStream);
		TITANIUM_ADD_CONSTANT_PROPERTY(TiModule, Buffer);
		TITANIUM_ADD_CONSTANT_PROPERTY(TiModule, BufferStream);
		TITANIUM_ADD_CONSTANT_PROPERTY(TiModule, Codec);
		TITANIUM_ADD_CONSTANT_PROPERTY(TiModule, Contacts);
		TITANIUM_ADD_CONSTANT_PROPERTY(TiModule, Database);
		TITANIUM_ADD_CONSTANT_PROPERTY(TiModule, Filesystem);
		TITANIUM_ADD_CONSTANT_PROPERTY(TiModule, Geolocation);
		TITANIUM_ADD_CONSTANT_PROPERTY(TiModule, Gesture);
		TITANIUM_ADD_CONSTANT_PROPERTY(TiModule, IOStream);
		TITANIUM_ADD_CONSTANT_PROPERTY(TiModule, Locale);
		TITANIUM_ADD_CONSTANT_PROPERTY(TiModule, Map);
		TITANIUM_ADD_CONSTANT_PROPERTY(TiModule, Media);
		TITANIUM_ADD_CONSTANT_PROPERTY(TiModule, Network);
		TITANIUM_ADD_CONSTANT_PROPERTY(TiModule, Platform);
		TITANIUM_ADD_CONSTANT_PROPERTY(TiModule, Stream);
		TITANIUM_ADD_CONSTANT_PROPERTY(TiModule, UI);
		TITANIUM_ADD_CONSTANT_PROPERTY(TiModule, Utils);
		TITANIUM_ADD_CONSTANT_PROPERTY(TiModule, XML);

		TITANIUM_ADD_PROPERTY(TiModule, userAgent);
		TITANIUM_ADD_FUNCTION(TiModule, getVersion);
		TITANIUM_ADD_FUNCTION(TiModule, getBuildDate);
		TITANIUM_ADD_FUNCTION(TiModule, getBuildHash);
		TITANIUM_ADD_FUNCTION(TiModule, getUserAgent);
		TITANIUM_ADD_FUNCTION(TiModule, setUserAgent);
		TITANIUM_ADD_FUNCTION(TiModule, createBuffer);
	}
		void ListSection::JSExportInitialize() 
		{
			JSExport<ListSection>::SetClassVersion(1);
			JSExport<ListSection>::SetParent(JSExport<Module>::Class());

			TITANIUM_ADD_PROPERTY(ListSection, footerTitle);
			TITANIUM_ADD_PROPERTY(ListSection, headerTitle);
			TITANIUM_ADD_PROPERTY(ListSection, footerView);
			TITANIUM_ADD_PROPERTY(ListSection, headerView);
			TITANIUM_ADD_PROPERTY(ListSection, items);

			TITANIUM_ADD_FUNCTION(ListSection, appendItems);
			TITANIUM_ADD_FUNCTION(ListSection, insertItemsAt);
			TITANIUM_ADD_FUNCTION(ListSection, replaceItemsAt);
			TITANIUM_ADD_FUNCTION(ListSection, deleteItemsAt);
			TITANIUM_ADD_FUNCTION(ListSection, getItemAt);
			TITANIUM_ADD_FUNCTION(ListSection, updateItemAt);
			TITANIUM_ADD_FUNCTION(ListSection, getFooterTitle);
			TITANIUM_ADD_FUNCTION(ListSection, setFooterTitle);
			TITANIUM_ADD_FUNCTION(ListSection, getFooterView);
			TITANIUM_ADD_FUNCTION(ListSection, setFooterView);
			TITANIUM_ADD_FUNCTION(ListSection, getHeaderTitle);
			TITANIUM_ADD_FUNCTION(ListSection, setHeaderTitle);
			TITANIUM_ADD_FUNCTION(ListSection, getHeaderView);
			TITANIUM_ADD_FUNCTION(ListSection, setHeaderView);
			TITANIUM_ADD_FUNCTION(ListSection, getItems);
			TITANIUM_ADD_FUNCTION(ListSection, setItems);
		}
	void Buffer::JSExportInitialize() 
	{
		JSExport<Buffer>::SetClassVersion(1);
		JSExport<Buffer>::SetParent(JSExport<Module>::Class());

		TITANIUM_ADD_PROPERTY(Buffer, length);
		TITANIUM_ADD_PROPERTY(Buffer, value);
		TITANIUM_ADD_PROPERTY(Buffer, type);
		TITANIUM_ADD_PROPERTY(Buffer, byteOrder);

		TITANIUM_ADD_FUNCTION(Buffer, append);
		TITANIUM_ADD_FUNCTION(Buffer, insert);
		TITANIUM_ADD_FUNCTION(Buffer, copy);
		TITANIUM_ADD_FUNCTION(Buffer, clone);
		TITANIUM_ADD_FUNCTION(Buffer, fill);
		TITANIUM_ADD_FUNCTION(Buffer, clear);
		TITANIUM_ADD_FUNCTION(Buffer, release);
		TITANIUM_ADD_FUNCTION(Buffer, toString);
		TITANIUM_ADD_FUNCTION(Buffer, toBlob);
		TITANIUM_ADD_FUNCTION(Buffer, getLength);
		TITANIUM_ADD_FUNCTION(Buffer, setLength);
		TITANIUM_ADD_FUNCTION(Buffer, getValue);
		TITANIUM_ADD_FUNCTION(Buffer, setValue);
		TITANIUM_ADD_FUNCTION(Buffer, getType);
		TITANIUM_ADD_FUNCTION(Buffer, setType);
		TITANIUM_ADD_FUNCTION(Buffer, getByteOrder);
		TITANIUM_ADD_FUNCTION(Buffer, setByteOrder);
		JSExport<Buffer>::AddHasPropertyCallback(std::mem_fn(&Buffer::js_hasProperty));
		JSExport<Buffer>::AddGetPropertyCallback(std::mem_fn(&Buffer::js_getProperty));
		JSExport<Buffer>::AddSetPropertyCallback(std::mem_fn(&Buffer::js_setProperty));
	}
		void Tab::JSExportInitialize()
		{
			JSExport<Tab>::SetClassVersion(1);
			JSExport<Tab>::SetParent(JSExport<View>::Class());

			TITANIUM_ADD_PROPERTY(Tab, backgroundDisabledColor);
			TITANIUM_ADD_PROPERTY(Tab, backgroundDisabledImage);
			TITANIUM_ADD_PROPERTY(Tab, backgroundFocusedColor);
			TITANIUM_ADD_PROPERTY(Tab, backgroundFocusedImage);
			TITANIUM_ADD_PROPERTY(Tab, backgroundImage);
			TITANIUM_ADD_PROPERTY(Tab, backgroundSelectedColor);
			TITANIUM_ADD_PROPERTY(Tab, backgroundSelectedImage);
			TITANIUM_ADD_PROPERTY(Tab, touchEnabled);
			TITANIUM_ADD_PROPERTY(Tab, backgroundColor);
			TITANIUM_ADD_PROPERTY(Tab, active);
			TITANIUM_ADD_PROPERTY(Tab, activeTitleColor);
			TITANIUM_ADD_PROPERTY(Tab, activeIcon);
			TITANIUM_ADD_PROPERTY(Tab, badge);
			TITANIUM_ADD_PROPERTY(Tab, icon);
			TITANIUM_ADD_PROPERTY(Tab, iconIsMask);
			TITANIUM_ADD_PROPERTY(Tab, activeIconIsMask);
			TITANIUM_ADD_PROPERTY(Tab, title);
			TITANIUM_ADD_PROPERTY(Tab, titleColor);
			TITANIUM_ADD_PROPERTY(Tab, titleid);
			TITANIUM_ADD_PROPERTY(Tab, window);

			TITANIUM_ADD_FUNCTION(Tab, open);
			TITANIUM_ADD_FUNCTION(Tab, close);
			TITANIUM_ADD_FUNCTION(Tab, getBackgroundDisabledColor);
			TITANIUM_ADD_FUNCTION(Tab, setBackgroundDisabledColor);
			TITANIUM_ADD_FUNCTION(Tab, getBackgroundDisabledImage);
			TITANIUM_ADD_FUNCTION(Tab, setBackgroundDisabledImage);
			TITANIUM_ADD_FUNCTION(Tab, getBackgroundFocusedColor);
			TITANIUM_ADD_FUNCTION(Tab, setBackgroundFocusedColor);
			TITANIUM_ADD_FUNCTION(Tab, getBackgroundFocusedImage);
			TITANIUM_ADD_FUNCTION(Tab, setBackgroundFocusedImage);
			TITANIUM_ADD_FUNCTION(Tab, getBackgroundImage);
			TITANIUM_ADD_FUNCTION(Tab, setBackgroundImage);
			TITANIUM_ADD_FUNCTION(Tab, getBackgroundSelectedColor);
			TITANIUM_ADD_FUNCTION(Tab, setBackgroundSelectedColor);
			TITANIUM_ADD_FUNCTION(Tab, getBackgroundSelectedImage);
			TITANIUM_ADD_FUNCTION(Tab, setBackgroundSelectedImage);
			TITANIUM_ADD_FUNCTION(Tab, getTouchEnabled);
			TITANIUM_ADD_FUNCTION(Tab, setTouchEnabled);
			TITANIUM_ADD_FUNCTION(Tab, getBackgroundColor);
			TITANIUM_ADD_FUNCTION(Tab, setBackgroundColor);
			TITANIUM_ADD_FUNCTION(Tab, getActive);
			TITANIUM_ADD_FUNCTION(Tab, setActive);
			TITANIUM_ADD_FUNCTION(Tab, getActiveTitleColor);
			TITANIUM_ADD_FUNCTION(Tab, setActiveTitleColor);
			TITANIUM_ADD_FUNCTION(Tab, getActiveIcon);
			TITANIUM_ADD_FUNCTION(Tab, setActiveIcon);
			TITANIUM_ADD_FUNCTION(Tab, getBadge);
			TITANIUM_ADD_FUNCTION(Tab, setBadge);
			TITANIUM_ADD_FUNCTION(Tab, getIcon);
			TITANIUM_ADD_FUNCTION(Tab, setIcon);
			TITANIUM_ADD_FUNCTION(Tab, getIconIsMask);
			TITANIUM_ADD_FUNCTION(Tab, setIconIsMask);
			TITANIUM_ADD_FUNCTION(Tab, getActiveIconIsMask);
			TITANIUM_ADD_FUNCTION(Tab, setActiveIconIsMask);
			TITANIUM_ADD_FUNCTION(Tab, getTitle);
			TITANIUM_ADD_FUNCTION(Tab, setTitle);
			TITANIUM_ADD_FUNCTION(Tab, getTitleColor);
			TITANIUM_ADD_FUNCTION(Tab, setTitleColor);
			TITANIUM_ADD_FUNCTION(Tab, getTitleid);
			TITANIUM_ADD_FUNCTION(Tab, setTitleid);
			TITANIUM_ADD_FUNCTION(Tab, getWindow);
			TITANIUM_ADD_FUNCTION(Tab, setWindow);
		}