| |
| |
| // Copyright 2018 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/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_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( |
| name, |
| getter, |
| setter, |
| attributes); |
| |
| } |
| { |
| // The name of the property is the identifier of the attribute. |
| v8::Local<v8::String> name = NewInternalString( |
| isolate, |
| "longProperty"); |
| |
| // 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, longPropertyAttributeGetter); |
| v8::Local<v8::FunctionTemplate> setter = |
| v8::FunctionTemplate::New(isolate, longPropertyAttributeSetter); |
| |
| // 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, |
| "longClampProperty"); |
| |
| // 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, longClampPropertyAttributeGetter); |
| v8::Local<v8::FunctionTemplate> setter = |
| v8::FunctionTemplate::New(isolate, longClampPropertyAttributeSetter); |
| |
| // 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, |
| "unsignedLongProperty"); |
| |
| // 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, unsignedLongPropertyAttributeGetter); |
| v8::Local<v8::FunctionTemplate> setter = |
| v8::FunctionTemplate::New(isolate, unsignedLongPropertyAttributeSetter); |
| |
| // 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, |
| "unsignedLongClampProperty"); |
| |
| // 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, unsignedLongClampPropertyAttributeGetter); |
| v8::Local<v8::FunctionTemplate> setter = |
| v8::FunctionTemplate::New(isolate, unsignedLongClampPropertyAttributeSetter); |
| |
| // 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, |
| "longLongProperty"); |
| |
| // 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, longLongPropertyAttributeGetter); |
| v8::Local<v8::FunctionTemplate> setter = |
| v8::FunctionTemplate::New(isolate, longLongPropertyAttributeSetter); |
| |
| // 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, |
| "longLongClampProperty"); |
| |
| // 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, longLongClampPropertyAttributeGetter); |
| v8::Local<v8::FunctionTemplate> setter = |
| v8::FunctionTemplate::New(isolate, longLongClampPropertyAttributeSetter); |
| |
| // 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, |
| "unsignedLongLongProperty"); |
| |
| // 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, unsignedLongLongPropertyAttributeGetter); |
| v8::Local<v8::FunctionTemplate> setter = |
| v8::FunctionTemplate::New(isolate, unsignedLongLongPropertyAttributeSetter); |
| |
| // 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, |
| "unsignedLongLongClampProperty"); |
| |
| // 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, unsignedLongLongClampPropertyAttributeGetter); |
| v8::Local<v8::FunctionTemplate> setter = |
| v8::FunctionTemplate::New(isolate, unsignedLongLongClampPropertyAttributeSetter); |
| |
| // 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, |
| "doubleProperty"); |
| |
| // 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, doublePropertyAttributeGetter); |
| v8::Local<v8::FunctionTemplate> setter = |
| v8::FunctionTemplate::New(isolate, doublePropertyAttributeSetter); |
| |
| // 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, |
| "unrestrictedDoubleProperty"); |
| |
| // 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, unrestrictedDoublePropertyAttributeGetter); |
| v8::Local<v8::FunctionTemplate> setter = |
| v8::FunctionTemplate::New(isolate, unrestrictedDoublePropertyAttributeSetter); |
| |
| // 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); |
| |
| } |
| |
| // https://heycam.github.io/webidl/#es-operations |
| // 3.6.8. Operations |
| // |
| // For each unique identifier of an exposed operation defined on the |
| // interface, there must exist a corresponding property, unless the effective |
| // overload set for that identifier and operation and with an argument count |
| // of 0 has no entries. |
| // |
| // The characteristics of this property are as follows: |
| { |
| // The name of the property is the identifier. |
| v8::Local<v8::String> name = NewInternalString( |
| isolate, |
| "byteArgumentOperation"); |
| |
| // The property has attributes { [[Writable]]: B, [[Enumerable]]: true, |
| // [[Configurable]]: B }, where B is false if the operation is unforgeable |
| // on the interface, and true otherwise. |
| bool B = true; |
| v8::PropertyAttribute attributes = static_cast<v8::PropertyAttribute>( |
| B ? v8::None : (v8::ReadOnly | v8::DontDelete)); |
| |
| v8::Local<v8::FunctionTemplate> method_template = |
| v8::FunctionTemplate::New(isolate, byteArgumentOperationMethod); |
| method_template->RemovePrototype(); |
| method_template->SetLength(1); |
| |
| // The location of the property is determined as follows: |
| // Otherwise, the property exists solely on the interface's interface |
| // prototype object. |
| prototype_template-> |
| Set(name, method_template); |
| |
| // The value of the property is the result of creating an operation function |
| // given the operation, the interface, and the relevant Realm of the object |
| // that is the location of the property. |
| |
| // Note: that is, even if an includes statement was used to make an |
| // operation available on the interface, we pass in the interface which |
| // includes the interface mixin, and not the interface mixin on which the |
| // operation was originally declared. |
| } |
| { |
| // The name of the property is the identifier. |
| v8::Local<v8::String> name = NewInternalString( |
| isolate, |
| "byteReturnOperation"); |
| |
| // The property has attributes { [[Writable]]: B, [[Enumerable]]: true, |
| // [[Configurable]]: B }, where B is false if the operation is unforgeable |
| // on the interface, and true otherwise. |
| bool B = true; |
| v8::PropertyAttribute attributes = static_cast<v8::PropertyAttribute>( |
| B ? v8::None : (v8::ReadOnly | v8::DontDelete)); |
| |
| v8::Local<v8::FunctionTemplate> method_template = |
| v8::FunctionTemplate::New(isolate, byteReturnOperationMethod); |
| method_template->RemovePrototype(); |
| method_template->SetLength(0); |
| |
| // The location of the property is determined as follows: |
| // Otherwise, the property exists solely on the interface's interface |
| // prototype object. |
| prototype_template-> |
| Set(name, method_template); |
| |
| // The value of the property is the result of creating an operation function |
| // given the operation, the interface, and the relevant Realm of the object |
| // that is the location of the property. |
| |
| // Note: that is, even if an includes statement was used to make an |
| // operation available on the interface, we pass in the interface which |
| // includes the interface mixin, and not the interface mixin on which the |
| // operation was originally declared. |
| } |
| { |
| // The name of the property is the identifier. |
| v8::Local<v8::String> name = NewInternalString( |
| isolate, |
| "doubleArgumentOperation"); |
| |
| // The property has attributes { [[Writable]]: B, [[Enumerable]]: true, |
| // [[Configurable]]: B }, where B is false if the operation is unforgeable |
| // on the interface, and true otherwise. |
| bool B = true; |
| v8::PropertyAttribute attributes = static_cast<v8::PropertyAttribute>( |
| B ? v8::None : (v8::ReadOnly | v8::DontDelete)); |
| |
| v8::Local<v8::FunctionTemplate> method_template = |
| v8::FunctionTemplate::New(isolate, doubleArgumentOperationMethod); |
| method_template->RemovePrototype(); |
| method_template->SetLength(1); |
| |
| // The location of the property is determined as follows: |
| // Otherwise, the property exists solely on the interface's interface |
| // prototype object. |
| prototype_template-> |
| Set(name, method_template); |
| |
| // The value of the property is the result of creating an operation function |
| // given the operation, the interface, and the relevant Realm of the object |
| // that is the location of the property. |
| |
| // Note: that is, even if an includes statement was used to make an |
| // operation available on the interface, we pass in the interface which |
| // includes the interface mixin, and not the interface mixin on which the |
| // operation was originally declared. |
| } |
| { |
| // The name of the property is the identifier. |
| v8::Local<v8::String> name = NewInternalString( |
| isolate, |
| "doubleReturnOperation"); |
| |
| // The property has attributes { [[Writable]]: B, [[Enumerable]]: true, |
| // [[Configurable]]: B }, where B is false if the operation is unforgeable |
| // on the interface, and true otherwise. |
| bool B = true; |
| v8::PropertyAttribute attributes = static_cast<v8::PropertyAttribute>( |
| B ? v8::None : (v8::ReadOnly | v8::DontDelete)); |
| |
| v8::Local<v8::FunctionTemplate> method_template = |
| v8::FunctionTemplate::New(isolate, doubleReturnOperationMethod); |
| method_template->RemovePrototype(); |
| method_template->SetLength(0); |
| |
| // The location of the property is determined as follows: |
| // Otherwise, the property exists solely on the interface's interface |
| // prototype object. |
| prototype_template-> |
| Set(name, method_template); |
| |
| // The value of the property is the result of creating an operation function |
| // given the operation, the interface, and the relevant Realm of the object |
| // that is the location of the property. |
| |
| // Note: that is, even if an includes statement was used to make an |
| // operation available on the interface, we pass in the interface which |
| // includes the interface mixin, and not the interface mixin on which the |
| // operation was originally declared. |
| } |
| { |
| // The name of the property is the identifier. |
| v8::Local<v8::String> name = NewInternalString( |
| isolate, |
| "longArgumentOperation"); |
| |
| // The property has attributes { [[Writable]]: B, [[Enumerable]]: true, |
| // [[Configurable]]: B }, where B is false if the operation is unforgeable |
| // on the interface, and true otherwise. |
| bool B = true; |
| v8::PropertyAttribute attributes = static_cast<v8::PropertyAttribute>( |
| B ? v8::None : (v8::ReadOnly | v8::DontDelete)); |
| |
| v8::Local<v8::FunctionTemplate> method_template = |
| v8::FunctionTemplate::New(isolate, longArgumentOperationMethod); |
| method_template->RemovePrototype(); |
| method_template->SetLength(1); |
| |
| // The location of the property is determined as follows: |
| // Otherwise, the property exists solely on the interface's interface |
| // prototype object. |
| prototype_template-> |
| Set(name, method_template); |
| |
| // The value of the property is the result of creating an operation function |
| // given the operation, the interface, and the relevant Realm of the object |
| // that is the location of the property. |
| |
| // Note: that is, even if an includes statement was used to make an |
| // operation available on the interface, we pass in the interface which |
| // includes the interface mixin, and not the interface mixin on which the |
| // operation was originally declared. |
| } |
| { |
| // The name of the property is the identifier. |
| v8::Local<v8::String> name = NewInternalString( |
| isolate, |
| "longLongArgumentOperation"); |
| |
| // The property has attributes { [[Writable]]: B, [[Enumerable]]: true, |
| // [[Configurable]]: B }, where B is false if the operation is unforgeable |
| // on the interface, and true otherwise. |
| bool B = true; |
| v8::PropertyAttribute attributes = static_cast<v8::PropertyAttribute>( |
| B ? v8::None : (v8::ReadOnly | v8::DontDelete)); |
| |
| v8::Local<v8::FunctionTemplate> method_template = |
| v8::FunctionTemplate::New(isolate, longLongArgumentOperationMethod); |
| method_template->RemovePrototype(); |
| method_template->SetLength(1); |
| |
| // The location of the property is determined as follows: |
| // Otherwise, the property exists solely on the interface's interface |
| // prototype object. |
| prototype_template-> |
| Set(name, method_template); |
| |
| // The value of the property is the result of creating an operation function |
| // given the operation, the interface, and the relevant Realm of the object |
| // that is the location of the property. |
| |
| // Note: that is, even if an includes statement was used to make an |
| // operation available on the interface, we pass in the interface which |
| // includes the interface mixin, and not the interface mixin on which the |
| // operation was originally declared. |
| } |
| { |
| // The name of the property is the identifier. |
| v8::Local<v8::String> name = NewInternalString( |
| isolate, |
| "longLongReturnOperation"); |
| |
| // The property has attributes { [[Writable]]: B, [[Enumerable]]: true, |
| // [[Configurable]]: B }, where B is false if the operation is unforgeable |
| // on the interface, and true otherwise. |
| bool B = true; |
| v8::PropertyAttribute attributes = static_cast<v8::PropertyAttribute>( |
| B ? v8::None : (v8::ReadOnly | v8::DontDelete)); |
| |
| v8::Local<v8::FunctionTemplate> method_template = |
| v8::FunctionTemplate::New(isolate, longLongReturnOperationMethod); |
| method_template->RemovePrototype(); |
| method_template->SetLength(0); |
| |
| // The location of the property is determined as follows: |
| // Otherwise, the property exists solely on the interface's interface |
| // prototype object. |
| prototype_template-> |
| Set(name, method_template); |
| |
| // The value of the property is the result of creating an operation function |
| // given the operation, the interface, and the relevant Realm of the object |
| // that is the location of the property. |
| |
| // Note: that is, even if an includes statement was used to make an |
| // operation available on the interface, we pass in the interface which |
| // includes the interface mixin, and not the interface mixin on which the |
| // operation was originally declared. |
| } |
| { |
| // The name of the property is the identifier. |
| v8::Local<v8::String> name = NewInternalString( |
| isolate, |
| "longReturnOperation"); |
| |
| // The property has attributes { [[Writable]]: B, [[Enumerable]]: true, |
| // [[Configurable]]: B }, where B is false if the operation is unforgeable |
| // on the interface, and true otherwise. |
| bool B = true; |
| v8::PropertyAttribute attributes = static_cast<v8::PropertyAttribute>( |
| B ? v8::None : (v8::ReadOnly | v8::DontDelete)); |
| |
| v8::Local<v8::FunctionTemplate> method_template = |
| v8::FunctionTemplate::New(isolate, longReturnOperationMethod); |
| method_template->RemovePrototype(); |
| method_template->SetLength(0); |
| |
| // The location of the property is determined as follows: |
| // Otherwise, the property exists solely on the interface's interface |
| // prototype object. |
| prototype_template-> |
| Set(name, method_template); |
| |
| // The value of the property is the result of creating an operation function |
| // given the operation, the interface, and the relevant Realm of the object |
| // that is the location of the property. |
| |
| // Note: that is, even if an includes statement was used to make an |
| // operation available on the interface, we pass in the interface which |
| // includes the interface mixin, and not the interface mixin on which the |
| // operation was originally declared. |
| } |
| { |
| // The name of the property is the identifier. |
| v8::Local<v8::String> name = NewInternalString( |
| isolate, |
| "octetArgumentOperation"); |
| |
| // The property has attributes { [[Writable]]: B, [[Enumerable]]: true, |
| // [[Configurable]]: B }, where B is false if the operation is unforgeable |
| // on the interface, and true otherwise. |
| bool B = true; |
| v8::PropertyAttribute attributes = static_cast<v8::PropertyAttribute>( |
| B ? v8::None : (v8::ReadOnly | v8::DontDelete)); |
| |
| v8::Local<v8::FunctionTemplate> method_template = |
| v8::FunctionTemplate::New(isolate, octetArgumentOperationMethod); |
| method_template->RemovePrototype(); |
| method_template->SetLength(1); |
| |
| // The location of the property is determined as follows: |
| // Otherwise, the property exists solely on the interface's interface |
| // prototype object. |
| prototype_template-> |
| Set(name, method_template); |
| |
| // The value of the property is the result of creating an operation function |
| // given the operation, the interface, and the relevant Realm of the object |
| // that is the location of the property. |
| |
| // Note: that is, even if an includes statement was used to make an |
| // operation available on the interface, we pass in the interface which |
| // includes the interface mixin, and not the interface mixin on which the |
| // operation was originally declared. |
| } |
| { |
| // The name of the property is the identifier. |
| v8::Local<v8::String> name = NewInternalString( |
| isolate, |
| "octetReturnOperation"); |
| |
| // The property has attributes { [[Writable]]: B, [[Enumerable]]: true, |
| // [[Configurable]]: B }, where B is false if the operation is unforgeable |
| // on the interface, and true otherwise. |
| bool B = true; |
| v8::PropertyAttribute attributes = static_cast<v8::PropertyAttribute>( |
| B ? v8::None : (v8::ReadOnly | v8::DontDelete)); |
| |
| v8::Local<v8::FunctionTemplate> method_template = |
| v8::FunctionTemplate::New(isolate, octetReturnOperationMethod); |
| method_template->RemovePrototype(); |
| method_template->SetLength(0); |
| |
| // The location of the property is determined as follows: |
| // Otherwise, the property exists solely on the interface's interface |
| // prototype object. |
| prototype_template-> |
| Set(name, method_template); |
| |
| // The value of the property is the result of creating an operation function |
| // given the operation, the interface, and the relevant Realm of the object |
| // that is the location of the property. |
| |
| // Note: that is, even if an includes statement was used to make an |
| // operation available on the interface, we pass in the interface which |
| // includes the interface mixin, and not the interface mixin on which the |
| // operation was originally declared. |
| } |
| { |
| // The name of the property is the identifier. |
| v8::Local<v8::String> name = NewInternalString( |
| isolate, |
| "shortArgumentOperation"); |
| |
| // The property has attributes { [[Writable]]: B, [[Enumerable]]: true, |
| // [[Configurable]]: B }, where B is false if the operation is unforgeable |
| // on the interface, and true otherwise. |
| bool B = true; |
| v8::PropertyAttribute attributes = static_cast<v8::PropertyAttribute>( |
| B ? v8::None : (v8::ReadOnly | v8::DontDelete)); |
| |
| v8::Local<v8::FunctionTemplate> method_template = |
| v8::FunctionTemplate::New(isolate, shortArgumentOperationMethod); |
| method_template->RemovePrototype(); |
| method_template->SetLength(1); |
| |
| // The location of the property is determined as follows: |
| // Otherwise, the property exists solely on the interface's interface |
| // prototype object. |
| prototype_template-> |
| Set(name, method_template); |
| |
| // The value of the property is the result of creating an operation function |
| // given the operation, the interface, and the relevant Realm of the object |
| // that is the location of the property. |
| |
| // Note: that is, even if an includes statement was used to make an |
| // operation available on the interface, we pass in the interface which |
| // includes the interface mixin, and not the interface mixin on which the |
| // operation was originally declared. |
| } |
| { |
| // The name of the property is the identifier. |
| v8::Local<v8::String> name = NewInternalString( |
| isolate, |
| "shortReturnOperation"); |
| |
| // The property has attributes { [[Writable]]: B, [[Enumerable]]: true, |
| // [[Configurable]]: B }, where B is false if the operation is unforgeable |
| // on the interface, and true otherwise. |
| bool B = true; |
| v8::PropertyAttribute attributes = static_cast<v8::PropertyAttribute>( |
| B ? v8::None : (v8::ReadOnly | v8::DontDelete)); |
| |
| v8::Local<v8::FunctionTemplate> method_template = |
| v8::FunctionTemplate::New(isolate, shortReturnOperationMethod); |
| method_template->RemovePrototype(); |
| method_template->SetLength(0); |
| |
| // The location of the property is determined as follows: |
| // Otherwise, the property exists solely on the interface's interface |
| // prototype object. |
| prototype_template-> |
| Set(name, method_template); |
| |
| // The value of the property is the result of creating an operation function |
| // given the operation, the interface, and the relevant Realm of the object |
| // that is the location of the property. |
| |
| // Note: that is, even if an includes statement was used to make an |
| // operation available on the interface, we pass in the interface which |
| // includes the interface mixin, and not the interface mixin on which the |
| // operation was originally declared. |
| } |
| { |
| // The name of the property is the identifier. |
| v8::Local<v8::String> name = NewInternalString( |
| isolate, |
| "unrestrictedDoubleArgumentOperation"); |
| |
| // The property has attributes { [[Writable]]: B, [[Enumerable]]: true, |
| // [[Configurable]]: B }, where B is false if the operation is unforgeable |
| // on the interface, and true otherwise. |
| bool B = true; |
| v8::PropertyAttribute attributes = static_cast<v8::PropertyAttribute>( |
| B ? v8::None : (v8::ReadOnly | v8::DontDelete)); |
| |
| v8::Local<v8::FunctionTemplate> method_template = |
| v8::FunctionTemplate::New(isolate, unrestrictedDoubleArgumentOperationMethod); |
| method_template->RemovePrototype(); |
| method_template->SetLength(1); |
| |
| // The location of the property is determined as follows: |
| // Otherwise, the property exists solely on the interface's interface |
| // prototype object. |
| prototype_template-> |
| Set(name, method_template); |
| |
| // The value of the property is the result of creating an operation function |
| // given the operation, the interface, and the relevant Realm of the object |
| // that is the location of the property. |
| |
| // Note: that is, even if an includes statement was used to make an |
| // operation available on the interface, we pass in the interface which |
| // includes the interface mixin, and not the interface mixin on which the |
| // operation was originally declared. |
| } |
| { |
| // The name of the property is the identifier. |
| v8::Local<v8::String> name = NewInternalString( |
| isolate, |
| "unrestrictedDoubleReturnOperation"); |
| |
| // The property has attributes { [[Writable]]: B, [[Enumerable]]: true, |
| // [[Configurable]]: B }, where B is false if the operation is unforgeable |
| // on the interface, and true otherwise. |
| bool B = true; |
| v8::PropertyAttribute attributes = static_cast<v8::PropertyAttribute>( |
| B ? v8::None : (v8::ReadOnly | v8::DontDelete)); |
| |
| v8::Local<v8::FunctionTemplate> method_template = |
| v8::FunctionTemplate::New(isolate, unrestrictedDoubleReturnOperationMethod); |
| method_template->RemovePrototype(); |
| method_template->SetLength(0); |
| |
| // The location of the property is determined as follows: |
| // Otherwise, the property exists solely on the interface's interface |
| // prototype object. |
| prototype_template-> |
| Set(name, method_template); |
| |
| // The value of the property is the result of creating an operation function |
| // given the operation, the interface, and the relevant Realm of the object |
| // that is the location of the property. |
| |
| // Note: that is, even if an includes statement was used to make an |
| // operation available on the interface, we pass in the interface which |
| // includes the interface mixin, and not the interface mixin on which the |
| // operation was originally declared. |
| } |
| { |
| // The name of the property is the identifier. |
| v8::Local<v8::String> name = NewInternalString( |
| isolate, |
| "unsignedLongArgumentOperation"); |
| |
| // The property has attributes { [[Writable]]: B, [[Enumerable]]: true, |
| // [[Configurable]]: B }, where B is false if the operation is unforgeable |
| // on the interface, and true otherwise. |
| bool B = true; |
| v8::PropertyAttribute attributes = static_cast<v8::PropertyAttribute>( |
| B ? v8::None : (v8::ReadOnly | v8::DontDelete)); |
| |
| v8::Local<v8::FunctionTemplate> method_template = |
| v8::FunctionTemplate::New(isolate, unsignedLongArgumentOperationMethod); |
| method_template->RemovePrototype(); |
| method_template->SetLength(1); |
| |
| // The location of the property is determined as follows: |
| // Otherwise, the property exists solely on the interface's interface |
| // prototype object. |
| prototype_template-> |
| Set(name, method_template); |
| |
| // The value of the property is the result of creating an operation function |
| // given the operation, the interface, and the relevant Realm of the object |
| // that is the location of the property. |
| |
| // Note: that is, even if an includes statement was used to make an |
| // operation available on the interface, we pass in the interface which |
| // includes the interface mixin, and not the interface mixin on which the |
| // operation was originally declared. |
| } |
| { |
| // The name of the property is the identifier. |
| v8::Local<v8::String> name = NewInternalString( |
| isolate, |
| "unsignedLongLongArgumentOperation"); |
| |
| // The property has attributes { [[Writable]]: B, [[Enumerable]]: true, |
| // [[Configurable]]: B }, where B is false if the operation is unforgeable |
| // on the interface, and true otherwise. |
| bool B = true; |
| v8::PropertyAttribute attributes = static_cast<v8::PropertyAttribute>( |
| B ? v8::None : (v8::ReadOnly | v8::DontDelete)); |
| |
| v8::Local<v8::FunctionTemplate> method_template = |
| v8::FunctionTemplate::New(isolate, unsignedLongLongArgumentOperationMethod); |
| method_template->RemovePrototype(); |
| method_template->SetLength(1); |
| |
| // The location of the property is determined as follows: |
| // Otherwise, the property exists solely on the interface's interface |
| // prototype object. |
| prototype_template-> |
| Set(name, method_template); |
| |
| // The value of the property is the result of creating an operation function |
| // given the operation, the interface, and the relevant Realm of the object |
| // that is the location of the property. |
| |
| // Note: that is, even if an includes statement was used to make an |
| // operation available on the interface, we pass in the interface which |
| // includes the interface mixin, and not the interface mixin on which the |
| // operation was originally declared. |
| } |
| { |
| // The name of the property is the identifier. |
| v8::Local<v8::String> name = NewInternalString( |
| isolate, |
| "unsignedLongLongReturnOperation"); |
| |
| // The property has attributes { [[Writable]]: B, [[Enumerable]]: true, |
| // [[Configurable]]: B }, where B is false if the operation is unforgeable |
| // on the interface, and true otherwise. |
| bool B = true; |
| v8::PropertyAttribute attributes = static_cast<v8::PropertyAttribute>( |
| B ? v8::None : (v8::ReadOnly | v8::DontDelete)); |
| |
| v8::Local<v8::FunctionTemplate> method_template = |
| v8::FunctionTemplate::New(isolate, unsignedLongLongReturnOperationMethod); |
| method_template->RemovePrototype(); |
| method_template->SetLength(0); |
| |
| // The location of the property is determined as follows: |
| // Otherwise, the property exists solely on the interface's interface |
| // prototype object. |
| prototype_template-> |
| Set(name, method_template); |
| |
| // The value of the property is the result of creating an operation function |
| // given the operation, the interface, and the relevant Realm of the object |
| // that is the location of the property. |
| |
| // Note: that is, even if an includes statement was used to make an |
| // operation available on the interface, we pass in the interface which |
| // includes the interface mixin, and not the interface mixin on which the |
| // operation was originally declared. |
| } |
| { |
| // The name of the property is the identifier. |
| v8::Local<v8::String> name = NewInternalString( |
| isolate, |
| "unsignedLongReturnOperation"); |
| |
| // The property has attributes { [[Writable]]: B, [[Enumerable]]: true, |
| // [[Configurable]]: B }, where B is false if the operation is unforgeable |
| // on the interface, and true otherwise. |
| bool B = true; |
| v8::PropertyAttribute attributes = static_cast<v8::PropertyAttribute>( |
| B ? v8::None : (v8::ReadOnly | v8::DontDelete)); |
| |
| v8::Local<v8::FunctionTemplate> method_template = |
| v8::FunctionTemplate::New(isolate, unsignedLongReturnOperationMethod); |
| method_template->RemovePrototype(); |
| method_template->SetLength(0); |
| |
| // The location of the property is determined as follows: |
| // Otherwise, the property exists solely on the interface's interface |
| // prototype object. |
| prototype_template-> |
| Set(name, method_template); |
| |
| // The value of the property is the result of creating an operation function |
| // given the operation, the interface, and the relevant Realm of the object |
| // that is the location of the property. |
| |
| // Note: that is, even if an includes statement was used to make an |
| // operation available on the interface, we pass in the interface which |
| // includes the interface mixin, and not the interface mixin on which the |
| // operation was originally declared. |
| } |
| { |
| // The name of the property is the identifier. |
| v8::Local<v8::String> name = NewInternalString( |
| isolate, |
| "unsignedShortArgumentOperation"); |
| |
| // The property has attributes { [[Writable]]: B, [[Enumerable]]: true, |
| // [[Configurable]]: B }, where B is false if the operation is unforgeable |
| // on the interface, and true otherwise. |
| bool B = true; |
| v8::PropertyAttribute attributes = static_cast<v8::PropertyAttribute>( |
| B ? v8::None : (v8::ReadOnly | v8::DontDelete)); |
| |
| v8::Local<v8::FunctionTemplate> method_template = |
| v8::FunctionTemplate::New(isolate, unsignedShortArgumentOperationMethod); |
| method_template->RemovePrototype(); |
| method_template->SetLength(1); |
| |
| // The location of the property is determined as follows: |
| // Otherwise, the property exists solely on the interface's interface |
| // prototype object. |
| prototype_template-> |
| Set(name, method_template); |
| |
| // The value of the property is the result of creating an operation function |
| // given the operation, the interface, and the relevant Realm of the object |
| // that is the location of the property. |
| |
| // Note: that is, even if an includes statement was used to make an |
| // operation available on the interface, we pass in the interface which |
| // includes the interface mixin, and not the interface mixin on which the |
| // operation was originally declared. |
| } |
| { |
| // The name of the property is the identifier. |
| v8::Local<v8::String> name = NewInternalString( |
| isolate, |
| "unsignedShortReturnOperation"); |
| |
| // The property has attributes { [[Writable]]: B, [[Enumerable]]: true, |
| // [[Configurable]]: B }, where B is false if the operation is unforgeable |
| // on the interface, and true otherwise. |
| bool B = true; |
| v8::PropertyAttribute attributes = static_cast<v8::PropertyAttribute>( |
| B ? v8::None : (v8::ReadOnly | v8::DontDelete)); |
| |
| v8::Local<v8::FunctionTemplate> method_template = |
| v8::FunctionTemplate::New(isolate, unsignedShortReturnOperationMethod); |
| method_template->RemovePrototype(); |
| method_template->SetLength(0); |
| |
| // The location of the property is determined as follows: |
| // Otherwise, the property exists solely on the interface's interface |
| // prototype object. |
| prototype_template-> |
| Set(name, method_template); |
| |
| // The value of the property is the result of creating an operation function |
| // given the operation, the interface, and the relevant Realm of the object |
| // that is the location of the property. |
| |
| // Note: that is, even if an includes statement was used to make an |
| // operation available on the interface, we pass in the interface which |
| // includes the interface mixin, and not the interface mixin on which the |
| // operation was originally declared. |
| } |
| |
| // https://heycam.github.io/webidl/#es-stringifier |
| // 3.6.8.2. Stringifiers |
| prototype_template->Set( |
| v8::Symbol::GetToStringTag(isolate), |
| NewInternalString(isolate, "NumericTypesTestInterface"), |
| static_cast<v8::PropertyAttribute>(v8::ReadOnly | v8::DontEnum)); |
| |
| |
| |
| |
| |
| } |
| |
| } // namespace |
| |
| |
| v8::Local<v8::Object> V8cNumericTypesTestInterface::CreateWrapper( |
| v8::Isolate* isolate, const scoped_refptr<Wrappable>& wrappable) { |
| EscapableEntryScope entry_scope(isolate); |
| v8::Local<v8::Context> context = isolate->GetCurrentContext(); |
| |
| V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate); |
| if (!global_environment->HasInterfaceData(kInterfaceUniqueId)) { |
| InitializeTemplate(isolate); |
| } |
| v8::Local<v8::FunctionTemplate> function_template = global_environment->GetInterfaceData(kInterfaceUniqueId); |
| |
| DCHECK(function_template->InstanceTemplate()->InternalFieldCount() == WrapperPrivate::kInternalFieldCount); |
| v8::Local<v8::Object> object = function_template->InstanceTemplate()->NewInstance(context).ToLocalChecked(); |
| DCHECK(object->InternalFieldCount() == WrapperPrivate::kInternalFieldCount); |
| |
| // This |WrapperPrivate|'s lifetime will be managed by V8. |
| new WrapperPrivate(isolate, wrappable, object); |
| return entry_scope.Escape(object); |
| } |
| |
| |
| v8::Local<v8::FunctionTemplate> V8cNumericTypesTestInterface::GetTemplate(v8::Isolate* isolate) { |
| V8cGlobalEnvironment* global_environment = V8cGlobalEnvironment::GetFromIsolate(isolate); |
| if (!global_environment->HasInterfaceData(kInterfaceUniqueId)) { |
| InitializeTemplate(isolate); |
| } |
| return global_environment->GetInterfaceData(kInterfaceUniqueId); |
| } |
| |
| |
| } // namespace testing |
| } // namespace bindings |
| } // namespace cobalt |
| |
| |