pebble/third_party/jerryscript/js_tooling/transform_js.py
2025-01-27 11:38:16 -08:00

27 lines
1 KiB
Python
Executable file

#!/usr/bin/env python
import re
import sys
# when cross-compiling JerryScript with Emscripten, we need to fix a few minor things
# to account for the various setups as some of the code assumes to be execute inside of node
def replace_ensured(s, old, new):
result = s.replace(old, new)
# make sure our search pattern `old` actually matched something
# if we didn't change anything it means that we missed the Emscrupten outout (e.g. new version)
assert result != s, "Emscripten output does not match expected output of 1.35.0"
return result
# load file to be processed
with open(sys.argv[1], "r") as f:
source = f.read()
# source = replace_ensured(source, "func = eval('_' + ident); // explicit lookup",
# "// func = eval('_' + ident); // explicit lookup")
source = replace_ensured(source, "process['on']('uncaughtException',",
"process['on']('uncaughtException-ignore',")
source = "(function(){\n%s\n})(this);" % source
with open(sys.argv[1], "w") as f:
f.write(source)