Skip to content

Commit 3ce72c0

Browse files
authored
Add assertions on missing Wasm exports. NFC (#25541)
1 parent 8751e54 commit 3ce72c0

File tree

5 files changed

+27
-14
lines changed

5 files changed

+27
-14
lines changed

test/codesize/test_codesize_hello_O0.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
{
2-
"a.out.js": 23198,
3-
"a.out.js.gz": 8525,
2+
"a.out.js": 24070,
3+
"a.out.js.gz": 8666,
44
"a.out.nodebug.wasm": 15127,
55
"a.out.nodebug.wasm.gz": 7450,
6-
"total": 38325,
7-
"total_gz": 15975,
6+
"total": 39197,
7+
"total_gz": 16116,
88
"sent": [
99
"fd_write"
1010
],

test/codesize/test_codesize_minimal_O0.expected.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1319,16 +1319,27 @@ var __indirect_function_table = makeInvalidEarlyAccess('__indirect_function_tabl
13191319
var wasmMemory = makeInvalidEarlyAccess('wasmMemory');
13201320

13211321
function assignWasmExports(wasmExports) {
1322+
assert(wasmExports['add'], 'missing Wasm export: add');
13221323
_add = Module['_add'] = createExportWrapper('add', 2);
1324+
assert(wasmExports['fflush'], 'missing Wasm export: fflush');
13231325
_fflush = createExportWrapper('fflush', 1);
1326+
assert(wasmExports['emscripten_stack_init'], 'missing Wasm export: emscripten_stack_init');
13241327
_emscripten_stack_init = wasmExports['emscripten_stack_init'];
1328+
assert(wasmExports['emscripten_stack_get_free'], 'missing Wasm export: emscripten_stack_get_free');
13251329
_emscripten_stack_get_free = wasmExports['emscripten_stack_get_free'];
1330+
assert(wasmExports['emscripten_stack_get_base'], 'missing Wasm export: emscripten_stack_get_base');
13261331
_emscripten_stack_get_base = wasmExports['emscripten_stack_get_base'];
1332+
assert(wasmExports['emscripten_stack_get_end'], 'missing Wasm export: emscripten_stack_get_end');
13271333
_emscripten_stack_get_end = wasmExports['emscripten_stack_get_end'];
1334+
assert(wasmExports['_emscripten_stack_restore'], 'missing Wasm export: _emscripten_stack_restore');
13281335
__emscripten_stack_restore = wasmExports['_emscripten_stack_restore'];
1336+
assert(wasmExports['_emscripten_stack_alloc'], 'missing Wasm export: _emscripten_stack_alloc');
13291337
__emscripten_stack_alloc = wasmExports['_emscripten_stack_alloc'];
1338+
assert(wasmExports['emscripten_stack_get_current'], 'missing Wasm export: emscripten_stack_get_current');
13301339
_emscripten_stack_get_current = wasmExports['emscripten_stack_get_current'];
1340+
assert(wasmExports['memory'], 'missing Wasm export: memory');
13311341
memory = wasmMemory = wasmExports['memory'];
1342+
assert(wasmExports['__indirect_function_table'], 'missing Wasm export: __indirect_function_table');
13321343
__indirect_function_table = wasmExports['__indirect_function_table'];
13331344
}
13341345

test/codesize/test_codesize_minimal_O0.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
{
2-
"a.out.js": 18466,
3-
"a.out.js.gz": 6834,
2+
"a.out.js": 19262,
3+
"a.out.js.gz": 6966,
44
"a.out.nodebug.wasm": 1136,
55
"a.out.nodebug.wasm.gz": 659,
6-
"total": 19602,
7-
"total_gz": 7493,
6+
"total": 20398,
7+
"total_gz": 7625,
88
"sent": [],
99
"imports": [],
1010
"exports": [
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
{
2-
"hello_world.js": 55502,
3-
"hello_world.js.gz": 17496,
2+
"hello_world.js": 56566,
3+
"hello_world.js.gz": 17601,
44
"hello_world.wasm": 15127,
55
"hello_world.wasm.gz": 7450,
66
"no_asserts.js": 26608,
77
"no_asserts.js.gz": 8874,
88
"no_asserts.wasm": 12227,
99
"no_asserts.wasm.gz": 6010,
10-
"strict.js": 53517,
11-
"strict.js.gz": 16822,
10+
"strict.js": 54581,
11+
"strict.js.gz": 16947,
1212
"strict.wasm": 15127,
1313
"strict.wasm.gz": 7447,
14-
"total": 178108,
15-
"total_gz": 64099
14+
"total": 180236,
15+
"total_gz": 64329
1616
}

tools/emscripten.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -991,6 +991,8 @@ def create_receiving(function_exports, other_exports, library_symbols, aliases):
991991
assignment += f" = dynCalls['{sig_str}']"
992992
if do_module_exports and should_export(mangled):
993993
assignment += f" = Module['{mangled}']"
994+
if settings.ASSERTIONS:
995+
receiving.append(f" assert(wasmExports['{sym}'], 'missing Wasm export: {sym}');")
994996
if sym in alias_inverse_map:
995997
for target in alias_inverse_map[sym]:
996998
assignment += f" = {target}"

0 commit comments

Comments
 (0)