#!/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)