Skip to content
This repository was archived by the owner on Jun 24, 2022. It is now read-only.

Commit a39285b

Browse files
[GLIB] Expose JavaScriptCore options in GLib public API
https://bugs.webkit.org/show_bug.cgi?id=188742 Reviewed by Michael Catanzaro. Source/JavaScriptCore: Add new API to set, get and iterate JSC options. * API/glib/JSCOptions.cpp: Added. (valueFromGValue): (valueToGValue): (jscOptionsSetValue): (jscOptionsGetValue): (jsc_options_set_boolean): (jsc_options_get_boolean): (jsc_options_set_int): (jsc_options_get_int): (jsc_options_set_uint): (jsc_options_get_uint): (jsc_options_set_size): (jsc_options_get_size): (jsc_options_set_double): (jsc_options_get_double): (jsc_options_set_string): (jsc_options_get_string): (jsc_options_set_range_string): (jsc_options_get_range_string): (jscOptionsType): (jsc_options_foreach): (setOptionEntry): (jsc_options_get_option_group): * API/glib/JSCOptions.h: Added. * API/glib/docs/jsc-glib-4.0-sections.txt: * API/glib/docs/jsc-glib-docs.sgml: * API/glib/jsc.h: * GLib.cmake: Source/WebCore/platform/gtk/po: * POTFILES.in: Add JSCOptions.cpp Tools: Add a test for the new API. * TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp: (testsJSCOptions): (main): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@240431 268f45cc-cd09-0410-ab3c-d52691b4dbfc
1 parent 23b2083 commit a39285b

File tree

11 files changed

+1138
-0
lines changed

11 files changed

+1138
-0
lines changed

Source/JavaScriptCore/API/glib/JSCOptions.cpp

Lines changed: 722 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
/*
2+
* Copyright (C) 2019 Igalia S.L.
3+
*
4+
* This library is free software; you can redistribute it and/or
5+
* modify it under the terms of the GNU Library General Public
6+
* License as published by the Free Software Foundation; either
7+
* version 2 of the License, or (at your option) any later version.
8+
*
9+
* This library is distributed in the hope that it will be useful,
10+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12+
* Library General Public License for more details.
13+
*
14+
* You should have received a copy of the GNU Library General Public License
15+
* along with this library; see the file COPYING.LIB. If not, write to
16+
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17+
* Boston, MA 02110-1301, USA.
18+
*/
19+
20+
#if !defined(__JSC_H_INSIDE__) && !defined(JSC_COMPILATION) && !defined(WEBKIT2_COMPILATION)
21+
#error "Only <jsc/jsc.h> can be included directly."
22+
#endif
23+
24+
#ifndef JSCOptions_h
25+
#define JSCOptions_h
26+
27+
#include <glib-object.h>
28+
#include <jsc/JSCDefines.h>
29+
30+
G_BEGIN_DECLS
31+
32+
#define JSC_OPTIONS_USE_JIT "useJIT"
33+
#define JSC_OPTIONS_USE_DFG "useDFGJIT"
34+
#define JSC_OPTIONS_USE_FTL "useFTLJIT"
35+
#define JSC_OPTIONS_USE_LLINT "useLLInt"
36+
37+
JSC_API gboolean
38+
jsc_options_set_boolean (const char *option,
39+
gboolean value);
40+
JSC_API gboolean
41+
jsc_options_get_boolean (const char *option,
42+
gboolean *value);
43+
44+
JSC_API gboolean
45+
jsc_options_set_int (const char *option,
46+
gint value);
47+
JSC_API gboolean
48+
jsc_options_get_int (const char *option,
49+
gint *value);
50+
51+
JSC_API gboolean
52+
jsc_options_set_uint (const char *option,
53+
guint value);
54+
JSC_API gboolean
55+
jsc_options_get_uint (const char *option,
56+
guint *value);
57+
58+
JSC_API gboolean
59+
jsc_options_set_size (const char *option,
60+
gsize value);
61+
JSC_API gboolean
62+
jsc_options_get_size (const char *option,
63+
gsize *value);
64+
65+
JSC_API gboolean
66+
jsc_options_set_double (const char *option,
67+
gdouble value);
68+
JSC_API gboolean
69+
jsc_options_get_double (const char *option,
70+
gdouble *value);
71+
72+
JSC_API gboolean
73+
jsc_options_set_string (const char *option,
74+
const char *value);
75+
JSC_API gboolean
76+
jsc_options_get_string (const char *option,
77+
char **value);
78+
79+
JSC_API gboolean
80+
jsc_options_set_range_string (const char *option,
81+
const char *value);
82+
JSC_API gboolean
83+
jsc_options_get_range_string (const char *option,
84+
char **value);
85+
86+
typedef enum {
87+
JSC_OPTION_BOOLEAN,
88+
JSC_OPTION_INT,
89+
JSC_OPTION_UINT,
90+
JSC_OPTION_SIZE,
91+
JSC_OPTION_DOUBLE,
92+
JSC_OPTION_STRING,
93+
JSC_OPTION_RANGE_STRING
94+
} JSCOptionType;
95+
96+
typedef gboolean (* JSCOptionsFunc) (const char *option,
97+
JSCOptionType type,
98+
const char *description,
99+
gpointer user_data);
100+
101+
JSC_API void
102+
jsc_options_foreach (JSCOptionsFunc function,
103+
gpointer user_data);
104+
105+
JSC_API GOptionGroup *
106+
jsc_options_get_option_group (void);
107+
108+
G_END_DECLS
109+
110+
#endif /* JSCOptions_h */

Source/JavaScriptCore/API/glib/docs/jsc-glib-4.0-sections.txt

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,36 @@ JSC_IS_CLASS
211211
jsc_class_get_type
212212
</SECTION>
213213

214+
<SECTION>
215+
<FILE>JSCOptions</FILE>
216+
<TITLE>JSCOptions</TITLE>
217+
jsc_options_set_boolean
218+
jsc_options_get_boolean
219+
jsc_options_set_int
220+
jsc_options_get_int
221+
jsc_options_set_uint
222+
jsc_options_get_uint
223+
jsc_options_set_size
224+
jsc_options_get_size
225+
jsc_options_set_double
226+
jsc_options_get_double
227+
jsc_options_set_string
228+
jsc_options_get_string
229+
jsc_options_set_range_string
230+
jsc_options_get_range_string
231+
232+
JSCOptionType
233+
JSCOptionsFunc
234+
jsc_options_foreach
235+
236+
jsc_options_get_option_group
237+
<SUBSECTION>
238+
JSC_OPTIONS_USE_JIT
239+
JSC_OPTIONS_USE_DFG
240+
JSC_OPTIONS_USE_FTL
241+
JSC_OPTIONS_USE_LLINT
242+
</SECTION>
243+
214244
<SECTION>
215245
<FILE>JSCVersion</FILE>
216246
<TITLE>JSCVersion</TITLE>

Source/JavaScriptCore/API/glib/docs/jsc-glib-docs.sgml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,18 @@
1717
<xi:include href="xml/JSCWeakValue.xml"/>
1818
<xi:include href="xml/JSCException.xml"/>
1919
<xi:include href="xml/JSCClass.xml"/>
20+
<xi:include href="xml/JSCOptions.xml"/>
2021
<xi:include href="xml/JSCVersion.xml"/>
2122
</chapter>
2223

2324
<index id="index-all">
2425
<title>Index</title>
2526
</index>
2627

28+
<index id="api-index-2-24" role="2.24">
29+
<title>Index of new symbols in 2.24</title>
30+
<xi:include href="xml/api-index-2.24.xml"><xi:fallback /></xi:include>
31+
</index>
32+
2733
<xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include>
2834
</book>

Source/JavaScriptCore/API/glib/jsc.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
#include <jsc/JSCContext.h>
2727
#include <jsc/JSCDefines.h>
2828
#include <jsc/JSCException.h>
29+
#include <jsc/JSCOptions.h>
2930
#include <jsc/JSCValue.h>
3031
#include <jsc/JSCVersion.h>
3132
#include <jsc/JSCVirtualMachine.h>

Source/JavaScriptCore/ChangeLog

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,41 @@
1+
2019-01-24 Carlos Garcia Campos <[email protected]>
2+
3+
[GLIB] Expose JavaScriptCore options in GLib public API
4+
https://bugs.webkit.org/show_bug.cgi?id=188742
5+
6+
Reviewed by Michael Catanzaro.
7+
8+
Add new API to set, get and iterate JSC options.
9+
10+
* API/glib/JSCOptions.cpp: Added.
11+
(valueFromGValue):
12+
(valueToGValue):
13+
(jscOptionsSetValue):
14+
(jscOptionsGetValue):
15+
(jsc_options_set_boolean):
16+
(jsc_options_get_boolean):
17+
(jsc_options_set_int):
18+
(jsc_options_get_int):
19+
(jsc_options_set_uint):
20+
(jsc_options_get_uint):
21+
(jsc_options_set_size):
22+
(jsc_options_get_size):
23+
(jsc_options_set_double):
24+
(jsc_options_get_double):
25+
(jsc_options_set_string):
26+
(jsc_options_get_string):
27+
(jsc_options_set_range_string):
28+
(jsc_options_get_range_string):
29+
(jscOptionsType):
30+
(jsc_options_foreach):
31+
(setOptionEntry):
32+
(jsc_options_get_option_group):
33+
* API/glib/JSCOptions.h: Added.
34+
* API/glib/docs/jsc-glib-4.0-sections.txt:
35+
* API/glib/docs/jsc-glib-docs.sgml:
36+
* API/glib/jsc.h:
37+
* GLib.cmake:
38+
139
2019-01-23 Mark Lam <[email protected]>
240

341
ARM64E should not ENABLE(SEPARATED_WX_HEAP).

Source/JavaScriptCore/GLib.cmake

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ list(APPEND JavaScriptCore_SOURCES
88
API/glib/JSCClass.cpp
99
API/glib/JSCContext.cpp
1010
API/glib/JSCException.cpp
11+
API/glib/JSCOptions.cpp
1112
API/glib/JSCValue.cpp
1213
API/glib/JSCVersion.cpp
1314
API/glib/JSCVirtualMachine.cpp
@@ -28,6 +29,7 @@ set(JavaScriptCore_INSTALLED_HEADERS
2829
${JAVASCRIPTCORE_DIR}/API/glib/JSCContext.h
2930
${JAVASCRIPTCORE_DIR}/API/glib/JSCDefines.h
3031
${JAVASCRIPTCORE_DIR}/API/glib/JSCException.h
32+
${JAVASCRIPTCORE_DIR}/API/glib/JSCOptions.h
3133
${JAVASCRIPTCORE_DIR}/API/glib/JSCValue.h
3234
${JAVASCRIPTCORE_DIR}/API/glib/JSCVirtualMachine.h
3335
${JAVASCRIPTCORE_DIR}/API/glib/JSCWeakValue.h

Source/WebCore/platform/gtk/po/ChangeLog

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
2019-01-24 Carlos Garcia Campos <[email protected]>
2+
3+
[GLIB] Expose JavaScriptCore options in GLib public API
4+
https://bugs.webkit.org/show_bug.cgi?id=188742
5+
6+
Reviewed by Michael Catanzaro.
7+
8+
* POTFILES.in: Add JSCOptions.cpp
9+
110
2019-01-08 Josef Andersson <[email protected]>
211

312
[GTK] Updated Swedish translation

Source/WebCore/platform/gtk/po/POTFILES.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
LocalizedStringsGtk.cpp
33
../LocalizedStrings.cpp
44
../network/soup/NetworkStorageSessionSoup.cpp
5+
../../../JavaScriptCore/API/glib/JSCOptions.cpp
56
../../../WebKit/Shared/API/glib/WebKitHitTestResult.cpp
67
../../../WebKit/Shared/API/glib/WebKitURIRequest.cpp
78
../../../WebKit/Shared/API/glib/WebKitURIResponse.cpp

Tools/ChangeLog

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,16 @@
1+
2019-01-24 Carlos Garcia Campos <[email protected]>
2+
3+
[GLIB] Expose JavaScriptCore options in GLib public API
4+
https://bugs.webkit.org/show_bug.cgi?id=188742
5+
6+
Reviewed by Michael Catanzaro.
7+
8+
Add a test for the new API.
9+
10+
* TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp:
11+
(testsJSCOptions):
12+
(main):
13+
114
2019-01-24 Carlos Garcia Campos <[email protected]>
215

316
[GTK][WPE] Support JPEG 2000 images

0 commit comments

Comments
 (0)