コード例 #1
0
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));
}
コード例 #2
0
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));
}
コード例 #3
0
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);
}
コード例 #4
0
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());
}
コード例 #5
0
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>();
}
コード例 #6
0
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);
}
コード例 #7
0
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());
}
コード例 #8
0
 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());
 }
コード例 #9
0
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());
}
コード例 #10
0
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));
}
コード例 #11
0
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());
}
コード例 #12
0
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());
}
コード例 #13
0
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());
}
コード例 #14
0
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());
}
コード例 #15
0
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());
}
コード例 #16
0
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());
}
コード例 #17
0
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());
}
コード例 #18
0
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());
}
コード例 #19
0
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());
}