Use upstream JavaScriptCore-4.0.gir file

This commit is contained in:
Austin Miller
2019-05-26 10:49:36 -07:00
parent 6b1fe0b65e
commit 63a1dbe2f2
5 changed files with 3833 additions and 8 deletions

View File

@@ -0,0 +1,355 @@
<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations. -->
<repository xmlns="http://www.gtk.org/introspection/core/1.0" xmlns:c="http://www.gtk.org/introspection/c/1.0" xmlns:glib="http://www.gtk.org/introspection/glib/1.0" version="1.2">
<include name="GObject" version="2.0"/>
<package name="javascriptcoregtk-4.0"/>
<c:include name="JavaScriptCore/JavaScript.h"/>
<namespace name="JavaScriptCore" version="4.0" shared-library="libjavascriptcoregtk-4.0.so.18" c:identifier-prefixes="JS" c:symbol-prefixes="JS">
<!-- Patches for incomplete type information in glib-compatible javascriptcore. -->
<callback name="Constructor" c:type="JSCConstructor">
<return-value transfer-ownership="full">
<type name="gpointer" c:type="gpointer"/>
</return-value>
<parameters>
<parameter name="args" transfer-ownership="none">
<type name="GLib.PtrArray" c:type="GPtrArray*"/>
</parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1">
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</callback>
<callback name="ClassVariadicFunction" c:type="JSCClassVariadicFunction">
<return-value transfer-ownership="full">
<type name="Value" c:type="JSCValue*"/>
</return-value>
<parameters>
<parameter name="instance" transfer-ownership="none">
<type name="gpointer" c:type="gpointer"/>
</parameter>
<parameter name="args" transfer-ownership="none">
<type name="GLib.PtrArray" c:type="GPtrArray*"/>
</parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1">
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</callback>
<callback name="PropertyGetter" c:type="JSCPropertyGetter">
<return-value transfer-ownership="full">
<type name="Value" c:type="JSCValue*"/>
</return-value>
<parameters>
<parameter name="instance" transfer-ownership="none">
<type name="gpointer" c:type="gpointer"/>
</parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1">
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</callback>
<callback name="PropertySetter" c:type="JSCPropertySetter">
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="instance" transfer-ownership="none">
<type name="gpointer" c:type="gpointer"/>
</parameter>
<parameter name="value" transfer-ownership="none">
<type name="Value" c:type="JSCValue*"/>
</parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1">
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</callback>
<callback name="VariadicFunction" c:type="JSCVariadicFunction">
<return-value transfer-ownership="full">
<type name="Value" c:type="JSCValue*"/>
</return-value>
<parameters>
<parameter name="args" transfer-ownership="none">
<type name="GLib.PtrArray" c:type="GPtrArray*"/>
</parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1">
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</callback>
<callback name="Getter" c:type="JSCGetter">
<return-value transfer-ownership="full">
<type name="Value" c:type="JSCValue*"/>
</return-value>
<parameters>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1">
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</callback>
<callback name="Setter" c:type="JSCSetter">
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="value" transfer-ownership="none">
<type name="Value" c:type="JSCValue*"/>
</parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1" closure="1">
<type name="gpointer" c:type="gpointer"/>
</parameter>
</parameters>
</callback>
<!-- Patches for non-glib javascriptcore that deprecated webkitgtk functions still reference. -->
<record name="GlobalContextRef" c:type="JSGlobalContextRef" deprecated="1" deprecated-version="2.22" disguised="1" foreign="1">
<method name="ref" c:identifier="JSGlobalContextRetain">
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="context" transfer-ownership="none">
<type name="GlobalContextRef" c:type="JSGlobalContextRef"/>
</instance-parameter>
</parameters>
</method>
<method name="unref" c:identifier="JSGlobalContextRelease">
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="context" transfer-ownership="none">
<type name="GlobalContextRef" c:type="JSGlobalContextRef"/>
</instance-parameter>
</parameters>
</method>
</record>
<record name="ValueRef" c:type="JSValueRef" deprecated="1" deprecated-version="2.22" disguised="1">
<function name="ValueIsArray" c:identifier="JSValueIsArray" deprecated="1" deprecated-version="2.22">
<return-value transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="ctx" transfer-ownership="none">
<type name="GlobalContextRef" c:type="JSGlobalContextRef"/>
</parameter>
<parameter name="value" transfer-ownership="none">
<type name="ValueRef" c:type="JSValueRef"/>
</parameter>
</parameters>
</function>
<function name="ValueProtect" c:type="JSValueProtect">
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="context" transfer-ownership="none">
<type name="GlobalContextRef" c:type="JSGlobalContextRef"/>
</parameter>
<parameter name="value" transfer-ownership="none">
<type name="ValueRef" c:type="JSValueRef"/>
</parameter>
</parameters>
</function>
<function name="ValueUnprotect" c:type="JSValueUnprotect">
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<parameter name="context" transfer-ownership="none">
<type name="GlobalContextRef" c:type="JSGlobalContextRef"/>
</parameter>
<parameter name="value" transfer-ownership="none">
<type name="ValueRef" c:type="JSValueRef"/>
</parameter>
</parameters>
</function>
<function name="ValueIsBoolean" c:identifier="JSValueIsBoolean" deprecated="1" deprecated-version="2.22">
<return-value transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="ctx" transfer-ownership="none">
<type name="GlobalContextRef" c:type="JSGlobalContextRef"/>
</parameter>
<parameter name="value" transfer-ownership="none">
<type name="ValueRef" c:type="JSValueRef"/>
</parameter>
</parameters>
</function>
<function name="ValueIsDate" c:identifier="JSValueIsDate" deprecated="1" deprecated-version="2.22">
<return-value transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="ctx" transfer-ownership="none">
<type name="GlobalContextRef" c:type="JSGlobalContextRef"/>
</parameter>
<parameter name="value" transfer-ownership="none">
<type name="ValueRef" c:type="JSValueRef"/>
</parameter>
</parameters>
</function>
<function name="ValueIsObject" c:identifier="JSValueIsObject" deprecated="1" deprecated-version="2.22">
<return-value transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="ctx" transfer-ownership="none">
<type name="GlobalContextRef" c:type="JSGlobalContextRef"/>
</parameter>
<parameter name="value" transfer-ownership="none">
<type name="ValueRef" c:type="JSValueRef"/>
</parameter>
</parameters>
</function>
<function name="ValueIsNull" c:identifier="JSValueIsNull" deprecated="1" deprecated-version="2.22">
<return-value transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="ctx" transfer-ownership="none">
<type name="GlobalContextRef" c:type="JSGlobalContextRef"/>
</parameter>
<parameter name="value" transfer-ownership="none">
<type name="ValueRef" c:type="JSValueRef"/>
</parameter>
</parameters>
</function>
<function name="ValueIsNumber" c:identifier="JSValueIsNumber" deprecated="1" deprecated-version="2.22">
<return-value transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="ctx" transfer-ownership="none">
<type name="GlobalContextRef" c:type="JSGlobalContextRef"/>
</parameter>
<parameter name="value" transfer-ownership="none">
<type name="ValueRef" c:type="JSValueRef"/>
</parameter>
</parameters>
</function>
<function name="ValueIsString" c:identifier="JSValueIsString" deprecated="1" deprecated-version="2.22">
<return-value transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="ctx" transfer-ownership="none">
<type name="GlobalContextRef" c:type="JSGlobalContextRef"/>
</parameter>
<parameter name="value" transfer-ownership="none">
<type name="ValueRef" c:type="JSValueRef"/>
</parameter>
</parameters>
</function>
<function name="ValueIsUndefined" c:identifier="JSValueIsUndefined" deprecated="1" deprecated-version="2.22">
<return-value transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="ctx" transfer-ownership="none">
<type name="GlobalContextRef" c:type="JSGlobalContextRef"/>
</parameter>
<parameter name="value" transfer-ownership="none">
<type name="ValueRef" c:type="JSValueRef"/>
</parameter>
</parameters>
</function>
<function name="ValueToBoolean" c:identifier="JSValueToBoolean" deprecated="1" deprecated-version="2.22">
<return-value transfer-ownership="none">
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<parameter name="ctx" transfer-ownership="none">
<type name="GlobalContextRef" c:type="JSGlobalContextRef"/>
</parameter>
<parameter name="value" transfer-ownership="none">
<type name="ValueRef" c:type="JSValueRef"/>
</parameter>
</parameters>
</function>
<function name="ValueToNumber" c:identifier="JSValueToNumber" deprecated="1" deprecated-version="2.22">
<return-value transfer-ownership="none">
<type name="gdouble" c:type="gdouble"/>
</return-value>
<parameters>
<parameter name="ctx" transfer-ownership="none">
<type name="GlobalContextRef" c:type="JSGlobalContextRef"/>
</parameter>
<parameter name="value" transfer-ownership="none">
<type name="ValueRef" c:type="JSValueRef"/>
</parameter>
<parameter name="exception" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1">
<doc xml:space="preserve">return location for a #JSCException, or %NULL to ignore</doc>
<type name="Exception" c:type="JSCException**"/>
</parameter>
</parameters>
</function>
<function name="ValueToStringCopy" c:identifier="JSValueToStringCopy">
<return-value transfer-ownership="none">
<type name="StringRef" c:type="JSStringRef"/>
</return-value>
<parameters>
<parameter name="ctx" transfer-ownership="none">
<type name="GlobalContextRef" c:type="JSGlobalContextRef"/>
</parameter>
<parameter name="value" transfer-ownership="none">
<type name="ValueRef" c:type="JSValueRef"/>
</parameter>
<parameter name="exception" direction="out" caller-allocates="0" transfer-ownership="full" optional="1" allow-none="1">
<type name="ValueRef" c:type="JSValueRef*"/>
</parameter>
</parameters>
</function>
</record>
<record name="StringRef" c:type="JSStringRef" deprecated="1" deprecated-version="2.22" disguised="1" foreign="1">
<method name="ref" c:identifier="JSStringRetain">
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="string" transfer-ownership="none">
<type name="StringRef" c:type="JSStringRef"/>
</instance-parameter>
</parameters>
</method>
<method name="unref" c:identifier="JSStringRelease">
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
</return-value>
<parameters>
<instance-parameter name="string" transfer-ownership="none">
<type name="StringRef" c:type="JSStringRef"/>
</instance-parameter>
</parameters>
</method>
<method name="GetMaximumUTF8CStringSize" c:identifier="JSStringGetMaximumUTF8CStringSize">
<return-value transfer-ownership="none">
<type name="gsize" c:type="gsize"/>
</return-value>
<parameters>
<instance-parameter name="string" transfer-ownership="none">
<type name="StringRef" c:type="JSStringRef"/>
</instance-parameter>
</parameters>
</method>
<method name="GetUTF8CStringJSStringGetUTF8CString" c:identifier="JSStringGetUTF8CString">
<return-value transfer-ownership="none">
<type name="gsize" c:type="gsize"/>
</return-value>
<parameters>
<instance-parameter name="string" transfer-ownership="none">
<type name="StringRef" c:type="JSStringRef"/>
</instance-parameter>
<parameter name="buffer" direction="inout" caller-allocates="1" transfer-ownership="none">
<type name="utf8" c:type="char**"/>
</parameter>
<parameter name="buffer_size" transfer-ownership="none">
<type name="gsize" c:type="gsize"/>
</parameter>
</parameters>
</method>
</record>
</namespace>
</repository>

File diff suppressed because it is too large Load Diff

84
JavaScriptCore-4.0.xsl Normal file
View File

@@ -0,0 +1,84 @@
<xsl:stylesheet xmlns="http://www.gtk.org/introspection/core/1.0"
xmlns:gir="http://www.gtk.org/introspection/core/1.0"
xmlns:c="http://www.gtk.org/introspection/c/1.0"
xmlns:glib="http://www.gtk.org/introspection/glib/1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="xml" indent="yes"/>
<!-- Insert non-glib types and additional callback types. -->
<xsl:template match="/gir:repository/gir:namespace[@name='JavaScriptCore' and not(./gir:record[@name='GlobalContextRef'])]">
<xsl:copy>
<xsl:apply-templates select="@*"/>
<xsl:text>&#xa;</xsl:text>
<xsl:apply-templates select="document('JavaScriptCore-4.0-patch.gir')/gir:repository/gir:namespace/*"/>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
<!-- Patch up class callback types. -->
<xsl:template match="//gir:class[@name='Class']/gir:method[@name='add_constructor_variadic']//gir:parameter[@name='callback']/gir:type">
<xsl:copy>
<xsl:attribute name="name">Constructor</xsl:attribute>
<xsl:attribute name="c:type">JSCConstructor</xsl:attribute>
</xsl:copy>
</xsl:template>
<xsl:template match="//gir:class[@name='Class']/gir:method[@name='add_method_variadic']//gir:parameter[@name='callback']/gir:type">
<xsl:copy>
<xsl:attribute name="name">ClassVariadicFunction</xsl:attribute>
<xsl:attribute name="c:type">JSCClassVariadicFunction</xsl:attribute>
</xsl:copy>
</xsl:template>
<xsl:template match="//gir:class[@name='Class']/gir:method[@name='add_property']//gir:parameter[@name='getter']">
<xsl:copy>
<xsl:apply-templates select="@*[not(name()='scope') and not(name()='closure')]"/>
<xsl:attribute name="scope">notified</xsl:attribute>
<xsl:attribute name="closure">4</xsl:attribute>
<xsl:attribute name="destroy">5</xsl:attribute>
<xsl:text>&#xa;</xsl:text>
<xsl:apply-templates select="*[not(name()='type')]"/>
<xsl:text>&#xa;</xsl:text>
<type name="PropertyGetter" c:type="JSCPropertyGetter"/>
</xsl:copy>
</xsl:template>
<xsl:template match="//gir:class[@name='Class']/gir:method[@name='add_property']//gir:parameter[@name='setter']/gir:type">
<xsl:copy>
<xsl:attribute name="name">PropertySetter</xsl:attribute>
<xsl:attribute name="c:type">JSCPropertySetter</xsl:attribute>
</xsl:copy>
</xsl:template>
<!-- Patch up value callback types. -->
<xsl:template match="//gir:class[@name='Value']/gir:constructor[@name='new_function_variadic']//gir:parameter[@name='callback']/gir:type">
<xsl:copy>
<xsl:attribute name="name">VariadicFunction</xsl:attribute>
<xsl:attribute name="c:type">JSCVariadicFunction</xsl:attribute>
</xsl:copy>
</xsl:template>
<xsl:template match="//gir:class[@name='Value']/gir:method[@name='object_define_property_accessor']//gir:parameter[@name='getter']">
<xsl:copy>
<xsl:apply-templates select="@*[not(name()='scope') and not(name()='closure')]"/>
<xsl:attribute name="scope">notified</xsl:attribute>
<xsl:attribute name="closure">5</xsl:attribute>
<xsl:attribute name="destroy">6</xsl:attribute>
<xsl:text>&#xa;</xsl:text>
<xsl:apply-templates select="*[not(name()='type')]"/>
<xsl:text>&#xa;</xsl:text>
<type name="Getter" c:type="JSCGetter"/>
</xsl:copy>
</xsl:template>
<xsl:template match="//gir:class[@name='Value']/gir:method[@name='object_define_property_accessor']//gir:parameter[@name='setter']/gir:type">
<xsl:copy>
<xsl:attribute name="name">Setter</xsl:attribute>
<xsl:attribute name="c:type">JSCSetter</xsl:attribute>
</xsl:copy>
</xsl:template>
<!-- Identity template. -->
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>

2
dl.sh
View File

@@ -11,7 +11,7 @@ VER="eoan"
./gir-dl.sh https://packages.ubuntu.com/$VER/amd64/libgtksourceview-3.0-dev/download
./gir-dl.sh https://packages.ubuntu.com/$VER/amd64/libsecret-1-dev/download
./gir-dl.sh https://packages.ubuntu.com/$VER/amd64/libvte-2.91-dev/download
#./gir-dl.sh https://packages.ubuntu.com/$VER/amd64/libjavascriptcoregtk-4.0-dev/download
./gir-dl.sh https://packages.ubuntu.com/$VER/amd64/libjavascriptcoregtk-4.0-dev/download
./gir-dl.sh https://packages.ubuntu.com/$VER/amd64/libsoup2.4-dev/download
./gir-dl.sh https://packages.ubuntu.com/$VER/amd64/libwebkit2gtk-4.0-dev/download

4
fix.sh
View File

@@ -61,11 +61,13 @@ xmlstarlet ed -P -L \
-u '//_:parameter[@name="response_id"]/_:type[@name="gint"]/@name' -v "ResponseType" \
Gtk-3.0.gir
xmlstarlet tr JavaScriptCore-4.0.xsl JavaScriptCore-4.0.gir | xmlstarlet fo > JavaScriptCore-4.0.gir.tmp
mv JavaScriptCore-4.0.gir.tmp JavaScriptCore-4.0.gir
# fill in types from JavaScriptCore
xmlstarlet ed -P -L \
-i '//_:type[not(@name) and @c:type="JSGlobalContextRef"]' -t 'attr' -n 'name' -v "JavaScriptCore.GlobalContextRef" \
-i '//_:type[not(@name) and @c:type="JSValueRef"]' -t 'attr' -n 'name' -v "JavaScriptCore.ValueRef" \
-i '//_:type[not(@name) and @c:type="JSCValue*"]' -t 'attr' -n 'name' -v "JavaScriptCore.Value" \
WebKit2WebExtension-4.0.gir WebKit2-4.0.gir
xmlstarlet ed -P -L \