53
54
static JSObject* constructHTMLOptionElement(ExecState* exec, JSObject* constructor, const ArgList& args)
55
56
Document* document = static_cast<JSOptionConstructor*>(constructor)->document();
58
return throwError(exec, ReferenceError, "Option constructor associated document is unavailable");
57
60
RefPtr<HTMLOptionElement> element = static_pointer_cast<HTMLOptionElement>(document->createElement(HTMLNames::optionTag, false));
59
62
ExceptionCode ec = 0;
60
63
RefPtr<Text> text = document->createTextNode("");
61
if (!args.at(exec, 0).isUndefined())
62
text->setData(args.at(exec, 0).toString(exec), ec);
64
if (!args.at(0).isUndefined())
65
text->setData(args.at(0).toString(exec), ec);
64
67
element->appendChild(text.release(), ec);
65
if (ec == 0 && !args.at(exec, 1).isUndefined())
66
element->setValue(args.at(exec, 1).toString(exec));
68
element->setDefaultSelected(args.at(exec, 2).toBoolean(exec));
70
element->setSelected(args.at(exec, 3).toBoolean(exec));
68
if (ec == 0 && !args.at(1).isUndefined())
69
element->setValue(args.at(1).toString(exec));
71
element->setDefaultSelected(args.at(2).toBoolean(exec));
73
element->setSelected(args.at(3).toBoolean(exec));
73
76
setDOMException(exec, ec);