diff options
author | Lorry Tar Creator <lorry-tar-importer@lorry> | 2017-06-27 06:07:23 +0000 |
---|---|---|
committer | Lorry Tar Creator <lorry-tar-importer@lorry> | 2017-06-27 06:07:23 +0000 |
commit | 1bf1084f2b10c3b47fd1a588d85d21ed0eb41d0c (patch) | |
tree | 46dcd36c86e7fbc6e5df36deb463b33e9967a6f7 /Source/WebCore/bindings/js/JSHTMLOptionsCollectionCustom.cpp | |
parent | 32761a6cee1d0dee366b885b7b9c777e67885688 (diff) | |
download | WebKitGtk-tarball-master.tar.gz |
webkitgtk-2.16.5HEADwebkitgtk-2.16.5master
Diffstat (limited to 'Source/WebCore/bindings/js/JSHTMLOptionsCollectionCustom.cpp')
-rw-r--r-- | Source/WebCore/bindings/js/JSHTMLOptionsCollectionCustom.cpp | 59 |
1 files changed, 4 insertions, 55 deletions
diff --git a/Source/WebCore/bindings/js/JSHTMLOptionsCollectionCustom.cpp b/Source/WebCore/bindings/js/JSHTMLOptionsCollectionCustom.cpp index 74a58672f..356679a8e 100644 --- a/Source/WebCore/bindings/js/JSHTMLOptionsCollectionCustom.cpp +++ b/Source/WebCore/bindings/js/JSHTMLOptionsCollectionCustom.cpp @@ -20,72 +20,21 @@ #include "config.h" #include "JSHTMLOptionsCollection.h" +#include "CustomElementReactionQueue.h" #include "ExceptionCode.h" -#include "HTMLNames.h" -#include "HTMLOptionElement.h" -#include "HTMLOptionsCollection.h" -#include "HTMLSelectElement.h" #include "JSHTMLOptionElement.h" #include "JSHTMLSelectElement.h" #include "JSHTMLSelectElementCustom.h" -#include "JSNodeList.h" -#include "StaticNodeList.h" - #include <wtf/MathExtras.h> using namespace JSC; namespace WebCore { -void JSHTMLOptionsCollection::setLength(ExecState* exec, JSValue value) -{ - ExceptionCode ec = 0; - unsigned newLength = 0; - double lengthValue = value.toNumber(exec); - if (!std::isnan(lengthValue) && !std::isinf(lengthValue)) { - if (lengthValue < 0.0) - ec = INDEX_SIZE_ERR; - else if (lengthValue > static_cast<double>(UINT_MAX)) - newLength = UINT_MAX; - else - newLength = static_cast<unsigned>(lengthValue); - } - if (!ec) - impl().setLength(newLength, ec); - setDOMException(exec, ec); -} - -void JSHTMLOptionsCollection::indexSetter(ExecState* exec, unsigned index, JSValue value) -{ - selectIndexSetter(&impl().selectElement(), exec, index, value); -} - -JSValue JSHTMLOptionsCollection::add(ExecState* exec) -{ - HTMLOptionsCollection& imp = impl(); - HTMLOptionElement* option = toHTMLOptionElement(exec->argument(0)); - ExceptionCode ec = 0; - if (exec->argumentCount() < 2) - imp.add(option, ec); - else { - int index = exec->argument(1).toInt32(exec); - if (exec->hadException()) - return jsUndefined(); - imp.add(option, index, ec); - } - setDOMException(exec, ec); - return jsUndefined(); -} - -JSValue JSHTMLOptionsCollection::remove(ExecState* exec) +void JSHTMLOptionsCollection::indexSetter(ExecState* state, unsigned index, JSValue value) { - // The argument can be an HTMLOptionElement or an index. - JSValue argument = exec->argument(0); - if (HTMLOptionElement* option = toHTMLOptionElement(argument)) - impl().remove(option); - else - impl().remove(argument.toInt32(exec)); - return jsUndefined(); + CustomElementReactionStack customElementReactionStack; + selectElementIndexSetter(*state, wrapped().selectElement(), index, value); } } |