From: <asa...@us...> - 2017-04-28 11:10:16
|
Revision: 14284 http://sourceforge.net/p/htmlunit/code/14284 Author: asashour Date: 2017-04-28 11:10:14 +0000 (Fri, 28 Apr 2017) Log Message: ----------- js: fix Typed Array empty construction Modified Paths: -------------- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/ArrayBufferViewBase.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Uint8ArrayTest.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 2017-04-28 10:55:40 UTC (rev 14283) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/ArrayBufferViewBase.java 2017-04-28 11:10:14 UTC (rev 14284) @@ -69,7 +69,7 @@ } super.constructor(array, (int) dbByteOffset, (int) dbLength); } - else if (getBrowserVersion().hasFeature(JS_TYPED_ARRAYS_NULL)) { + else if (object == Undefined.instance || getBrowserVersion().hasFeature(JS_TYPED_ARRAYS_NULL)) { constructor(0); } else { 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 2017-04-28 10:55:40 UTC (rev 14283) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/arrays/Uint8ArrayTest.java 2017-04-28 11:10:14 UTC (rev 14284) @@ -200,4 +200,26 @@ loadPageWithAlerts2(html); } + /** + * @throws Exception if the test fails + */ + @Test + @Alerts("0") + public void emptyConstructor() throws Exception { + final String html + = "<html><head><title>foo</title><script>\n" + + "function test() {\n" + + " try {\n" + + " var array = new Uint8Array();\n" + + " alert(array.length);\n" + + " } catch(e) {\n" + + " alert('exception');\n" + + " }\n" + + "}\n" + + "</script></head><body onload='test()'>\n" + + "</body></html>"; + + loadPageWithAlerts2(html); + } + } |