private static void PlatformInit()
{
// try to build the find the alphaTab script url in case we are not in the webworker already
if (HtmlContext.self.document.As<bool>())
{
var scriptElement = HtmlContext.document.Member("currentScript").As<HtmlScriptElement>();
if (!scriptElement.As<bool>())
{
// try to get javascript from exception stack
try
{
var error = new JsError();
var stack = error.Member("stack");
if (!stack.As<bool>())
{
throw error;
}
ScriptFile = ScriptFileFromStack(stack.As<JsString>());
}
catch (JsError e)
{
var stack = e.Member("stack");
if (!stack.As<bool>())
{
scriptElement = HtmlContext.document.querySelector("script[data-alphasynth]").As<HtmlScriptElement>();
}
else
{
ScriptFile = ScriptFileFromStack(stack.As<JsString>());
}
}
}
// failed to automatically resolve
if (!string.IsNullOrEmpty(ScriptFile))
{
if (!scriptElement.As<bool>())
{
HtmlContext.console.warn(
"Could not automatically find alphaSynth script file for worker, please add the data-alphasynth attribute to the script tag that includes alphaSynth or provide it when initializing alphaSynth");
}
else
{
ScriptFile = scriptElement.src;
}
}
}
}