diff --git a/src/changes/changes.xml b/src/changes/changes.xml index 656119fb8b..c30d4ff2e0 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -8,6 +8,12 @@ + + INCOMPATIBLE CHANGE: Return type of AbstractCssStyleDeclaration.item(int) has changed from Object to String. + + + Javascript Cssstyledeclaration#item() now returns a string. + core-js: code cleanup; remove the unused javascript/optimizer package. diff --git a/src/main/java/org/htmlunit/css/AbstractCssStyleDeclaration.java b/src/main/java/org/htmlunit/css/AbstractCssStyleDeclaration.java index 42d13870b8..ba8378c82c 100644 --- a/src/main/java/org/htmlunit/css/AbstractCssStyleDeclaration.java +++ b/src/main/java/org/htmlunit/css/AbstractCssStyleDeclaration.java @@ -214,11 +214,10 @@ else if (values.length > 0) { public abstract int getLength(); /** - * Returns the item in the given index. * @param index the index - * @return the item in the given index + * @return the name of the CSS property at the specified index */ - public abstract Object item(int index); + public abstract String item(int index); /** * Returns the CSSRule that is the parent of this style block or null if this CSSStyleDeclaration is diff --git a/src/main/java/org/htmlunit/css/ComputedCssStyleDeclaration.java b/src/main/java/org/htmlunit/css/ComputedCssStyleDeclaration.java index 20d0f0a7c4..228097ff3b 100644 --- a/src/main/java/org/htmlunit/css/ComputedCssStyleDeclaration.java +++ b/src/main/java/org/htmlunit/css/ComputedCssStyleDeclaration.java @@ -433,7 +433,7 @@ else if (AUTO.equals(value)) { * {@inheritDoc} */ @Override - public Object item(final int index) { + public String item(final int index) { return elementStyleDeclaration_.item(index); } diff --git a/src/main/java/org/htmlunit/css/WrappedCssStyleDeclaration.java b/src/main/java/org/htmlunit/css/WrappedCssStyleDeclaration.java index 1444e4b804..8fd8eacdc7 100644 --- a/src/main/java/org/htmlunit/css/WrappedCssStyleDeclaration.java +++ b/src/main/java/org/htmlunit/css/WrappedCssStyleDeclaration.java @@ -131,8 +131,8 @@ public int getLength() { * {@inheritDoc} */ @Override - public Object item(final int index) { - return cssStyleDeclarationImpl_.getProperties().get(index); + public String item(final int index) { + return cssStyleDeclarationImpl_.getProperties().get(index).toString(); } /** diff --git a/src/main/java/org/htmlunit/javascript/host/css/CSSStyleDeclaration.java b/src/main/java/org/htmlunit/javascript/host/css/CSSStyleDeclaration.java index 2445bb3112..74b5ffedea 100644 --- a/src/main/java/org/htmlunit/javascript/host/css/CSSStyleDeclaration.java +++ b/src/main/java/org/htmlunit/javascript/host/css/CSSStyleDeclaration.java @@ -901,15 +901,15 @@ public int getLength() { } /** - * Returns the item in the given index. * @param index the index - * @return the item in the given index + * @return a CSS property name from a CSSStyleDeclaration by index. */ @JsxFunction - public Object item(final int index) { + public String item(final int index) { if (styleDeclaration_ == null) { return null; // prototype } + return styleDeclaration_.item(index); } diff --git a/src/test/java/org/htmlunit/javascript/host/css/CSSPageRuleTest.java b/src/test/java/org/htmlunit/javascript/host/css/CSSPageRuleTest.java index 2edc8162c9..15463b4202 100644 --- a/src/test/java/org/htmlunit/javascript/host/css/CSSPageRuleTest.java +++ b/src/test/java/org/htmlunit/javascript/host/css/CSSPageRuleTest.java @@ -544,19 +544,31 @@ public void selectorTextSetCaseInsensitive() throws Exception { */ @Test @Alerts(DEFAULT = {"[object CSSStyleDeclaration]", "[object CSSStyleDeclaration]", "4", "[object CSSPageRule]", - "margin: 1cm;", "margin-top", "margin-right", "margin-bottom", "margin-left"}, + "margin: 1cm;", + "string margin-top", + "string margin-right", + "string margin-bottom", + "string margin-left"}, FF = {"[object CSSPageDescriptors]", "[object CSSPageDescriptors]", "4", "[object CSSPageRule]", - "margin: 1cm;", "margin-top", "margin-right", "margin-bottom", "margin-left"}, + "margin: 1cm;", + "string margin-top", + "string margin-right", + "string margin-bottom", + "string margin-left"}, FF_ESR = {"[object CSS2Properties]", "[object CSS2Properties]", "4", "[object CSSPageRule]", - "margin: 1cm;", "margin-top", "margin-right", "margin-bottom", "margin-left"}) + "margin: 1cm;", + "string margin-top", + "string margin-right", + "string margin-bottom", + "string margin-left"}) @HtmlUnitNYI(CHROME = {"[object CSSStyleDeclaration]", "[object CSSStyleDeclaration]", - "1", "[object CSSPageRule]", "margin: 1cm;", "margin: 1cm"}, + "1", "[object CSSPageRule]", "margin: 1cm;", "string margin: 1cm"}, EDGE = {"[object CSSStyleDeclaration]", "[object CSSStyleDeclaration]", - "1", "[object CSSPageRule]", "margin: 1cm;", "margin: 1cm"}, + "1", "[object CSSPageRule]", "margin: 1cm;", "string margin: 1cm"}, FF = {"[object CSSStyleDeclaration]", "[object CSSStyleDeclaration]", - "1", "[object CSSPageRule]", "margin: 1cm;", "margin: 1cm"}, + "1", "[object CSSPageRule]", "margin: 1cm;", "string margin: 1cm"}, FF_ESR = {"[object CSSStyleDeclaration]", "[object CSSStyleDeclaration]", - "1", "[object CSSPageRule]", "margin: 1cm;", "margin: 1cm"}) + "1", "[object CSSPageRule]", "margin: 1cm;", "string margin: 1cm"}) // FIXME FF returns CSS2Properties vs. default returns CSSStyleDeclaration :( public void style() throws Exception { final String html @@ -577,7 +589,7 @@ public void style() throws Exception { + " log(style.parentRule);\n" + " log(style.cssText);\n" + " for (var i = 0; i < style.length; i++) {\n" - + " log(style.item(i));\n" + + " log(typeof style.item(i) + ' ' + style.item(i));\n" + " }\n" + "\n"