Esempio n. 1
0
 private IntPtr GetModule(string moduleName)
 {
     try
     {
         var moduleSourceAndFileName = GetModuleSourceAndFileName(moduleName);
         var compiledModuleHandle    = Js1.CompileModule(
             GetHandle(), moduleSourceAndFileName.Item1, moduleSourceAndFileName.Item2);
         CompiledScript.CheckResult(compiledModuleHandle, disposeScriptOnException: true);
         var compiledModule = new CompiledScript(compiledModuleHandle, moduleSourceAndFileName.Item2);
         _modules.Add(compiledModule);
         return(compiledModuleHandle);
     }
     catch (Exception)
     {
         //TODO: this is not a good way to report missing module and other exceptions back to caller
         return(IntPtr.Zero);
     }
 }
Esempio n. 2
0
 private IntPtr GetModule(IntPtr prelude, string moduleName)
 {
     try {
         var moduleSourceAndFileName = GetModuleSourceAndFileName(moduleName);
         // NOTE: no need to schedule termination; modules are loaded only in context
         if (_cancelTokenOrStatus == NonScheduled)
         {
             throw new InvalidOperationException("Requires scheduled terminate execution");
         }
         var compiledModuleHandle = Js1.CompileModule(
             prelude, moduleSourceAndFileName.Item1, moduleSourceAndFileName.Item2);
         CompiledScript.CheckResult(compiledModuleHandle, terminated: false, disposeScriptOnException: true);
         var compiledModule = new CompiledScript(compiledModuleHandle);
         _modules.Add(compiledModule);
         return(compiledModuleHandle);
     } catch (Exception ex) {
         Log.Error(ex, "Cannot load module '{module}'", moduleName);
         //TODO: this is not a good way to report missing module and other exceptions back to caller
         return(IntPtr.Zero);
     }
 }