From: <asa...@us...> - 2012-12-12 08:40:36
|
Revision: 7859 http://sourceforge.net/p/htmlunit/code/7859 Author: asashour Date: 2012-12-12 08:40:33 +0000 (Wed, 12 Dec 2012) Log Message: ----------- Fix when to remove the Array.prototype properties (IE). Modified Paths: -------------- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HTMLParser.java trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlPage.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/JavaScriptEngine2Test.java Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HTMLParser.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HTMLParser.java 2012-12-12 07:38:10 UTC (rev 7858) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HTMLParser.java 2012-12-12 08:40:33 UTC (rev 7859) @@ -20,6 +20,7 @@ import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.HTMLIFRAME_IGNORE_SELFCLOSING; import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.HTMLPARSER_REMOVE_EMPTY_CONTENT; import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.IGNORE_CONTENTS_OF_INNER_HEAD; +import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.JS_DEFINE_GETTER; import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.PAGE_WAIT_LOAD_BEFORE_BODY; import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.SVG; @@ -34,6 +35,9 @@ import java.util.Map; import java.util.Stack; +import net.sourceforge.htmlunit.corejs.javascript.Scriptable; +import net.sourceforge.htmlunit.corejs.javascript.ScriptableObject; + import org.apache.commons.lang3.StringUtils; import org.apache.xerces.parsers.AbstractSAXParser; import org.apache.xerces.util.DefaultErrorHandler; @@ -550,12 +554,33 @@ else if ("head".equals(tagLower)) { head_ = (HtmlElement) newElement; } - + else if ("html".equals(tagLower)) { + if (!page_.hasFeature(JS_DEFINE_GETTER) && page_.isQuirksMode()) { + removePrototypeProperties((Scriptable) page_.getEnclosingWindow().getScriptObject(), "Array", + "every", "filter", "forEach", "indexOf", "lastIndexOf", "map", "reduce", + "reduceRight", "some"); + } + } currentNode_ = newElement; stack_.push(currentNode_); } /** + * Removes prototype properties. + |