Пример #1
0
PassRefPtrWillBeRawPtr<FontFace> FontFace::create(ExecutionContext* context, const AtomicString& family, StringOrArrayBufferOrArrayBufferView& source, const FontFaceDescriptors& descriptors)
{
    if (source.isString())
        return create(context, family, source.getAsString(), descriptors);
    if (source.isArrayBuffer())
        return create(context, family, source.getAsArrayBuffer(), descriptors);
    if (source.isArrayBufferView())
        return create(context, family, source.getAsArrayBufferView(), descriptors);
    ASSERT_NOT_REACHED();
    return nullptr;
}
Пример #2
0
v8::Local<v8::Value> toV8(const StringOrArrayBufferOrArrayBufferView& impl, v8::Local<v8::Object> creationContext, v8::Isolate* isolate)
{
    switch (impl.m_type) {
    case StringOrArrayBufferOrArrayBufferView::SpecificTypeNone:
        return v8::Null(isolate);
    case StringOrArrayBufferOrArrayBufferView::SpecificTypeString:
        return v8String(isolate, impl.getAsString());
    case StringOrArrayBufferOrArrayBufferView::SpecificTypeArrayBuffer:
        return toV8(impl.getAsArrayBuffer(), creationContext, isolate);
    case StringOrArrayBufferOrArrayBufferView::SpecificTypeArrayBufferView:
        return toV8(impl.getAsArrayBufferView(), creationContext, isolate);
    default:
        ASSERT_NOT_REACHED();
    }
    return v8::Local<v8::Value>();
}