blob: d63da1bf2e73f9a977d5695f835f00b4c0b21e7e [file] [log] [blame]
// Copyright 2019 The Cobalt Authors. 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/shared/idl_conditional_macros.h"
#include "cobalt/bindings/testing/v8c_numeric_types_test_interface.h"
#include "base/trace_event/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/v8c_array_buffer.h"
#include "cobalt/script/v8c/v8c_array_buffer_view.h"
#include "cobalt/script/v8c/callback_function_conversion.h"
#include "cobalt/script/v8c/conversion_helpers.h"
#include "cobalt/script/v8c/entry_scope.h"
#include "cobalt/script/v8c/helpers.h"
#include "cobalt/script/v8c/native_promise.h"
#include "cobalt/script/v8c/type_traits.h"
#include "cobalt/script/v8c/v8c_typed_arrays.h"
#include "cobalt/script/v8c/v8c_data_view.h"
#include "cobalt/script/v8c/v8c_callback_function.h"
#include "cobalt/script/v8c/v8c_callback_interface_holder.h"
#include "cobalt/script/v8c/v8c_engine.h"
#include "cobalt/script/v8c/v8c_exception_state.h"
#include "cobalt/script/v8c/v8c_global_environment.h"
#include "cobalt/script/v8c/v8c_property_enumerator.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::EntryScope;
using cobalt::script::v8c::EscapableEntryScope;
using cobalt::script::v8c::FromJSValue;
using cobalt::script::v8c::kConversionFlagClamped;
using cobalt::script::v8c::kConversionFlagNullable;
using cobalt::script::v8c::kConversionFlagObjectOnly;
using cobalt::script::v8c::kConversionFlagRestricted;
using cobalt::script::v8c::kConversionFlagTreatNullAsEmptyString;
using cobalt::script::v8c::kConversionFlagTreatUndefinedAsEmptyString;
using cobalt::script::v8c::kNoConversionFlags;
using cobalt::script::v8c::NewInternalString;
using cobalt::script::v8c::ToJSValue;
using cobalt::script::v8c::TypeTraits;
using cobalt::script::v8c::V8cExceptionState;
using cobalt::script::v8c::V8cGlobalEnvironment;
using cobalt::script::v8c::V8cPropertyEnumerator;
using cobalt::script::v8c::WrapperFactory;
using cobalt::script::v8c::WrapperPrivate;
} // namespace
namespace cobalt {
namespace bindings {
namespace testing {
namespace {
const int kInterfaceUniqueId = 39;
void DummyConstructor(const v8::FunctionCallbackInfo<v8::Value>& info) {
V8cExceptionState exception(info.GetIsolate());
exception.SetSimpleException(
script::kTypeError, "NumericTypesTestInterface is not constructible.");
}
void bytePropertyAttributeGetter(
const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
if (!exception_state.is_exception_set()) {
ToJSValue(isolate,
impl->byte_property(),
&result_value);
}
if (exception_state.is_exception_set()) {
return;
}
info.GetReturnValue().Set(result_value);
}
void bytePropertyAttributeSetter(
const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
v8::Local<v8::Value> v8_value = info[0];
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
TypeTraits<int8_t >::ConversionType value;
FromJSValue(isolate, v8_value, kNoConversionFlags, &exception_state,
&value);
if (exception_state.is_exception_set()) {
return;
}
impl->set_byte_property(value);
result_value = v8::Undefined(isolate);
return;
}
void byteClampPropertyAttributeGetter(
const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
if (!exception_state.is_exception_set()) {
ToJSValue(isolate,
impl->byte_clamp_property(),
&result_value);
}
if (exception_state.is_exception_set()) {
return;
}
info.GetReturnValue().Set(result_value);
}
void byteClampPropertyAttributeSetter(
const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
v8::Local<v8::Value> v8_value = info[0];
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
TypeTraits<int8_t >::ConversionType value;
FromJSValue(isolate, v8_value, (kConversionFlagClamped), &exception_state,
&value);
if (exception_state.is_exception_set()) {
return;
}
impl->set_byte_clamp_property(value);
result_value = v8::Undefined(isolate);
return;
}
void octetPropertyAttributeGetter(
const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
if (!exception_state.is_exception_set()) {
ToJSValue(isolate,
impl->octet_property(),
&result_value);
}
if (exception_state.is_exception_set()) {
return;
}
info.GetReturnValue().Set(result_value);
}
void octetPropertyAttributeSetter(
const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
v8::Local<v8::Value> v8_value = info[0];
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
TypeTraits<uint8_t >::ConversionType value;
FromJSValue(isolate, v8_value, kNoConversionFlags, &exception_state,
&value);
if (exception_state.is_exception_set()) {
return;
}
impl->set_octet_property(value);
result_value = v8::Undefined(isolate);
return;
}
void octetClampPropertyAttributeGetter(
const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
if (!exception_state.is_exception_set()) {
ToJSValue(isolate,
impl->octet_clamp_property(),
&result_value);
}
if (exception_state.is_exception_set()) {
return;
}
info.GetReturnValue().Set(result_value);
}
void octetClampPropertyAttributeSetter(
const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
v8::Local<v8::Value> v8_value = info[0];
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
TypeTraits<uint8_t >::ConversionType value;
FromJSValue(isolate, v8_value, (kConversionFlagClamped), &exception_state,
&value);
if (exception_state.is_exception_set()) {
return;
}
impl->set_octet_clamp_property(value);
result_value = v8::Undefined(isolate);
return;
}
void shortPropertyAttributeGetter(
const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
if (!exception_state.is_exception_set()) {
ToJSValue(isolate,
impl->short_property(),
&result_value);
}
if (exception_state.is_exception_set()) {
return;
}
info.GetReturnValue().Set(result_value);
}
void shortPropertyAttributeSetter(
const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
v8::Local<v8::Value> v8_value = info[0];
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
TypeTraits<int16_t >::ConversionType value;
FromJSValue(isolate, v8_value, kNoConversionFlags, &exception_state,
&value);
if (exception_state.is_exception_set()) {
return;
}
impl->set_short_property(value);
result_value = v8::Undefined(isolate);
return;
}
void shortClampPropertyAttributeGetter(
const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
if (!exception_state.is_exception_set()) {
ToJSValue(isolate,
impl->short_clamp_property(),
&result_value);
}
if (exception_state.is_exception_set()) {
return;
}
info.GetReturnValue().Set(result_value);
}
void shortClampPropertyAttributeSetter(
const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
v8::Local<v8::Value> v8_value = info[0];
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
TypeTraits<int16_t >::ConversionType value;
FromJSValue(isolate, v8_value, (kConversionFlagClamped), &exception_state,
&value);
if (exception_state.is_exception_set()) {
return;
}
impl->set_short_clamp_property(value);
result_value = v8::Undefined(isolate);
return;
}
void unsignedShortPropertyAttributeGetter(
const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
if (!exception_state.is_exception_set()) {
ToJSValue(isolate,
impl->unsigned_short_property(),
&result_value);
}
if (exception_state.is_exception_set()) {
return;
}
info.GetReturnValue().Set(result_value);
}
void unsignedShortPropertyAttributeSetter(
const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
v8::Local<v8::Value> v8_value = info[0];
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
TypeTraits<uint16_t >::ConversionType value;
FromJSValue(isolate, v8_value, kNoConversionFlags, &exception_state,
&value);
if (exception_state.is_exception_set()) {
return;
}
impl->set_unsigned_short_property(value);
result_value = v8::Undefined(isolate);
return;
}
void unsignedShortClampPropertyAttributeGetter(
const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
if (!exception_state.is_exception_set()) {
ToJSValue(isolate,
impl->unsigned_short_clamp_property(),
&result_value);
}
if (exception_state.is_exception_set()) {
return;
}
info.GetReturnValue().Set(result_value);
}
void unsignedShortClampPropertyAttributeSetter(
const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
v8::Local<v8::Value> v8_value = info[0];
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
TypeTraits<uint16_t >::ConversionType value;
FromJSValue(isolate, v8_value, (kConversionFlagClamped), &exception_state,
&value);
if (exception_state.is_exception_set()) {
return;
}
impl->set_unsigned_short_clamp_property(value);
result_value = v8::Undefined(isolate);
return;
}
void longPropertyAttributeGetter(
const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
if (!exception_state.is_exception_set()) {
ToJSValue(isolate,
impl->long_property(),
&result_value);
}
if (exception_state.is_exception_set()) {
return;
}
info.GetReturnValue().Set(result_value);
}
void longPropertyAttributeSetter(
const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
v8::Local<v8::Value> v8_value = info[0];
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
TypeTraits<int32_t >::ConversionType value;
FromJSValue(isolate, v8_value, kNoConversionFlags, &exception_state,
&value);
if (exception_state.is_exception_set()) {
return;
}
impl->set_long_property(value);
result_value = v8::Undefined(isolate);
return;
}
void longClampPropertyAttributeGetter(
const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
if (!exception_state.is_exception_set()) {
ToJSValue(isolate,
impl->long_clamp_property(),
&result_value);
}
if (exception_state.is_exception_set()) {
return;
}
info.GetReturnValue().Set(result_value);
}
void longClampPropertyAttributeSetter(
const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
v8::Local<v8::Value> v8_value = info[0];
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
TypeTraits<int32_t >::ConversionType value;
FromJSValue(isolate, v8_value, (kConversionFlagClamped), &exception_state,
&value);
if (exception_state.is_exception_set()) {
return;
}
impl->set_long_clamp_property(value);
result_value = v8::Undefined(isolate);
return;
}
void unsignedLongPropertyAttributeGetter(
const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
if (!exception_state.is_exception_set()) {
ToJSValue(isolate,
impl->unsigned_long_property(),
&result_value);
}
if (exception_state.is_exception_set()) {
return;
}
info.GetReturnValue().Set(result_value);
}
void unsignedLongPropertyAttributeSetter(
const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
v8::Local<v8::Value> v8_value = info[0];
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
TypeTraits<uint32_t >::ConversionType value;
FromJSValue(isolate, v8_value, kNoConversionFlags, &exception_state,
&value);
if (exception_state.is_exception_set()) {
return;
}
impl->set_unsigned_long_property(value);
result_value = v8::Undefined(isolate);
return;
}
void unsignedLongClampPropertyAttributeGetter(
const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
if (!exception_state.is_exception_set()) {
ToJSValue(isolate,
impl->unsigned_long_clamp_property(),
&result_value);
}
if (exception_state.is_exception_set()) {
return;
}
info.GetReturnValue().Set(result_value);
}
void unsignedLongClampPropertyAttributeSetter(
const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
v8::Local<v8::Value> v8_value = info[0];
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
TypeTraits<uint32_t >::ConversionType value;
FromJSValue(isolate, v8_value, (kConversionFlagClamped), &exception_state,
&value);
if (exception_state.is_exception_set()) {
return;
}
impl->set_unsigned_long_clamp_property(value);
result_value = v8::Undefined(isolate);
return;
}
void longLongPropertyAttributeGetter(
const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
if (!exception_state.is_exception_set()) {
ToJSValue(isolate,
impl->long_long_property(),
&result_value);
}
if (exception_state.is_exception_set()) {
return;
}
info.GetReturnValue().Set(result_value);
}
void longLongPropertyAttributeSetter(
const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
v8::Local<v8::Value> v8_value = info[0];
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
TypeTraits<int64_t >::ConversionType value;
FromJSValue(isolate, v8_value, kNoConversionFlags, &exception_state,
&value);
if (exception_state.is_exception_set()) {
return;
}
impl->set_long_long_property(value);
result_value = v8::Undefined(isolate);
return;
}
void longLongClampPropertyAttributeGetter(
const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
if (!exception_state.is_exception_set()) {
ToJSValue(isolate,
impl->long_long_clamp_property(),
&result_value);
}
if (exception_state.is_exception_set()) {
return;
}
info.GetReturnValue().Set(result_value);
}
void longLongClampPropertyAttributeSetter(
const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
v8::Local<v8::Value> v8_value = info[0];
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
TypeTraits<int64_t >::ConversionType value;
FromJSValue(isolate, v8_value, (kConversionFlagClamped), &exception_state,
&value);
if (exception_state.is_exception_set()) {
return;
}
impl->set_long_long_clamp_property(value);
result_value = v8::Undefined(isolate);
return;
}
void unsignedLongLongPropertyAttributeGetter(
const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
if (!exception_state.is_exception_set()) {
ToJSValue(isolate,
impl->unsigned_long_long_property(),
&result_value);
}
if (exception_state.is_exception_set()) {
return;
}
info.GetReturnValue().Set(result_value);
}
void unsignedLongLongPropertyAttributeSetter(
const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
v8::Local<v8::Value> v8_value = info[0];
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
TypeTraits<uint64_t >::ConversionType value;
FromJSValue(isolate, v8_value, kNoConversionFlags, &exception_state,
&value);
if (exception_state.is_exception_set()) {
return;
}
impl->set_unsigned_long_long_property(value);
result_value = v8::Undefined(isolate);
return;
}
void unsignedLongLongClampPropertyAttributeGetter(
const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
if (!exception_state.is_exception_set()) {
ToJSValue(isolate,
impl->unsigned_long_long_clamp_property(),
&result_value);
}
if (exception_state.is_exception_set()) {
return;
}
info.GetReturnValue().Set(result_value);
}
void unsignedLongLongClampPropertyAttributeSetter(
const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
v8::Local<v8::Value> v8_value = info[0];
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
TypeTraits<uint64_t >::ConversionType value;
FromJSValue(isolate, v8_value, (kConversionFlagClamped), &exception_state,
&value);
if (exception_state.is_exception_set()) {
return;
}
impl->set_unsigned_long_long_clamp_property(value);
result_value = v8::Undefined(isolate);
return;
}
void doublePropertyAttributeGetter(
const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
if (!exception_state.is_exception_set()) {
ToJSValue(isolate,
impl->double_property(),
&result_value);
}
if (exception_state.is_exception_set()) {
return;
}
info.GetReturnValue().Set(result_value);
}
void doublePropertyAttributeSetter(
const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
v8::Local<v8::Value> v8_value = info[0];
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
TypeTraits<double >::ConversionType value;
FromJSValue(isolate, v8_value, (kConversionFlagRestricted), &exception_state,
&value);
if (exception_state.is_exception_set()) {
return;
}
impl->set_double_property(value);
result_value = v8::Undefined(isolate);
return;
}
void unrestrictedDoublePropertyAttributeGetter(
const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
if (!exception_state.is_exception_set()) {
ToJSValue(isolate,
impl->unrestricted_double_property(),
&result_value);
}
if (exception_state.is_exception_set()) {
return;
}
info.GetReturnValue().Set(result_value);
}
void unrestrictedDoublePropertyAttributeSetter(
const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
v8::Local<v8::Value> v8_value = info[0];
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
TypeTraits<double >::ConversionType value;
FromJSValue(isolate, v8_value, kNoConversionFlags, &exception_state,
&value);
if (exception_state.is_exception_set()) {
return;
}
impl->set_unrestricted_double_property(value);
result_value = v8::Undefined(isolate);
return;
}
void byteArgumentOperationMethod(const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
const size_t kMinArguments = 1;
if (info.Length() < kMinArguments) {
exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
return;
}
// Non-optional arguments
TypeTraits<int8_t >::ConversionType arg1;
DCHECK_LT(0, info.Length());
v8::Local<v8::Value> non_optional_value0 = info[0];
FromJSValue(isolate,
non_optional_value0,
kNoConversionFlags,
&exception_state, &arg1);
if (exception_state.is_exception_set()) {
return;
}
impl->ByteArgumentOperation(arg1);
result_value = v8::Undefined(isolate);
}
void byteReturnOperationMethod(const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
if (!exception_state.is_exception_set()) {
ToJSValue(isolate,
impl->ByteReturnOperation(),
&result_value);
}
if (!exception_state.is_exception_set()) {
info.GetReturnValue().Set(result_value);
}
}
void doubleArgumentOperationMethod(const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
const size_t kMinArguments = 1;
if (info.Length() < kMinArguments) {
exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
return;
}
// Non-optional arguments
TypeTraits<double >::ConversionType arg1;
DCHECK_LT(0, info.Length());
v8::Local<v8::Value> non_optional_value0 = info[0];
FromJSValue(isolate,
non_optional_value0,
(kConversionFlagRestricted),
&exception_state, &arg1);
if (exception_state.is_exception_set()) {
return;
}
impl->DoubleArgumentOperation(arg1);
result_value = v8::Undefined(isolate);
}
void doubleReturnOperationMethod(const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
if (!exception_state.is_exception_set()) {
ToJSValue(isolate,
impl->DoubleReturnOperation(),
&result_value);
}
if (!exception_state.is_exception_set()) {
info.GetReturnValue().Set(result_value);
}
}
void longArgumentOperationMethod(const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
const size_t kMinArguments = 1;
if (info.Length() < kMinArguments) {
exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
return;
}
// Non-optional arguments
TypeTraits<int32_t >::ConversionType arg1;
DCHECK_LT(0, info.Length());
v8::Local<v8::Value> non_optional_value0 = info[0];
FromJSValue(isolate,
non_optional_value0,
kNoConversionFlags,
&exception_state, &arg1);
if (exception_state.is_exception_set()) {
return;
}
impl->LongArgumentOperation(arg1);
result_value = v8::Undefined(isolate);
}
void longLongArgumentOperationMethod(const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
const size_t kMinArguments = 1;
if (info.Length() < kMinArguments) {
exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
return;
}
// Non-optional arguments
TypeTraits<int64_t >::ConversionType arg1;
DCHECK_LT(0, info.Length());
v8::Local<v8::Value> non_optional_value0 = info[0];
FromJSValue(isolate,
non_optional_value0,
kNoConversionFlags,
&exception_state, &arg1);
if (exception_state.is_exception_set()) {
return;
}
impl->LongLongArgumentOperation(arg1);
result_value = v8::Undefined(isolate);
}
void longLongReturnOperationMethod(const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
if (!exception_state.is_exception_set()) {
ToJSValue(isolate,
impl->LongLongReturnOperation(),
&result_value);
}
if (!exception_state.is_exception_set()) {
info.GetReturnValue().Set(result_value);
}
}
void longReturnOperationMethod(const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
if (!exception_state.is_exception_set()) {
ToJSValue(isolate,
impl->LongReturnOperation(),
&result_value);
}
if (!exception_state.is_exception_set()) {
info.GetReturnValue().Set(result_value);
}
}
void octetArgumentOperationMethod(const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
const size_t kMinArguments = 1;
if (info.Length() < kMinArguments) {
exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
return;
}
// Non-optional arguments
TypeTraits<uint8_t >::ConversionType arg1;
DCHECK_LT(0, info.Length());
v8::Local<v8::Value> non_optional_value0 = info[0];
FromJSValue(isolate,
non_optional_value0,
kNoConversionFlags,
&exception_state, &arg1);
if (exception_state.is_exception_set()) {
return;
}
impl->OctetArgumentOperation(arg1);
result_value = v8::Undefined(isolate);
}
void octetReturnOperationMethod(const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
if (!exception_state.is_exception_set()) {
ToJSValue(isolate,
impl->OctetReturnOperation(),
&result_value);
}
if (!exception_state.is_exception_set()) {
info.GetReturnValue().Set(result_value);
}
}
void shortArgumentOperationMethod(const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
const size_t kMinArguments = 1;
if (info.Length() < kMinArguments) {
exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
return;
}
// Non-optional arguments
TypeTraits<int16_t >::ConversionType arg1;
DCHECK_LT(0, info.Length());
v8::Local<v8::Value> non_optional_value0 = info[0];
FromJSValue(isolate,
non_optional_value0,
kNoConversionFlags,
&exception_state, &arg1);
if (exception_state.is_exception_set()) {
return;
}
impl->ShortArgumentOperation(arg1);
result_value = v8::Undefined(isolate);
}
void shortReturnOperationMethod(const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
if (!exception_state.is_exception_set()) {
ToJSValue(isolate,
impl->ShortReturnOperation(),
&result_value);
}
if (!exception_state.is_exception_set()) {
info.GetReturnValue().Set(result_value);
}
}
void unrestrictedDoubleArgumentOperationMethod(const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
const size_t kMinArguments = 1;
if (info.Length() < kMinArguments) {
exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
return;
}
// Non-optional arguments
TypeTraits<double >::ConversionType arg1;
DCHECK_LT(0, info.Length());
v8::Local<v8::Value> non_optional_value0 = info[0];
FromJSValue(isolate,
non_optional_value0,
kNoConversionFlags,
&exception_state, &arg1);
if (exception_state.is_exception_set()) {
return;
}
impl->UnrestrictedDoubleArgumentOperation(arg1);
result_value = v8::Undefined(isolate);
}
void unrestrictedDoubleReturnOperationMethod(const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
if (!exception_state.is_exception_set()) {
ToJSValue(isolate,
impl->UnrestrictedDoubleReturnOperation(),
&result_value);
}
if (!exception_state.is_exception_set()) {
info.GetReturnValue().Set(result_value);
}
}
void unsignedLongArgumentOperationMethod(const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
const size_t kMinArguments = 1;
if (info.Length() < kMinArguments) {
exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
return;
}
// Non-optional arguments
TypeTraits<uint32_t >::ConversionType arg1;
DCHECK_LT(0, info.Length());
v8::Local<v8::Value> non_optional_value0 = info[0];
FromJSValue(isolate,
non_optional_value0,
kNoConversionFlags,
&exception_state, &arg1);
if (exception_state.is_exception_set()) {
return;
}
impl->UnsignedLongArgumentOperation(arg1);
result_value = v8::Undefined(isolate);
}
void unsignedLongLongArgumentOperationMethod(const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
const size_t kMinArguments = 1;
if (info.Length() < kMinArguments) {
exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
return;
}
// Non-optional arguments
TypeTraits<uint64_t >::ConversionType arg1;
DCHECK_LT(0, info.Length());
v8::Local<v8::Value> non_optional_value0 = info[0];
FromJSValue(isolate,
non_optional_value0,
kNoConversionFlags,
&exception_state, &arg1);
if (exception_state.is_exception_set()) {
return;
}
impl->UnsignedLongLongArgumentOperation(arg1);
result_value = v8::Undefined(isolate);
}
void unsignedLongLongReturnOperationMethod(const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
if (!exception_state.is_exception_set()) {
ToJSValue(isolate,
impl->UnsignedLongLongReturnOperation(),
&result_value);
}
if (!exception_state.is_exception_set()) {
info.GetReturnValue().Set(result_value);
}
}
void unsignedLongReturnOperationMethod(const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
if (!exception_state.is_exception_set()) {
ToJSValue(isolate,
impl->UnsignedLongReturnOperation(),
&result_value);
}
if (!exception_state.is_exception_set()) {
info.GetReturnValue().Set(result_value);
}
}
void unsignedShortArgumentOperationMethod(const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
const size_t kMinArguments = 1;
if (info.Length() < kMinArguments) {
exception_state.SetSimpleException(script::kInvalidNumberOfArguments);
return;
}
// Non-optional arguments
TypeTraits<uint16_t >::ConversionType arg1;
DCHECK_LT(0, info.Length());
v8::Local<v8::Value> non_optional_value0 = info[0];
FromJSValue(isolate,
non_optional_value0,
kNoConversionFlags,
&exception_state, &arg1);
if (exception_state.is_exception_set()) {
return;
}
impl->UnsignedShortArgumentOperation(arg1);
result_value = v8::Undefined(isolate);
}
void unsignedShortReturnOperationMethod(const v8::FunctionCallbackInfo<v8::Value>& info) {
v8::Isolate* isolate = info.GetIsolate();
v8::Local<v8::Object> object = info.Holder();
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
WrapperFactory* wrapper_factory = global_environment->wrapper_factory();
if (!WrapperPrivate::HasWrapperPrivate(object) ||
!V8cNumericTypesTestInterface::GetTemplate(isolate)->HasInstance(object)) {
V8cExceptionState exception(isolate);
exception.SetSimpleException(script::kDoesNotImplementInterface);
return;
}
V8cExceptionState exception_state{isolate};
v8::Local<v8::Value> result_value;
WrapperPrivate* wrapper_private =
WrapperPrivate::GetFromWrapperObject(object);
if (!wrapper_private) {
NOTIMPLEMENTED();
return;
}
NumericTypesTestInterface* impl =
wrapper_private->wrappable<NumericTypesTestInterface>().get();
if (!exception_state.is_exception_set()) {
ToJSValue(isolate,
impl->UnsignedShortReturnOperation(),
&result_value);
}
if (!exception_state.is_exception_set()) {
info.GetReturnValue().Set(result_value);
}
}
void InitializeTemplate(v8::Isolate* isolate) {
// https://heycam.github.io/webidl/#interface-object
// 3.6.1. Interface object
//
// The interface object for a given interface is a built-in function object.
// It has properties that correspond to the constants and static operations
// defined on that interface, as described in sections 3.6.6 Constants and
// 3.6.8 Operations.
//
// If the interface is declared with a [Constructor] extended attribute,
// then the interface object can be called as a constructor to create an
// object that implements that interface. Calling that interface as a
// function will throw an exception.
//
// Interface objects whose interfaces are not declared with a [Constructor]
// extended attribute will throw when called, both as a function and as a
// constructor.
//
// An interface object for a non-callback interface has an associated object
// called the interface prototype object. This object has properties that
// correspond to the regular attributes and regular operations defined on
// the interface, and is described in more detail in 3.6.3 Interface
// prototype object.
v8::Local<v8::FunctionTemplate> function_template =
v8::FunctionTemplate::New(
isolate,
DummyConstructor,
v8::Local<v8::Value>(),
v8::Local<v8::Signature>(),
0);
function_template->SetClassName(NewInternalString(isolate, "NumericTypesTestInterface"));
function_template->ReadOnlyPrototype();
v8::Local<v8::ObjectTemplate> prototype_template = function_template->PrototypeTemplate();
v8::Local<v8::ObjectTemplate> instance_template = function_template->InstanceTemplate();
instance_template->SetInternalFieldCount(WrapperPrivate::kInternalFieldCount);
V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate);
global_environment->AddInterfaceData(kInterfaceUniqueId, function_template);
// https://heycam.github.io/webidl/#es-constants
// 3.6.6. Constants
//
// For each exposed constant defined on an interface A, there must be a
// corresponding property. The property has the following characteristics:
// https://heycam.github.io/webidl/#es-attributes
// 3.6.7. Attributes
//
// For each exposed attribute of the interface there must exist a
// corresponding property. The characteristics of this property are as
// follows:
{
// The name of the property is the identifier of the attribute.
v8::Local<v8::String> name = NewInternalString(
isolate,
"byteProperty");
// The property has attributes { [[Get]]: G, [[Set]]: S, [[Enumerable]]:
// true, [[Configurable]]: configurable }, where: configurable is false if
// the attribute was declared with the [Unforgeable] extended attribute and
// true otherwise;
bool configurable = true;
v8::PropertyAttribute attributes = static_cast<v8::PropertyAttribute>(
configurable ? v8::None : v8::DontDelete);
// G is the attribute getter created given the attribute, the interface, and
// the relevant Realm of the object that is the location of the property;
// and
//
// S is the attribute setter created given the attribute, the interface, and
// the relevant Realm of the object that is the location of the property.
v8::Local<v8::FunctionTemplate> getter =
v8::FunctionTemplate::New(isolate, bytePropertyAttributeGetter);
v8::Local<v8::FunctionTemplate> setter =
v8::FunctionTemplate::New(isolate, bytePropertyAttributeSetter);
// The location of the property is determined as follows:
// Otherwise, the property exists solely on the interface's interface
// prototype object.
prototype_template->
SetAccessorProperty(
name,
getter,
setter,
attributes);
}
{
// The name of the property is the identifier of the attribute.
v8::Local<v8::String> name = NewInternalString(
isolate,
"byteClampProperty");
// The property has attributes { [[Get]]: G, [[Set]]: S, [[Enumerable]]:
// true, [[Configurable]]: configurable }, where: configurable is false if
// the attribute was declared with the [Unforgeable] extended attribute and
// true otherwise;
bool configurable = true;
v8::PropertyAttribute attributes = static_cast<v8::PropertyAttribute>(
configurable ? v8::None : v8::DontDelete);
// G is the attribute getter created given the attribute, the interface, and
// the relevant Realm of the object that is the location of the property;
// and
//
// S is the attribute setter created given the attribute, the interface, and
// the relevant Realm of the object that is the location of the property.
v8::Local<v8::FunctionTemplate> getter =
v8::FunctionTemplate::New(isolate, byteClampPropertyAttributeGetter);
v8::Local<v8::FunctionTemplate> setter =
v8::FunctionTemplate::New(isolate, byteClampPropertyAttributeSetter);
// The location of the property is determined as follows:
// Otherwise, the property exists solely on the interface's interface
// prototype object.
prototype_template->
SetAccessorProperty(
name,
getter,
setter,
attributes);
}
{
// The name of the property is the identifier of the attribute.
v8::Local<v8::String> name = NewInternalString(
isolate,
"octetProperty");
// The property has attributes { [[Get]]: G, [[Set]]: S, [[Enumerable]]:
// true, [[Configurable]]: configurable }, where: configurable is false if
// the attribute was declared with the [Unforgeable] extended attribute and
// true otherwise;
bool configurable = true;
v8::PropertyAttribute attributes = static_cast<v8::PropertyAttribute>(
configurable ? v8::None : v8::DontDelete);
// G is the attribute getter created given the attribute, the interface, and
// the relevant Realm of the object that is the location of the property;
// and
//
// S is the attribute setter created given the attribute, the interface, and
// the relevant Realm of the object that is the location of the property.
v8::Local<v8::FunctionTemplate> getter =
v8::FunctionTemplate::New(isolate, octetPropertyAttributeGetter);
v8::Local<v8::FunctionTemplate> setter =
v8::FunctionTemplate::New(isolate, octetPropertyAttributeSetter);
// The location of the property is determined as follows:
// Otherwise, the property exists solely on the interface's interface
// prototype object.
prototype_template->
SetAccessorProperty(
name,
getter,
setter,
attributes);
}
{
// The name of the property is the identifier of the attribute.
v8::Local<v8::String> name = NewInternalString(
isolate,
"octetClampProperty");
// The property has attributes { [[Get]]: G, [[Set]]: S, [[Enumerable]]:
// true, [[Configurable]]: configurable }, where: configurable is false if
// the attribute was declared with the [Unforgeable] extended attribute and
// true otherwise;
bool configurable = true;
v8::PropertyAttribute attributes = static_cast<v8::PropertyAttribute>(
configurable ? v8::None : v8::DontDelete);
// G is the attribute getter created given the attribute, the interface, and
// the relevant Realm of the object that is the location of the property;
// and
//
// S is the attribute setter created given the attribute, the interface, and
// the relevant Realm of the object that is the location of the property.
v8::Local<v8::FunctionTemplate> getter =
v8::FunctionTemplate::New(isolate, octetClampPropertyAttributeGetter);
v8::Local<v8::FunctionTemplate> setter =
v8::FunctionTemplate::New(isolate, octetClampPropertyAttributeSetter);
// The location of the property is determined as follows:
// Otherwise, the property exists solely on the interface's interface
// prototype object.
prototype_template->
SetAccessorProperty(
name,
getter,
setter,
attributes);
}
{
// The name of the property is the identifier of the attribute.
v8::Local<v8::String> name = NewInternalString(
isolate,
"shortProperty");
// The property has attributes { [[Get]]: G, [[Set]]: S, [[Enumerable]]:
// true, [[Configurable]]: configurable }, where: configurable is false if
// the attribute was declared with the [Unforgeable] extended attribute and
// true otherwise;
bool configurable = true;
v8::PropertyAttribute attributes = static_cast<v8::PropertyAttribute>(
configurable ? v8::None : v8::DontDelete);
// G is the attribute getter created given the attribute, the interface, and
// the relevant Realm of the object that is the location of the property;
// and
//
// S is the attribute setter created given the attribute, the interface, and
// the relevant Realm of the object that is the location of the property.
v8::Local<v8::FunctionTemplate> getter =
v8::FunctionTemplate::New(isolate, shortPropertyAttributeGetter);
v8::Local<v8::FunctionTemplate> setter =
v8::FunctionTemplate::New(isolate, shortPropertyAttributeSetter);
// The location of the property is determined as follows:
// Otherwise, the property exists solely on the interface's interface
// prototype object.
prototype_template->
SetAccessorProperty(
name,
getter,
setter,
attributes);
}
{
// The name of the property is the identifier of the attribute.
v8::Local<v8::String> name = NewInternalString(
isolate,
"shortClampProperty");
// The property has attributes { [[Get]]: G, [[Set]]: S, [[Enumerable]]:
// true, [[Configurable]]: configurable }, where: configurable is false if
// the attribute was declared with the [Unforgeable] extended attribute and
// true otherwise;
bool configurable = true;
v8::PropertyAttribute attributes = static_cast<v8::PropertyAttribute>(
configurable ? v8::None : v8::DontDelete);
// G is the attribute getter created given the attribute, the interface, and
// the relevant Realm of the object that is the location of the property;
// and
//
// S is the attribute setter created given the attribute, the interface, and
// the relevant Realm of the object that is the location of the property.
v8::Local<v8::FunctionTemplate> getter =
v8::FunctionTemplate::New(isolate, shortClampPropertyAttributeGetter);
v8::Local<v8::FunctionTemplate> setter =
v8::FunctionTemplate::New(isolate, shortClampPropertyAttributeSetter);
// The location of the property is determined as follows:
// Otherwise, the property exists solely on the interface's interface
// prototype object.
prototype_template->
SetAccessorProperty(
name,
getter,
setter,
attributes);
}
{
// The name of the property is the identifier of the attribute.
v8::Local<v8::String> name = NewInternalString(
isolate,
"unsignedShortProperty");
// The property has attributes { [[Get]]: G, [[Set]]: S, [[Enumerable]]:
// true, [[Configurable]]: configurable }, where: configurable is false if
// the attribute was declared with the [Unforgeable] extended attribute and
// true otherwise;
bool configurable = true;
v8::PropertyAttribute attributes = static_cast<v8::PropertyAttribute>(
configurable ? v8::None : v8::DontDelete);
// G is the attribute getter created given the attribute, the interface, and
// the relevant Realm of the object that is the location of the property;
// and
//
// S is the attribute setter created given the attribute, the interface, and
// the relevant Realm of the object that is the location of the property.
v8::Local<v8::FunctionTemplate> getter =
v8::FunctionTemplate::New(isolate, unsignedShortPropertyAttributeGetter);
v8::Local<v8::FunctionTemplate> setter =
v8::FunctionTemplate::New(isolate, unsignedShortPropertyAttributeSetter);
// The location of the property is determined as follows:
// Otherwise, the property exists solely on the interface's interface
// prototype object.
prototype_template->
SetAccessorProperty(
name,
getter,
setter,
attributes);
}
{
// The name of the property is the identifier of the attribute.
v8::Local<v8::String> name = NewInternalString(
isolate,
"unsignedShortClampProperty");
// The property has attributes { [[Get]]: G, [[Set]]: S, [[Enumerable]]:
// true, [[Configurable]]: configurable }, where: configurable is false if
// the attribute was declared with the [Unforgeable] extended attribute and
// true otherwise;
bool configurable = true;
v8::PropertyAttribute attributes = static_cast<v8::PropertyAttribute>(
configurable ? v8::None : v8::DontDelete);
// G is the attribute getter created given the attribute, the interface, and
// the relevant Realm of the object that is the location of the property;
// and
//
// S is the attribute setter created given the attribute, the interface, and
// the relevant Realm of the object that is the location of the property.
v8::Local<v8::FunctionTemplate> getter =
v8::FunctionTemplate::New(isolate, unsignedShortClampPropertyAttributeGetter);
v8::Local<v8::FunctionTemplate> setter =
v8::FunctionTemplate::New(isolate, unsignedShortClampPropertyAttributeSetter);
// The location of the property is determined as follows:
// Otherwise, the property exists solely on the interface's interface
// prototype object.
prototype_template->
SetAccessorProperty(