blob: d3a3457d3f11628e4292e5d7b167c5198165d522 [file] [log] [blame]
// Copyright 2017 Google Inc. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// clang-format off
// This file has been auto-generated by bindings/code_generator_cobalt.py. DO NOT MODIFY!
// Auto-generated from template: bindings/v8c/templates/interface.cc.template
#include "cobalt/bindings/testing/v8c_numeric_types_test_interface.h"
#include "base/debug/trace_event.h"
#include "cobalt/base/polymorphic_downcast.h"
#include "cobalt/script/global_environment.h"
#include "cobalt/script/script_value.h"
#include "cobalt/script/value_handle.h"
#include "v8c_gen_type_conversion.h"
#include "cobalt/script/callback_interface_traits.h"
#include "cobalt/script/v8c/callback_function_conversion.h"
#include "cobalt/script/v8c/conversion_helpers.h"
#include "cobalt/script/v8c/native_promise.h"
#include "cobalt/script/v8c/type_traits.h"
#include "cobalt/script/v8c/v8c_callback_function.h"
#include "cobalt/script/v8c/v8c_callback_interface_holder.h"
#include "cobalt/script/v8c/v8c_exception_state.h"
#include "cobalt/script/v8c/v8c_global_environment.h"
#include "cobalt/script/v8c/v8c_value_handle.h"
#include "cobalt/script/v8c/wrapper_private.h"
#include "v8/include/v8.h"
namespace {
using cobalt::bindings::testing::NumericTypesTestInterface;
using cobalt::bindings::testing::V8cNumericTypesTestInterface;
using cobalt::script::CallbackInterfaceTraits;
using cobalt::script::GlobalEnvironment;
using cobalt::script::ScriptValue;
using cobalt::script::ValueHandle;
using cobalt::script::ValueHandle;
using cobalt::script::ValueHandleHolder;
using cobalt::script::Wrappable;
using cobalt::script::v8c::FromJSValue;
using cobalt::script::v8c::InterfaceData;
using cobalt::script::v8c::kConversionFlagClamped;
using cobalt::script::v8c::kConversionFlagNullable;
using cobalt::script::v8c::kConversionFlagRestricted;
using cobalt::script::v8c::kConversionFlagTreatNullAsEmptyString;
using cobalt::script::v8c::kConversionFlagTreatUndefinedAsEmptyString;
using cobalt::script::v8c::kNoConversionFlags;
using cobalt::script::v8c::TypeTraits;
using cobalt::script::v8c::V8cExceptionState;
using cobalt::script::v8c::V8cGlobalEnvironment;
using cobalt::script::v8c::WrapperFactory;
using cobalt::script::v8c::WrapperPrivate;
v8::Local<v8::Object> DummyFunctor(V8cGlobalEnvironment*, const scoped_refptr<Wrappable>&) {
NOTIMPLEMENTED();
return {};
}
} // namespace
namespace cobalt {
namespace bindings {
namespace testing {
namespace {
void NumericTypesTestInterfaceConstructor(const v8::FunctionCallbackInfo<v8::Value>& args) {
NOTIMPLEMENTED();
if (!args.IsConstructCall()) {
// TODO: Probably throw something here...
return;
}
DCHECK(args.This()->InternalFieldCount() == 1);
args.This()->SetInternalField(0, v8::External::New(args.GetIsolate(), nullptr));
args.GetReturnValue().Set(args.This());
}
void v8cGet_byteProperty(
v8::Local<v8::String> property,
const v8::PropertyCallbackInfo<v8::Value>& info)
{
NOTIMPLEMENTED();
v8::Local<v8::External> external = v8::Local<v8::External>::Cast(info.Holder()->GetInternalField(0));
WrapperPrivate* wrapper_private = static_cast<WrapperPrivate*>(external->Value());
NumericTypesTestInterface* impl = static_cast<NumericTypesTestInterface*>(wrapper_private->wrappable<NumericTypesTestInterface>());
v8::Local<v8::Value> result_value;
}
void v8cSet_byteProperty(
v8::Local<v8::String> property,
v8::Local<v8::Value> v8_value,
const v8::PropertyCallbackInfo<void>& info)
{
v8::Local<v8::External> external = v8::Local<v8::External>::Cast(info.Holder()->GetInternalField(0));
WrapperPrivate* wrapper_private = static_cast<WrapperPrivate*>(external->Value());
NumericTypesTestInterface* impl = static_cast<NumericTypesTestInterface*>(wrapper_private->wrappable<NumericTypesTestInterface>());
TypeTraits<int8_t>::ConversionType conversion_value;
V8cExceptionState exception_state{};
FromJSValue(info.GetIsolate(), v8_value, kNoConversionFlags, &exception_state, &conversion_value);
impl->set_byte_property(
conversion_value
);
}
void v8cGet_byteClampProperty(
v8::Local<v8::String> property,
const v8::PropertyCallbackInfo<v8::Value>& info)
{
NOTIMPLEMENTED();
v8::Local<v8::External> external = v8::Local<v8::External>::Cast(info.Holder()->GetInternalField(0));
WrapperPrivate* wrapper_private = static_cast<WrapperPrivate*>(external->Value());
NumericTypesTestInterface* impl = static_cast<NumericTypesTestInterface*>(wrapper_private->wrappable<NumericTypesTestInterface>());
v8::Local<v8::Value> result_value;
}
void v8cSet_byteClampProperty(
v8::Local<v8::String> property,
v8::Local<v8::Value> v8_value,
const v8::PropertyCallbackInfo<void>& info)
{
v8::Local<v8::External> external = v8::Local<v8::External>::Cast(info.Holder()->GetInternalField(0));
WrapperPrivate* wrapper_private = static_cast<WrapperPrivate*>(external->Value());
NumericTypesTestInterface* impl = static_cast<NumericTypesTestInterface*>(wrapper_private->wrappable<NumericTypesTestInterface>());
TypeTraits<int8_t>::ConversionType conversion_value;
V8cExceptionState exception_state{};
FromJSValue(info.GetIsolate(), v8_value, (kConversionFlagClamped), &exception_state, &conversion_value);
impl->set_byte_clamp_property(
conversion_value
);
}
void v8cGet_octetProperty(
v8::Local<v8::String> property,
const v8::PropertyCallbackInfo<v8::Value>& info)
{
NOTIMPLEMENTED();
v8::Local<v8::External> external = v8::Local<v8::External>::Cast(info.Holder()->GetInternalField(0));
WrapperPrivate* wrapper_private = static_cast<WrapperPrivate*>(external->Value());
NumericTypesTestInterface* impl = static_cast<NumericTypesTestInterface*>(wrapper_private->wrappable<NumericTypesTestInterface>());
v8::Local<v8::Value> result_value;
}
void v8cSet_octetProperty(
v8::Local<v8::String> property,
v8::Local<v8::Value> v8_value,
const v8::PropertyCallbackInfo<void>& info)
{
v8::Local<v8::External> external = v8::Local<v8::External>::Cast(info.Holder()->GetInternalField(0));
WrapperPrivate* wrapper_private = static_cast<WrapperPrivate*>(external->Value());
NumericTypesTestInterface* impl = static_cast<NumericTypesTestInterface*>(wrapper_private->wrappable<NumericTypesTestInterface>());
TypeTraits<uint8_t>::ConversionType conversion_value;
V8cExceptionState exception_state{};
FromJSValue(info.GetIsolate(), v8_value, kNoConversionFlags, &exception_state, &conversion_value);
impl->set_octet_property(
conversion_value
);
}
void v8cGet_octetClampProperty(
v8::Local<v8::String> property,
const v8::PropertyCallbackInfo<v8::Value>& info)
{
NOTIMPLEMENTED();
v8::Local<v8::External> external = v8::Local<v8::External>::Cast(info.Holder()->GetInternalField(0));
WrapperPrivate* wrapper_private = static_cast<WrapperPrivate*>(external->Value());
NumericTypesTestInterface* impl = static_cast<NumericTypesTestInterface*>(wrapper_private->wrappable<NumericTypesTestInterface>());
v8::Local<v8::Value> result_value;
}
void v8cSet_octetClampProperty(
v8::Local<v8::String> property,
v8::Local<v8::Value> v8_value,
const v8::PropertyCallbackInfo<void>& info)
{
v8::Local<v8::External> external = v8::Local<v8::External>::Cast(info.Holder()->GetInternalField(0));
WrapperPrivate* wrapper_private = static_cast<WrapperPrivate*>(external->Value());
NumericTypesTestInterface* impl = static_cast<NumericTypesTestInterface*>(wrapper_private->wrappable<NumericTypesTestInterface>());
TypeTraits<uint8_t>::ConversionType conversion_value;
V8cExceptionState exception_state{};
FromJSValue(info.GetIsolate(), v8_value, (kConversionFlagClamped), &exception_state, &conversion_value);
impl->set_octet_clamp_property(
conversion_value
);
}
void v8cGet_shortProperty(
v8::Local<v8::String> property,
const v8::PropertyCallbackInfo<v8::Value>& info)
{
NOTIMPLEMENTED();
v8::Local<v8::External> external = v8::Local<v8::External>::Cast(info.Holder()->GetInternalField(0));
WrapperPrivate* wrapper_private = static_cast<WrapperPrivate*>(external->Value());
NumericTypesTestInterface* impl = static_cast<NumericTypesTestInterface*>(wrapper_private->wrappable<NumericTypesTestInterface>());
v8::Local<v8::Value> result_value;
}
void v8cSet_shortProperty(
v8::Local<v8::String> property,
v8::Local<v8::Value> v8_value,
const v8::PropertyCallbackInfo<void>& info)
{
v8::Local<v8::External> external = v8::Local<v8::External>::Cast(info.Holder()->GetInternalField(0));
WrapperPrivate* wrapper_private = static_cast<WrapperPrivate*>(external->Value());
NumericTypesTestInterface* impl = static_cast<NumericTypesTestInterface*>(wrapper_private->wrappable<NumericTypesTestInterface>());
TypeTraits<int16_t>::ConversionType conversion_value;
V8cExceptionState exception_state{};
FromJSValue(info.GetIsolate(), v8_value, kNoConversionFlags, &exception_state, &conversion_value);
impl->set_short_property(
conversion_value
);
}
void v8cGet_shortClampProperty(
v8::Local<v8::String> property,
const v8::PropertyCallbackInfo<v8::Value>& info)
{
NOTIMPLEMENTED();
v8::Local<v8::External> external = v8::Local<v8::External>::Cast(info.Holder()->GetInternalField(0));
WrapperPrivate* wrapper_private = static_cast<WrapperPrivate*>(external->Value());
NumericTypesTestInterface* impl = static_cast<NumericTypesTestInterface*>(wrapper_private->wrappable<NumericTypesTestInterface>());
v8::Local<v8::Value> result_value;
}
void v8cSet_shortClampProperty(
v8::Local<v8::String> property,
v8::Local<v8::Value> v8_value,
const v8::PropertyCallbackInfo<void>& info)
{
v8::Local<v8::External> external = v8::Local<v8::External>::Cast(info.Holder()->GetInternalField(0));
WrapperPrivate* wrapper_private = static_cast<WrapperPrivate*>(external->Value());
NumericTypesTestInterface* impl = static_cast<NumericTypesTestInterface*>(wrapper_private->wrappable<NumericTypesTestInterface>());
TypeTraits<int16_t>::ConversionType conversion_value;
V8cExceptionState exception_state{};
FromJSValue(info.GetIsolate(), v8_value, (kConversionFlagClamped), &exception_state, &conversion_value);
impl->set_short_clamp_property(
conversion_value
);
}
void v8cGet_unsignedShortProperty(
v8::Local<v8::String> property,
const v8::PropertyCallbackInfo<v8::Value>& info)
{
NOTIMPLEMENTED();
v8::Local<v8::External> external = v8::Local<v8::External>::Cast(info.Holder()->GetInternalField(0));
WrapperPrivate* wrapper_private = static_cast<WrapperPrivate*>(external->Value());
NumericTypesTestInterface* impl = static_cast<NumericTypesTestInterface*>(wrapper_private->wrappable<NumericTypesTestInterface>());
v8::Local<v8::Value> result_value;
}
void v8cSet_unsignedShortProperty(
v8::Local<v8::String> property,
v8::Local<v8::Value> v8_value,
const v8::PropertyCallbackInfo<void>& info)
{
v8::Local<v8::External> external = v8::Local<v8::External>::Cast(info.Holder()->GetInternalField(0));
WrapperPrivate* wrapper_private = static_cast<WrapperPrivate*>(external->Value());
NumericTypesTestInterface* impl = static_cast<NumericTypesTestInterface*>(wrapper_private->wrappable<NumericTypesTestInterface>());
TypeTraits<uint16_t>::ConversionType conversion_value;
V8cExceptionState exception_state{};
FromJSValue(info.GetIsolate(), v8_value, kNoConversionFlags, &exception_state, &conversion_value);
impl->set_unsigned_short_property(
conversion_value
);
}
void v8cGet_unsignedShortClampProperty(
v8::Local<v8::String> property,
const v8::PropertyCallbackInfo<v8::Value>& info)
{
NOTIMPLEMENTED();
v8::Local<v8::External> external = v8::Local<v8::External>::Cast(info.Holder()->GetInternalField(0));
WrapperPrivate* wrapper_private = static_cast<WrapperPrivate*>(external->Value());
NumericTypesTestInterface* impl = static_cast<NumericTypesTestInterface*>(wrapper_private->wrappable<NumericTypesTestInterface>());
v8::Local<v8::Value> result_value;
}
void v8cSet_unsignedShortClampProperty(
v8::Local<v8::String> property,
v8::Local<v8::Value> v8_value,
const v8::PropertyCallbackInfo<void>& info)
{
v8::Local<v8::External> external = v8::Local<v8::External>::Cast(info.Holder()->GetInternalField(0));
WrapperPrivate* wrapper_private = static_cast<WrapperPrivate*>(external->Value());
NumericTypesTestInterface* impl = static_cast<NumericTypesTestInterface*>(wrapper_private->wrappable<NumericTypesTestInterface>());
TypeTraits<uint16_t>::ConversionType conversion_value;
V8cExceptionState exception_state{};
FromJSValue(info.GetIsolate(), v8_value, (kConversionFlagClamped), &exception_state, &conversion_value);
impl->set_unsigned_short_clamp_property(
conversion_value
);
}
void v8cGet_longProperty(
v8::Local<v8::String> property,
const v8::PropertyCallbackInfo<v8::Value>& info)
{
NOTIMPLEMENTED();
v8::Local<v8::External> external = v8::Local<v8::External>::Cast(info.Holder()->GetInternalField(0));
WrapperPrivate* wrapper_private = static_cast<WrapperPrivate*>(external->Value());
NumericTypesTestInterface* impl = static_cast<NumericTypesTestInterface*>(wrapper_private->wrappable<NumericTypesTestInterface>());
v8::Local<v8::Value> result_value;
}
void v8cSet_longProperty(
v8::Local<v8::String> property,
v8::Local<v8::Value> v8_value,
const v8::PropertyCallbackInfo<void>& info)
{
v8::Local<v8::External> external = v8::Local<v8::External>::Cast(info.Holder()->GetInternalField(0));
WrapperPrivate* wrapper_private = static_cast<WrapperPrivate*>(external->Value());
NumericTypesTestInterface* impl = static_cast<NumericTypesTestInterface*>(wrapper_private->wrappable<NumericTypesTestInterface>());
TypeTraits<int32_t>::ConversionType conversion_value;
V8cExceptionState exception_state{};
FromJSValue(info.GetIsolate(), v8_value, kNoConversionFlags, &exception_state, &conversion_value);
impl->set_long_property(
conversion_value
);
}
void v8cGet_longClampProperty(
v8::Local<v8::String> property,
const v8::PropertyCallbackInfo<v8::Value>& info)
{
NOTIMPLEMENTED();
v8::Local<v8::External> external = v8::Local<v8::External>::Cast(info.Holder()->GetInternalField(0));
WrapperPrivate* wrapper_private = static_cast<WrapperPrivate*>(external->Value());
NumericTypesTestInterface* impl = static_cast<NumericTypesTestInterface*>(wrapper_private->wrappable<NumericTypesTestInterface>());
v8::Local<v8::Value> result_value;
}
void v8cSet_longClampProperty(
v8::Local<v8::String> property,
v8::Local<v8::Value> v8_value,
const v8::PropertyCallbackInfo<void>& info)
{
v8::Local<v8::External> external = v8::Local<v8::External>::Cast(info.Holder()->GetInternalField(0));
WrapperPrivate* wrapper_private = static_cast<WrapperPrivate*>(external->Value());
NumericTypesTestInterface* impl = static_cast<NumericTypesTestInterface*>(wrapper_private->wrappable<NumericTypesTestInterface>());
TypeTraits<int32_t>::ConversionType conversion_value;
V8cExceptionState exception_state{};
FromJSValue(info.GetIsolate(), v8_value, (kConversionFlagClamped), &exception_state, &conversion_value);
impl->set_long_clamp_property(
conversion_value
);
}
void v8cGet_unsignedLongProperty(
v8::Local<v8::String> property,
const v8::PropertyCallbackInfo<v8::Value>& info)
{
NOTIMPLEMENTED();
v8::Local<v8::External> external = v8::Local<v8::External>::Cast(info.Holder()->GetInternalField(0));
WrapperPrivate* wrapper_private = static_cast<WrapperPrivate*>(external->Value());
NumericTypesTestInterface* impl = static_cast<NumericTypesTestInterface*>(wrapper_private->wrappable<NumericTypesTestInterface>());
v8::Local<v8::Value> result_value;
}
void v8cSet_unsignedLongProperty(
v8::Local<v8::String> property,
v8::Local<v8::Value> v8_value,
const v8::PropertyCallbackInfo<void>& info)
{
v8::Local<v8::External> external = v8::Local<v8::External>::Cast(info.Holder()->GetInternalField(0));
WrapperPrivate* wrapper_private = static_cast<WrapperPrivate*>(external->Value());
NumericTypesTestInterface* impl = static_cast<NumericTypesTestInterface*>(wrapper_private->wrappable<NumericTypesTestInterface>());
TypeTraits<uint32_t>::ConversionType conversion_value;
V8cExceptionState exception_state{};
FromJSValue(info.GetIsolate(), v8_value, kNoConversionFlags, &exception_state, &conversion_value);
impl->set_unsigned_long_property(
conversion_value
);
}
void v8cGet_unsignedLongClampProperty(
v8::Local<v8::String> property,
const v8::PropertyCallbackInfo<v8::Value>& info)
{
NOTIMPLEMENTED();
v8::Local<v8::External> external = v8::Local<v8::External>::Cast(info.Holder()->GetInternalField(0));
WrapperPrivate* wrapper_private = static_cast<WrapperPrivate*>(external->Value());
NumericTypesTestInterface* impl = static_cast<NumericTypesTestInterface*>(wrapper_private->wrappable<NumericTypesTestInterface>());
v8::Local<v8::Value> result_value;
}
void v8cSet_unsignedLongClampProperty(
v8::Local<v8::String> property,
v8::Local<v8::Value> v8_value,
const v8::PropertyCallbackInfo<void>& info)
{
v8::Local<v8::External> external = v8::Local<v8::External>::Cast(info.Holder()->GetInternalField(0));
WrapperPrivate* wrapper_private = static_cast<WrapperPrivate*>(external->Value());
NumericTypesTestInterface* impl = static_cast<NumericTypesTestInterface*>(wrapper_private->wrappable<NumericTypesTestInterface>());
TypeTraits<uint32_t>::ConversionType conversion_value;
V8cExceptionState exception_state{};
FromJSValue(info.GetIsolate(), v8_value, (kConversionFlagClamped), &exception_state, &conversion_value);
impl->set_unsigned_long_clamp_property(
conversion_value
);
}
void v8cGet_longLongProperty(
v8::Local<v8::String> property,
const v8::PropertyCallbackInfo<v8::Value>& info)
{
NOTIMPLEMENTED();
v8::Local<v8::External> external = v8::Local<v8::External>::Cast(info.Holder()->GetInternalField(0));
WrapperPrivate* wrapper_private = static_cast<WrapperPrivate*>(external->Value());
NumericTypesTestInterface* impl = static_cast<NumericTypesTestInterface*>(wrapper_private->wrappable<NumericTypesTestInterface>());
v8::Local<v8::Value> result_value;
}
void v8cSet_longLongProperty(
v8::Local<v8::String> property,
v8::Local<v8::Value> v8_value,
const v8::PropertyCallbackInfo<void>& info)
{
v8::Local<v8::External> external = v8::Local<v8::External>::Cast(info.Holder()->GetInternalField(0));
WrapperPrivate* wrapper_private = static_cast<WrapperPrivate*>(external->Value());
NumericTypesTestInterface* impl = static_cast<NumericTypesTestInterface*>(wrapper_private->wrappable<NumericTypesTestInterface>());
TypeTraits<int64_t>::ConversionType conversion_value;
V8cExceptionState exception_state{};
FromJSValue(info.GetIsolate(), v8_value, kNoConversionFlags, &exception_state, &conversion_value);
impl->set_long_long_property(
conversion_value
);
}
void v8cGet_longLongClampProperty(
v8::Local<v8::String> property,
const v8::PropertyCallbackInfo<v8::Value>& info)
{
NOTIMPLEMENTED();
v8::Local<v8::External> external = v8::Local<v8::External>::Cast(info.Holder()->GetInternalField(0));
WrapperPrivate* wrapper_private = static_cast<WrapperPrivate*>(external->Value());
NumericTypesTestInterface* impl = static_cast<NumericTypesTestInterface*>(wrapper_private->wrappable<NumericTypesTestInterface>());
v8::Local<v8::Value> result_value;
}
void v8cSet_longLongClampProperty(
v8::Local<v8::String> property,
v8::Local<v8::Value> v8_value,
const v8::PropertyCallbackInfo<void>& info)
{
v8::Local<v8::External> external = v8::Local<v8::External>::Cast(info.Holder()->GetInternalField(0));
WrapperPrivate* wrapper_private = static_cast<WrapperPrivate*>(external->Value());
NumericTypesTestInterface* impl = static_cast<NumericTypesTestInterface*>(wrapper_private->wrappable<NumericTypesTestInterface>());
TypeTraits<int64_t>::ConversionType conversion_value;
V8cExceptionState exception_state{};
FromJSValue(info.GetIsolate(), v8_value, (kConversionFlagClamped), &exception_state, &conversion_value);
impl->set_long_long_clamp_property(
conversion_value
);
}
void v8cGet_unsignedLongLongProperty(
v8::Local<v8::String> property,
const v8::PropertyCallbackInfo<v8::Value>& info)
{
NOTIMPLEMENTED();
v8::Local<v8::External> external = v8::Local<v8::External>::Cast(info.Holder()->GetInternalField(0));
WrapperPrivate* wrapper_private = static_cast<WrapperPrivate*>(external->Value());
NumericTypesTestInterface* impl = static_cast<NumericTypesTestInterface*>(wrapper_private->wrappable<NumericTypesTestInterface>());
v8::Local<v8::Value> result_value;
}
void v8cSet_unsignedLongLongProperty(
v8::Local<v8::String> property,
v8::Local<v8::Value> v8_value,
const v8::PropertyCallbackInfo<void>& info)
{
v8::Local<v8::External> external = v8::Local<v8::External>::Cast(info.Holder()->GetInternalField(0));
WrapperPrivate* wrapper_private = static_cast<WrapperPrivate*>(external->Value());
NumericTypesTestInterface* impl = static_cast<NumericTypesTestInterface*>(wrapper_private->wrappable<NumericTypesTestInterface>());
TypeTraits<uint64_t>::ConversionType conversion_value;
V8cExceptionState exception_state{};
FromJSValue(info.GetIsolate(), v8_value, kNoConversionFlags, &exception_state, &conversion_value);
impl->set_unsigned_long_long_property(
conversion_value
);
}
void v8cGet_unsignedLongLongClampProperty(
v8::Local<v8::String> property,
const v8::PropertyCallbackInfo<v8::Value>& info)
{
NOTIMPLEMENTED();
v8::Local<v8::External> external = v8::Local<v8::External>::Cast(info.Holder()->GetInternalField(0));
WrapperPrivate* wrapper_private = static_cast<WrapperPrivate*>(external->Value());
NumericTypesTestInterface* impl = static_cast<NumericTypesTestInterface*>(wrapper_private->wrappable<NumericTypesTestInterface>());
v8::Local<v8::Value> result_value;
}
void v8cSet_unsignedLongLongClampProperty(
v8::Local<v8::String> property,
v8::Local<v8::Value> v8_value,
const v8::PropertyCallbackInfo<void>& info)
{
v8::Local<v8::External> external = v8::Local<v8::External>::Cast(info.Holder()->GetInternalField(0));
WrapperPrivate* wrapper_private = static_cast<WrapperPrivate*>(external->Value());
NumericTypesTestInterface* impl = static_cast<NumericTypesTestInterface*>(wrapper_private->wrappable<NumericTypesTestInterface>());
TypeTraits<uint64_t>::ConversionType conversion_value;
V8cExceptionState exception_state{};
FromJSValue(info.GetIsolate(), v8_value, (kConversionFlagClamped), &exception_state, &conversion_value);
impl->set_unsigned_long_long_clamp_property(
conversion_value
);
}
void v8cGet_doubleProperty(
v8::Local<v8::String> property,
const v8::PropertyCallbackInfo<v8::Value>& info)
{
NOTIMPLEMENTED();
v8::Local<v8::External> external = v8::Local<v8::External>::Cast(info.Holder()->GetInternalField(0));
WrapperPrivate* wrapper_private = static_cast<WrapperPrivate*>(external->Value());
NumericTypesTestInterface* impl = static_cast<NumericTypesTestInterface*>(wrapper_private->wrappable<NumericTypesTestInterface>());
v8::Local<v8::Value> result_value;
}
void v8cSet_doubleProperty(
v8::Local<v8::String> property,
v8::Local<v8::Value> v8_value,
const v8::PropertyCallbackInfo<void>& info)
{
v8::Local<v8::External> external = v8::Local<v8::External>::Cast(info.Holder()->GetInternalField(0));
WrapperPrivate* wrapper_private = static_cast<WrapperPrivate*>(external->Value());
NumericTypesTestInterface* impl = static_cast<NumericTypesTestInterface*>(wrapper_private->wrappable<NumericTypesTestInterface>());
TypeTraits<double>::ConversionType conversion_value;
V8cExceptionState exception_state{};
FromJSValue(info.GetIsolate(), v8_value, (kConversionFlagRestricted), &exception_state, &conversion_value);
impl->set_double_property(
conversion_value
);
}
void v8cGet_unrestrictedDoubleProperty(
v8::Local<v8::String> property,
const v8::PropertyCallbackInfo<v8::Value>& info)
{
NOTIMPLEMENTED();
v8::Local<v8::External> external = v8::Local<v8::External>::Cast(info.Holder()->GetInternalField(0));
WrapperPrivate* wrapper_private = static_cast<WrapperPrivate*>(external->Value());
NumericTypesTestInterface* impl = static_cast<NumericTypesTestInterface*>(wrapper_private->wrappable<NumericTypesTestInterface>());
v8::Local<v8::Value> result_value;
}
void v8cSet_unrestrictedDoubleProperty(
v8::Local<v8::String> property,
v8::Local<v8::Value> v8_value,
const v8::PropertyCallbackInfo<void>& info)
{
v8::Local<v8::External> external = v8::Local<v8::External>::Cast(info.Holder()->GetInternalField(0));
WrapperPrivate* wrapper_private = static_cast<WrapperPrivate*>(external->Value());
NumericTypesTestInterface* impl = static_cast<NumericTypesTestInterface*>(wrapper_private->wrappable<NumericTypesTestInterface>());
TypeTraits<double>::ConversionType conversion_value;
V8cExceptionState exception_state{};
FromJSValue(info.GetIsolate(), v8_value, kNoConversionFlags, &exception_state, &conversion_value);
impl->set_unrestricted_double_property(
conversion_value
);
}
void DummyFunction(const v8::FunctionCallbackInfo<v8::Value>& info) {
LOG(INFO) << __func__;
}
void InitializeTemplate(
V8cGlobalEnvironment* env,
InterfaceData* interface_data) {
v8::Isolate* isolate = env->isolate();
v8::Local<v8::FunctionTemplate> function_template = v8::FunctionTemplate::New(
isolate);
function_template->SetClassName(
v8::String::NewFromUtf8(isolate, "NumericTypesTestInterface",
v8::NewStringType::kInternalized).ToLocalChecked());
v8::Local<v8::ObjectTemplate> instance_template = function_template->InstanceTemplate();
instance_template->SetInternalFieldCount(1);
v8::Local<v8::ObjectTemplate> prototype_template = function_template->PrototypeTemplate();
prototype_template->SetInternalFieldCount(1);
instance_template->SetAccessor(
v8::String::NewFromUtf8(isolate, "byteProperty",
v8::NewStringType::kInternalized)
.ToLocalChecked(),
v8cGet_byteProperty
,v8cSet_byteProperty
);
instance_template->SetAccessor(
v8::String::NewFromUtf8(isolate, "byteClampProperty",
v8::NewStringType::kInternalized)
.ToLocalChecked(),
v8cGet_byteClampProperty
,v8cSet_byteClampProperty
);
instance_template->SetAccessor(
v8::String::NewFromUtf8(isolate, "octetProperty",
v8::NewStringType::kInternalized)
.ToLocalChecked(),
v8cGet_octetProperty
,v8cSet_octetProperty
);
instance_template->SetAccessor(
v8::String::NewFromUtf8(isolate, "octetClampProperty",
v8::NewStringType::kInternalized)
.ToLocalChecked(),
v8cGet_octetClampProperty
,v8cSet_octetClampProperty
);
instance_template->SetAccessor(
v8::String::NewFromUtf8(isolate, "shortProperty",
v8::NewStringType::kInternalized)
.ToLocalChecked(),
v8cGet_shortProperty
,v8cSet_shortProperty
);
instance_template->SetAccessor(
v8::String::NewFromUtf8(isolate, "shortClampProperty",
v8::NewStringType::kInternalized)
.ToLocalChecked(),
v8cGet_shortClampProperty
,v8cSet_shortClampProperty
);
instance_template->SetAccessor(
v8::String::NewFromUtf8(isolate, "unsignedShortProperty",
v8::NewStringType::kInternalized)
.ToLocalChecked(),
v8cGet_unsignedShortProperty
,v8cSet_unsignedShortProperty
);
instance_template->SetAccessor(
v8::String::NewFromUtf8(isolate, "unsignedShortClampProperty",
v8::NewStringType::kInternalized)
.ToLocalChecked(),
v8cGet_unsignedShortClampProperty
,v8cSet_unsignedShortClampProperty
);
instance_template->SetAccessor(
v8::String::NewFromUtf8(isolate, "longProperty",
v8::NewStringType::kInternalized)
.ToLocalChecked(),
v8cGet_longProperty
,v8cSet_longProperty
);
instance_template->SetAccessor(
v8::String::NewFromUtf8(isolate, "longClampProperty",
v8::NewStringType::kInternalized)
.ToLocalChecked(),
v8cGet_longClampProperty
,v8cSet_longClampProperty
);
instance_template->SetAccessor(
v8::String::NewFromUtf8(isolate, "unsignedLongProperty",
v8::NewStringType::kInternalized)
.ToLocalChecked(),
v8cGet_unsignedLongProperty
,v8cSet_unsignedLongProperty
);
instance_template->SetAccessor(
v8::String::NewFromUtf8(isolate, "unsignedLongClampProperty",
v8::NewStringType::kInternalized)
.ToLocalChecked(),
v8cGet_unsignedLongClampProperty
,v8cSet_unsignedLongClampProperty
);
instance_template->SetAccessor(
v8::String::NewFromUtf8(isolate, "longLongProperty",
v8::NewStringType::kInternalized)
.ToLocalChecked(),
v8cGet_longLongProperty
,v8cSet_longLongProperty
);
instance_template->SetAccessor(
v8::String::NewFromUtf8(isolate, "longLongClampProperty",
v8::NewStringType::kInternalized)
.ToLocalChecked(),
v8cGet_longLongClampProperty
,v8cSet_longLongClampProperty
);
instance_template->SetAccessor(
v8::String::NewFromUtf8(isolate, "unsignedLongLongProperty",
v8::NewStringType::kInternalized)
.ToLocalChecked(),
v8cGet_unsignedLongLongProperty
,v8cSet_unsignedLongLongProperty
);
instance_template->SetAccessor(
v8::String::NewFromUtf8(isolate, "unsignedLongLongClampProperty",
v8::NewStringType::kInternalized)
.ToLocalChecked(),
v8cGet_unsignedLongLongClampProperty
,v8cSet_unsignedLongLongClampProperty
);
instance_template->SetAccessor(
v8::String::NewFromUtf8(isolate, "doubleProperty",
v8::NewStringType::kInternalized)
.ToLocalChecked(),
v8cGet_doubleProperty
,v8cSet_doubleProperty
);
instance_template->SetAccessor(
v8::String::NewFromUtf8(isolate, "unrestrictedDoubleProperty",
v8::NewStringType::kInternalized)
.ToLocalChecked(),
v8cGet_unrestrictedDoubleProperty
,v8cSet_unrestrictedDoubleProperty
);
instance_template->Set(
v8::String::NewFromUtf8(
isolate,
"byteArgumentOperation",
v8::NewStringType::kInternalized).ToLocalChecked(),
v8::FunctionTemplate::New(isolate, DummyFunction)
);
instance_template->Set(
v8::String::NewFromUtf8(
isolate,
"byteReturnOperation",
v8::NewStringType::kInternalized).ToLocalChecked(),
v8::FunctionTemplate::New(isolate, DummyFunction)
);
instance_template->Set(
v8::String::NewFromUtf8(
isolate,
"doubleArgumentOperation",
v8::NewStringType::kInternalized).ToLocalChecked(),
v8::FunctionTemplate::New(isolate, DummyFunction)
);
instance_template->Set(
v8::String::NewFromUtf8(
isolate,
"doubleReturnOperation",
v8::NewStringType::kInternalized).ToLocalChecked(),
v8::FunctionTemplate::New(isolate, DummyFunction)
);
instance_template->Set(
v8::String::NewFromUtf8(
isolate,
"longArgumentOperation",
v8::NewStringType::kInternalized).ToLocalChecked(),
v8::FunctionTemplate::New(isolate, DummyFunction)
);
instance_template->Set(
v8::String::NewFromUtf8(
isolate,
"longLongArgumentOperation",
v8::NewStringType::kInternalized).ToLocalChecked(),
v8::FunctionTemplate::New(isolate, DummyFunction)
);
instance_template->Set(
v8::String::NewFromUtf8(
isolate,
"longLongReturnOperation",
v8::NewStringType::kInternalized).ToLocalChecked(),
v8::FunctionTemplate::New(isolate, DummyFunction)
);
instance_template->Set(
v8::String::NewFromUtf8(
isolate,
"longReturnOperation",
v8::NewStringType::kInternalized).ToLocalChecked(),
v8::FunctionTemplate::New(isolate, DummyFunction)
);
instance_template->Set(
v8::String::NewFromUtf8(
isolate,
"octetArgumentOperation",
v8::NewStringType::kInternalized).ToLocalChecked(),
v8::FunctionTemplate::New(isolate, DummyFunction)
);
instance_template->Set(
v8::String::NewFromUtf8(
isolate,
"octetReturnOperation",
v8::NewStringType::kInternalized).ToLocalChecked(),
v8::FunctionTemplate::New(isolate, DummyFunction)
);
instance_template->Set(
v8::String::NewFromUtf8(
isolate,
"shortArgumentOperation",
v8::NewStringType::kInternalized).ToLocalChecked(),
v8::FunctionTemplate::New(isolate, DummyFunction)
);
instance_template->Set(
v8::String::NewFromUtf8(
isolate,
"shortReturnOperation",
v8::NewStringType::kInternalized).ToLocalChecked(),
v8::FunctionTemplate::New(isolate, DummyFunction)
);
instance_template->Set(
v8::String::NewFromUtf8(
isolate,
"unrestrictedDoubleArgumentOperation",
v8::NewStringType::kInternalized).ToLocalChecked(),
v8::FunctionTemplate::New(isolate, DummyFunction)
);
instance_template->Set(
v8::String::NewFromUtf8(
isolate,
"unrestrictedDoubleReturnOperation",
v8::NewStringType::kInternalized).ToLocalChecked(),
v8::FunctionTemplate::New(isolate, DummyFunction)
);
instance_template->Set(
v8::String::NewFromUtf8(
isolate,
"unsignedLongArgumentOperation",
v8::NewStringType::kInternalized).ToLocalChecked(),
v8::FunctionTemplate::New(isolate, DummyFunction)
);
instance_template->Set(
v8::String::NewFromUtf8(
isolate,
"unsignedLongLongArgumentOperation",
v8::NewStringType::kInternalized).ToLocalChecked(),
v8::FunctionTemplate::New(isolate, DummyFunction)
);
instance_template->Set(
v8::String::NewFromUtf8(
isolate,
"unsignedLongLongReturnOperation",
v8::NewStringType::kInternalized).ToLocalChecked(),
v8::FunctionTemplate::New(isolate, DummyFunction)
);
instance_template->Set(
v8::String::NewFromUtf8(
isolate,
"unsignedLongReturnOperation",
v8::NewStringType::kInternalized).ToLocalChecked(),
v8::FunctionTemplate::New(isolate, DummyFunction)
);
instance_template->Set(
v8::String::NewFromUtf8(
isolate,
"unsignedShortArgumentOperation",
v8::NewStringType::kInternalized).ToLocalChecked(),
v8::FunctionTemplate::New(isolate, DummyFunction)
);
instance_template->Set(
v8::String::NewFromUtf8(
isolate,
"unsignedShortReturnOperation",
v8::NewStringType::kInternalized).ToLocalChecked(),
v8::FunctionTemplate::New(isolate, DummyFunction)
);
interface_data->templ.Set(env->isolate(), function_template);
}
inline InterfaceData* GetInterfaceData(V8cGlobalEnvironment* env) {
const int kInterfaceUniqueId = 37;
// By convention, the |V8cGlobalEnvironment| that we are associated with
// will hold our |InterfaceData| at index |kInterfaceUniqueId|, as we asked
// for it to be there in the first place, and could not have conflicted with
// any other interface.
return env->GetInterfaceData(kInterfaceUniqueId);
}
} // namespace
v8::Local<v8::Object> V8cNumericTypesTestInterface::CreateWrapper(V8cGlobalEnvironment* env, const scoped_refptr<Wrappable>& wrappable) {
v8::Isolate* isolate = env->isolate();
v8::Isolate::Scope isolate_scope(isolate);
v8::EscapableHandleScope handle_scope(isolate);
v8::Local<v8::Context> context = env->context();
v8::Context::Scope scope(context);
InterfaceData* interface_data = GetInterfaceData(env);
if (interface_data->templ.IsEmpty()) {
InitializeTemplate(env, interface_data);
}
DCHECK(!interface_data->templ.IsEmpty());
v8::Local<v8::FunctionTemplate> function_template = interface_data->templ.Get(isolate);
DCHECK(function_template->InstanceTemplate()->InternalFieldCount() == 1);
v8::Local<v8::Object> object = function_template->InstanceTemplate()->NewInstance(context).ToLocalChecked();
DCHECK(object->InternalFieldCount() == 1);
// |WrapperPrivate|'s lifetime will be managed by V8.
new WrapperPrivate(isolate, wrappable, object);
return handle_scope.Escape(object);
}
v8::Local<v8::FunctionTemplate> V8cNumericTypesTestInterface::CreateTemplate(V8cGlobalEnvironment* env) {
InterfaceData* interface_data = GetInterfaceData(env);
if (interface_data->templ.IsEmpty()) {
InitializeTemplate(env, interface_data);
}
return interface_data->templ.Get(env->isolate());
}
} // namespace testing
} // namespace bindings
} // namespace cobalt