@Override public void close() { if (!v8Object.isReleased()) { v8Object.close(); } }
@Override public void close() { if ((v8Object != null) && !v8Object.isReleased()) { v8Object.close(); v8Object = null; } }
@Override public void close() { if ((v8Object != null) && !v8Object.isReleased()) { v8Object.close(); v8Object = null; } }
@Override public void close() { if ((v8Object != null) && !v8Object.isReleased()) { v8Object.close(); v8Object = null; } }
@Override public String toString() { if (isReleased() || v8.isReleased()) { return "[Object released]"; } v8.checkThread(); return v8.toString(v8.getV8RuntimePtr(), getHandle()); }
@Override public void close() { if ((v8Object != null) && !v8Object.isReleased()) { v8Object.close(); v8Object = null; } }
@Override public void close() { if ((v8Object != null) && !v8Object.isReleased()) { v8Object.close(); v8Object = null; } }
@Override public void close() { if ((v8Object != null) && !v8Object.isReleased()) { v8Object.close(); v8Object = null; } }
@Override public void close() { if (!v8Object.isReleased()) { v8Object.close(); } }
@Override public String toString() { if (isReleased() || v8.isReleased()) { return "[Object released]"; } v8.checkThread(); return v8.toString(v8.getV8RuntimePtr(), getHandle()); }
@Test public void testV8ObjectMethodReleasesResults() { ICallback callback = mock(ICallback.class); V8Object object = new V8Object(v8); doReturn(object).when(callback).v8ObjectMethodNoParameters(); v8.registerJavaMethod(callback, "v8ObjectMethodNoParameters", "foo", new Class<?>[0]); v8.executeVoidScript("foo();"); assertTrue(object.isReleased()); }
@SuppressWarnings("resource") @Test public void testObjectIsReleased() { MemoryManager memoryManager = new MemoryManager(v8); V8Object object = new V8Object(v8); memoryManager.release(); assertTrue(object.isReleased()); }
@Test public void testReleaseTwinDoesNotReleaseOriginal() { V8Object v8Object = new V8Object(v8); V8Value twin = v8Object.twin(); twin.close(); assertFalse(v8Object.isReleased()); v8Object.close(); }
@Test public void testPersistObject() { MemoryManager memoryManager = new MemoryManager(v8); V8Object object = new V8Object(v8); memoryManager.persist(object); memoryManager.release(); assertFalse(object.isReleased()); object.close(); }
@Test public void testPersistNonManagedObject() { V8Object object = new V8Object(v8); MemoryManager memoryManager = new MemoryManager(v8); memoryManager.persist(object); memoryManager.release(); assertFalse(object.isReleased()); object.close(); }
@Override public void release() { if ((v8Object != null) && !v8Object.isReleased()) { v8Object.release(); v8Object = null; } }
@Override public void release() { if (!v8Object.isReleased()) { v8Object.release(); } }
@Override public void release() { if ((v8Object != null) && !v8Object.isReleased()) { v8Object.release(); v8Object = null; } }
@Override public void release() { if ((v8Object != null) && !v8Object.isReleased()) { v8Object.release(); v8Object = null; } } }
@Test public void testGetObjectTwice() { v8.executeVoidScript("foo = {}"); MemoryManager memoryManager = new MemoryManager(v8); V8Object foo1 = v8.getObject("foo"); v8.getObject("foo").close(); assertEquals(1, memoryManager.getObjectReferenceCount()); memoryManager.release(); assertTrue(foo1.isReleased()); }