public void MappingEngineLoadErrorDuringOutOfMemoryIsCorrect() { // Arrange IJsEngine jsEngine = null; JsEngineLoadException exception = null; // Act try { jsEngine = new ChakraCoreJsEngine( new ChakraCoreSettings { MemoryLimit = new UIntPtr(8 * 1024) } ); } catch (JsEngineLoadException e) { exception = e; } finally { jsEngine?.Dispose(); } // Assert Assert.NotNull(exception); Assert.Equal("Engine load error", exception.Category); Assert.Equal("Out of memory.", exception.Description); }
private void Initialize() { if (_initialized) { return; } try { _jsEngine = new ChakraCoreJsEngine(); OnInitialize(); } catch { _jsEngine?.Dispose(); _jsEngine = null; throw; } _initialized = true; }
public void DisposeEngine(ChakraCoreJsEngine engine) { _engines.TryRemove(engine, out _); try { engine._dispatcher?.Invoke( () => { engine._dispatcher._sharedQueue = null; engine._dispatcher._sharedQueueEnqeued = null; }); } catch (Exception ex) { // ignored } engine.Dispose(); _enginePopulater?.Set(); }
public void Dispose() { _scriptEngine?.Dispose(); }
void IDisposable.Dispose() { _jsEngine?.Dispose(); _jsEngine = null; }
protected override void Dispose(bool disposing) { engine?.Dispose(); base.Dispose(disposing); }