Exemplo n.º 1
0
static v8::Handle<v8::Value> fooMethod(const v8::Arguments& args)
{
    if (args.Length() < 1)
        return throwNotEnoughArgumentsError(args.GetIsolate());
    Float64Array* imp = V8Float64Array::toNative(args.Holder());
    V8TRYCATCH(Float32Array*, array, V8Float32Array::HasInstance(args[0], args.GetIsolate(), worldType(args.GetIsolate())) ? V8Float32Array::toNative(v8::Handle<v8::Object>::Cast(args[0])) : 0);
    return toV8(imp->foo(array), args.Holder(), args.GetIsolate());
}
Exemplo n.º 2
0
already_AddRefed<DOMMatrix>
DOMMatrix::Constructor(const GlobalObject& aGlobal, const Float64Array& aArray64, ErrorResult& aRv)
{
  RefPtr<DOMMatrix> obj = new DOMMatrix(aGlobal.GetAsSupports());
  aArray64.ComputeLengthAndData();
  SetDataInMatrix(obj, aArray64.Data(), aArray64.Length(), aRv);

  return obj.forget();
}
Exemplo n.º 3
0
static v8::Handle<v8::Value> fooCallback(const v8::Arguments& args)
{
    INC_STATS("DOM.Float64Array.foo");
    if (args.Length() < 1)
        return throwNotEnoughArgumentsError(args.GetIsolate());
    Float64Array* imp = V8Float64Array::toNative(args.Holder());
    EXCEPTION_BLOCK(Float32Array*, array, V8Float32Array::HasInstance(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined)) ? V8Float32Array::toNative(v8::Handle<v8::Object>::Cast(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined))) : 0);
    return toV8(imp->foo(array), args.Holder(), args.GetIsolate());
}
static v8::Handle<v8::Value> subarrayCallback(const v8::Arguments& args)
{
    Float64Array* imp = V8Float64Array::toNative(args.Holder());
    V8TRYCATCH(int, start, toInt32(MAYBE_MISSING_PARAMETER(args, 0, DefaultIsUndefined)));
    if (args.Length() <= 1) {
        return toV8(imp->subarray(start), args.Holder(), args.GetIsolate());
    }
    V8TRYCATCH(int, end, toInt32(MAYBE_MISSING_PARAMETER(args, 1, DefaultIsUndefined)));
    return toV8(imp->subarray(start, end), args.Holder(), args.GetIsolate());
}
EncodedJSValue JSC_HOST_CALL jsFloat64ArrayPrototypeFunctionFoo(ExecState* exec)
{
    JSValue thisValue = exec->hostThisValue();
    if (!thisValue.inherits(&JSFloat64Array::s_info))
        return throwVMTypeError(exec);
    JSFloat64Array* castedThis = jsCast<JSFloat64Array*>(asObject(thisValue));
    ASSERT_GC_OBJECT_INHERITS(castedThis, &JSFloat64Array::s_info);
    Float64Array* impl = static_cast<Float64Array*>(castedThis->impl());
    if (exec->argumentCount() < 1)
        return throwVMError(exec, createNotEnoughArgumentsError(exec));
    Float32Array* array(toFloat32Array(exec->argument(0)));
    if (exec->hadException())
        return JSValue::encode(jsUndefined());

    JSC::JSValue result = toJS(exec, castedThis->globalObject(), WTF::getPtr(impl->foo(array)));
    return JSValue::encode(result);
}
Exemplo n.º 6
0
template<> void CData::writeTo<Uint8ClampedArray>(Uint8ClampedArray* dest)
{
#ifdef DIRECT_WRITE
    if (dest->length() != m_length)
        return;

    switch (getType()) {
    case ArrayBufferView::TypeFloat32: {
        Float32Array* src = getValue<Float32Array>();
        if (!src)
            return;

        // write with clamping
        uint8_t* pDest = dest->data();
        float* pSrc = src->data();

        for (size_t pos = 0; pos < m_length; pos++) {
            float val = pSrc[pos];
            pDest[pos] = (val > 255) ? 255 : ((val < 0) ? 0 : val);
        }

        break;
    }
    case ArrayBufferView::TypeFloat64: {
        Float64Array* src = getValue<Float64Array>();
        if (!src)
            return;

        // write with clamping
        uint8_t* pDest = dest->data();
        double* pSrc = src->data();

        for (size_t pos = 0; pos < m_length; pos++) {
            double val = pSrc[pos];
            pDest[pos] = (val > 255) ? 255 : ((val < 0) ? 0 : val);
        }

        break;
    }
    default:
        break;
    }
#endif // DIRECT_WRITE
}
Exemplo n.º 7
0
    static v8::Handle<v8::Value> New (const v8::Arguments& args) {

        if (args.Length() == 1 && args[0]->IsUint32()) {

//        std::cout<<"New  "<<args[0]->ToUint32()->IntegerValue()<<std::endl;
            Float64Array* array = new Float64Array(args[0]->ToUint32()->IntegerValue());
            array->Wrap(args.This());
        }
        else if(args.Length() == 1 && args[0]->IsObject())
        {
            // unwrap array buffer object
            ArrayBuffer* buf = ObjectWrap::Unwrap<ArrayBuffer>(args[0]->ToObject());
            Float64Array* array = new Float64Array(buf->length/8);
            array->Wrap(args.This());

        }
//    std::cout<<"old Float64Array New "<<std::endl;
        return args.This();
    }
static v8::Handle<v8::Value> lengthAttrGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info)
{
    Float64Array* imp = V8Float64Array::toNative(info.Holder());
    return v8UnsignedInteger(imp->length(), info.GetIsolate());
}