diff --git a/dlls/mshtml/htmlelem.c b/dlls/mshtml/htmlelem.c
index 4e5aba7c344..b07de03be2d 100644
--- a/dlls/mshtml/htmlelem.c
+++ b/dlls/mshtml/htmlelem.c
@@ -6612,6 +6612,15 @@ static HRESULT WINAPI token_list_remove(IWineDOMTokenList *iface, BSTR token)
return token_list_add_remove(iface, token, TRUE);
}
+static HRESULT WINAPI token_list_toString(IWineDOMTokenList *iface, BSTR *String)
+{
+ struct token_list *token_list = impl_from_IWineDOMTokenList(iface);
+
+ TRACE("(%p)->(%p)\n", token_list, String);
+
+ return IHTMLElement_get_className(token_list->element, String);
+}
+
static const IWineDOMTokenListVtbl WineDOMTokenListVtbl = {
token_list_QueryInterface,
token_list_AddRef,
@@ -6622,6 +6631,7 @@ static const IWineDOMTokenListVtbl WineDOMTokenListVtbl = {
token_list_Invoke,
token_list_add,
token_list_remove,
+ token_list_toString
};
static inline struct token_list *token_list_from_DispatchEx(DispatchEx *iface)
diff --git a/dlls/mshtml/mshtml_private_iface.idl b/dlls/mshtml/mshtml_private_iface.idl
index 2292e2cf76b..5755afdfe5c 100644
--- a/dlls/mshtml/mshtml_private_iface.idl
+++ b/dlls/mshtml/mshtml_private_iface.idl
@@ -115,6 +115,8 @@ interface IWineDOMTokenList : IDispatch
HRESULT add([in] BSTR token);
[id(2)]
HRESULT remove([in] BSTR token);
+ [id(3)]
+ HRESULT toString([retval, out] BSTR *String);
}
} /* library MSHTML_private */
diff --git a/dlls/mshtml/tests/dom.js b/dlls/mshtml/tests/dom.js
index efbab663902..73c2b3b0866 100644
--- a/dlls/mshtml/tests/dom.js
+++ b/dlls/mshtml/tests/dom.js
@@ -528,6 +528,7 @@ sync_test("classList", function() {
classList.add("c");
ok(elem.className === "a b c 4", "(2) Expected className 'a b c 4', got " + elem.className);
ok(("" + classList) === "a b c 4", "Expected classList value 'a b c 4', got " + classList);
+ ok(classList.toString() === "a b c 4", "Expected classList toString 'a b c 4', got " + classList.toString());
var exception = false
@@ -609,4 +610,5 @@ sync_test("classList", function() {
elem.className = " testclass foobar ";
ok(("" + classList) === " testclass foobar ", "Expected classList value ' testclass foobar ', got " + classList);
+ ok(classList.toString() === " testclass foobar ", "Expected classList toString ' testclass foobar ', got " + classList.toString());
});