// THE AUTOGENERATED LICENSE. ALL THE RIGHTS ARE RESERVED BY ROBOTS.

// WARNING: This file has automatically been generated on Fri, 27 Sep 2019 21:28:43 CDT.
// Code generated by https://git.io/c-for-go. DO NOT EDIT.

package ultralight

/*
#cgo CFLAGS: -I../include
#cgo LDFLAGS: -L${SRCDIR}/libs -lUltralightCore -lWebCore -lUltralight -lAppCore
#include "AppCore/CAPI.h"
#include <stdlib.h>
#include "cgo_helpers.h"
*/
import "C"
import (
	"runtime"
	"unsafe"
)

// UlCreateApp function as declared in AppCore/CAPI.h:58
func UlCreateApp(config ULConfig) ULApp {
	cconfig, _ := *(*C.ULConfig)(unsafe.Pointer(&config)), cgoAllocsUnknown
	__ret := C.ulCreateApp(cconfig)
	__v := *(*ULApp)(unsafe.Pointer(&__ret))
	return __v
}

// UlDestroyApp function as declared in AppCore/CAPI.h:63
func UlDestroyApp(app ULApp) {
	capp, _ := *(*C.ULApp)(unsafe.Pointer(&app)), cgoAllocsUnknown
	C.ulDestroyApp(capp)
}

// UlAppSetWindow function as declared in AppCore/CAPI.h:73
func UlAppSetWindow(app ULApp, window ULWindow) {
	capp, _ := *(*C.ULApp)(unsafe.Pointer(&app)), cgoAllocsUnknown
	cwindow, _ := *(*C.ULWindow)(unsafe.Pointer(&window)), cgoAllocsUnknown
	C.ulAppSetWindow(capp, cwindow)
}

// UlAppGetWindow function as declared in AppCore/CAPI.h:78
func UlAppGetWindow(app ULApp) ULWindow {
	capp, _ := *(*C.ULApp)(unsafe.Pointer(&app)), cgoAllocsUnknown
	__ret := C.ulAppGetWindow(capp)
	__v := *(*ULWindow)(unsafe.Pointer(&__ret))
	return __v
}

// UlAppSetUpdateCallback function as declared in AppCore/CAPI.h:90
func UlAppSetUpdateCallback(app ULApp, callback ULUpdateCallback, user_data unsafe.Pointer) {
	capp, _ := *(*C.ULApp)(unsafe.Pointer(&app)), cgoAllocsUnknown
	ccallback, _ := callback.PassValue()
	cuser_data, _ := user_data, cgoAllocsUnknown
	C.ulAppSetUpdateCallback(capp, ccallback, cuser_data)
}

// UlAppIsRunning function as declared in AppCore/CAPI.h:96
func UlAppIsRunning(app ULApp) bool {
	capp, _ := *(*C.ULApp)(unsafe.Pointer(&app)), cgoAllocsUnknown
	__ret := C.ulAppIsRunning(capp)
	__v := (bool)(__ret)
	return __v
}

// UlAppGetMainMonitor function as declared in AppCore/CAPI.h:103
func UlAppGetMainMonitor(app ULApp) ULMonitor {
	capp, _ := *(*C.ULApp)(unsafe.Pointer(&app)), cgoAllocsUnknown
	__ret := C.ulAppGetMainMonitor(capp)
	__v := *(*ULMonitor)(unsafe.Pointer(&__ret))
	return __v
}

// UlAppGetRenderer function as declared in AppCore/CAPI.h:108
func UlAppGetRenderer(app ULApp) ULRenderer {
	capp, _ := *(*C.ULApp)(unsafe.Pointer(&app)), cgoAllocsUnknown
	__ret := C.ulAppGetRenderer(capp)
	__v := *(*ULRenderer)(unsafe.Pointer(&__ret))
	return __v
}

// UlAppRun function as declared in AppCore/CAPI.h:115
func UlAppRun(app ULApp) {
	capp, _ := *(*C.ULApp)(unsafe.Pointer(&app)), cgoAllocsUnknown
	C.ulAppRun(capp)
}

// UlAppQuit function as declared in AppCore/CAPI.h:120
func UlAppQuit(app ULApp) {
	capp, _ := *(*C.ULApp)(unsafe.Pointer(&app)), cgoAllocsUnknown
	C.ulAppQuit(capp)
}

// UlMonitorGetScale function as declared in AppCore/CAPI.h:125
func UlMonitorGetScale(monitor ULMonitor) float64 {
	cmonitor, _ := *(*C.ULMonitor)(unsafe.Pointer(&monitor)), cgoAllocsUnknown
	__ret := C.ulMonitorGetScale(cmonitor)
	__v := (float64)(__ret)
	return __v
}

// UlMonitorGetWidth function as declared in AppCore/CAPI.h:130
func UlMonitorGetWidth(monitor ULMonitor) uint32 {
	cmonitor, _ := *(*C.ULMonitor)(unsafe.Pointer(&monitor)), cgoAllocsUnknown
	__ret := C.ulMonitorGetWidth(cmonitor)
	__v := (uint32)(__ret)
	return __v
}

// UlMonitorGetHeight function as declared in AppCore/CAPI.h:135
func UlMonitorGetHeight(monitor ULMonitor) uint32 {
	cmonitor, _ := *(*C.ULMonitor)(unsafe.Pointer(&monitor)), cgoAllocsUnknown
	__ret := C.ulMonitorGetHeight(cmonitor)
	__v := (uint32)(__ret)
	return __v
}

// UlCreateWindow function as declared in AppCore/CAPI.h:150
func UlCreateWindow(monitor ULMonitor, width uint32, height uint32, fullscreen bool, window_flags uint32) ULWindow {
	cmonitor, _ := *(*C.ULMonitor)(unsafe.Pointer(&monitor)), cgoAllocsUnknown
	cwidth, _ := (C.uint)(width), cgoAllocsUnknown
	cheight, _ := (C.uint)(height), cgoAllocsUnknown
	cfullscreen, _ := (C._Bool)(fullscreen), cgoAllocsUnknown
	cwindow_flags, _ := (C.uint)(window_flags), cgoAllocsUnknown
	__ret := C.ulCreateWindow(cmonitor, cwidth, cheight, cfullscreen, cwindow_flags)
	__v := *(*ULWindow)(unsafe.Pointer(&__ret))
	return __v
}

// UlDestroyWindow function as declared in AppCore/CAPI.h:157
func UlDestroyWindow(window ULWindow) {
	cwindow, _ := *(*C.ULWindow)(unsafe.Pointer(&window)), cgoAllocsUnknown
	C.ulDestroyWindow(cwindow)
}

// UlWindowSetCloseCallback function as declared in AppCore/CAPI.h:165
func UlWindowSetCloseCallback(window ULWindow, callback ULCloseCallback, user_data unsafe.Pointer) {
	cwindow, _ := *(*C.ULWindow)(unsafe.Pointer(&window)), cgoAllocsUnknown
	ccallback, _ := callback.PassValue()
	cuser_data, _ := user_data, cgoAllocsUnknown
	C.ulWindowSetCloseCallback(cwindow, ccallback, cuser_data)
}

// UlWindowSetResizeCallback function as declared in AppCore/CAPI.h:176
func UlWindowSetResizeCallback(window ULWindow, callback ULResizeCallback, user_data unsafe.Pointer) {
	cwindow, _ := *(*C.ULWindow)(unsafe.Pointer(&window)), cgoAllocsUnknown
	ccallback, _ := callback.PassValue()
	cuser_data, _ := user_data, cgoAllocsUnknown
	C.ulWindowSetResizeCallback(cwindow, ccallback, cuser_data)
}

// UlWindowGetWidth function as declared in AppCore/CAPI.h:183
func UlWindowGetWidth(window ULWindow) uint32 {
	cwindow, _ := *(*C.ULWindow)(unsafe.Pointer(&window)), cgoAllocsUnknown
	__ret := C.ulWindowGetWidth(cwindow)
	__v := (uint32)(__ret)
	return __v
}

// UlWindowGetHeight function as declared in AppCore/CAPI.h:188
func UlWindowGetHeight(window ULWindow) uint32 {
	cwindow, _ := *(*C.ULWindow)(unsafe.Pointer(&window)), cgoAllocsUnknown
	__ret := C.ulWindowGetHeight(cwindow)
	__v := (uint32)(__ret)
	return __v
}

// UlWindowIsFullscreen function as declared in AppCore/CAPI.h:193
func UlWindowIsFullscreen(window ULWindow) bool {
	cwindow, _ := *(*C.ULWindow)(unsafe.Pointer(&window)), cgoAllocsUnknown
	__ret := C.ulWindowIsFullscreen(cwindow)
	__v := (bool)(__ret)
	return __v
}

// UlWindowGetScale function as declared in AppCore/CAPI.h:198
func UlWindowGetScale(window ULWindow) float64 {
	cwindow, _ := *(*C.ULWindow)(unsafe.Pointer(&window)), cgoAllocsUnknown
	__ret := C.ulWindowGetScale(cwindow)
	__v := (float64)(__ret)
	return __v
}

// UlWindowSetTitle function as declared in AppCore/CAPI.h:203
func UlWindowSetTitle(window ULWindow, title string) {
	cwindow, _ := *(*C.ULWindow)(unsafe.Pointer(&window)), cgoAllocsUnknown
	title = safeString(title)
	ctitle, _ := unpackPCharString(title)
	C.ulWindowSetTitle(cwindow, ctitle)
	runtime.KeepAlive(title)
}

// UlWindowSetCursor function as declared in AppCore/CAPI.h:208
func UlWindowSetCursor(window ULWindow, cursor ULCursor) {
	cwindow, _ := *(*C.ULWindow)(unsafe.Pointer(&window)), cgoAllocsUnknown
	ccursor, _ := (C.ULCursor)(cursor), cgoAllocsUnknown
	C.ulWindowSetCursor(cwindow, ccursor)
}

// UlWindowClose function as declared in AppCore/CAPI.h:213
func UlWindowClose(window ULWindow) {
	cwindow, _ := *(*C.ULWindow)(unsafe.Pointer(&window)), cgoAllocsUnknown
	C.ulWindowClose(cwindow)
}

// UlWindowDeviceToPixel function as declared in AppCore/CAPI.h:218
func UlWindowDeviceToPixel(window ULWindow, val int32) int32 {
	cwindow, _ := *(*C.ULWindow)(unsafe.Pointer(&window)), cgoAllocsUnknown
	cval, _ := (C.int)(val), cgoAllocsUnknown
	__ret := C.ulWindowDeviceToPixel(cwindow, cval)
	__v := (int32)(__ret)
	return __v
}

// UlWindowPixelsToDevice function as declared in AppCore/CAPI.h:223
func UlWindowPixelsToDevice(window ULWindow, val int32) int32 {
	cwindow, _ := *(*C.ULWindow)(unsafe.Pointer(&window)), cgoAllocsUnknown
	cval, _ := (C.int)(val), cgoAllocsUnknown
	__ret := C.ulWindowPixelsToDevice(cwindow, cval)
	__v := (int32)(__ret)
	return __v
}

// UlCreateOverlay function as declared in AppCore/CAPI.h:244
func UlCreateOverlay(window ULWindow, width uint32, height uint32, x int32, y int32) ULOverlay {
	cwindow, _ := *(*C.ULWindow)(unsafe.Pointer(&window)), cgoAllocsUnknown
	cwidth, _ := (C.uint)(width), cgoAllocsUnknown
	cheight, _ := (C.uint)(height), cgoAllocsUnknown
	cx, _ := (C.int)(x), cgoAllocsUnknown
	cy, _ := (C.int)(y), cgoAllocsUnknown
	__ret := C.ulCreateOverlay(cwindow, cwidth, cheight, cx, cy)
	__v := *(*ULOverlay)(unsafe.Pointer(&__ret))
	return __v
}

// UlDestroyOverlay function as declared in AppCore/CAPI.h:250
func UlDestroyOverlay(overlay ULOverlay) {
	coverlay, _ := *(*C.ULOverlay)(unsafe.Pointer(&overlay)), cgoAllocsUnknown
	C.ulDestroyOverlay(coverlay)
}

// UlOverlayGetView function as declared in AppCore/CAPI.h:255
func UlOverlayGetView(overlay ULOverlay) ULView {
	coverlay, _ := *(*C.ULOverlay)(unsafe.Pointer(&overlay)), cgoAllocsUnknown
	__ret := C.ulOverlayGetView(coverlay)
	__v := *(*ULView)(unsafe.Pointer(&__ret))
	return __v
}

// UlOverlayGetWidth function as declared in AppCore/CAPI.h:260
func UlOverlayGetWidth(overlay ULOverlay) uint32 {
	coverlay, _ := *(*C.ULOverlay)(unsafe.Pointer(&overlay)), cgoAllocsUnknown
	__ret := C.ulOverlayGetWidth(coverlay)
	__v := (uint32)(__ret)
	return __v
}

// UlOverlayGetHeight function as declared in AppCore/CAPI.h:265
func UlOverlayGetHeight(overlay ULOverlay) uint32 {
	coverlay, _ := *(*C.ULOverlay)(unsafe.Pointer(&overlay)), cgoAllocsUnknown
	__ret := C.ulOverlayGetHeight(coverlay)
	__v := (uint32)(__ret)
	return __v
}

// UlOverlayGetX function as declared in AppCore/CAPI.h:271
func UlOverlayGetX(overlay ULOverlay) int32 {
	coverlay, _ := *(*C.ULOverlay)(unsafe.Pointer(&overlay)), cgoAllocsUnknown
	__ret := C.ulOverlayGetX(coverlay)
	__v := (int32)(__ret)
	return __v
}

// UlOverlayGetY function as declared in AppCore/CAPI.h:277
func UlOverlayGetY(overlay ULOverlay) int32 {
	coverlay, _ := *(*C.ULOverlay)(unsafe.Pointer(&overlay)), cgoAllocsUnknown
	__ret := C.ulOverlayGetY(coverlay)
	__v := (int32)(__ret)
	return __v
}

// UlOverlayMoveTo function as declared in AppCore/CAPI.h:282
func UlOverlayMoveTo(overlay ULOverlay, x int32, y int32) {
	coverlay, _ := *(*C.ULOverlay)(unsafe.Pointer(&overlay)), cgoAllocsUnknown
	cx, _ := (C.int)(x), cgoAllocsUnknown
	cy, _ := (C.int)(y), cgoAllocsUnknown
	C.ulOverlayMoveTo(coverlay, cx, cy)
}

// UlOverlayResize function as declared in AppCore/CAPI.h:288
func UlOverlayResize(overlay ULOverlay, width uint32, height uint32) {
	coverlay, _ := *(*C.ULOverlay)(unsafe.Pointer(&overlay)), cgoAllocsUnknown
	cwidth, _ := (C.uint)(width), cgoAllocsUnknown
	cheight, _ := (C.uint)(height), cgoAllocsUnknown
	C.ulOverlayResize(coverlay, cwidth, cheight)
}

// UlOverlayIsHidden function as declared in AppCore/CAPI.h:294
func UlOverlayIsHidden(overlay ULOverlay) bool {
	coverlay, _ := *(*C.ULOverlay)(unsafe.Pointer(&overlay)), cgoAllocsUnknown
	__ret := C.ulOverlayIsHidden(coverlay)
	__v := (bool)(__ret)
	return __v
}

// UlOverlayHide function as declared in AppCore/CAPI.h:299
func UlOverlayHide(overlay ULOverlay) {
	coverlay, _ := *(*C.ULOverlay)(unsafe.Pointer(&overlay)), cgoAllocsUnknown
	C.ulOverlayHide(coverlay)
}

// UlOverlayShow function as declared in AppCore/CAPI.h:304
func UlOverlayShow(overlay ULOverlay) {
	coverlay, _ := *(*C.ULOverlay)(unsafe.Pointer(&overlay)), cgoAllocsUnknown
	C.ulOverlayShow(coverlay)
}

// UlOverlayHasFocus function as declared in AppCore/CAPI.h:309
func UlOverlayHasFocus(overlay ULOverlay) bool {
	coverlay, _ := *(*C.ULOverlay)(unsafe.Pointer(&overlay)), cgoAllocsUnknown
	__ret := C.ulOverlayHasFocus(coverlay)
	__v := (bool)(__ret)
	return __v
}

// UlOverlayFocus function as declared in AppCore/CAPI.h:314
func UlOverlayFocus(overlay ULOverlay) {
	coverlay, _ := *(*C.ULOverlay)(unsafe.Pointer(&overlay)), cgoAllocsUnknown
	C.ulOverlayFocus(coverlay)
}

// UlOverlayUnfocus function as declared in AppCore/CAPI.h:319
func UlOverlayUnfocus(overlay ULOverlay) {
	coverlay, _ := *(*C.ULOverlay)(unsafe.Pointer(&overlay)), cgoAllocsUnknown
	C.ulOverlayUnfocus(coverlay)
}

// UlCreateConfig function as declared in Ultralight/CAPI.h:174
func UlCreateConfig() ULConfig {
	__ret := C.ulCreateConfig()
	__v := *(*ULConfig)(unsafe.Pointer(&__ret))
	return __v
}

// UlDestroyConfig function as declared in Ultralight/CAPI.h:179
func UlDestroyConfig(config ULConfig) {
	cconfig, _ := *(*C.ULConfig)(unsafe.Pointer(&config)), cgoAllocsUnknown
	C.ulDestroyConfig(cconfig)
}

// UlConfigSetEnableImages function as declared in Ultralight/CAPI.h:184
func UlConfigSetEnableImages(config ULConfig, enabled bool) {
	cconfig, _ := *(*C.ULConfig)(unsafe.Pointer(&config)), cgoAllocsUnknown
	cenabled, _ := (C._Bool)(enabled), cgoAllocsUnknown
	C.ulConfigSetEnableImages(cconfig, cenabled)
}

// UlConfigSetEnableJavaScript function as declared in Ultralight/CAPI.h:189
func UlConfigSetEnableJavaScript(config ULConfig, enabled bool) {
	cconfig, _ := *(*C.ULConfig)(unsafe.Pointer(&config)), cgoAllocsUnknown
	cenabled, _ := (C._Bool)(enabled), cgoAllocsUnknown
	C.ulConfigSetEnableJavaScript(cconfig, cenabled)
}

// UlConfigSetUseBGRAForOffscreenRendering function as declared in Ultralight/CAPI.h:195
func UlConfigSetUseBGRAForOffscreenRendering(config ULConfig, enabled bool) {
	cconfig, _ := *(*C.ULConfig)(unsafe.Pointer(&config)), cgoAllocsUnknown
	cenabled, _ := (C._Bool)(enabled), cgoAllocsUnknown
	C.ulConfigSetUseBGRAForOffscreenRendering(cconfig, cenabled)
}

// UlConfigSetDeviceScaleHint function as declared in Ultralight/CAPI.h:203
func UlConfigSetDeviceScaleHint(config ULConfig, value float64) {
	cconfig, _ := *(*C.ULConfig)(unsafe.Pointer(&config)), cgoAllocsUnknown
	cvalue, _ := (C.double)(value), cgoAllocsUnknown
	C.ulConfigSetDeviceScaleHint(cconfig, cvalue)
}

// UlConfigSetFontFamilyStandard function as declared in Ultralight/CAPI.h:208
func UlConfigSetFontFamilyStandard(config ULConfig, font_name ULString) {
	cconfig, _ := *(*C.ULConfig)(unsafe.Pointer(&config)), cgoAllocsUnknown
	cfont_name, _ := *(*C.ULString)(unsafe.Pointer(&font_name)), cgoAllocsUnknown
	C.ulConfigSetFontFamilyStandard(cconfig, cfont_name)
}

// UlConfigSetFontFamilyFixed function as declared in Ultralight/CAPI.h:215
func UlConfigSetFontFamilyFixed(config ULConfig, font_name ULString) {
	cconfig, _ := *(*C.ULConfig)(unsafe.Pointer(&config)), cgoAllocsUnknown
	cfont_name, _ := *(*C.ULString)(unsafe.Pointer(&font_name)), cgoAllocsUnknown
	C.ulConfigSetFontFamilyFixed(cconfig, cfont_name)
}

// UlConfigSetFontFamilySerif function as declared in Ultralight/CAPI.h:220
func UlConfigSetFontFamilySerif(config ULConfig, font_name ULString) {
	cconfig, _ := *(*C.ULConfig)(unsafe.Pointer(&config)), cgoAllocsUnknown
	cfont_name, _ := *(*C.ULString)(unsafe.Pointer(&font_name)), cgoAllocsUnknown
	C.ulConfigSetFontFamilySerif(cconfig, cfont_name)
}

// UlConfigSetFontFamilySansSerif function as declared in Ultralight/CAPI.h:225
func UlConfigSetFontFamilySansSerif(config ULConfig, font_name ULString) {
	cconfig, _ := *(*C.ULConfig)(unsafe.Pointer(&config)), cgoAllocsUnknown
	cfont_name, _ := *(*C.ULString)(unsafe.Pointer(&font_name)), cgoAllocsUnknown
	C.ulConfigSetFontFamilySansSerif(cconfig, cfont_name)
}

// UlConfigSetUserAgent function as declared in Ultralight/CAPI.h:231
func UlConfigSetUserAgent(config ULConfig, agent_string ULString) {
	cconfig, _ := *(*C.ULConfig)(unsafe.Pointer(&config)), cgoAllocsUnknown
	cagent_string, _ := *(*C.ULString)(unsafe.Pointer(&agent_string)), cgoAllocsUnknown
	C.ulConfigSetUserAgent(cconfig, cagent_string)
}

// UlConfigSetUserStylesheet function as declared in Ultralight/CAPI.h:236
func UlConfigSetUserStylesheet(config ULConfig, css_string ULString) {
	cconfig, _ := *(*C.ULConfig)(unsafe.Pointer(&config)), cgoAllocsUnknown
	ccss_string, _ := *(*C.ULString)(unsafe.Pointer(&css_string)), cgoAllocsUnknown
	C.ulConfigSetUserStylesheet(cconfig, ccss_string)
}

// UlCreateRenderer function as declared in Ultralight/CAPI.h:245
func UlCreateRenderer(config ULConfig) ULRenderer {
	cconfig, _ := *(*C.ULConfig)(unsafe.Pointer(&config)), cgoAllocsUnknown
	__ret := C.ulCreateRenderer(cconfig)
	__v := *(*ULRenderer)(unsafe.Pointer(&__ret))
	return __v
}

// UlDestroyRenderer function as declared in Ultralight/CAPI.h:250
func UlDestroyRenderer(renderer ULRenderer) {
	crenderer, _ := *(*C.ULRenderer)(unsafe.Pointer(&renderer)), cgoAllocsUnknown
	C.ulDestroyRenderer(crenderer)
}

// UlUpdate function as declared in Ultralight/CAPI.h:255
func UlUpdate(renderer ULRenderer) {
	crenderer, _ := *(*C.ULRenderer)(unsafe.Pointer(&renderer)), cgoAllocsUnknown
	C.ulUpdate(crenderer)
}

// UlRender function as declared in Ultralight/CAPI.h:260
func UlRender(renderer ULRenderer) {
	crenderer, _ := *(*C.ULRenderer)(unsafe.Pointer(&renderer)), cgoAllocsUnknown
	C.ulRender(crenderer)
}

// UlCreateView function as declared in Ultralight/CAPI.h:269
func UlCreateView(renderer ULRenderer, width uint32, height uint32, transparent bool) ULView {
	crenderer, _ := *(*C.ULRenderer)(unsafe.Pointer(&renderer)), cgoAllocsUnknown
	cwidth, _ := (C.uint)(width), cgoAllocsUnknown
	cheight, _ := (C.uint)(height), cgoAllocsUnknown
	ctransparent, _ := (C._Bool)(transparent), cgoAllocsUnknown
	__ret := C.ulCreateView(crenderer, cwidth, cheight, ctransparent)
	__v := *(*ULView)(unsafe.Pointer(&__ret))
	return __v
}

// UlDestroyView function as declared in Ultralight/CAPI.h:275
func UlDestroyView(view ULView) {
	cview, _ := *(*C.ULView)(unsafe.Pointer(&view)), cgoAllocsUnknown
	C.ulDestroyView(cview)
}

// UlViewGetURL function as declared in Ultralight/CAPI.h:282
func UlViewGetURL(view ULView) ULString {
	cview, _ := *(*C.ULView)(unsafe.Pointer(&view)), cgoAllocsUnknown
	__ret := C.ulViewGetURL(cview)
	__v := *(*ULString)(unsafe.Pointer(&__ret))
	return __v
}

// UlViewGetTitle function as declared in Ultralight/CAPI.h:289
func UlViewGetTitle(view ULView) ULString {
	cview, _ := *(*C.ULView)(unsafe.Pointer(&view)), cgoAllocsUnknown
	__ret := C.ulViewGetTitle(cview)
	__v := *(*ULString)(unsafe.Pointer(&__ret))
	return __v
}

// UlViewIsLoading function as declared in Ultralight/CAPI.h:294
func UlViewIsLoading(view ULView) bool {
	cview, _ := *(*C.ULView)(unsafe.Pointer(&view)), cgoAllocsUnknown
	__ret := C.ulViewIsLoading(cview)
	__v := (bool)(__ret)
	return __v
}

// UlViewIsBitmapDirty function as declared in Ultralight/CAPI.h:299
func UlViewIsBitmapDirty(view ULView) bool {
	cview, _ := *(*C.ULView)(unsafe.Pointer(&view)), cgoAllocsUnknown
	__ret := C.ulViewIsBitmapDirty(cview)
	__v := (bool)(__ret)
	return __v
}

// UlViewGetBitmap function as declared in Ultralight/CAPI.h:306
func UlViewGetBitmap(view ULView) ULBitmap {
	cview, _ := *(*C.ULView)(unsafe.Pointer(&view)), cgoAllocsUnknown
	__ret := C.ulViewGetBitmap(cview)
	__v := *(*ULBitmap)(unsafe.Pointer(&__ret))
	return __v
}

// UlViewLoadHTML function as declared in Ultralight/CAPI.h:311
func UlViewLoadHTML(view ULView, html_string ULString) {
	cview, _ := *(*C.ULView)(unsafe.Pointer(&view)), cgoAllocsUnknown
	chtml_string, _ := *(*C.ULString)(unsafe.Pointer(&html_string)), cgoAllocsUnknown
	C.ulViewLoadHTML(cview, chtml_string)
}

// UlViewLoadURL function as declared in Ultralight/CAPI.h:316
func UlViewLoadURL(view ULView, url_string ULString) {
	cview, _ := *(*C.ULView)(unsafe.Pointer(&view)), cgoAllocsUnknown
	curl_string, _ := *(*C.ULString)(unsafe.Pointer(&url_string)), cgoAllocsUnknown
	C.ulViewLoadURL(cview, curl_string)
}

// UlViewResize function as declared in Ultralight/CAPI.h:321
func UlViewResize(view ULView, width uint32, height uint32) {
	cview, _ := *(*C.ULView)(unsafe.Pointer(&view)), cgoAllocsUnknown
	cwidth, _ := (C.uint)(width), cgoAllocsUnknown
	cheight, _ := (C.uint)(height), cgoAllocsUnknown
	C.ulViewResize(cview, cwidth, cheight)
}

// UlViewGetJSContext function as declared in Ultralight/CAPI.h:327
func UlViewGetJSContext(view ULView) JSContextRef {
	cview, _ := *(*C.ULView)(unsafe.Pointer(&view)), cgoAllocsUnknown
	__ret := C.ulViewGetJSContext(cview)
	__v := *(*JSContextRef)(unsafe.Pointer(&__ret))
	return __v
}

// UlViewEvaluateScript function as declared in Ultralight/CAPI.h:332
func UlViewEvaluateScript(view ULView, js_string ULString) JSValueRef {
	cview, _ := *(*C.ULView)(unsafe.Pointer(&view)), cgoAllocsUnknown
	cjs_string, _ := *(*C.ULString)(unsafe.Pointer(&js_string)), cgoAllocsUnknown
	__ret := C.ulViewEvaluateScript(cview, cjs_string)
	__v := *(*JSValueRef)(unsafe.Pointer(&__ret))
	return __v
}

// UlViewCanGoBack function as declared in Ultralight/CAPI.h:337
func UlViewCanGoBack(view ULView) bool {
	cview, _ := *(*C.ULView)(unsafe.Pointer(&view)), cgoAllocsUnknown
	__ret := C.ulViewCanGoBack(cview)
	__v := (bool)(__ret)
	return __v
}

// UlViewCanGoForward function as declared in Ultralight/CAPI.h:342
func UlViewCanGoForward(view ULView) bool {
	cview, _ := *(*C.ULView)(unsafe.Pointer(&view)), cgoAllocsUnknown
	__ret := C.ulViewCanGoForward(cview)
	__v := (bool)(__ret)
	return __v
}

// UlViewGoBack function as declared in Ultralight/CAPI.h:347
func UlViewGoBack(view ULView) {
	cview, _ := *(*C.ULView)(unsafe.Pointer(&view)), cgoAllocsUnknown
	C.ulViewGoBack(cview)
}

// UlViewGoForward function as declared in Ultralight/CAPI.h:352
func UlViewGoForward(view ULView) {
	cview, _ := *(*C.ULView)(unsafe.Pointer(&view)), cgoAllocsUnknown
	C.ulViewGoForward(cview)
}

// UlViewGoToHistoryOffset function as declared in Ultralight/CAPI.h:357
func UlViewGoToHistoryOffset(view ULView, offset int32) {
	cview, _ := *(*C.ULView)(unsafe.Pointer(&view)), cgoAllocsUnknown
	coffset, _ := (C.int)(offset), cgoAllocsUnknown
	C.ulViewGoToHistoryOffset(cview, coffset)
}

// UlViewReload function as declared in Ultralight/CAPI.h:362
func UlViewReload(view ULView) {
	cview, _ := *(*C.ULView)(unsafe.Pointer(&view)), cgoAllocsUnknown
	C.ulViewReload(cview)
}

// UlViewStop function as declared in Ultralight/CAPI.h:367
func UlViewStop(view ULView) {
	cview, _ := *(*C.ULView)(unsafe.Pointer(&view)), cgoAllocsUnknown
	C.ulViewStop(cview)
}

// UlViewFireKeyEvent function as declared in Ultralight/CAPI.h:372
func UlViewFireKeyEvent(view ULView, key_event ULKeyEvent) {
	cview, _ := *(*C.ULView)(unsafe.Pointer(&view)), cgoAllocsUnknown
	ckey_event, _ := *(*C.ULKeyEvent)(unsafe.Pointer(&key_event)), cgoAllocsUnknown
	C.ulViewFireKeyEvent(cview, ckey_event)
}

// UlViewFireMouseEvent function as declared in Ultralight/CAPI.h:377
func UlViewFireMouseEvent(view ULView, mouse_event ULMouseEvent) {
	cview, _ := *(*C.ULView)(unsafe.Pointer(&view)), cgoAllocsUnknown
	cmouse_event, _ := *(*C.ULMouseEvent)(unsafe.Pointer(&mouse_event)), cgoAllocsUnknown
	C.ulViewFireMouseEvent(cview, cmouse_event)
}

// UlViewFireScrollEvent function as declared in Ultralight/CAPI.h:382
func UlViewFireScrollEvent(view ULView, scroll_event ULScrollEvent) {
	cview, _ := *(*C.ULView)(unsafe.Pointer(&view)), cgoAllocsUnknown
	cscroll_event, _ := *(*C.ULScrollEvent)(unsafe.Pointer(&scroll_event)), cgoAllocsUnknown
	C.ulViewFireScrollEvent(cview, cscroll_event)
}

// UlViewSetChangeTitleCallback function as declared in Ultralight/CAPI.h:390
func UlViewSetChangeTitleCallback(view ULView, callback ULChangeTitleCallback, user_data unsafe.Pointer) {
	cview, _ := *(*C.ULView)(unsafe.Pointer(&view)), cgoAllocsUnknown
	ccallback, _ := callback.PassValue()
	cuser_data, _ := user_data, cgoAllocsUnknown
	C.ulViewSetChangeTitleCallback(cview, ccallback, cuser_data)
}

// UlViewSetChangeURLCallback function as declared in Ultralight/CAPI.h:400
func UlViewSetChangeURLCallback(view ULView, callback ULChangeURLCallback, user_data unsafe.Pointer) {
	cview, _ := *(*C.ULView)(unsafe.Pointer(&view)), cgoAllocsUnknown
	ccallback, _ := callback.PassValue()
	cuser_data, _ := user_data, cgoAllocsUnknown
	C.ulViewSetChangeURLCallback(cview, ccallback, cuser_data)
}

// UlViewSetChangeTooltipCallback function as declared in Ultralight/CAPI.h:410
func UlViewSetChangeTooltipCallback(view ULView, callback ULChangeTooltipCallback, user_data unsafe.Pointer) {
	cview, _ := *(*C.ULView)(unsafe.Pointer(&view)), cgoAllocsUnknown
	ccallback, _ := callback.PassValue()
	cuser_data, _ := user_data, cgoAllocsUnknown
	C.ulViewSetChangeTooltipCallback(cview, ccallback, cuser_data)
}

// UlViewSetChangeCursorCallback function as declared in Ultralight/CAPI.h:420
func UlViewSetChangeCursorCallback(view ULView, callback ULChangeCursorCallback, user_data unsafe.Pointer) {
	cview, _ := *(*C.ULView)(unsafe.Pointer(&view)), cgoAllocsUnknown
	ccallback, _ := callback.PassValue()
	cuser_data, _ := user_data, cgoAllocsUnknown
	C.ulViewSetChangeCursorCallback(cview, ccallback, cuser_data)
}

// UlViewSetAddConsoleMessageCallback function as declared in Ultralight/CAPI.h:435
func UlViewSetAddConsoleMessageCallback(view ULView, callback ULAddConsoleMessageCallback, user_data unsafe.Pointer) {
	cview, _ := *(*C.ULView)(unsafe.Pointer(&view)), cgoAllocsUnknown
	ccallback, _ := callback.PassValue()
	cuser_data, _ := user_data, cgoAllocsUnknown
	C.ulViewSetAddConsoleMessageCallback(cview, ccallback, cuser_data)
}

// UlViewSetBeginLoadingCallback function as declared in Ultralight/CAPI.h:445
func UlViewSetBeginLoadingCallback(view ULView, callback ULBeginLoadingCallback, user_data unsafe.Pointer) {
	cview, _ := *(*C.ULView)(unsafe.Pointer(&view)), cgoAllocsUnknown
	ccallback, _ := callback.PassValue()
	cuser_data, _ := user_data, cgoAllocsUnknown
	C.ulViewSetBeginLoadingCallback(cview, ccallback, cuser_data)
}

// UlViewSetFinishLoadingCallback function as declared in Ultralight/CAPI.h:455
func UlViewSetFinishLoadingCallback(view ULView, callback ULFinishLoadingCallback, user_data unsafe.Pointer) {
	cview, _ := *(*C.ULView)(unsafe.Pointer(&view)), cgoAllocsUnknown
	ccallback, _ := callback.PassValue()
	cuser_data, _ := user_data, cgoAllocsUnknown
	C.ulViewSetFinishLoadingCallback(cview, ccallback, cuser_data)
}

// UlViewSetUpdateHistoryCallback function as declared in Ultralight/CAPI.h:465
func UlViewSetUpdateHistoryCallback(view ULView, callback ULUpdateHistoryCallback, user_data unsafe.Pointer) {
	cview, _ := *(*C.ULView)(unsafe.Pointer(&view)), cgoAllocsUnknown
	ccallback, _ := callback.PassValue()
	cuser_data, _ := user_data, cgoAllocsUnknown
	C.ulViewSetUpdateHistoryCallback(cview, ccallback, cuser_data)
}

// UlViewSetDOMReadyCallback function as declared in Ultralight/CAPI.h:476
func UlViewSetDOMReadyCallback(view ULView, callback ULDOMReadyCallback, user_data unsafe.Pointer) {
	cview, _ := *(*C.ULView)(unsafe.Pointer(&view)), cgoAllocsUnknown
	ccallback, _ := callback.PassValue()
	cuser_data, _ := user_data, cgoAllocsUnknown
	C.ulViewSetDOMReadyCallback(cview, ccallback, cuser_data)
}

// UlViewSetNeedsPaint function as declared in Ultralight/CAPI.h:487
func UlViewSetNeedsPaint(view ULView, needs_paint bool) {
	cview, _ := *(*C.ULView)(unsafe.Pointer(&view)), cgoAllocsUnknown
	cneeds_paint, _ := (C._Bool)(needs_paint), cgoAllocsUnknown
	C.ulViewSetNeedsPaint(cview, cneeds_paint)
}

// UlViewGetNeedsPaint function as declared in Ultralight/CAPI.h:492
func UlViewGetNeedsPaint(view ULView) bool {
	cview, _ := *(*C.ULView)(unsafe.Pointer(&view)), cgoAllocsUnknown
	__ret := C.ulViewGetNeedsPaint(cview)
	__v := (bool)(__ret)
	return __v
}

// UlCreateString function as declared in Ultralight/CAPI.h:501
func UlCreateString(str string) ULString {
	str = safeString(str)
	cstr, _ := unpackPCharString(str)
	__ret := C.ulCreateString(cstr)
	runtime.KeepAlive(str)
	__v := *(*ULString)(unsafe.Pointer(&__ret))
	return __v
}

// UlCreateStringUTF8 function as declared in Ultralight/CAPI.h:506
func UlCreateStringUTF8(str string, len uint) ULString {
	str = safeString(str)
	cstr, _ := unpackPCharString(str)
	clen, _ := (C.size_t)(len), cgoAllocsUnknown
	__ret := C.ulCreateStringUTF8(cstr, clen)
	runtime.KeepAlive(str)
	__v := *(*ULString)(unsafe.Pointer(&__ret))
	return __v
}

// UlCreateStringUTF16 function as declared in Ultralight/CAPI.h:511
func UlCreateStringUTF16(str []ULChar16, len uint) ULString {
	cstr, _ := (*C.ULChar16)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&str)).Data)), cgoAllocsUnknown
	clen, _ := (C.size_t)(len), cgoAllocsUnknown
	__ret := C.ulCreateStringUTF16(cstr, clen)
	__v := *(*ULString)(unsafe.Pointer(&__ret))
	return __v
}

// UlDestroyString function as declared in Ultralight/CAPI.h:516
func UlDestroyString(str ULString) {
	cstr, _ := *(*C.ULString)(unsafe.Pointer(&str)), cgoAllocsUnknown
	C.ulDestroyString(cstr)
}

// UlStringGetData function as declared in Ultralight/CAPI.h:521
func UlStringGetData(str ULString) *ULChar16 {
	cstr, _ := *(*C.ULString)(unsafe.Pointer(&str)), cgoAllocsUnknown
	__ret := C.ulStringGetData(cstr)
	__v := *(**ULChar16)(unsafe.Pointer(&__ret))
	return __v
}

// UlStringGetLength function as declared in Ultralight/CAPI.h:526
func UlStringGetLength(str ULString) uint {
	cstr, _ := *(*C.ULString)(unsafe.Pointer(&str)), cgoAllocsUnknown
	__ret := C.ulStringGetLength(cstr)
	__v := (uint)(__ret)
	return __v
}

// UlStringIsEmpty function as declared in Ultralight/CAPI.h:531
func UlStringIsEmpty(str ULString) bool {
	cstr, _ := *(*C.ULString)(unsafe.Pointer(&str)), cgoAllocsUnknown
	__ret := C.ulStringIsEmpty(cstr)
	__v := (bool)(__ret)
	return __v
}

// UlCreateEmptyBitmap function as declared in Ultralight/CAPI.h:540
func UlCreateEmptyBitmap() ULBitmap {
	__ret := C.ulCreateEmptyBitmap()
	__v := *(*ULBitmap)(unsafe.Pointer(&__ret))
	return __v
}

// UlCreateBitmap function as declared in Ultralight/CAPI.h:545
func UlCreateBitmap(width uint32, height uint32, format ULBitmapFormat) ULBitmap {
	cwidth, _ := (C.uint)(width), cgoAllocsUnknown
	cheight, _ := (C.uint)(height), cgoAllocsUnknown
	cformat, _ := (C.ULBitmapFormat)(format), cgoAllocsUnknown
	__ret := C.ulCreateBitmap(cwidth, cheight, cformat)
	__v := *(*ULBitmap)(unsafe.Pointer(&__ret))
	return __v
}

// UlCreateBitmapFromPixels function as declared in Ultralight/CAPI.h:552
func UlCreateBitmapFromPixels(width uint32, height uint32, format ULBitmapFormat, row_bytes uint32, pixels unsafe.Pointer, size uint, should_copy bool) ULBitmap {
	cwidth, _ := (C.uint)(width), cgoAllocsUnknown
	cheight, _ := (C.uint)(height), cgoAllocsUnknown
	cformat, _ := (C.ULBitmapFormat)(format), cgoAllocsUnknown
	crow_bytes, _ := (C.uint)(row_bytes), cgoAllocsUnknown
	cpixels, _ := pixels, cgoAllocsUnknown
	csize, _ := (C.size_t)(size), cgoAllocsUnknown
	cshould_copy, _ := (C._Bool)(should_copy), cgoAllocsUnknown
	__ret := C.ulCreateBitmapFromPixels(cwidth, cheight, cformat, crow_bytes, cpixels, csize, cshould_copy)
	__v := *(*ULBitmap)(unsafe.Pointer(&__ret))
	return __v
}

// UlCreateBitmapFromCopy function as declared in Ultralight/CAPI.h:562
func UlCreateBitmapFromCopy(existing_bitmap ULBitmap) ULBitmap {
	cexisting_bitmap, _ := *(*C.ULBitmap)(unsafe.Pointer(&existing_bitmap)), cgoAllocsUnknown
	__ret := C.ulCreateBitmapFromCopy(cexisting_bitmap)
	__v := *(*ULBitmap)(unsafe.Pointer(&__ret))
	return __v
}

// UlDestroyBitmap function as declared in Ultralight/CAPI.h:568
func UlDestroyBitmap(bitmap ULBitmap) {
	cbitmap, _ := *(*C.ULBitmap)(unsafe.Pointer(&bitmap)), cgoAllocsUnknown
	C.ulDestroyBitmap(cbitmap)
}

// UlBitmapGetWidth function as declared in Ultralight/CAPI.h:573
func UlBitmapGetWidth(bitmap ULBitmap) uint32 {
	cbitmap, _ := *(*C.ULBitmap)(unsafe.Pointer(&bitmap)), cgoAllocsUnknown
	__ret := C.ulBitmapGetWidth(cbitmap)
	__v := (uint32)(__ret)
	return __v
}

// UlBitmapGetHeight function as declared in Ultralight/CAPI.h:578
func UlBitmapGetHeight(bitmap ULBitmap) uint32 {
	cbitmap, _ := *(*C.ULBitmap)(unsafe.Pointer(&bitmap)), cgoAllocsUnknown
	__ret := C.ulBitmapGetHeight(cbitmap)
	__v := (uint32)(__ret)
	return __v
}

// UlBitmapGetFormat function as declared in Ultralight/CAPI.h:583
func UlBitmapGetFormat(bitmap ULBitmap) ULBitmapFormat {
	cbitmap, _ := *(*C.ULBitmap)(unsafe.Pointer(&bitmap)), cgoAllocsUnknown
	__ret := C.ulBitmapGetFormat(cbitmap)
	__v := (ULBitmapFormat)(__ret)
	return __v
}

// UlBitmapGetBpp function as declared in Ultralight/CAPI.h:588
func UlBitmapGetBpp(bitmap ULBitmap) uint32 {
	cbitmap, _ := *(*C.ULBitmap)(unsafe.Pointer(&bitmap)), cgoAllocsUnknown
	__ret := C.ulBitmapGetBpp(cbitmap)
	__v := (uint32)(__ret)
	return __v
}

// UlBitmapGetRowBytes function as declared in Ultralight/CAPI.h:593
func UlBitmapGetRowBytes(bitmap ULBitmap) uint32 {
	cbitmap, _ := *(*C.ULBitmap)(unsafe.Pointer(&bitmap)), cgoAllocsUnknown
	__ret := C.ulBitmapGetRowBytes(cbitmap)
	__v := (uint32)(__ret)
	return __v
}

// UlBitmapGetSize function as declared in Ultralight/CAPI.h:598
func UlBitmapGetSize(bitmap ULBitmap) uint {
	cbitmap, _ := *(*C.ULBitmap)(unsafe.Pointer(&bitmap)), cgoAllocsUnknown
	__ret := C.ulBitmapGetSize(cbitmap)
	__v := (uint)(__ret)
	return __v
}

// UlBitmapOwnsPixels function as declared in Ultralight/CAPI.h:603
func UlBitmapOwnsPixels(bitmap ULBitmap) bool {
	cbitmap, _ := *(*C.ULBitmap)(unsafe.Pointer(&bitmap)), cgoAllocsUnknown
	__ret := C.ulBitmapOwnsPixels(cbitmap)
	__v := (bool)(__ret)
	return __v
}

// UlBitmapLockPixels function as declared in Ultralight/CAPI.h:608
func UlBitmapLockPixels(bitmap ULBitmap) unsafe.Pointer {
	cbitmap, _ := *(*C.ULBitmap)(unsafe.Pointer(&bitmap)), cgoAllocsUnknown
	__ret := C.ulBitmapLockPixels(cbitmap)
	__v := *(*unsafe.Pointer)(unsafe.Pointer(&__ret))
	return __v
}

// UlBitmapUnlockPixels function as declared in Ultralight/CAPI.h:613
func UlBitmapUnlockPixels(bitmap ULBitmap) {
	cbitmap, _ := *(*C.ULBitmap)(unsafe.Pointer(&bitmap)), cgoAllocsUnknown
	C.ulBitmapUnlockPixels(cbitmap)
}

// UlBitmapRawPixels function as declared in Ultralight/CAPI.h:619
func UlBitmapRawPixels(bitmap ULBitmap) unsafe.Pointer {
	cbitmap, _ := *(*C.ULBitmap)(unsafe.Pointer(&bitmap)), cgoAllocsUnknown
	__ret := C.ulBitmapRawPixels(cbitmap)
	__v := *(*unsafe.Pointer)(unsafe.Pointer(&__ret))
	return __v
}

// UlBitmapIsEmpty function as declared in Ultralight/CAPI.h:624
func UlBitmapIsEmpty(bitmap ULBitmap) bool {
	cbitmap, _ := *(*C.ULBitmap)(unsafe.Pointer(&bitmap)), cgoAllocsUnknown
	__ret := C.ulBitmapIsEmpty(cbitmap)
	__v := (bool)(__ret)
	return __v
}

// UlBitmapErase function as declared in Ultralight/CAPI.h:629
func UlBitmapErase(bitmap ULBitmap) {
	cbitmap, _ := *(*C.ULBitmap)(unsafe.Pointer(&bitmap)), cgoAllocsUnknown
	C.ulBitmapErase(cbitmap)
}

// UlBitmapWritePNG function as declared in Ultralight/CAPI.h:634
func UlBitmapWritePNG(bitmap ULBitmap, path string) bool {
	cbitmap, _ := *(*C.ULBitmap)(unsafe.Pointer(&bitmap)), cgoAllocsUnknown
	path = safeString(path)
	cpath, _ := unpackPCharString(path)
	__ret := C.ulBitmapWritePNG(cbitmap, cpath)
	runtime.KeepAlive(path)
	__v := (bool)(__ret)
	return __v
}

// UlCreateKeyEvent function as declared in Ultralight/CAPI.h:643
func UlCreateKeyEvent(_type ULKeyEventType, modifiers uint32, virtual_key_code int32, native_key_code int32, text ULString, unmodified_text ULString, is_keypad bool, is_auto_repeat bool, is_system_key bool) ULKeyEvent {
	c_type, _ := (C.ULKeyEventType)(_type), cgoAllocsUnknown
	cmodifiers, _ := (C.uint)(modifiers), cgoAllocsUnknown
	cvirtual_key_code, _ := (C.int)(virtual_key_code), cgoAllocsUnknown
	cnative_key_code, _ := (C.int)(native_key_code), cgoAllocsUnknown
	ctext, _ := *(*C.ULString)(unsafe.Pointer(&text)), cgoAllocsUnknown
	cunmodified_text, _ := *(*C.ULString)(unsafe.Pointer(&unmodified_text)), cgoAllocsUnknown
	cis_keypad, _ := (C._Bool)(is_keypad), cgoAllocsUnknown
	cis_auto_repeat, _ := (C._Bool)(is_auto_repeat), cgoAllocsUnknown
	cis_system_key, _ := (C._Bool)(is_system_key), cgoAllocsUnknown
	__ret := C.ulCreateKeyEvent(c_type, cmodifiers, cvirtual_key_code, cnative_key_code, ctext, cunmodified_text, cis_keypad, cis_auto_repeat, cis_system_key)
	__v := *(*ULKeyEvent)(unsafe.Pointer(&__ret))
	return __v
}

// UlDestroyKeyEvent function as declared in Ultralight/CAPI.h:669
func UlDestroyKeyEvent(evt ULKeyEvent) {
	cevt, _ := *(*C.ULKeyEvent)(unsafe.Pointer(&evt)), cgoAllocsUnknown
	C.ulDestroyKeyEvent(cevt)
}

// UlCreateMouseEvent function as declared in Ultralight/CAPI.h:678
func UlCreateMouseEvent(_type ULMouseEventType, x int32, y int32, button ULMouseButton) ULMouseEvent {
	c_type, _ := (C.ULMouseEventType)(_type), cgoAllocsUnknown
	cx, _ := (C.int)(x), cgoAllocsUnknown
	cy, _ := (C.int)(y), cgoAllocsUnknown
	cbutton, _ := (C.ULMouseButton)(button), cgoAllocsUnknown
	__ret := C.ulCreateMouseEvent(c_type, cx, cy, cbutton)
	__v := *(*ULMouseEvent)(unsafe.Pointer(&__ret))
	return __v
}

// UlDestroyMouseEvent function as declared in Ultralight/CAPI.h:684
func UlDestroyMouseEvent(evt ULMouseEvent) {
	cevt, _ := *(*C.ULMouseEvent)(unsafe.Pointer(&evt)), cgoAllocsUnknown
	C.ulDestroyMouseEvent(cevt)
}

// UlCreateScrollEvent function as declared in Ultralight/CAPI.h:693
func UlCreateScrollEvent(_type ULScrollEventType, delta_x int32, delta_y int32) ULScrollEvent {
	c_type, _ := (C.ULScrollEventType)(_type), cgoAllocsUnknown
	cdelta_x, _ := (C.int)(delta_x), cgoAllocsUnknown
	cdelta_y, _ := (C.int)(delta_y), cgoAllocsUnknown
	__ret := C.ulCreateScrollEvent(c_type, cdelta_x, cdelta_y)
	__v := *(*ULScrollEvent)(unsafe.Pointer(&__ret))
	return __v
}

// UlDestroyScrollEvent function as declared in Ultralight/CAPI.h:699
func UlDestroyScrollEvent(evt ULScrollEvent) {
	cevt, _ := *(*C.ULScrollEvent)(unsafe.Pointer(&evt)), cgoAllocsUnknown
	C.ulDestroyScrollEvent(cevt)
}

// JSEvaluateScript function as declared in JavaScriptCore/JSBase.h:106
func JSEvaluateScript(ctx JSContextRef, script JSStringRef, thisObject JSObjectRef, sourceURL JSStringRef, startingLineNumber int32, exception []JSValueRef) JSValueRef {
	cctx, _ := *(*C.JSContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	cscript, _ := *(*C.JSStringRef)(unsafe.Pointer(&script)), cgoAllocsUnknown
	cthisObject, _ := *(*C.JSObjectRef)(unsafe.Pointer(&thisObject)), cgoAllocsUnknown
	csourceURL, _ := *(*C.JSStringRef)(unsafe.Pointer(&sourceURL)), cgoAllocsUnknown
	cstartingLineNumber, _ := (C.int)(startingLineNumber), cgoAllocsUnknown
	cexception, _ := (*C.JSValueRef)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&exception)).Data)), cgoAllocsUnknown
	__ret := C.JSEvaluateScript(cctx, cscript, cthisObject, csourceURL, cstartingLineNumber, cexception)
	__v := *(*JSValueRef)(unsafe.Pointer(&__ret))
	return __v
}

// JSCheckScriptSyntax function as declared in JavaScriptCore/JSBase.h:118
func JSCheckScriptSyntax(ctx JSContextRef, script JSStringRef, sourceURL JSStringRef, startingLineNumber int32, exception []JSValueRef) bool {
	cctx, _ := *(*C.JSContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	cscript, _ := *(*C.JSStringRef)(unsafe.Pointer(&script)), cgoAllocsUnknown
	csourceURL, _ := *(*C.JSStringRef)(unsafe.Pointer(&sourceURL)), cgoAllocsUnknown
	cstartingLineNumber, _ := (C.int)(startingLineNumber), cgoAllocsUnknown
	cexception, _ := (*C.JSValueRef)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&exception)).Data)), cgoAllocsUnknown
	__ret := C.JSCheckScriptSyntax(cctx, cscript, csourceURL, cstartingLineNumber, cexception)
	__v := (bool)(__ret)
	return __v
}

// JSGarbageCollect function as declared in JavaScriptCore/JSBase.h:133
func JSGarbageCollect(ctx JSContextRef) {
	cctx, _ := *(*C.JSContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	C.JSGarbageCollect(cctx)
}

// JSContextGroupCreate function as declared in JavaScriptCore/JSContextRef.h:51
func JSContextGroupCreate() JSContextGroupRef {
	__ret := C.JSContextGroupCreate()
	__v := *(*JSContextGroupRef)(unsafe.Pointer(&__ret))
	return __v
}

// JSContextGroupRetain function as declared in JavaScriptCore/JSContextRef.h:59
func JSContextGroupRetain(group JSContextGroupRef) JSContextGroupRef {
	cgroup, _ := *(*C.JSContextGroupRef)(unsafe.Pointer(&group)), cgoAllocsUnknown
	__ret := C.JSContextGroupRetain(cgroup)
	__v := *(*JSContextGroupRef)(unsafe.Pointer(&__ret))
	return __v
}

// JSContextGroupRelease function as declared in JavaScriptCore/JSContextRef.h:66
func JSContextGroupRelease(group JSContextGroupRef) {
	cgroup, _ := *(*C.JSContextGroupRef)(unsafe.Pointer(&group)), cgoAllocsUnknown
	C.JSContextGroupRelease(cgroup)
}

// JSGlobalContextCreate function as declared in JavaScriptCore/JSContextRef.h:81
func JSGlobalContextCreate(globalObjectClass JSClassRef) JSGlobalContextRef {
	cglobalObjectClass, _ := *(*C.JSClassRef)(unsafe.Pointer(&globalObjectClass)), cgoAllocsUnknown
	__ret := C.JSGlobalContextCreate(cglobalObjectClass)
	__v := *(*JSGlobalContextRef)(unsafe.Pointer(&__ret))
	return __v
}

// JSGlobalContextCreateInGroup function as declared in JavaScriptCore/JSContextRef.h:95
func JSGlobalContextCreateInGroup(group JSContextGroupRef, globalObjectClass JSClassRef) JSGlobalContextRef {
	cgroup, _ := *(*C.JSContextGroupRef)(unsafe.Pointer(&group)), cgoAllocsUnknown
	cglobalObjectClass, _ := *(*C.JSClassRef)(unsafe.Pointer(&globalObjectClass)), cgoAllocsUnknown
	__ret := C.JSGlobalContextCreateInGroup(cgroup, cglobalObjectClass)
	__v := *(*JSGlobalContextRef)(unsafe.Pointer(&__ret))
	return __v
}

// JSGlobalContextRetain function as declared in JavaScriptCore/JSContextRef.h:103
func JSGlobalContextRetain(ctx JSGlobalContextRef) JSGlobalContextRef {
	cctx, _ := *(*C.JSGlobalContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	__ret := C.JSGlobalContextRetain(cctx)
	__v := *(*JSGlobalContextRef)(unsafe.Pointer(&__ret))
	return __v
}

// JSGlobalContextRelease function as declared in JavaScriptCore/JSContextRef.h:110
func JSGlobalContextRelease(ctx JSGlobalContextRef) {
	cctx, _ := *(*C.JSGlobalContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	C.JSGlobalContextRelease(cctx)
}

// JSContextGetGlobalObject function as declared in JavaScriptCore/JSContextRef.h:118
func JSContextGetGlobalObject(ctx JSContextRef) JSObjectRef {
	cctx, _ := *(*C.JSContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	__ret := C.JSContextGetGlobalObject(cctx)
	__v := *(*JSObjectRef)(unsafe.Pointer(&__ret))
	return __v
}

// JSContextGetGroup function as declared in JavaScriptCore/JSContextRef.h:126
func JSContextGetGroup(ctx JSContextRef) JSContextGroupRef {
	cctx, _ := *(*C.JSContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	__ret := C.JSContextGetGroup(cctx)
	__v := *(*JSContextGroupRef)(unsafe.Pointer(&__ret))
	return __v
}

// JSContextGetGlobalContext function as declared in JavaScriptCore/JSContextRef.h:134
func JSContextGetGlobalContext(ctx JSContextRef) JSGlobalContextRef {
	cctx, _ := *(*C.JSContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	__ret := C.JSContextGetGlobalContext(cctx)
	__v := *(*JSGlobalContextRef)(unsafe.Pointer(&__ret))
	return __v
}

// JSGlobalContextCopyName function as declared in JavaScriptCore/JSContextRef.h:144
func JSGlobalContextCopyName(ctx JSGlobalContextRef) JSStringRef {
	cctx, _ := *(*C.JSGlobalContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	__ret := C.JSGlobalContextCopyName(cctx)
	__v := *(*JSStringRef)(unsafe.Pointer(&__ret))
	return __v
}

// JSGlobalContextSetName function as declared in JavaScriptCore/JSContextRef.h:152
func JSGlobalContextSetName(ctx JSGlobalContextRef, name JSStringRef) {
	cctx, _ := *(*C.JSGlobalContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	cname, _ := *(*C.JSStringRef)(unsafe.Pointer(&name)), cgoAllocsUnknown
	C.JSGlobalContextSetName(cctx, cname)
}

var KJSClassDefinitionEmpty JSClassDefinition

// JSClassCreate function as declared in JavaScriptCore/JSObjectRef.h:382
func JSClassCreate(definition []JSClassDefinition) JSClassRef {
	cdefinition, _ := unpackArgSJSClassDefinition(definition)
	__ret := C.JSClassCreate(cdefinition)
	packSJSClassDefinition(definition, cdefinition)
	__v := *(*JSClassRef)(unsafe.Pointer(&__ret))
	return __v
}

// JSClassRetain function as declared in JavaScriptCore/JSObjectRef.h:390
func JSClassRetain(jsClass JSClassRef) JSClassRef {
	cjsClass, _ := *(*C.JSClassRef)(unsafe.Pointer(&jsClass)), cgoAllocsUnknown
	__ret := C.JSClassRetain(cjsClass)
	__v := *(*JSClassRef)(unsafe.Pointer(&__ret))
	return __v
}

// JSClassRelease function as declared in JavaScriptCore/JSObjectRef.h:397
func JSClassRelease(jsClass JSClassRef) {
	cjsClass, _ := *(*C.JSClassRef)(unsafe.Pointer(&jsClass)), cgoAllocsUnknown
	C.JSClassRelease(cjsClass)
}

// JSObjectMake function as declared in JavaScriptCore/JSObjectRef.h:410
func JSObjectMake(ctx JSContextRef, jsClass JSClassRef, data unsafe.Pointer) JSObjectRef {
	cctx, _ := *(*C.JSContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	cjsClass, _ := *(*C.JSClassRef)(unsafe.Pointer(&jsClass)), cgoAllocsUnknown
	cdata, _ := data, cgoAllocsUnknown
	__ret := C.JSObjectMake(cctx, cjsClass, cdata)
	__v := *(*JSObjectRef)(unsafe.Pointer(&__ret))
	return __v
}

// JSObjectMakeFunctionWithCallback function as declared in JavaScriptCore/JSObjectRef.h:420
func JSObjectMakeFunctionWithCallback(ctx JSContextRef, name JSStringRef, callAsFunction JSObjectCallAsFunctionCallback) JSObjectRef {
	cctx, _ := *(*C.JSContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	cname, _ := *(*C.JSStringRef)(unsafe.Pointer(&name)), cgoAllocsUnknown
	ccallAsFunction, _ := callAsFunction.PassValue()
	__ret := C.JSObjectMakeFunctionWithCallback(cctx, cname, ccallAsFunction)
	__v := *(*JSObjectRef)(unsafe.Pointer(&__ret))
	return __v
}

// JSObjectMakeConstructor function as declared in JavaScriptCore/JSObjectRef.h:431
func JSObjectMakeConstructor(ctx JSContextRef, jsClass JSClassRef, callAsConstructor JSObjectCallAsConstructorCallback) JSObjectRef {
	cctx, _ := *(*C.JSContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	cjsClass, _ := *(*C.JSClassRef)(unsafe.Pointer(&jsClass)), cgoAllocsUnknown
	ccallAsConstructor, _ := callAsConstructor.PassValue()
	__ret := C.JSObjectMakeConstructor(cctx, cjsClass, ccallAsConstructor)
	__v := *(*JSObjectRef)(unsafe.Pointer(&__ret))
	return __v
}

// JSObjectMakeArray function as declared in JavaScriptCore/JSObjectRef.h:444
func JSObjectMakeArray(ctx JSContextRef, argumentCount uint, arguments []JSValueRef, exception []JSValueRef) JSObjectRef {
	cctx, _ := *(*C.JSContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	cargumentCount, _ := (C.size_t)(argumentCount), cgoAllocsUnknown
	carguments, _ := (*C.JSValueRef)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&arguments)).Data)), cgoAllocsUnknown
	cexception, _ := (*C.JSValueRef)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&exception)).Data)), cgoAllocsUnknown
	__ret := C.JSObjectMakeArray(cctx, cargumentCount, carguments, cexception)
	__v := *(*JSObjectRef)(unsafe.Pointer(&__ret))
	return __v
}

// JSObjectMakeDate function as declared in JavaScriptCore/JSObjectRef.h:455
func JSObjectMakeDate(ctx JSContextRef, argumentCount uint, arguments []JSValueRef, exception []JSValueRef) JSObjectRef {
	cctx, _ := *(*C.JSContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	cargumentCount, _ := (C.size_t)(argumentCount), cgoAllocsUnknown
	carguments, _ := (*C.JSValueRef)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&arguments)).Data)), cgoAllocsUnknown
	cexception, _ := (*C.JSValueRef)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&exception)).Data)), cgoAllocsUnknown
	__ret := C.JSObjectMakeDate(cctx, cargumentCount, carguments, cexception)
	__v := *(*JSObjectRef)(unsafe.Pointer(&__ret))
	return __v
}

// JSObjectMakeError function as declared in JavaScriptCore/JSObjectRef.h:466
func JSObjectMakeError(ctx JSContextRef, argumentCount uint, arguments []JSValueRef, exception []JSValueRef) JSObjectRef {
	cctx, _ := *(*C.JSContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	cargumentCount, _ := (C.size_t)(argumentCount), cgoAllocsUnknown
	carguments, _ := (*C.JSValueRef)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&arguments)).Data)), cgoAllocsUnknown
	cexception, _ := (*C.JSValueRef)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&exception)).Data)), cgoAllocsUnknown
	__ret := C.JSObjectMakeError(cctx, cargumentCount, carguments, cexception)
	__v := *(*JSObjectRef)(unsafe.Pointer(&__ret))
	return __v
}

// JSObjectMakeRegExp function as declared in JavaScriptCore/JSObjectRef.h:477
func JSObjectMakeRegExp(ctx JSContextRef, argumentCount uint, arguments []JSValueRef, exception []JSValueRef) JSObjectRef {
	cctx, _ := *(*C.JSContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	cargumentCount, _ := (C.size_t)(argumentCount), cgoAllocsUnknown
	carguments, _ := (*C.JSValueRef)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&arguments)).Data)), cgoAllocsUnknown
	cexception, _ := (*C.JSValueRef)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&exception)).Data)), cgoAllocsUnknown
	__ret := C.JSObjectMakeRegExp(cctx, cargumentCount, carguments, cexception)
	__v := *(*JSObjectRef)(unsafe.Pointer(&__ret))
	return __v
}

// JSObjectMakeFunction function as declared in JavaScriptCore/JSObjectRef.h:493
func JSObjectMakeFunction(ctx JSContextRef, name JSStringRef, parameterCount uint32, parameterNames []JSStringRef, body JSStringRef, sourceURL JSStringRef, startingLineNumber int32, exception []JSValueRef) JSObjectRef {
	cctx, _ := *(*C.JSContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	cname, _ := *(*C.JSStringRef)(unsafe.Pointer(&name)), cgoAllocsUnknown
	cparameterCount, _ := (C.uint)(parameterCount), cgoAllocsUnknown
	cparameterNames, _ := (*C.JSStringRef)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&parameterNames)).Data)), cgoAllocsUnknown
	cbody, _ := *(*C.JSStringRef)(unsafe.Pointer(&body)), cgoAllocsUnknown
	csourceURL, _ := *(*C.JSStringRef)(unsafe.Pointer(&sourceURL)), cgoAllocsUnknown
	cstartingLineNumber, _ := (C.int)(startingLineNumber), cgoAllocsUnknown
	cexception, _ := (*C.JSValueRef)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&exception)).Data)), cgoAllocsUnknown
	__ret := C.JSObjectMakeFunction(cctx, cname, cparameterCount, cparameterNames, cbody, csourceURL, cstartingLineNumber, cexception)
	__v := *(*JSObjectRef)(unsafe.Pointer(&__ret))
	return __v
}

// JSObjectGetPrototype function as declared in JavaScriptCore/JSObjectRef.h:502
func JSObjectGetPrototype(ctx JSContextRef, object JSObjectRef) JSValueRef {
	cctx, _ := *(*C.JSContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	cobject, _ := *(*C.JSObjectRef)(unsafe.Pointer(&object)), cgoAllocsUnknown
	__ret := C.JSObjectGetPrototype(cctx, cobject)
	__v := *(*JSValueRef)(unsafe.Pointer(&__ret))
	return __v
}

// JSObjectSetPrototype function as declared in JavaScriptCore/JSObjectRef.h:511
func JSObjectSetPrototype(ctx JSContextRef, object JSObjectRef, value JSValueRef) {
	cctx, _ := *(*C.JSContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	cobject, _ := *(*C.JSObjectRef)(unsafe.Pointer(&object)), cgoAllocsUnknown
	cvalue, _ := *(*C.JSValueRef)(unsafe.Pointer(&value)), cgoAllocsUnknown
	C.JSObjectSetPrototype(cctx, cobject, cvalue)
}

// JSObjectHasProperty function as declared in JavaScriptCore/JSObjectRef.h:520
func JSObjectHasProperty(ctx JSContextRef, object JSObjectRef, propertyName JSStringRef) bool {
	cctx, _ := *(*C.JSContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	cobject, _ := *(*C.JSObjectRef)(unsafe.Pointer(&object)), cgoAllocsUnknown
	cpropertyName, _ := *(*C.JSStringRef)(unsafe.Pointer(&propertyName)), cgoAllocsUnknown
	__ret := C.JSObjectHasProperty(cctx, cobject, cpropertyName)
	__v := (bool)(__ret)
	return __v
}

// JSObjectGetProperty function as declared in JavaScriptCore/JSObjectRef.h:531
func JSObjectGetProperty(ctx JSContextRef, object JSObjectRef, propertyName JSStringRef, exception []JSValueRef) JSValueRef {
	cctx, _ := *(*C.JSContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	cobject, _ := *(*C.JSObjectRef)(unsafe.Pointer(&object)), cgoAllocsUnknown
	cpropertyName, _ := *(*C.JSStringRef)(unsafe.Pointer(&propertyName)), cgoAllocsUnknown
	cexception, _ := (*C.JSValueRef)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&exception)).Data)), cgoAllocsUnknown
	__ret := C.JSObjectGetProperty(cctx, cobject, cpropertyName, cexception)
	__v := *(*JSValueRef)(unsafe.Pointer(&__ret))
	return __v
}

// JSObjectSetProperty function as declared in JavaScriptCore/JSObjectRef.h:543
func JSObjectSetProperty(ctx JSContextRef, object JSObjectRef, propertyName JSStringRef, value JSValueRef, attributes JSPropertyAttributes, exception []JSValueRef) {
	cctx, _ := *(*C.JSContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	cobject, _ := *(*C.JSObjectRef)(unsafe.Pointer(&object)), cgoAllocsUnknown
	cpropertyName, _ := *(*C.JSStringRef)(unsafe.Pointer(&propertyName)), cgoAllocsUnknown
	cvalue, _ := *(*C.JSValueRef)(unsafe.Pointer(&value)), cgoAllocsUnknown
	cattributes, _ := (C.JSPropertyAttributes)(attributes), cgoAllocsUnknown
	cexception, _ := (*C.JSValueRef)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&exception)).Data)), cgoAllocsUnknown
	C.JSObjectSetProperty(cctx, cobject, cpropertyName, cvalue, cattributes, cexception)
}

// JSObjectDeleteProperty function as declared in JavaScriptCore/JSObjectRef.h:554
func JSObjectDeleteProperty(ctx JSContextRef, object JSObjectRef, propertyName JSStringRef, exception []JSValueRef) bool {
	cctx, _ := *(*C.JSContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	cobject, _ := *(*C.JSObjectRef)(unsafe.Pointer(&object)), cgoAllocsUnknown
	cpropertyName, _ := *(*C.JSStringRef)(unsafe.Pointer(&propertyName)), cgoAllocsUnknown
	cexception, _ := (*C.JSValueRef)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&exception)).Data)), cgoAllocsUnknown
	__ret := C.JSObjectDeleteProperty(cctx, cobject, cpropertyName, cexception)
	__v := (bool)(__ret)
	return __v
}

// JSObjectGetPropertyAtIndex function as declared in JavaScriptCore/JSObjectRef.h:566
func JSObjectGetPropertyAtIndex(ctx JSContextRef, object JSObjectRef, propertyIndex uint32, exception []JSValueRef) JSValueRef {
	cctx, _ := *(*C.JSContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	cobject, _ := *(*C.JSObjectRef)(unsafe.Pointer(&object)), cgoAllocsUnknown
	cpropertyIndex, _ := (C.uint)(propertyIndex), cgoAllocsUnknown
	cexception, _ := (*C.JSValueRef)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&exception)).Data)), cgoAllocsUnknown
	__ret := C.JSObjectGetPropertyAtIndex(cctx, cobject, cpropertyIndex, cexception)
	__v := *(*JSValueRef)(unsafe.Pointer(&__ret))
	return __v
}

// JSObjectSetPropertyAtIndex function as declared in JavaScriptCore/JSObjectRef.h:578
func JSObjectSetPropertyAtIndex(ctx JSContextRef, object JSObjectRef, propertyIndex uint32, value JSValueRef, exception []JSValueRef) {
	cctx, _ := *(*C.JSContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	cobject, _ := *(*C.JSObjectRef)(unsafe.Pointer(&object)), cgoAllocsUnknown
	cpropertyIndex, _ := (C.uint)(propertyIndex), cgoAllocsUnknown
	cvalue, _ := *(*C.JSValueRef)(unsafe.Pointer(&value)), cgoAllocsUnknown
	cexception, _ := (*C.JSValueRef)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&exception)).Data)), cgoAllocsUnknown
	C.JSObjectSetPropertyAtIndex(cctx, cobject, cpropertyIndex, cvalue, cexception)
}

// JSObjectGetPrivate function as declared in JavaScriptCore/JSObjectRef.h:586
func JSObjectGetPrivate(object JSObjectRef) unsafe.Pointer {
	cobject, _ := *(*C.JSObjectRef)(unsafe.Pointer(&object)), cgoAllocsUnknown
	__ret := C.JSObjectGetPrivate(cobject)
	__v := *(*unsafe.Pointer)(unsafe.Pointer(&__ret))
	return __v
}

// JSObjectSetPrivate function as declared in JavaScriptCore/JSObjectRef.h:596
func JSObjectSetPrivate(object JSObjectRef, data unsafe.Pointer) bool {
	cobject, _ := *(*C.JSObjectRef)(unsafe.Pointer(&object)), cgoAllocsUnknown
	cdata, _ := data, cgoAllocsUnknown
	__ret := C.JSObjectSetPrivate(cobject, cdata)
	__v := (bool)(__ret)
	return __v
}

// JSObjectIsFunction function as declared in JavaScriptCore/JSObjectRef.h:605
func JSObjectIsFunction(ctx JSContextRef, object JSObjectRef) bool {
	cctx, _ := *(*C.JSContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	cobject, _ := *(*C.JSObjectRef)(unsafe.Pointer(&object)), cgoAllocsUnknown
	__ret := C.JSObjectIsFunction(cctx, cobject)
	__v := (bool)(__ret)
	return __v
}

// JSObjectCallAsFunction function as declared in JavaScriptCore/JSObjectRef.h:618
func JSObjectCallAsFunction(ctx JSContextRef, object JSObjectRef, thisObject JSObjectRef, argumentCount uint, arguments []JSValueRef, exception []JSValueRef) JSValueRef {
	cctx, _ := *(*C.JSContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	cobject, _ := *(*C.JSObjectRef)(unsafe.Pointer(&object)), cgoAllocsUnknown
	cthisObject, _ := *(*C.JSObjectRef)(unsafe.Pointer(&thisObject)), cgoAllocsUnknown
	cargumentCount, _ := (C.size_t)(argumentCount), cgoAllocsUnknown
	carguments, _ := (*C.JSValueRef)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&arguments)).Data)), cgoAllocsUnknown
	cexception, _ := (*C.JSValueRef)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&exception)).Data)), cgoAllocsUnknown
	__ret := C.JSObjectCallAsFunction(cctx, cobject, cthisObject, cargumentCount, carguments, cexception)
	__v := *(*JSValueRef)(unsafe.Pointer(&__ret))
	return __v
}

// JSObjectIsConstructor function as declared in JavaScriptCore/JSObjectRef.h:627
func JSObjectIsConstructor(ctx JSContextRef, object JSObjectRef) bool {
	cctx, _ := *(*C.JSContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	cobject, _ := *(*C.JSObjectRef)(unsafe.Pointer(&object)), cgoAllocsUnknown
	__ret := C.JSObjectIsConstructor(cctx, cobject)
	__v := (bool)(__ret)
	return __v
}

// JSObjectCallAsConstructor function as declared in JavaScriptCore/JSObjectRef.h:639
func JSObjectCallAsConstructor(ctx JSContextRef, object JSObjectRef, argumentCount uint, arguments []JSValueRef, exception []JSValueRef) JSObjectRef {
	cctx, _ := *(*C.JSContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	cobject, _ := *(*C.JSObjectRef)(unsafe.Pointer(&object)), cgoAllocsUnknown
	cargumentCount, _ := (C.size_t)(argumentCount), cgoAllocsUnknown
	carguments, _ := (*C.JSValueRef)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&arguments)).Data)), cgoAllocsUnknown
	cexception, _ := (*C.JSValueRef)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&exception)).Data)), cgoAllocsUnknown
	__ret := C.JSObjectCallAsConstructor(cctx, cobject, cargumentCount, carguments, cexception)
	__v := *(*JSObjectRef)(unsafe.Pointer(&__ret))
	return __v
}

// JSObjectCopyPropertyNames function as declared in JavaScriptCore/JSObjectRef.h:648
func JSObjectCopyPropertyNames(ctx JSContextRef, object JSObjectRef) JSPropertyNameArrayRef {
	cctx, _ := *(*C.JSContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	cobject, _ := *(*C.JSObjectRef)(unsafe.Pointer(&object)), cgoAllocsUnknown
	__ret := C.JSObjectCopyPropertyNames(cctx, cobject)
	__v := *(*JSPropertyNameArrayRef)(unsafe.Pointer(&__ret))
	return __v
}

// JSPropertyNameArrayRetain function as declared in JavaScriptCore/JSObjectRef.h:656
func JSPropertyNameArrayRetain(array JSPropertyNameArrayRef) JSPropertyNameArrayRef {
	carray, _ := *(*C.JSPropertyNameArrayRef)(unsafe.Pointer(&array)), cgoAllocsUnknown
	__ret := C.JSPropertyNameArrayRetain(carray)
	__v := *(*JSPropertyNameArrayRef)(unsafe.Pointer(&__ret))
	return __v
}

// JSPropertyNameArrayRelease function as declared in JavaScriptCore/JSObjectRef.h:663
func JSPropertyNameArrayRelease(array JSPropertyNameArrayRef) {
	carray, _ := *(*C.JSPropertyNameArrayRef)(unsafe.Pointer(&array)), cgoAllocsUnknown
	C.JSPropertyNameArrayRelease(carray)
}

// JSPropertyNameArrayGetCount function as declared in JavaScriptCore/JSObjectRef.h:671
func JSPropertyNameArrayGetCount(array JSPropertyNameArrayRef) uint {
	carray, _ := *(*C.JSPropertyNameArrayRef)(unsafe.Pointer(&array)), cgoAllocsUnknown
	__ret := C.JSPropertyNameArrayGetCount(carray)
	__v := (uint)(__ret)
	return __v
}

// JSPropertyNameArrayGetNameAtIndex function as declared in JavaScriptCore/JSObjectRef.h:680
func JSPropertyNameArrayGetNameAtIndex(array JSPropertyNameArrayRef, index uint) JSStringRef {
	carray, _ := *(*C.JSPropertyNameArrayRef)(unsafe.Pointer(&array)), cgoAllocsUnknown
	cindex, _ := (C.size_t)(index), cgoAllocsUnknown
	__ret := C.JSPropertyNameArrayGetNameAtIndex(carray, cindex)
	__v := *(*JSStringRef)(unsafe.Pointer(&__ret))
	return __v
}

// JSPropertyNameAccumulatorAddName function as declared in JavaScriptCore/JSObjectRef.h:688
func JSPropertyNameAccumulatorAddName(accumulator JSPropertyNameAccumulatorRef, propertyName JSStringRef) {
	caccumulator, _ := *(*C.JSPropertyNameAccumulatorRef)(unsafe.Pointer(&accumulator)), cgoAllocsUnknown
	cpropertyName, _ := *(*C.JSStringRef)(unsafe.Pointer(&propertyName)), cgoAllocsUnknown
	C.JSPropertyNameAccumulatorAddName(caccumulator, cpropertyName)
}

// JSValueGetType function as declared in JavaScriptCore/JSValueRef.h:96
func JSValueGetType(ctx JSContextRef, value JSValueRef) JSType {
	cctx, _ := *(*C.JSContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	cvalue, _ := *(*C.JSValueRef)(unsafe.Pointer(&value)), cgoAllocsUnknown
	__ret := C.JSValueGetType(cctx, cvalue)
	__v := (JSType)(__ret)
	return __v
}

// JSValueIsUndefined function as declared in JavaScriptCore/JSValueRef.h:105
func JSValueIsUndefined(ctx JSContextRef, value JSValueRef) bool {
	cctx, _ := *(*C.JSContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	cvalue, _ := *(*C.JSValueRef)(unsafe.Pointer(&value)), cgoAllocsUnknown
	__ret := C.JSValueIsUndefined(cctx, cvalue)
	__v := (bool)(__ret)
	return __v
}

// JSValueIsNull function as declared in JavaScriptCore/JSValueRef.h:114
func JSValueIsNull(ctx JSContextRef, value JSValueRef) bool {
	cctx, _ := *(*C.JSContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	cvalue, _ := *(*C.JSValueRef)(unsafe.Pointer(&value)), cgoAllocsUnknown
	__ret := C.JSValueIsNull(cctx, cvalue)
	__v := (bool)(__ret)
	return __v
}

// JSValueIsBoolean function as declared in JavaScriptCore/JSValueRef.h:123
func JSValueIsBoolean(ctx JSContextRef, value JSValueRef) bool {
	cctx, _ := *(*C.JSContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	cvalue, _ := *(*C.JSValueRef)(unsafe.Pointer(&value)), cgoAllocsUnknown
	__ret := C.JSValueIsBoolean(cctx, cvalue)
	__v := (bool)(__ret)
	return __v
}

// JSValueIsNumber function as declared in JavaScriptCore/JSValueRef.h:132
func JSValueIsNumber(ctx JSContextRef, value JSValueRef) bool {
	cctx, _ := *(*C.JSContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	cvalue, _ := *(*C.JSValueRef)(unsafe.Pointer(&value)), cgoAllocsUnknown
	__ret := C.JSValueIsNumber(cctx, cvalue)
	__v := (bool)(__ret)
	return __v
}

// JSValueIsString function as declared in JavaScriptCore/JSValueRef.h:141
func JSValueIsString(ctx JSContextRef, value JSValueRef) bool {
	cctx, _ := *(*C.JSContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	cvalue, _ := *(*C.JSValueRef)(unsafe.Pointer(&value)), cgoAllocsUnknown
	__ret := C.JSValueIsString(cctx, cvalue)
	__v := (bool)(__ret)
	return __v
}

// JSValueIsObject function as declared in JavaScriptCore/JSValueRef.h:150
func JSValueIsObject(ctx JSContextRef, value JSValueRef) bool {
	cctx, _ := *(*C.JSContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	cvalue, _ := *(*C.JSValueRef)(unsafe.Pointer(&value)), cgoAllocsUnknown
	__ret := C.JSValueIsObject(cctx, cvalue)
	__v := (bool)(__ret)
	return __v
}

// JSValueIsObjectOfClass function as declared in JavaScriptCore/JSValueRef.h:160
func JSValueIsObjectOfClass(ctx JSContextRef, value JSValueRef, jsClass JSClassRef) bool {
	cctx, _ := *(*C.JSContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	cvalue, _ := *(*C.JSValueRef)(unsafe.Pointer(&value)), cgoAllocsUnknown
	cjsClass, _ := *(*C.JSClassRef)(unsafe.Pointer(&jsClass)), cgoAllocsUnknown
	__ret := C.JSValueIsObjectOfClass(cctx, cvalue, cjsClass)
	__v := (bool)(__ret)
	return __v
}

// JSValueIsArray function as declared in JavaScriptCore/JSValueRef.h:169
func JSValueIsArray(ctx JSContextRef, value JSValueRef) bool {
	cctx, _ := *(*C.JSContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	cvalue, _ := *(*C.JSValueRef)(unsafe.Pointer(&value)), cgoAllocsUnknown
	__ret := C.JSValueIsArray(cctx, cvalue)
	__v := (bool)(__ret)
	return __v
}

// JSValueIsDate function as declared in JavaScriptCore/JSValueRef.h:178
func JSValueIsDate(ctx JSContextRef, value JSValueRef) bool {
	cctx, _ := *(*C.JSContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	cvalue, _ := *(*C.JSValueRef)(unsafe.Pointer(&value)), cgoAllocsUnknown
	__ret := C.JSValueIsDate(cctx, cvalue)
	__v := (bool)(__ret)
	return __v
}

// JSValueIsEqual function as declared in JavaScriptCore/JSValueRef.h:201
func JSValueIsEqual(ctx JSContextRef, a JSValueRef, b JSValueRef, exception []JSValueRef) bool {
	cctx, _ := *(*C.JSContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	ca, _ := *(*C.JSValueRef)(unsafe.Pointer(&a)), cgoAllocsUnknown
	cb, _ := *(*C.JSValueRef)(unsafe.Pointer(&b)), cgoAllocsUnknown
	cexception, _ := (*C.JSValueRef)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&exception)).Data)), cgoAllocsUnknown
	__ret := C.JSValueIsEqual(cctx, ca, cb, cexception)
	__v := (bool)(__ret)
	return __v
}

// JSValueIsStrictEqual function as declared in JavaScriptCore/JSValueRef.h:211
func JSValueIsStrictEqual(ctx JSContextRef, a JSValueRef, b JSValueRef) bool {
	cctx, _ := *(*C.JSContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	ca, _ := *(*C.JSValueRef)(unsafe.Pointer(&a)), cgoAllocsUnknown
	cb, _ := *(*C.JSValueRef)(unsafe.Pointer(&b)), cgoAllocsUnknown
	__ret := C.JSValueIsStrictEqual(cctx, ca, cb)
	__v := (bool)(__ret)
	return __v
}

// JSValueIsInstanceOfConstructor function as declared in JavaScriptCore/JSValueRef.h:222
func JSValueIsInstanceOfConstructor(ctx JSContextRef, value JSValueRef, constructor JSObjectRef, exception []JSValueRef) bool {
	cctx, _ := *(*C.JSContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	cvalue, _ := *(*C.JSValueRef)(unsafe.Pointer(&value)), cgoAllocsUnknown
	cconstructor, _ := *(*C.JSObjectRef)(unsafe.Pointer(&constructor)), cgoAllocsUnknown
	cexception, _ := (*C.JSValueRef)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&exception)).Data)), cgoAllocsUnknown
	__ret := C.JSValueIsInstanceOfConstructor(cctx, cvalue, cconstructor, cexception)
	__v := (bool)(__ret)
	return __v
}

// JSValueMakeUndefined function as declared in JavaScriptCore/JSValueRef.h:232
func JSValueMakeUndefined(ctx JSContextRef) JSValueRef {
	cctx, _ := *(*C.JSContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	__ret := C.JSValueMakeUndefined(cctx)
	__v := *(*JSValueRef)(unsafe.Pointer(&__ret))
	return __v
}

// JSValueMakeNull function as declared in JavaScriptCore/JSValueRef.h:240
func JSValueMakeNull(ctx JSContextRef) JSValueRef {
	cctx, _ := *(*C.JSContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	__ret := C.JSValueMakeNull(cctx)
	__v := *(*JSValueRef)(unsafe.Pointer(&__ret))
	return __v
}

// JSValueMakeBoolean function as declared in JavaScriptCore/JSValueRef.h:249
func JSValueMakeBoolean(ctx JSContextRef, boolean bool) JSValueRef {
	cctx, _ := *(*C.JSContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	cboolean, _ := (C._Bool)(boolean), cgoAllocsUnknown
	__ret := C.JSValueMakeBoolean(cctx, cboolean)
	__v := *(*JSValueRef)(unsafe.Pointer(&__ret))
	return __v
}

// JSValueMakeNumber function as declared in JavaScriptCore/JSValueRef.h:258
func JSValueMakeNumber(ctx JSContextRef, number float64) JSValueRef {
	cctx, _ := *(*C.JSContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	cnumber, _ := (C.double)(number), cgoAllocsUnknown
	__ret := C.JSValueMakeNumber(cctx, cnumber)
	__v := *(*JSValueRef)(unsafe.Pointer(&__ret))
	return __v
}

// JSValueMakeString function as declared in JavaScriptCore/JSValueRef.h:268
func JSValueMakeString(ctx JSContextRef, string JSStringRef) JSValueRef {
	cctx, _ := *(*C.JSContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	cstring, _ := *(*C.JSStringRef)(unsafe.Pointer(&string)), cgoAllocsUnknown
	__ret := C.JSValueMakeString(cctx, cstring)
	__v := *(*JSValueRef)(unsafe.Pointer(&__ret))
	return __v
}

// JSValueMakeFromJSONString function as declared in JavaScriptCore/JSValueRef.h:279
func JSValueMakeFromJSONString(ctx JSContextRef, string JSStringRef) JSValueRef {
	cctx, _ := *(*C.JSContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	cstring, _ := *(*C.JSStringRef)(unsafe.Pointer(&string)), cgoAllocsUnknown
	__ret := C.JSValueMakeFromJSONString(cctx, cstring)
	__v := *(*JSValueRef)(unsafe.Pointer(&__ret))
	return __v
}

// JSValueCreateJSONString function as declared in JavaScriptCore/JSValueRef.h:290
func JSValueCreateJSONString(ctx JSContextRef, value JSValueRef, indent uint32, exception []JSValueRef) JSStringRef {
	cctx, _ := *(*C.JSContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	cvalue, _ := *(*C.JSValueRef)(unsafe.Pointer(&value)), cgoAllocsUnknown
	cindent, _ := (C.uint)(indent), cgoAllocsUnknown
	cexception, _ := (*C.JSValueRef)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&exception)).Data)), cgoAllocsUnknown
	__ret := C.JSValueCreateJSONString(cctx, cvalue, cindent, cexception)
	__v := *(*JSStringRef)(unsafe.Pointer(&__ret))
	return __v
}

// JSValueToBoolean function as declared in JavaScriptCore/JSValueRef.h:301
func JSValueToBoolean(ctx JSContextRef, value JSValueRef) bool {
	cctx, _ := *(*C.JSContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	cvalue, _ := *(*C.JSValueRef)(unsafe.Pointer(&value)), cgoAllocsUnknown
	__ret := C.JSValueToBoolean(cctx, cvalue)
	__v := (bool)(__ret)
	return __v
}

// JSValueToNumber function as declared in JavaScriptCore/JSValueRef.h:311
func JSValueToNumber(ctx JSContextRef, value JSValueRef, exception []JSValueRef) float64 {
	cctx, _ := *(*C.JSContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	cvalue, _ := *(*C.JSValueRef)(unsafe.Pointer(&value)), cgoAllocsUnknown
	cexception, _ := (*C.JSValueRef)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&exception)).Data)), cgoAllocsUnknown
	__ret := C.JSValueToNumber(cctx, cvalue, cexception)
	__v := (float64)(__ret)
	return __v
}

// JSValueToStringCopy function as declared in JavaScriptCore/JSValueRef.h:321
func JSValueToStringCopy(ctx JSContextRef, value JSValueRef, exception []JSValueRef) JSStringRef {
	cctx, _ := *(*C.JSContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	cvalue, _ := *(*C.JSValueRef)(unsafe.Pointer(&value)), cgoAllocsUnknown
	cexception, _ := (*C.JSValueRef)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&exception)).Data)), cgoAllocsUnknown
	__ret := C.JSValueToStringCopy(cctx, cvalue, cexception)
	__v := *(*JSStringRef)(unsafe.Pointer(&__ret))
	return __v
}

// JSValueToObject function as declared in JavaScriptCore/JSValueRef.h:331
func JSValueToObject(ctx JSContextRef, value JSValueRef, exception []JSValueRef) JSObjectRef {
	cctx, _ := *(*C.JSContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	cvalue, _ := *(*C.JSValueRef)(unsafe.Pointer(&value)), cgoAllocsUnknown
	cexception, _ := (*C.JSValueRef)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&exception)).Data)), cgoAllocsUnknown
	__ret := C.JSValueToObject(cctx, cvalue, cexception)
	__v := *(*JSObjectRef)(unsafe.Pointer(&__ret))
	return __v
}

// JSValueProtect function as declared in JavaScriptCore/JSValueRef.h:343
func JSValueProtect(ctx JSContextRef, value JSValueRef) {
	cctx, _ := *(*C.JSContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	cvalue, _ := *(*C.JSValueRef)(unsafe.Pointer(&value)), cgoAllocsUnknown
	C.JSValueProtect(cctx, cvalue)
}

// JSValueUnprotect function as declared in JavaScriptCore/JSValueRef.h:353
func JSValueUnprotect(ctx JSContextRef, value JSValueRef) {
	cctx, _ := *(*C.JSContextRef)(unsafe.Pointer(&ctx)), cgoAllocsUnknown
	cvalue, _ := *(*C.JSValueRef)(unsafe.Pointer(&value)), cgoAllocsUnknown
	C.JSValueUnprotect(cctx, cvalue)
}

// JSStringCreateWithCharacters function as declared in JavaScriptCore/JSStringRef.h:61
func JSStringCreateWithCharacters(chars []JSChar, numChars uint) JSStringRef {
	cchars, _ := (*C.JSChar)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&chars)).Data)), cgoAllocsUnknown
	cnumChars, _ := (C.size_t)(numChars), cgoAllocsUnknown
	__ret := C.JSStringCreateWithCharacters(cchars, cnumChars)
	__v := *(*JSStringRef)(unsafe.Pointer(&__ret))
	return __v
}

// JSStringCreateWithUTF8CString function as declared in JavaScriptCore/JSStringRef.h:68
func JSStringCreateWithUTF8CString(string string) JSStringRef {
	string = safeString(string)
	cstring, _ := unpackPCharString(string)
	__ret := C.JSStringCreateWithUTF8CString(cstring)
	runtime.KeepAlive(string)
	__v := *(*JSStringRef)(unsafe.Pointer(&__ret))
	return __v
}

// JSStringRetain function as declared in JavaScriptCore/JSStringRef.h:76
func JSStringRetain(string JSStringRef) JSStringRef {
	cstring, _ := *(*C.JSStringRef)(unsafe.Pointer(&string)), cgoAllocsUnknown
	__ret := C.JSStringRetain(cstring)
	__v := *(*JSStringRef)(unsafe.Pointer(&__ret))
	return __v
}

// JSStringRelease function as declared in JavaScriptCore/JSStringRef.h:82
func JSStringRelease(string JSStringRef) {
	cstring, _ := *(*C.JSStringRef)(unsafe.Pointer(&string)), cgoAllocsUnknown
	C.JSStringRelease(cstring)
}

// JSStringGetLength function as declared in JavaScriptCore/JSStringRef.h:90
func JSStringGetLength(string JSStringRef) uint {
	cstring, _ := *(*C.JSStringRef)(unsafe.Pointer(&string)), cgoAllocsUnknown
	__ret := C.JSStringGetLength(cstring)
	__v := (uint)(__ret)
	return __v
}

// JSStringGetCharactersPtr function as declared in JavaScriptCore/JSStringRef.h:99
func JSStringGetCharactersPtr(string JSStringRef) *JSChar {
	cstring, _ := *(*C.JSStringRef)(unsafe.Pointer(&string)), cgoAllocsUnknown
	__ret := C.JSStringGetCharactersPtr(cstring)
	__v := *(**JSChar)(unsafe.Pointer(&__ret))
	return __v
}

// JSStringGetMaximumUTF8CStringSize function as declared in JavaScriptCore/JSStringRef.h:111
func JSStringGetMaximumUTF8CStringSize(string JSStringRef) uint {
	cstring, _ := *(*C.JSStringRef)(unsafe.Pointer(&string)), cgoAllocsUnknown
	__ret := C.JSStringGetMaximumUTF8CStringSize(cstring)
	__v := (uint)(__ret)
	return __v
}

// JSStringGetUTF8CString function as declared in JavaScriptCore/JSStringRef.h:125
func JSStringGetUTF8CString(string JSStringRef, buffer []byte, bufferSize uint) uint {
	cstring, _ := *(*C.JSStringRef)(unsafe.Pointer(&string)), cgoAllocsUnknown
	cbuffer, _ := (*C.char)(unsafe.Pointer((*sliceHeader)(unsafe.Pointer(&buffer)).Data)), cgoAllocsUnknown
	cbufferSize, _ := (C.size_t)(bufferSize), cgoAllocsUnknown
	__ret := C.JSStringGetUTF8CString(cstring, cbuffer, cbufferSize)
	__v := (uint)(__ret)
	return __v
}

// JSStringIsEqual function as declared in JavaScriptCore/JSStringRef.h:134
func JSStringIsEqual(a JSStringRef, b JSStringRef) bool {
	ca, _ := *(*C.JSStringRef)(unsafe.Pointer(&a)), cgoAllocsUnknown
	cb, _ := *(*C.JSStringRef)(unsafe.Pointer(&b)), cgoAllocsUnknown
	__ret := C.JSStringIsEqual(ca, cb)
	__v := (bool)(__ret)
	return __v
}

// JSStringIsEqualToUTF8CString function as declared in JavaScriptCore/JSStringRef.h:142
func JSStringIsEqualToUTF8CString(a JSStringRef, b string) bool {
	ca, _ := *(*C.JSStringRef)(unsafe.Pointer(&a)), cgoAllocsUnknown
	b = safeString(b)
	cb, _ := unpackPCharString(b)
	__ret := C.JSStringIsEqualToUTF8CString(ca, cb)
	runtime.KeepAlive(b)
	__v := (bool)(__ret)
	return __v
}
