emscripten-core / emscripten-core/emscripten

__user variables leak to the build

Open
#15,348 4 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
27.6k
Forks
3.6k
Avg merge
1d 1h
Merged PRs (30d)
105

Description

Seeing this kind of code in generated build:
```js
if (!Object.getOwnPropertyDescriptor(Module, "EmAudio")) Module["EmAudio"] = function() { abort("'EmAudio' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Object.getOwnPropertyDescriptor(Module, "EmAudio__user")) Module["EmAudio__user"] = function() { abort("'EmAudio__user' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Object.getOwnPropertyDescriptor(Module, "EmAudioCounter")) Module["EmAudioCounter"] = function() { abort("'EmAudioCounter' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Object.getOwnPropertyDescriptor(Module, "EmAudioCounter__user")) Module["EmAudioCounter__user"] = function() { abort("'EmAudioCounter__user' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Object.getOwnPropertyDescriptor(Module, "emscriptenRegisterAudioObject")) Module["emscriptenRegisterAudioObject"] = function() { abort("'emscriptenRegisterAudioObject' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Object.getOwnPropertyDescriptor(Module, "emscriptenRegisterAudioObject__user")) Module["emscriptenRegisterAudioObject__user"] = function() { abort("'emscriptenRegisterAudioObject__user' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Object.getOwnPropertyDescriptor(Module, "emscriptenDestroyAudioContext")) Module["emscriptenDestroyAudioContext"] = function() { abort("'emscriptenDestroyAudioContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Object.getOwnPropertyDescriptor(Module, "emscriptenDestroyAudioContext__user")) Module["emscriptenDestroyAudioContext__user"] = function() { abort("'emscriptenDestroyAudioContext__user' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Object.getOwnPropertyDescriptor(Module, "emscriptenGetAudioObject")) Module["emscriptenGetAudioObject"] = function() { abort("'emscriptenGetAudioObject' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Object.getOwnPropertyDescriptor(Module, "emscriptenGetAudioObject__user")) Module["emscriptenGetAudioObject__user"] = function() { abort("'emscriptenGetAudioObject__user' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Object.getOwnPropertyDescriptor(Module, "_EmAudioProcessorCreateRequests")) Module["_EmAudioProcessorCreateRequests"] = function() { abort("'_EmAudioProcessorCreateRequests' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Object.getOwnPropertyDescriptor(Module, "_EmAudioProcessorCreateRequests__user")) Module["_EmAudioProcessorCreateRequests__user"] = function() { abort("'_EmAudioProcessorCreateRequests__user' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Object.getOwnPropertyDescriptor(Module, "_EmAudioDispatchProcessorCallback")) Module["_EmAudioDispatchProcessorCallback"] = function() { abort("'_EmAudioDispatchProcessorCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") };
if (!Object.getOwnPropertyDescriptor(Module, "_EmAudioDispatchProcessorCallback__user")) Module["_EmAudioDispatchProcessorCallback__user"] = function() { abort("'_EmAudioDispatchProcessorCallback__user' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)") };

```

Looks like the `__user` bits are a leak from recent feature.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.