public void RunModule(string script, Func <string, string> loadModuleCallback) { moduleLoadException = null; JavaScriptModuleRecord rootRecord = contextSwitch.With(() => { return(createModule(null, null, (name) => { if (string.IsNullOrEmpty(name)) { return script; } else { return loadModuleCallback(name); } })); }); //startModuleParseQueue(); moduleReadyEvent.WaitOne(); throwIfExceptionInLoading(); contextSwitch.With(() => { JavaScriptModuleRecord.RunModule(rootRecord); }); }
public void RunModule(string script, Func <string, string> loadModuleCallback) { JavaScriptModuleRecord rootRecord = contextSwitch.With(() => { return(createModule(null, null, (name) => { if (string.IsNullOrEmpty(name)) { return script; } else { return loadModuleCallback(name); } })); }); //startModuleParseQueue(); moduleReadyEvent.WaitOne(); contextSwitch.With(() => { JavaScriptModuleRecord.RunModule(rootRecord); //startModuleParseQueue();//for dynamic import during module run //this pattern is not consistent to promise loop pattern, should change it? }); }
public JavaScriptValue LoadModule(JSFileObject file, string[] modulesToReload = null) { if (modulesToReload != null) { //TODO: For now we just reload all. Later on it would be nice to reaload only the changed ones and the ones // referencing them foreach (var m in moduleCache.Keys.ToList()) { if (!_predefinedModules.ContainsKey(m)) { moduleCache.Remove(m); } } //foreach (var m in modulesToReload) //{ // moduleCache.Remove(m); //} } var rootModule = CreateModule(null, file); ParseModuleQueue(); var returnValue = JavaScriptModuleRecord.RunModule(rootModule); ParseModuleQueue(); return(returnValue); }
public JavaScriptValue LoadModule(string fileName) { var rootModule = createModule(null, fileName); parseModuleQueue(); //return JavaScriptValue.Invalid; var x = JavaScriptModuleRecord.RunModule(rootModule); parseModuleQueue(); return(x); }