diff --git a/mozilla/dom/src/base/nsDOMClassInfo.cpp b/mozilla/dom/src/base/nsDOMClassInfo.cpp index fb0df92543c..9cae67714a4 100644 --- a/mozilla/dom/src/base/nsDOMClassInfo.cpp +++ b/mozilla/dom/src/base/nsDOMClassInfo.cpp @@ -2644,23 +2644,23 @@ nsHTMLSelectElementSH::SetProperty(nsIXPConnectWrappedNative *wrapper, { int32 n = GetArrayIndexFromId(cx, id); - if (n < 0) { - return NS_OK; + if (n >= 0) { + nsCOMPtr native; + wrapper->GetNative(getter_AddRefs(native)); + + nsCOMPtr select(do_QueryInterface(native)); + NS_ENSURE_TRUE(select, NS_ERROR_UNEXPECTED); + + nsCOMPtr options; + select->GetOptions(getter_AddRefs(options)); + + nsCOMPtr oc(do_QueryInterface(options)); + NS_ENSURE_TRUE(oc, NS_ERROR_UNEXPECTED); + + return SetOption(cx, vp, n, oc); } - nsCOMPtr native; - wrapper->GetNative(getter_AddRefs(native)); - - nsCOMPtr select(do_QueryInterface(native)); - NS_ENSURE_TRUE(select, NS_ERROR_UNEXPECTED); - - nsCOMPtr options; - select->GetOptions(getter_AddRefs(options)); - - nsCOMPtr oc(do_QueryInterface(options)); - NS_ENSURE_TRUE(oc, NS_ERROR_UNEXPECTED); - - return SetOption(cx, vp, n, oc); + return nsElementSH::SetProperty(wrapper, cx, obj, id, vp, _retval); }