/** * Returns the underlying V8TypedArray. * @return the underlying V8TypedArray. */ public V8TypedArray getV8TypedArray() { return (V8TypedArray) typedArray.twin(); }
TypedArray(final V8TypedArray typedArray) { this.typedArray = (V8TypedArray) typedArray.twin().setWeak(); }
/** * Create a new TypedArray from an ArrayBuffer. * * @param v8 the V8Runtime on which to create the TypedArray * @param buffer the ArrayBuffer to use to back the TypedArray * @param type the Type of Array to create * @param offset the Offset into the ArrayBuffer in which to map the TyepdArray * @param size the Size of the TypedArray */ public TypedArray(final V8 v8, final ArrayBuffer buffer, final int type, final int offset, final int size) { V8ArrayBuffer v8ArrayBuffer = buffer.getV8ArrayBuffer(); V8TypedArray v8typedArray = new V8TypedArray(v8, v8ArrayBuffer, type, offset, size); try { typedArray = (V8TypedArray) v8typedArray.twin().setWeak(); } finally { v8ArrayBuffer.close(); v8typedArray.close(); } }
/** * Returns the underlying V8TypedArray. * @return the underlying V8TypedArray. */ public V8TypedArray getV8TypedArray() { return (V8TypedArray) typedArray.twin(); }
TypedArray(final V8TypedArray typedArray) { this.typedArray = (V8TypedArray) typedArray.twin().setWeak(); }
/** * Create a new TypedArray from an ArrayBuffer. * * @param v8 the V8Runtime on which to create the TypedArray * @param buffer the ArrayBuffer to use to back the TypedArray * @param type the Type of Array to create * @param offset the Offset into the ArrayBuffer in which to map the TyepdArray * @param size the Size of the TypedArray */ public TypedArray(final V8 v8, final ArrayBuffer buffer, final int type, final int offset, final int size) { V8ArrayBuffer v8ArrayBuffer = buffer.getV8ArrayBuffer(); V8TypedArray v8typedArray = new V8TypedArray(v8, v8ArrayBuffer, type, offset, size); try { typedArray = (V8TypedArray) v8typedArray.twin().setWeak(); } finally { v8ArrayBuffer.close(); v8typedArray.close(); } }
@Test public void testInt32TypedArray_Twin() { V8ArrayBuffer buffer = new V8ArrayBuffer(v8, 8); V8TypedArray v8Int32Array = new V8TypedArray(v8, buffer, V8Value.INTEGER, 0, 2); V8Array twinArray = v8Int32Array.twin(); assertTrue(twinArray instanceof V8TypedArray); assertEquals(v8Int32Array, twinArray); v8Int32Array.close(); twinArray.close(); buffer.close(); }
@Test public void testInt8TypedArray_Twin() { V8ArrayBuffer buffer = new V8ArrayBuffer(v8, 4); V8TypedArray v8Int8Array = new V8TypedArray(v8, buffer, V8Value.BYTE, 0, 4); V8Array twinArray = v8Int8Array.twin(); assertTrue(twinArray instanceof V8TypedArray); assertEquals(V8Value.BYTE, twinArray.getType()); assertEquals(v8Int8Array, twinArray); v8Int8Array.close(); twinArray.close(); buffer.close(); }
@Test public void testInt8TypedArray_TwinHasSameValues() { V8ArrayBuffer buffer = new V8ArrayBuffer(v8, 4); V8TypedArray v8Int8Array1 = new V8TypedArray(v8, buffer, V8Value.BYTE, 0, 4); V8TypedArray v8Int8Array2 = (V8TypedArray) v8Int8Array1.twin(); v8Int8Array1.add("0", 7); v8Int8Array1.add("1", 8); assertEquals((byte) 7, v8Int8Array2.get(0)); assertEquals((byte) 8, v8Int8Array2.get(1)); v8Int8Array1.close(); v8Int8Array2.close(); buffer.close(); }
@Test public void testInt32TypedArray_TwinHasSameValues() { V8ArrayBuffer buffer = new V8ArrayBuffer(v8, 8); V8TypedArray v8Int32Array1 = new V8TypedArray(v8, buffer, V8Value.INTEGER, 0, 2); V8TypedArray v8Int32Array2 = (V8TypedArray) v8Int32Array1.twin(); v8Int32Array1.add("0", 7); v8Int32Array1.add("1", 8); assertEquals(7, v8Int32Array2.get(0)); assertEquals(8, v8Int32Array2.get(1)); v8Int32Array1.close(); v8Int32Array2.close(); buffer.close(); }