forked from emscripten-core/emscripten
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlibrary_exports.js
33 lines (32 loc) · 1.07 KB
/
library_exports.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/**
* @license
* Copyright 2020 The Emscripten Authors
* SPDX-License-Identifier: MIT
*/
mergeInto(LibraryManager.library, {
emscripten_get_exported_function__sig: 'pp',
emscripten_get_exported_function__deps: ['$addFunction'],
emscripten_get_exported_function: function(name) {
name = UTF8ToString(name);
// Wasm backend does not use C name mangling on exports,
// so adjust for that manually.
if (name[0] == '_') name = name.substr(1);
#if MINIMAL_RUNTIME
var exportedFunc = asm[name];
#else
// In regular runtime, exports are available on the Module object.
var exportedFunc = Module["asm"][name];
#endif
if (exportedFunc) {
// Record the created function pointer to each function object,
// so that if the same function pointer is obtained several times,
// the same address will be returned.
if (!exportedFunc.ptr) exportedFunc.ptr = addFunction(exportedFunc);
return exportedFunc.ptr;
}
#if ASSERTIONS
err('No exported function found by name "' + exportedFunc + '"');
#endif
// implicit return 0;
}
});