Skip to content

Commit 8bef1d1

Browse files
committed
Add auto-generated sigs for the fetch API. NFC
Followup to #19028 which laid the groundwork for auto-generated sigs.
1 parent 6026829 commit 8bef1d1

File tree

5 files changed

+20
-11
lines changed

5 files changed

+20
-11
lines changed

src/library_sigs.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -271,6 +271,9 @@ sigs = {
271271
_emscripten_dbg__sig: 'vp',
272272
_emscripten_dlopen_js__sig: 'vpppp',
273273
_emscripten_err__sig: 'vp',
274+
_emscripten_fetch_free__sig: 'vi',
275+
_emscripten_fetch_get_response_headers__sig: 'pipp',
276+
_emscripten_fetch_get_response_headers_length__sig: 'pi',
274277
_emscripten_fs_load_embedded_files__sig: 'vp',
275278
_emscripten_get_now_is_monotonic__sig: 'i',
276279
_emscripten_get_progname__sig: 'vpi',
@@ -601,6 +604,7 @@ sigs = {
601604
emscripten_sleep__sig: 'vi',
602605
emscripten_stack_snapshot__sig: 'p',
603606
emscripten_stack_unwind_buffer__sig: 'ippi',
607+
emscripten_start_fetch__sig: 'vp',
604608
emscripten_supports_offscreencanvas__sig: 'i',
605609
emscripten_throw_number__sig: 'vd',
606610
emscripten_throw_string__sig: 'vp',

src/utility.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -145,9 +145,7 @@ function mergeInto(obj, other, options = null) {
145145
if (obj.hasOwnProperty(key)) {
146146
const oldsig = obj[key];
147147
const newsig = other[key];
148-
if (oldsig != newsig) {
149-
error(`Signature redefinition for: ${key}. (old=${oldsig} vs new=${newsig})`);
150-
}
148+
error(`Signature redefinition for : ${key}. (old=${oldsig} vs new=${newsig})`);
151149
}
152150
}
153151

system/lib/fetch/emscripten_fetch.c

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
#include <emscripten/threading.h>
1818
#include <emscripten/console.h>
1919

20+
#include "emscripten_internal.h"
21+
2022
// From https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/readyState
2123
#define STATE_UNSENT 0 // Client has been created. open() not called yet.
2224
#define STATE_OPENED 1 // open() has been called.
@@ -31,12 +33,6 @@
3133

3234
static void fetch_free(emscripten_fetch_t* fetch);
3335

34-
// APIs defined in JS
35-
void emscripten_start_fetch(emscripten_fetch_t* fetch);
36-
size_t _emscripten_fetch_get_response_headers_length(int32_t fetchID);
37-
size_t _emscripten_fetch_get_response_headers(int32_t fetchID, char *dst, size_t dstSizeBytes);
38-
void _emscripten_fetch_free(unsigned int);
39-
4036
typedef struct emscripten_fetch_queue {
4137
emscripten_fetch_t** queuedOperations;
4238
int numQueuedItems;

system/lib/libc/emscripten_internal.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,12 @@ void _emscripten_throw_longjmp(void);
107107

108108
void __handle_stack_overflow(void* addr);
109109

110+
// Internal fetch API
111+
void emscripten_start_fetch(emscripten_fetch_t* fetch);
112+
size_t _emscripten_fetch_get_response_headers_length(int32_t fetchID);
113+
size_t _emscripten_fetch_get_response_headers(int32_t fetchID, char *dst, size_t dstSizeBytes);
114+
void _emscripten_fetch_free(unsigned int);
115+
110116
#ifdef __cplusplus
111117
}
112118
#endif

tools/gen_sig_info.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
#include <emscripten/html5.h>
3838
#include <emscripten/fiber.h>
3939
#include <emscripten/websocket.h>
40+
#include <emscripten/fetch.h>
4041
#include <emscripten/webaudio.h>
4142
#include <wasi/api.h>
4243
@@ -228,12 +229,16 @@ def extract_sig_info(sig_info, extra_settings=None, extra_cflags=None):
228229
'STACK_OVERFLOW_CHECK': 1,
229230
'FULL_ES3': 1,
230231
'USE_SDL': 1,
232+
'FETCH': 1,
231233
# Currently GLFW symbols have different sigs for the same symbol because the
232234
# signatures changed between v2 and v3, so for now we continue to maintain
233235
# them by hand.
234236
'USE_GLFW': 0,
235-
'JS_LIBRARIES': ['src/library_websocket.js',
236-
'src/library_webaudio.js'],
237+
'JS_LIBRARIES': [
238+
'src/library_websocket.js',
239+
'src/library_webaudio.js',
240+
'src/library_fetch.js'
241+
],
237242
'SUPPORT_LONGJMP': 'emscripten'
238243
}
239244
if extra_settings:

0 commit comments

Comments
 (0)