TITANIUM_FUNCTION(SocketModule, createUDP) { TITANIUM_LOG_DEBUG("SocketModule::createUDP: "); ENSURE_OPTIONAL_OBJECT_AT_INDEX(parameters, 0); JSValue Titanium_property = get_context().get_global_object().GetProperty("Titanium"); TITANIUM_ASSERT(Titanium_property.IsObject()); // precondition JSObject Titanium = static_cast<JSObject>(Titanium_property); JSValue Network_property = Titanium.GetProperty("Network"); TITANIUM_ASSERT(Network_property.IsObject()); // precondition JSObject Network = static_cast<JSObject>(Network_property); JSValue Socket_property = Network.GetProperty("Socket"); TITANIUM_ASSERT(Socket_property.IsObject()); // precondition JSObject Socket = static_cast<JSObject>(Socket_property); JSValue UDP_property = Socket.GetProperty("UDP"); TITANIUM_ASSERT(UDP_property.IsObject()); // precondition JSObject UDP = static_cast<JSObject>(UDP_property); auto udp = UDP.CallAsConstructor(); applyProperties(parameters, udp); return udp; }
TITANIUM_FUNCTION(UIModule, create2DMatrix) { ENSURE_OPTIONAL_OBJECT_AT_INDEX(parameters, 0); // FIXME Macros didn't work because identifiers can't start with digits! JSValue Titanium_property = this_object.get_context().get_global_object().GetProperty("Titanium"); TITANIUM_ASSERT(Titanium_property.IsObject()); JSObject Titanium = static_cast<JSObject>(Titanium_property); JSValue UI_property = Titanium.GetProperty("UI"); TITANIUM_ASSERT(UI_property.IsObject()); JSObject UI = static_cast<JSObject>(UI_property); JSValue TwoDMatrix_property = UI.GetProperty("2DMatrix"); TITANIUM_ASSERT(TwoDMatrix_property.IsObject()); JSObject TwoDMatrix = static_cast<JSObject>(TwoDMatrix_property); auto TwoDMatrix_obj = TwoDMatrix.CallAsConstructor(parameters); Titanium::Module::applyProperties(parameters, TwoDMatrix_obj); return TwoDMatrix_obj; }