From: <rb...@us...> - 2018-05-17 10:39:58
|
Revision: 15268 http://sourceforge.net/p/htmlunit/code/15268 Author: rbri Date: 2018-05-17 10:39:38 +0000 (Thu, 17 May 2018) Log Message: ----------- more typed array fixes Modified Paths: -------------- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/ArrayBufferViewBase.java trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Float32Array.java trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Float64Array.java trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Int16Array.java trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Int32Array.java trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Int8Array.java trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Uint16Array.java trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Uint32Array.java trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Uint8Array.java trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Uint8ClampedArray.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/ArrayBufferViewTest.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Float32ArrayTest.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Float64ArrayTest.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Int16ArrayTest.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Int32ArrayTest.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Int8ArrayTest.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Uint16ArrayTest.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Uint32ArrayTest.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Uint8ArrayTest.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Uint8ClampedArrayTest.java Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/ArrayBufferViewBase.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/ArrayBufferViewBase.java 2018-05-17 09:09:09 UTC (rev 15267) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/ArrayBufferViewBase.java 2018-05-17 10:39:38 UTC (rev 15268) @@ -26,6 +26,7 @@ import net.sourceforge.htmlunit.corejs.javascript.Scriptable; import net.sourceforge.htmlunit.corejs.javascript.ScriptableObject; import net.sourceforge.htmlunit.corejs.javascript.Undefined; +import net.sourceforge.htmlunit.corejs.javascript.Wrapper; /** * The parent class of all typed arrays, {@link DataView} is not included. @@ -125,7 +126,19 @@ if (lengthProperty instanceof Number) { final int length = ((Number) lengthProperty).intValue(); for (int i = 0; i < length; i++) { - put(i + offset, this, sourceArray.get(i)); + final Object value = sourceArray.get(i, sourceArray); + if (value == Scriptable.NOT_FOUND || value == Undefined.instance) { + put(i + offset, this, Double.NaN); + } + else if (value == null) { + put(i + offset, this, 0); + } + else if (value instanceof Wrapper) { + put(i + offset, this, ((Wrapper) value).unwrap()); + } + else { + put(i + offset, this, value); + } } } } @@ -149,7 +162,7 @@ @Override public void put(final int index, final Scriptable start, final Object value) { getBuffer().setBytes(index * getBytesPerElement() + getByteOffset(), - value == null ? toArray(null) : toArray(Context.toNumber(value))); + value == null ? toByteArray(null) : toByteArray(Context.toNumber(value))); } /** @@ -157,7 +170,7 @@ * @param number the number * @return the byte array */ - protected byte[] toArray(final Number number) { + protected byte[] toByteArray(final Number number) { return null; } Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Float32Array.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Float32Array.java 2018-05-17 09:09:09 UTC (rev 15267) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Float32Array.java 2018-05-17 10:39:38 UTC (rev 15268) @@ -51,7 +51,7 @@ * {@inheritDoc} */ @Override - protected byte[] toArray(final Number number) { + protected byte[] toByteArray(final Number number) { final ByteBuffer buff = ByteBuffer.allocate(BYTES_PER_ELEMENT); buff.order(ByteOrder.LITTLE_ENDIAN); buff.putFloat(number != null ? number.floatValue() : Float.NaN); Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Float64Array.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Float64Array.java 2018-05-17 09:09:09 UTC (rev 15267) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Float64Array.java 2018-05-17 10:39:38 UTC (rev 15268) @@ -51,7 +51,7 @@ * {@inheritDoc} */ @Override - protected byte[] toArray(final Number number) { + protected byte[] toByteArray(final Number number) { final ByteBuffer buff = ByteBuffer.allocate(BYTES_PER_ELEMENT); buff.order(ByteOrder.LITTLE_ENDIAN); buff.putDouble(number != null ? number.doubleValue() : Double.NaN); Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Int16Array.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Int16Array.java 2018-05-17 09:09:09 UTC (rev 15267) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Int16Array.java 2018-05-17 10:39:38 UTC (rev 15268) @@ -51,10 +51,14 @@ * {@inheritDoc} */ @Override - protected byte[] toArray(final Number number) { + protected byte[] toByteArray(final Number number) { final ByteBuffer buff = ByteBuffer.allocate(BYTES_PER_ELEMENT); buff.order(ByteOrder.LITTLE_ENDIAN); - buff.putShort(number != null ? number.shortValue() : 0); + if (number == null || Double.isInfinite(number.doubleValue())) { + buff.putShort((short) 0); + return buff.array(); + } + buff.putShort(number.shortValue()); return buff.array(); } Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Int32Array.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Int32Array.java 2018-05-17 09:09:09 UTC (rev 15267) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Int32Array.java 2018-05-17 10:39:38 UTC (rev 15268) @@ -51,10 +51,14 @@ * {@inheritDoc} */ @Override - protected byte[] toArray(final Number number) { + protected byte[] toByteArray(final Number number) { final ByteBuffer buff = ByteBuffer.allocate(BYTES_PER_ELEMENT); buff.order(ByteOrder.LITTLE_ENDIAN); - buff.putInt(number != null ? number.intValue() : 0); + if (number == null || Double.isInfinite(number.doubleValue())) { + buff.putInt(0); + return buff.array(); + } + buff.putInt(number.intValue()); return buff.array(); } Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Int8Array.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Int8Array.java 2018-05-17 09:09:09 UTC (rev 15267) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Int8Array.java 2018-05-17 10:39:38 UTC (rev 15268) @@ -48,8 +48,11 @@ * {@inheritDoc} */ @Override - protected byte[] toArray(final Number number) { - return new byte[] {number != null ? number.byteValue() : 0}; + protected byte[] toByteArray(final Number number) { + if (number == null || Double.isInfinite(number.doubleValue())) { + return new byte[] {0}; + } + return new byte[] {number.byteValue()}; } /** Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Uint16Array.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Uint16Array.java 2018-05-17 09:09:09 UTC (rev 15267) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Uint16Array.java 2018-05-17 10:39:38 UTC (rev 15268) @@ -51,10 +51,14 @@ * {@inheritDoc} */ @Override - protected byte[] toArray(final Number number) { + protected byte[] toByteArray(final Number number) { final ByteBuffer buff = ByteBuffer.allocate(BYTES_PER_ELEMENT); buff.order(ByteOrder.LITTLE_ENDIAN); - buff.putShort((number != null) ? number.shortValue() : 0); + if (number == null || Double.isInfinite(number.doubleValue())) { + buff.putShort((short) 0); + return buff.array(); + } + buff.putShort(number.shortValue()); return buff.array(); } Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Uint32Array.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Uint32Array.java 2018-05-17 09:09:09 UTC (rev 15267) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Uint32Array.java 2018-05-17 10:39:38 UTC (rev 15268) @@ -51,10 +51,14 @@ * {@inheritDoc} */ @Override - protected byte[] toArray(final Number number) { + protected byte[] toByteArray(final Number number) { final ByteBuffer buff = ByteBuffer.allocate(BYTES_PER_ELEMENT); buff.order(ByteOrder.LITTLE_ENDIAN); - buff.putInt(number != null ? number.intValue() : 0); + if (number == null || Double.isInfinite(number.doubleValue())) { + buff.putInt(0); + return buff.array(); + } + buff.putInt(number.intValue()); return buff.array(); } Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Uint8Array.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Uint8Array.java 2018-05-17 09:09:09 UTC (rev 15267) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Uint8Array.java 2018-05-17 10:39:38 UTC (rev 15268) @@ -75,8 +75,11 @@ * {@inheritDoc} */ @Override - protected byte[] toArray(final Number number) { - return new byte[] {number != null ? number.byteValue() : 0}; + protected byte[] toByteArray(final Number number) { + if (number == null || Double.isInfinite(number.doubleValue())) { + return new byte[] {0}; + } + return new byte[] {number.byteValue()}; } /** Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Uint8ClampedArray.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Uint8ClampedArray.java 2018-05-17 09:09:09 UTC (rev 15267) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Uint8ClampedArray.java 2018-05-17 10:39:38 UTC (rev 15268) @@ -47,7 +47,7 @@ * {@inheritDoc} */ @Override - protected byte[] toArray(Number number) { + protected byte[] toByteArray(Number number) { if (number == null || number.intValue() < 0) { number = 0; } Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/ArrayBufferViewTest.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/ArrayBufferViewTest.java 2018-05-17 09:09:09 UTC (rev 15267) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/ArrayBufferViewTest.java 2018-05-17 10:39:38 UTC (rev 15268) @@ -19,7 +19,6 @@ import com.gargoylesoftware.htmlunit.BrowserRunner; import com.gargoylesoftware.htmlunit.BrowserRunner.Alerts; -import com.gargoylesoftware.htmlunit.BrowserRunner.NotYetImplemented; import com.gargoylesoftware.htmlunit.WebDriverTestCase; /** @@ -120,14 +119,13 @@ * @throws Exception if the test fails */ @Test - @Alerts({"6", /* "0", */ "NaN", "NaN", "10", "1", "2.5", "2.75"}) + @Alerts({"7", "0", "NaN", "NaN", "10", "1", "2.5", "2.75"}) public void ctorInvalidValuesFloat() throws Exception { final String html = "<html><head><title>foo</title><script>\n" + "function test() {\n" + " try {\n" - + " var x = new Float32Array(['null', undefined, '10', true, 2.5, '2.75']);\n" - // + " var x = new Float32Array([null, 'null', undefined, '10', true, 2.5, '2.75']);\n" + + " var x = new Float32Array([null, 'null', undefined, '10', true, 2.5, '2.75']);\n" + " alert(x.length);\n" + " for(var i = 0; i < x.length; i++) {\n" + " alert(x[i]);\n" @@ -141,26 +139,4 @@ loadPageWithAlerts2(html); } - - /** - * @throws Exception if the test fails - */ - @Test - @Alerts({"1", "0"}) - @NotYetImplemented - public void ctorInvalidValuesFloatNYI() throws Exception { - final String html - = "<html><head><title>foo</title><script>\n" - + "function test() {\n" - + " var x = new Float32Array([null]);\n" - + " alert(x.length);\n" - + " for(var i = 0; i < x.length; i++) {\n" - + " alert(x[i]);\n" - + " }\n" - + "}\n" - + "</script></head><body onload='test()'>\n" - + "</body></html>"; - - loadPageWithAlerts2(html); - } } Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Float32ArrayTest.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Float32ArrayTest.java 2018-05-17 09:09:09 UTC (rev 15267) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Float32ArrayTest.java 2018-05-17 10:39:38 UTC (rev 15268) @@ -105,20 +105,28 @@ * @throws Exception if the test fails */ @Test - @Alerts({"undefined", "NaN", "NaN", "4", "undefined"}) + @Alerts({"undefined", "6", "NaN", "0", "NaN", "Infinity", "-Infinity", "4", "undefined"}) public void undefinedValueInArray() throws Exception { final String html = "<html><head><title>foo</title><script>\n" + "function test() {\n" + " var array = [];\n" - + " array[2] = 4;\n" + + " array[1] = null;\n" + + " array[2] = Number.NaN;\n" + + " array[3] = Number.POSITIVE_INFINITY;\n" + + " array[4] = Number.NEGATIVE_INFINITY;\n" + + " array[5] = 4;\n" + " alert(array[0]);\n" + " var nativeArray = new Float32Array(array);\n" + + " alert(nativeArray.length);\n" + " alert(nativeArray[0]);\n" + " alert(nativeArray[1]);\n" + " alert(nativeArray[2]);\n" + " alert(nativeArray[3]);\n" + + " alert(nativeArray[4]);\n" + + " alert(nativeArray[5]);\n" + + " alert(nativeArray[6]);\n" + "}\n" + "</script></head><body onload='test()'>\n" + "</body></html>"; Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Float64ArrayTest.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Float64ArrayTest.java 2018-05-17 09:09:09 UTC (rev 15267) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Float64ArrayTest.java 2018-05-17 10:39:38 UTC (rev 15268) @@ -105,20 +105,28 @@ * @throws Exception if the test fails */ @Test - @Alerts({"undefined", "NaN", "NaN", "4", "undefined"}) + @Alerts({"undefined", "6", "NaN", "0", "NaN", "Infinity", "-Infinity", "4", "undefined"}) public void undefinedValueInArray() throws Exception { final String html = "<html><head><title>foo</title><script>\n" + "function test() {\n" + " var array = [];\n" - + " array[2] = 4;\n" + + " array[1] = null;\n" + + " array[2] = Number.NaN;\n" + + " array[3] = Number.POSITIVE_INFINITY;\n" + + " array[4] = Number.NEGATIVE_INFINITY;\n" + + " array[5] = 4;\n" + " alert(array[0]);\n" + " var nativeArray = new Float64Array(array);\n" + + " alert(nativeArray.length);\n" + " alert(nativeArray[0]);\n" + " alert(nativeArray[1]);\n" + " alert(nativeArray[2]);\n" + " alert(nativeArray[3]);\n" + + " alert(nativeArray[4]);\n" + + " alert(nativeArray[5]);\n" + + " alert(nativeArray[6]);\n" + "}\n" + "</script></head><body onload='test()'>\n" + "</body></html>"; Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Int16ArrayTest.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Int16ArrayTest.java 2018-05-17 09:09:09 UTC (rev 15267) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Int16ArrayTest.java 2018-05-17 10:39:38 UTC (rev 15268) @@ -199,20 +199,28 @@ * @throws Exception if the test fails */ @Test - @Alerts({"undefined", "0", "0", "4", "undefined"}) + @Alerts({"undefined", "6", "0", "0", "0", "0", "0", "4", "undefined"}) public void undefinedValueInArray() throws Exception { final String html = "<html><head><title>foo</title><script>\n" + "function test() {\n" + " var array = [];\n" - + " array[2] = 4;\n" + + " array[1] = null;\n" + + " array[2] = Number.NaN;\n" + + " array[3] = Number.POSITIVE_INFINITY;\n" + + " array[4] = Number.NEGATIVE_INFINITY;\n" + + " array[5] = 4;\n" + " alert(array[0]);\n" + " var nativeArray = new Int16Array(array);\n" + + " alert(nativeArray.length);\n" + " alert(nativeArray[0]);\n" + " alert(nativeArray[1]);\n" + " alert(nativeArray[2]);\n" + " alert(nativeArray[3]);\n" + + " alert(nativeArray[4]);\n" + + " alert(nativeArray[5]);\n" + + " alert(nativeArray[6]);\n" + "}\n" + "</script></head><body onload='test()'>\n" + "</body></html>"; Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Int32ArrayTest.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Int32ArrayTest.java 2018-05-17 09:09:09 UTC (rev 15267) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Int32ArrayTest.java 2018-05-17 10:39:38 UTC (rev 15268) @@ -105,20 +105,28 @@ * @throws Exception if the test fails */ @Test - @Alerts({"undefined", "0", "0", "4", "undefined"}) + @Alerts({"undefined", "6", "0", "0", "0", "0", "0", "4", "undefined"}) public void undefinedValueInArray() throws Exception { final String html = "<html><head><title>foo</title><script>\n" + "function test() {\n" + " var array = [];\n" - + " array[2] = 4;\n" + + " array[1] = null;\n" + + " array[2] = Number.NaN;\n" + + " array[3] = Number.POSITIVE_INFINITY;\n" + + " array[4] = Number.NEGATIVE_INFINITY;\n" + + " array[5] = 4;\n" + " alert(array[0]);\n" + " var nativeArray = new Int32Array(array);\n" + + " alert(nativeArray.length);\n" + " alert(nativeArray[0]);\n" + " alert(nativeArray[1]);\n" + " alert(nativeArray[2]);\n" + " alert(nativeArray[3]);\n" + + " alert(nativeArray[4]);\n" + + " alert(nativeArray[5]);\n" + + " alert(nativeArray[6]);\n" + "}\n" + "</script></head><body onload='test()'>\n" + "</body></html>"; Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Int8ArrayTest.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Int8ArrayTest.java 2018-05-17 09:09:09 UTC (rev 15267) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Int8ArrayTest.java 2018-05-17 10:39:38 UTC (rev 15268) @@ -173,20 +173,28 @@ * @throws Exception if the test fails */ @Test - @Alerts({"undefined", "0", "0", "4", "undefined"}) + @Alerts({"undefined", "6", "0", "0", "0", "0", "0", "4", "undefined"}) public void undefinedValueInArray() throws Exception { final String html = "<html><head><title>foo</title><script>\n" + "function test() {\n" + " var array = [];\n" - + " array[2] = 4;\n" + + " array[1] = null;\n" + + " array[2] = Number.NaN;\n" + + " array[3] = Number.POSITIVE_INFINITY;\n" + + " array[4] = Number.NEGATIVE_INFINITY;\n" + + " array[5] = 4;\n" + " alert(array[0]);\n" + " var nativeArray = new Int8Array(array);\n" + + " alert(nativeArray.length);\n" + " alert(nativeArray[0]);\n" + " alert(nativeArray[1]);\n" + " alert(nativeArray[2]);\n" + " alert(nativeArray[3]);\n" + + " alert(nativeArray[4]);\n" + + " alert(nativeArray[5]);\n" + + " alert(nativeArray[6]);\n" + "}\n" + "</script></head><body onload='test()'>\n" + "</body></html>"; Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Uint16ArrayTest.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Uint16ArrayTest.java 2018-05-17 09:09:09 UTC (rev 15267) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Uint16ArrayTest.java 2018-05-17 10:39:38 UTC (rev 15268) @@ -106,20 +106,28 @@ * @throws Exception if the test fails */ @Test - @Alerts({"undefined", "0", "0", "4", "undefined"}) + @Alerts({"undefined", "6", "0", "0", "0", "0", "0", "4", "undefined"}) public void undefinedValueInArray() throws Exception { final String html = "<html><head><title>foo</title><script>\n" + "function test() {\n" + " var array = [];\n" - + " array[2] = 4;\n" + + " array[1] = null;\n" + + " array[2] = Number.NaN;\n" + + " array[3] = Number.POSITIVE_INFINITY;\n" + + " array[4] = Number.NEGATIVE_INFINITY;\n" + + " array[5] = 4;\n" + " alert(array[0]);\n" + " var nativeArray = new Uint16Array(array);\n" + + " alert(nativeArray.length);\n" + " alert(nativeArray[0]);\n" + " alert(nativeArray[1]);\n" + " alert(nativeArray[2]);\n" + " alert(nativeArray[3]);\n" + + " alert(nativeArray[4]);\n" + + " alert(nativeArray[5]);\n" + + " alert(nativeArray[6]);\n" + "}\n" + "</script></head><body onload='test()'>\n" + "</body></html>"; Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Uint32ArrayTest.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Uint32ArrayTest.java 2018-05-17 09:09:09 UTC (rev 15267) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Uint32ArrayTest.java 2018-05-17 10:39:38 UTC (rev 15268) @@ -127,20 +127,28 @@ * @throws Exception if the test fails */ @Test - @Alerts({"undefined", "0", "0", "4", "undefined"}) + @Alerts({"undefined", "6", "0", "0", "0", "0", "0", "4", "undefined"}) public void undefinedValueInArray() throws Exception { final String html = "<html><head><title>foo</title><script>\n" + "function test() {\n" + " var array = [];\n" - + " array[2] = 4;\n" + + " array[1] = null;\n" + + " array[2] = Number.NaN;\n" + + " array[3] = Number.POSITIVE_INFINITY;\n" + + " array[4] = Number.NEGATIVE_INFINITY;\n" + + " array[5] = 4;\n" + " alert(array[0]);\n" + " var nativeArray = new Uint32Array(array);\n" + + " alert(nativeArray.length);\n" + " alert(nativeArray[0]);\n" + " alert(nativeArray[1]);\n" + " alert(nativeArray[2]);\n" + " alert(nativeArray[3]);\n" + + " alert(nativeArray[4]);\n" + + " alert(nativeArray[5]);\n" + + " alert(nativeArray[6]);\n" + "}\n" + "</script></head><body onload='test()'>\n" + "</body></html>"; Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Uint8ArrayTest.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Uint8ArrayTest.java 2018-05-17 09:09:09 UTC (rev 15267) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Uint8ArrayTest.java 2018-05-17 10:39:38 UTC (rev 15268) @@ -106,20 +106,28 @@ * @throws Exception if the test fails */ @Test - @Alerts({"undefined", "0", "0", "4", "undefined"}) + @Alerts({"undefined", "6", "0", "0", "0", "0", "0", "4", "undefined"}) public void undefinedValueInArray() throws Exception { final String html = "<html><head><title>foo</title><script>\n" + "function test() {\n" + " var array = [];\n" - + " array[2] = 4;\n" + + " array[1] = null;\n" + + " array[2] = Number.NaN;\n" + + " array[3] = Number.POSITIVE_INFINITY;\n" + + " array[4] = Number.NEGATIVE_INFINITY;\n" + + " array[5] = 4;\n" + " alert(array[0]);\n" + " var nativeArray = new Uint8Array(array);\n" + + " alert(nativeArray.length);\n" + " alert(nativeArray[0]);\n" + " alert(nativeArray[1]);\n" + " alert(nativeArray[2]);\n" + " alert(nativeArray[3]);\n" + + " alert(nativeArray[4]);\n" + + " alert(nativeArray[5]);\n" + + " alert(nativeArray[6]);\n" + "}\n" + "</script></head><body onload='test()'>\n" + "</body></html>"; Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Uint8ClampedArrayTest.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Uint8ClampedArrayTest.java 2018-05-17 09:09:09 UTC (rev 15267) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Uint8ClampedArrayTest.java 2018-05-17 10:39:38 UTC (rev 15268) @@ -107,20 +107,28 @@ * @throws Exception if the test fails */ @Test - @Alerts({"undefined", "0", "0", "4", "undefined"}) + @Alerts({"undefined", "6", "0", "0", "0", "255", "0", "4", "undefined"}) public void undefinedValueInArray() throws Exception { final String html = "<html><head><title>foo</title><script>\n" + "function test() {\n" + " var array = [];\n" - + " array[2] = 4;\n" + + " array[1] = null;\n" + + " array[2] = Number.NaN;\n" + + " array[3] = Number.POSITIVE_INFINITY;\n" + + " array[4] = Number.NEGATIVE_INFINITY;\n" + + " array[5] = 4;\n" + " alert(array[0]);\n" + " var nativeArray = new Uint8ClampedArray(array);\n" + + " alert(nativeArray.length);\n" + " alert(nativeArray[0]);\n" + " alert(nativeArray[1]);\n" + " alert(nativeArray[2]);\n" + " alert(nativeArray[3]);\n" + + " alert(nativeArray[4]);\n" + + " alert(nativeArray[5]);\n" + + " alert(nativeArray[6]);\n" + "}\n" + "</script></head><body onload='test()'>\n" + "</body></html>"; |