blob: 49f3a7250bcc0fe52cf6a7bf0880df2e0b26a736 [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "bindings/modules/v8/WebGLAny.h"
#include "bindings/core/v8/ToV8.h"
#include "wtf/text/WTFString.h"
namespace blink {
ScriptValue WebGLAny(ScriptState* scriptState, bool value)
{
return ScriptValue(scriptState, v8Boolean(value, scriptState->isolate()));
}
ScriptValue WebGLAny(ScriptState* scriptState, const bool* value, size_t size)
{
v8::Local<v8::Array> array = v8::Array::New(scriptState->isolate(), size);
for (size_t i = 0; i < size; ++i) {
if (!v8CallBoolean(array->Set(scriptState->context(), v8::Integer::New(scriptState->isolate(), i), v8Boolean(value[i], scriptState->isolate()))))
return ScriptValue();
}
return ScriptValue(scriptState, array);
}
ScriptValue WebGLAny(ScriptState* scriptState, const Vector<bool>& value)
{
size_t size = value.size();
v8::Local<v8::Array> array = v8::Array::New(scriptState->isolate(), size);
for (size_t i = 0; i < size; ++i) {
if (!v8CallBoolean(array->Set(scriptState->context(), v8::Integer::New(scriptState->isolate(), i), v8Boolean(value[i], scriptState->isolate()))))
return ScriptValue();
}
return ScriptValue(scriptState, array);
}
ScriptValue WebGLAny(ScriptState* scriptState, const Vector<unsigned>& value)
{
size_t size = value.size();
v8::Local<v8::Array> array = v8::Array::New(scriptState->isolate(), size);
for (size_t i = 0; i < size; ++i) {
if (!v8CallBoolean(array->CreateDataProperty(scriptState->context(), i, v8::Integer::NewFromUnsigned(scriptState->isolate(), value[i]))))
return ScriptValue();
}
return ScriptValue(scriptState, array);
}
ScriptValue WebGLAny(ScriptState* scriptState, const Vector<int>& value)
{
size_t size = value.size();
v8::Local<v8::Array> array = v8::Array::New(scriptState->isolate(), size);
for (size_t i = 0; i < size; ++i) {
if (!v8CallBoolean(array->CreateDataProperty(scriptState->context(), i, v8::Integer::New(scriptState->isolate(), value[i]))))
return ScriptValue();
}
return ScriptValue(scriptState, array);
}
ScriptValue WebGLAny(ScriptState* scriptState, int value)
{
return ScriptValue(scriptState, v8::Integer::New(scriptState->isolate(), value));
}
ScriptValue WebGLAny(ScriptState* scriptState, unsigned value)
{
return ScriptValue(scriptState, v8::Integer::NewFromUnsigned(scriptState->isolate(), static_cast<unsigned>(value)));
}
ScriptValue WebGLAny(ScriptState* scriptState, int64_t value)
{
return ScriptValue(scriptState, v8::Number::New(scriptState->isolate(), static_cast<double>(value)));
}
ScriptValue WebGLAny(ScriptState* scriptState, uint64_t value)
{
return ScriptValue(scriptState, v8::Number::New(scriptState->isolate(), static_cast<double>(value)));
}
ScriptValue WebGLAny(ScriptState* scriptState, float value)
{
return ScriptValue(scriptState, v8::Number::New(scriptState->isolate(), value));
}
ScriptValue WebGLAny(ScriptState* scriptState, String value)
{
return ScriptValue(scriptState, v8String(scriptState->isolate(), value));
}
ScriptValue WebGLAny(ScriptState* scriptState, WebGLObject* value)
{
return ScriptValue(scriptState, toV8(value, scriptState->context()->Global(), scriptState->isolate()));
}
ScriptValue WebGLAny(ScriptState* scriptState, PassRefPtr<DOMFloat32Array> value)
{
return ScriptValue(scriptState, toV8(value, scriptState->context()->Global(), scriptState->isolate()));
}
ScriptValue WebGLAny(ScriptState* scriptState, PassRefPtr<DOMInt32Array> value)
{
return ScriptValue(scriptState, toV8(value, scriptState->context()->Global(), scriptState->isolate()));
}
ScriptValue WebGLAny(ScriptState* scriptState, PassRefPtr<DOMUint8Array> value)
{
return ScriptValue(scriptState, toV8(value, scriptState->context()->Global(), scriptState->isolate()));
}
ScriptValue WebGLAny(ScriptState* scriptState, PassRefPtr<DOMUint32Array> value)
{
return ScriptValue(scriptState, toV8(value, scriptState->context()->Global(), scriptState->isolate()));
}
} // namespace blink