From: <mgu...@us...> - 2012-11-13 13:31:37
|
Revision: 7726 http://sourceforge.net/p/htmlunit/code/7726 Author: mguillem Date: 2012-11-13 13:31:33 +0000 (Tue, 13 Nov 2012) Log Message: ----------- JavaScript: don't enumerate function properties "arguments" and "caller" (fixed in core-js snapshot) Modified Paths: -------------- trunk/htmlunit/src/changes/changes.xml trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/NativeFunctionTest.java Modified: trunk/htmlunit/src/changes/changes.xml =================================================================== --- trunk/htmlunit/src/changes/changes.xml 2012-11-13 05:55:45 UTC (rev 7725) +++ trunk/htmlunit/src/changes/changes.xml 2012-11-13 13:31:33 UTC (rev 7726) @@ -8,6 +8,9 @@ <body> <release version="2.12" date="???" description="Bugfixes"> + <action type="fix" dev="mguillem"> + JavaScript: don't enumerate function properties "arguments" and "caller". + </action> <action type="fix" dev="asashour"> JavaScript: handle definition of "function object.property() {}" (IE). </action> Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/NativeFunctionTest.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/NativeFunctionTest.java 2012-11-13 05:55:45 UTC (rev 7725) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/NativeFunctionTest.java 2012-11-13 13:31:33 UTC (rev 7726) @@ -145,4 +145,27 @@ loadPageWithAlerts2(html); } + + /** + * Function properties "arguments" and "caller" were wrongly enumerated as of HtmlUnit-2.11. + * @throws Exception if the test fails + */ + @Test + @Alerts("foo1 done") + public void in() throws Exception { + final String html = "<html><body><script>\n" + + "function foo1() {\n" + + " for (var i in foo1) {\n" + + " alert(i);\n" + + " };\n" + + " alert('foo1 done');\n" + + "};\n" + + "function foo0() {\n" + + " foo1();\n" + + "}\n" + + "foo0();\n" + + "</script></body></html>"; + + loadPageWithAlerts2(html); + } } |