static v8::Handle<v8::Value> itemCallback(const v8::Arguments& args) { INC_STATS("DOM.MediaList.item"); MediaList* imp = V8MediaList::toNative(args.Holder()); EXCEPTION_BLOCK(unsigned, index, toUInt32(args[0])); return v8StringOrNull(imp->item(index)); }
static v8::Handle<v8::Value> lookupNamespaceURICallback(const v8::Arguments& args) { INC_STATS("DOM.Node.lookupNamespaceURI"); Node* imp = V8Node::toNative(args.Holder()); STRING_TO_V8PARAMETER_EXCEPTION_BLOCK(V8Parameter<WithNullCheck>, prefix, MAYBE_MISSING_PARAMETER(args, 0, MissingIsUndefined)); return v8StringOrNull(imp->lookupNamespaceURI(prefix)); }
void ScriptCustomElementDefinition::runAttributeChangedCallback( Element* element, const QualifiedName& name, const AtomicString& oldValue, const AtomicString& newValue) { if (!m_scriptState->contextIsValid()) return; ScriptState::Scope scope(m_scriptState.get()); v8::Isolate* isolate = m_scriptState->isolate(); v8::Local<v8::Value> argv[] = { v8String(isolate, name.localName()), v8StringOrNull(isolate, oldValue), v8StringOrNull(isolate, newValue), v8StringOrNull(isolate, name.namespaceURI()), }; runCallback(m_attributeChangedCallback.newLocal(isolate), element, WTF_ARRAY_LENGTH(argv), argv); }
v8::Handle<v8::Value> V8FileReader::resultAccessorGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info) { INC_STATS("DOM.FileReader.result._get"); v8::Handle<v8::Object> holder = info.Holder(); FileReader* imp = V8FileReader::toNative(holder); if (imp->readType() == FileReaderLoader::ReadAsArrayBuffer) return toV8(imp->arrayBufferResult()); return v8StringOrNull(imp->stringResult()); }
static v8::Handle<v8::Value> itemCallback(const v8::Arguments& args) { INC_STATS("DOM.DOMStringList.item"); DOMStringList* imp = V8DOMStringList::toNative(args.Holder()); ExceptionCode ec = 0; { EXCEPTION_BLOCK(int, index, toUInt32(MAYBE_MISSING_PARAMETER(args, 0, MissingIsUndefined))); if (UNLIKELY(index < 0)) { ec = INDEX_SIZE_ERR; goto fail; } return v8StringOrNull(imp->item(index)); } fail: V8Proxy::setDOMException(ec); return v8::Handle<v8::Value>(); }
v8::Handle<v8::Value> V8CSSStyleDeclaration::namedPropertyGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info) { INC_STATS("DOM.CSSStyleDeclaration.NamedPropertyGetter"); // First look for API defined attributes on the style declaration object. if (info.Holder()->HasRealNamedCallbackProperty(name)) return notHandledByInterceptor(); // Search the style declaration. CSSStyleDeclaration* imp = V8CSSStyleDeclaration::toNative(info.Holder()); CSSPropertyInfo* propInfo = cssPropertyInfo(name); // Do not handle non-property names. if (!propInfo) return notHandledByInterceptor(); RefPtr<CSSValue> cssValue = imp->getPropertyCSSValue(propInfo->propID); if (cssValue) { if (propInfo->hadPixelOrPosPrefix && cssValue->cssValueType() == CSSValue::CSS_PRIMITIVE_VALUE) { return v8::Number::New(static_cast<CSSPrimitiveValue*>( cssValue.get())->getFloatValue(CSSPrimitiveValue::CSS_PX)); } return v8StringOrNull(cssValue->cssText()); } String result = imp->getPropertyValue(propInfo->propID); if (result.isNull()) result = ""; // convert null to empty string. // The 'filter' attribute is made undetectable in KJS/WebKit // to avoid confusion with IE's filter extension. if (propInfo->wasFilter) return v8UndetectableString(result); return v8String(result); }
static v8::Handle<v8::Value> systemIdAttrGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info) { Notation* imp = V8Notation::toNative(info.Holder()); return v8StringOrNull(imp->systemId(), info.GetIsolate()); }
static v8::Handle<v8::Value> notationNameAttrGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info) { INC_STATS("DOM.Entity.notationName._get"); Entity* imp = V8Entity::toNative(info.Holder()); return v8StringOrNull(imp->notationName()); }
static v8::Handle<v8::Value> cssTextAttrGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info) { INC_STATS("DOM.CSSValue.cssText._get"); CSSValue* imp = V8CSSValue::toNative(info.Holder()); return v8StringOrNull(imp->cssText()); }
v8::Handle<v8::Value> V8DOMSettableTokenList::indexedPropertyGetter(uint32_t index, const v8::AccessorInfo& info) { INC_STATS("DOM.DOMSettableTokenList.IndexedPropertyGetter"); DOMSettableTokenList* list = V8DOMSettableTokenList::toNative(info.Holder()); return v8StringOrNull(list->item(index)); }
static v8::Handle<v8::Value> mediaTextAttrGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info) { INC_STATS("DOM.MediaList.mediaText._get"); MediaList* imp = V8MediaList::toNative(info.Holder()); return v8StringOrNull(imp->mediaText()); }
static v8::Handle<v8::Value> selectorTextAttrGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info) { CSSPageRule* imp = V8CSSPageRule::toNative(info.Holder()); return v8StringOrNull(imp->selectorText(), info.GetIsolate()); }
static v8::Handle<v8::Value> titleAttrGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info) { INC_STATS("DOM.StyleSheet.title._get"); StyleSheet* imp = V8StyleSheet::toNative(info.Holder()); return v8StringOrNull(imp->title()); }
static v8::Handle<v8::Value> titleAttrGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info) { StyleSheet* imp = V8StyleSheet::toNative(info.Holder()); return v8StringOrNull(imp->title(), info.GetIsolate()); }
static v8::Handle<v8::Value> itemCallback(const v8::Arguments& args) { DOMStringList* imp = V8DOMStringList::toNative(args.Holder()); V8TRYCATCH(unsigned, index, toUInt32(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined))); return v8StringOrNull(imp->item(index), args.GetIsolate()); }
static v8::Handle<v8::Value> nodeValueAttrGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info) { INC_STATS("DOM.Node.nodeValue._get"); Node* imp = V8Node::toNative(info.Holder()); return v8StringOrNull(imp->nodeValue()); }
static v8::Handle<v8::Value> lookupNamespaceURICallback(const v8::Arguments& args) { XPathNSResolver* imp = V8XPathNSResolver::toNative(args.Holder()); V8TRYCATCH_FOR_V8STRINGRESOURCE(V8StringResource<>, prefix, MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined)); return v8StringOrNull(imp->lookupNamespaceURI(prefix), args.GetIsolate()); }
static v8::Handle<v8::Value> encodingAttrGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info) { INC_STATS("DOM.CSSCharsetRule.encoding._get"); CSSCharsetRule* imp = V8CSSCharsetRule::toNative(info.Holder()); return v8StringOrNull(imp->encoding()); }
static v8::Handle<v8::Value> notationNameAttrGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info) { Entity* imp = V8Entity::toNative(info.Holder()); return v8StringOrNull(imp->notationName(), info.GetIsolate()); }