JSValue jsHTMLOListElementStart(ExecState* exec, JSValue slotBase, const Identifier&) { JSHTMLOListElement* castedThis = static_cast<JSHTMLOListElement*>(asObject(slotBase)); UNUSED_PARAM(exec); HTMLOListElement* imp = static_cast<HTMLOListElement*>(castedThis->impl()); JSValue result = jsNumber(exec, imp->start()); return result; }
JSValue* JSHTMLOListElement::getValueProperty(ExecState* exec, int token) const { switch (token) { case CompactAttrNum: { HTMLOListElement* imp = static_cast<HTMLOListElement*>(impl()); return jsBoolean(imp->compact()); } case StartAttrNum: { HTMLOListElement* imp = static_cast<HTMLOListElement*>(impl()); return jsNumber(exec, imp->start()); } case TypeAttrNum: { HTMLOListElement* imp = static_cast<HTMLOListElement*>(impl()); return jsString(exec, imp->type()); } case ConstructorAttrNum: return getConstructor(exec); } return 0; }
inline int RenderListItem::calcValue() const { if (m_hasExplicitValue) return m_explicitValue; Node* list = enclosingList(this); HTMLOListElement* oListElement = isHTMLOListElement(list) ? toHTMLOListElement(list) : 0; int valueStep = 1; if (oListElement && oListElement->isReversed()) valueStep = -1; // FIXME: This recurses to a possible depth of the length of the list. // That's not good -- we need to change this to an iterative algorithm. if (RenderListItem* previousItem = previousListItem(list, this)) return previousItem->value() + valueStep; if (oListElement) return oListElement->start(); return 1; }
inline int RenderListItem::calcValue() const { if (m_hasExplicitValue) return m_explicitValue; Node* list = enclosingList(this); RenderObject* listRenderer = list ? list->renderer() : 0; HTMLOListElement* oListElement = (list && list->hasTagName(olTag)) ? static_cast<HTMLOListElement*>(list) : 0; int valueStep = 1; if (oListElement && oListElement->isReversed()) valueStep = -1; // FIXME: This recurses to a possible depth of the length of the list. // That's not good -- we need to change this to an iterative algorithm. if (RenderListItem* previousItem = previousListItem(listRenderer, this)) return previousItem->value() + valueStep; if (oListElement) return oListElement->start(); return 1; }
static v8::Handle<v8::Value> startAttrGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info) { INC_STATS("DOM.HTMLOListElement.start._get"); HTMLOListElement* imp = V8HTMLOListElement::toNative(info.Holder()); return v8::Integer::New(imp->start()); }