--- a/recipe.sh Wed Jun 20 17:48:52 2018 +0800
+++ b/recipe.sh Wed Jun 20 17:56:57 2018 +0800
+ grep -P '(?<=Module\.)[a-zA-Z][a-zA-Z0-9_]+' -o player.js | sort -u | awk '{printf "\"" $0 "\", "}' | sed '$s/, $//'
+) > runtime_methods.json
# Original, big and inclusive
-emcc gme/libgme.so -o libgme.O0.js -s LINKABLE=1 -s EXPORT_ALL=1 -O0
+emcc gme/libgme.so -o libgme.O0.js -O0 -s LINKABLE=1 -s EXPORT_ALL=1 -s EXTRA_EXPORTED_RUNTIME_METHODS=@runtime_methods.json -s WASM=0
) > exported_functions.json
# Smaller and hand-picked
-emcc gme/libgme.so -o libgme.O2.js -s NO_FILESYSTEM=1 -s EXPORTED_FUNCTIONS=@exported_functions.json -O2
+emcc gme/libgme.so -o libgme.O2.js -O2 -s NO_FILESYSTEM=1 -s EXPORTED_FUNCTIONS=@exported_functions.json -s EXTRA_EXPORTED_RUNTIME_METHODS=@runtime_methods.json -s WASM=0
-emcc gme/libgme.so -o libgme.Oz.js -s NO_FILESYSTEM=1 -s EXPORTED_FUNCTIONS=@exported_functions.json -Oz --llvm-lto 1
+emcc gme/libgme.so -o libgme.Oz.js -Oz --llvm-lto 1 -s NO_FILESYSTEM=1 -s EXPORTED_FUNCTIONS=@exported_functions.json -s EXTRA_EXPORTED_RUNTIME_METHODS=@runtime_methods.json -s WASM=0