| OLD | NEW |
| (Empty) |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 // This file has been auto-generated by code_generator_v8.py. DO NOT MODIFY! | |
| 6 | |
| 7 #include "config.h" | |
| 8 #if ENABLE(CONDITION) | |
| 9 #include "V8TestInterface.h" | |
| 10 | |
| 11 #include "bindings/core/v8/ExceptionState.h" | |
| 12 #include "bindings/core/v8/PrivateScriptRunner.h" | |
| 13 #include "bindings/core/v8/ScriptState.h" | |
| 14 #include "bindings/core/v8/ScriptValue.h" | |
| 15 #include "bindings/core/v8/V8AbstractEventListener.h" | |
| 16 #include "bindings/core/v8/V8DOMConfiguration.h" | |
| 17 #include "bindings/core/v8/V8EventListenerList.h" | |
| 18 #include "bindings/core/v8/V8HiddenValue.h" | |
| 19 #include "bindings/core/v8/V8ObjectConstructor.h" | |
| 20 #include "bindings/tests/idls/core/TestImplements2.h" | |
| 21 #include "bindings/tests/idls/core/TestImplements3Implementation.h" | |
| 22 #include "bindings/tests/idls/core/TestPartialInterface.h" | |
| 23 #include "bindings/tests/idls/core/TestPartialInterfaceImplementation.h" | |
| 24 #include "bindings/tests/idls/modules/TestPartialInterfaceImplementation3.h" | |
| 25 #include "bindings/tests/v8/V8Iterator.h" | |
| 26 #include "bindings/tests/v8/V8Node.h" | |
| 27 #include "bindings/tests/v8/V8TestInterface.h" | |
| 28 #include "bindings/tests/v8/V8TestInterfaceEmpty.h" | |
| 29 #include "core/dom/ContextFeatures.h" | |
| 30 #include "core/dom/Document.h" | |
| 31 #include "core/frame/LocalFrame.h" | |
| 32 #include "platform/RuntimeEnabledFeatures.h" | |
| 33 #include "platform/ScriptForbiddenScope.h" | |
| 34 #include "platform/TraceEvent.h" | |
| 35 #include "wtf/GetPtr.h" | |
| 36 #include "wtf/RefPtr.h" | |
| 37 | |
| 38 namespace blink { | |
| 39 | |
| 40 const WrapperTypeInfo V8TestInterface::wrapperTypeInfo = { gin::kEmbedderBlink,
V8TestInterface::domTemplate, V8TestInterface::refObject, V8TestInterface::deref
Object, V8TestInterface::createPersistentHandle, V8TestInterface::toActiveDOMObj
ect, 0, V8TestInterface::visitDOMWrapper, V8TestInterface::installConditionallyE
nabledMethods, V8TestInterface::installConditionallyEnabledProperties, &V8TestIn
terfaceEmpty::wrapperTypeInfo, WrapperTypeInfo::WrapperTypeObjectPrototype, Wrap
perTypeInfo::ObjectClassId, WrapperTypeInfo::Dependent, WrapperTypeInfo::RefCoun
tedObject }; | |
| 41 | |
| 42 // This static member must be declared by DEFINE_WRAPPERTYPEINFO in TestInterfac
eImplementation.h. | |
| 43 // For details, see the comment of DEFINE_WRAPPERTYPEINFO in | |
| 44 // bindings/core/v8/ScriptWrappable.h. | |
| 45 const WrapperTypeInfo& TestInterfaceImplementation::s_wrapperTypeInfo = V8TestIn
terface::wrapperTypeInfo; | |
| 46 | |
| 47 namespace TestInterfaceImplementationV8Internal { | |
| 48 | |
| 49 template <typename T> void V8_USE(T) { } | |
| 50 | |
| 51 static void testInterfaceAttributeAttributeGetter(const v8::PropertyCallbackInfo
<v8::Value>& info) | |
| 52 { | |
| 53 v8::Handle<v8::Object> holder = info.Holder(); | |
| 54 TestInterfaceImplementation* impl = V8TestInterface::toImpl(holder); | |
| 55 v8SetReturnValueFast(info, WTF::getPtr(impl->testInterfaceAttribute()), impl
); | |
| 56 } | |
| 57 | |
| 58 static void testInterfaceAttributeAttributeGetterCallback(v8::Local<v8::String>,
const v8::PropertyCallbackInfo<v8::Value>& info) | |
| 59 { | |
| 60 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter"); | |
| 61 TestInterfaceImplementationV8Internal::testInterfaceAttributeAttributeGetter
(info); | |
| 62 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 63 } | |
| 64 | |
| 65 static void testInterfaceAttributeAttributeSetter(v8::Local<v8::Value> v8Value,
const v8::PropertyCallbackInfo<void>& info) | |
| 66 { | |
| 67 v8::Handle<v8::Object> holder = info.Holder(); | |
| 68 ExceptionState exceptionState(ExceptionState::SetterContext, "testInterfaceA
ttribute", "TestInterface", holder, info.GetIsolate()); | |
| 69 if (!V8TestInterface::hasInstance(v8Value, info.GetIsolate())) { | |
| 70 exceptionState.throwTypeError("The provided value is not of type 'TestIn
terface'."); | |
| 71 exceptionState.throwIfNeeded(); | |
| 72 return; | |
| 73 } | |
| 74 TestInterfaceImplementation* impl = V8TestInterface::toImpl(holder); | |
| 75 TONATIVE_VOID(TestInterfaceImplementation*, cppValue, V8TestInterface::toImp
lWithTypeCheck(info.GetIsolate(), v8Value)); | |
| 76 impl->setTestInterfaceAttribute(WTF::getPtr(cppValue)); | |
| 77 } | |
| 78 | |
| 79 static void testInterfaceAttributeAttributeSetterCallback(v8::Local<v8::String>,
v8::Local<v8::Value> v8Value, const v8::PropertyCallbackInfo<void>& info) | |
| 80 { | |
| 81 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter"); | |
| 82 TestInterfaceImplementationV8Internal::testInterfaceAttributeAttributeSetter
(v8Value, info); | |
| 83 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 84 } | |
| 85 | |
| 86 static void doubleAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Va
lue>& info) | |
| 87 { | |
| 88 v8::Handle<v8::Object> holder = info.Holder(); | |
| 89 TestInterfaceImplementation* impl = V8TestInterface::toImpl(holder); | |
| 90 v8SetReturnValue(info, impl->doubleAttribute()); | |
| 91 } | |
| 92 | |
| 93 static void doubleAttributeAttributeGetterCallback(v8::Local<v8::String>, const
v8::PropertyCallbackInfo<v8::Value>& info) | |
| 94 { | |
| 95 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter"); | |
| 96 TestInterfaceImplementationV8Internal::doubleAttributeAttributeGetter(info); | |
| 97 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 98 } | |
| 99 | |
| 100 static void doubleAttributeAttributeSetter(v8::Local<v8::Value> v8Value, const v
8::PropertyCallbackInfo<void>& info) | |
| 101 { | |
| 102 v8::Handle<v8::Object> holder = info.Holder(); | |
| 103 ExceptionState exceptionState(ExceptionState::SetterContext, "doubleAttribut
e", "TestInterface", holder, info.GetIsolate()); | |
| 104 TestInterfaceImplementation* impl = V8TestInterface::toImpl(holder); | |
| 105 TONATIVE_VOID(double, cppValue, static_cast<double>(v8Value->NumberValue()))
; | |
| 106 if (!std::isfinite(cppValue)) { | |
| 107 exceptionState.throwTypeError("The provided double value is non-finite."
); | |
| 108 exceptionState.throwIfNeeded(); | |
| 109 return; | |
| 110 } | |
| 111 impl->setDoubleAttribute(cppValue); | |
| 112 } | |
| 113 | |
| 114 static void doubleAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Lo
cal<v8::Value> v8Value, const v8::PropertyCallbackInfo<void>& info) | |
| 115 { | |
| 116 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter"); | |
| 117 TestInterfaceImplementationV8Internal::doubleAttributeAttributeSetter(v8Valu
e, info); | |
| 118 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 119 } | |
| 120 | |
| 121 static void floatAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Val
ue>& info) | |
| 122 { | |
| 123 v8::Handle<v8::Object> holder = info.Holder(); | |
| 124 TestInterfaceImplementation* impl = V8TestInterface::toImpl(holder); | |
| 125 v8SetReturnValue(info, impl->floatAttribute()); | |
| 126 } | |
| 127 | |
| 128 static void floatAttributeAttributeGetterCallback(v8::Local<v8::String>, const v
8::PropertyCallbackInfo<v8::Value>& info) | |
| 129 { | |
| 130 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter"); | |
| 131 TestInterfaceImplementationV8Internal::floatAttributeAttributeGetter(info); | |
| 132 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 133 } | |
| 134 | |
| 135 static void floatAttributeAttributeSetter(v8::Local<v8::Value> v8Value, const v8
::PropertyCallbackInfo<void>& info) | |
| 136 { | |
| 137 v8::Handle<v8::Object> holder = info.Holder(); | |
| 138 ExceptionState exceptionState(ExceptionState::SetterContext, "floatAttribute
", "TestInterface", holder, info.GetIsolate()); | |
| 139 TestInterfaceImplementation* impl = V8TestInterface::toImpl(holder); | |
| 140 TONATIVE_VOID(float, cppValue, static_cast<float>(v8Value->NumberValue())); | |
| 141 if (!std::isfinite(cppValue)) { | |
| 142 exceptionState.throwTypeError("The provided float value is non-finite.")
; | |
| 143 exceptionState.throwIfNeeded(); | |
| 144 return; | |
| 145 } | |
| 146 impl->setFloatAttribute(cppValue); | |
| 147 } | |
| 148 | |
| 149 static void floatAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Loc
al<v8::Value> v8Value, const v8::PropertyCallbackInfo<void>& info) | |
| 150 { | |
| 151 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter"); | |
| 152 TestInterfaceImplementationV8Internal::floatAttributeAttributeSetter(v8Value
, info); | |
| 153 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 154 } | |
| 155 | |
| 156 static void unrestrictedDoubleAttributeAttributeGetter(const v8::PropertyCallbac
kInfo<v8::Value>& info) | |
| 157 { | |
| 158 v8::Handle<v8::Object> holder = info.Holder(); | |
| 159 TestInterfaceImplementation* impl = V8TestInterface::toImpl(holder); | |
| 160 v8SetReturnValue(info, impl->unrestrictedDoubleAttribute()); | |
| 161 } | |
| 162 | |
| 163 static void unrestrictedDoubleAttributeAttributeGetterCallback(v8::Local<v8::Str
ing>, const v8::PropertyCallbackInfo<v8::Value>& info) | |
| 164 { | |
| 165 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter"); | |
| 166 TestInterfaceImplementationV8Internal::unrestrictedDoubleAttributeAttributeG
etter(info); | |
| 167 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 168 } | |
| 169 | |
| 170 static void unrestrictedDoubleAttributeAttributeSetter(v8::Local<v8::Value> v8Va
lue, const v8::PropertyCallbackInfo<void>& info) | |
| 171 { | |
| 172 v8::Handle<v8::Object> holder = info.Holder(); | |
| 173 TestInterfaceImplementation* impl = V8TestInterface::toImpl(holder); | |
| 174 TONATIVE_VOID(double, cppValue, static_cast<double>(v8Value->NumberValue()))
; | |
| 175 impl->setUnrestrictedDoubleAttribute(cppValue); | |
| 176 } | |
| 177 | |
| 178 static void unrestrictedDoubleAttributeAttributeSetterCallback(v8::Local<v8::Str
ing>, v8::Local<v8::Value> v8Value, const v8::PropertyCallbackInfo<void>& info) | |
| 179 { | |
| 180 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter"); | |
| 181 TestInterfaceImplementationV8Internal::unrestrictedDoubleAttributeAttributeS
etter(v8Value, info); | |
| 182 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 183 } | |
| 184 | |
| 185 static void unrestrictedFloatAttributeAttributeGetter(const v8::PropertyCallback
Info<v8::Value>& info) | |
| 186 { | |
| 187 v8::Handle<v8::Object> holder = info.Holder(); | |
| 188 TestInterfaceImplementation* impl = V8TestInterface::toImpl(holder); | |
| 189 v8SetReturnValue(info, impl->unrestrictedFloatAttribute()); | |
| 190 } | |
| 191 | |
| 192 static void unrestrictedFloatAttributeAttributeGetterCallback(v8::Local<v8::Stri
ng>, const v8::PropertyCallbackInfo<v8::Value>& info) | |
| 193 { | |
| 194 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter"); | |
| 195 TestInterfaceImplementationV8Internal::unrestrictedFloatAttributeAttributeGe
tter(info); | |
| 196 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 197 } | |
| 198 | |
| 199 static void unrestrictedFloatAttributeAttributeSetter(v8::Local<v8::Value> v8Val
ue, const v8::PropertyCallbackInfo<void>& info) | |
| 200 { | |
| 201 v8::Handle<v8::Object> holder = info.Holder(); | |
| 202 TestInterfaceImplementation* impl = V8TestInterface::toImpl(holder); | |
| 203 TONATIVE_VOID(float, cppValue, static_cast<float>(v8Value->NumberValue())); | |
| 204 impl->setUnrestrictedFloatAttribute(cppValue); | |
| 205 } | |
| 206 | |
| 207 static void unrestrictedFloatAttributeAttributeSetterCallback(v8::Local<v8::Stri
ng>, v8::Local<v8::Value> v8Value, const v8::PropertyCallbackInfo<void>& info) | |
| 208 { | |
| 209 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter"); | |
| 210 TestInterfaceImplementationV8Internal::unrestrictedFloatAttributeAttributeSe
tter(v8Value, info); | |
| 211 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 212 } | |
| 213 | |
| 214 static void staticStringAttributeAttributeGetter(const v8::PropertyCallbackInfo<
v8::Value>& info) | |
| 215 { | |
| 216 v8SetReturnValueString(info, TestInterfaceImplementation::staticStringAttrib
ute(), info.GetIsolate()); | |
| 217 } | |
| 218 | |
| 219 static void staticStringAttributeAttributeGetterCallback(v8::Local<v8::String>,
const v8::PropertyCallbackInfo<v8::Value>& info) | |
| 220 { | |
| 221 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter"); | |
| 222 TestInterfaceImplementationV8Internal::staticStringAttributeAttributeGetter(
info); | |
| 223 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 224 } | |
| 225 | |
| 226 static void staticStringAttributeAttributeSetter(v8::Local<v8::Value> v8Value, c
onst v8::PropertyCallbackInfo<void>& info) | |
| 227 { | |
| 228 TOSTRING_VOID(V8StringResource<>, cppValue, v8Value); | |
| 229 TestInterfaceImplementation::setStaticStringAttribute(cppValue); | |
| 230 } | |
| 231 | |
| 232 static void staticStringAttributeAttributeSetterCallback(v8::Local<v8::String>,
v8::Local<v8::Value> v8Value, const v8::PropertyCallbackInfo<void>& info) | |
| 233 { | |
| 234 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter"); | |
| 235 TestInterfaceImplementationV8Internal::staticStringAttributeAttributeSetter(
v8Value, info); | |
| 236 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 237 } | |
| 238 | |
| 239 static void alwaysExposedAttributeAttributeGetter(const v8::PropertyCallbackInfo
<v8::Value>& info) | |
| 240 { | |
| 241 v8::Handle<v8::Object> holder = info.Holder(); | |
| 242 TestInterfaceImplementation* impl = V8TestInterface::toImpl(holder); | |
| 243 v8SetReturnValueInt(info, impl->alwaysExposedAttribute()); | |
| 244 } | |
| 245 | |
| 246 static void alwaysExposedAttributeAttributeGetterCallback(v8::Local<v8::String>,
const v8::PropertyCallbackInfo<v8::Value>& info) | |
| 247 { | |
| 248 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter"); | |
| 249 TestInterfaceImplementationV8Internal::alwaysExposedAttributeAttributeGetter
(info); | |
| 250 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 251 } | |
| 252 | |
| 253 static void alwaysExposedAttributeAttributeSetter(v8::Local<v8::Value> v8Value,
const v8::PropertyCallbackInfo<void>& info) | |
| 254 { | |
| 255 v8::Handle<v8::Object> holder = info.Holder(); | |
| 256 ExceptionState exceptionState(ExceptionState::SetterContext, "alwaysExposedA
ttribute", "TestInterface", holder, info.GetIsolate()); | |
| 257 TestInterfaceImplementation* impl = V8TestInterface::toImpl(holder); | |
| 258 TONATIVE_VOID_EXCEPTIONSTATE(int, cppValue, toInt32(v8Value, exceptionState)
, exceptionState); | |
| 259 impl->setAlwaysExposedAttribute(cppValue); | |
| 260 } | |
| 261 | |
| 262 static void alwaysExposedAttributeAttributeSetterCallback(v8::Local<v8::String>,
v8::Local<v8::Value> v8Value, const v8::PropertyCallbackInfo<void>& info) | |
| 263 { | |
| 264 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter"); | |
| 265 TestInterfaceImplementationV8Internal::alwaysExposedAttributeAttributeSetter
(v8Value, info); | |
| 266 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 267 } | |
| 268 | |
| 269 static void workerExposedAttributeAttributeGetter(const v8::PropertyCallbackInfo
<v8::Value>& info) | |
| 270 { | |
| 271 v8::Handle<v8::Object> holder = info.Holder(); | |
| 272 TestInterfaceImplementation* impl = V8TestInterface::toImpl(holder); | |
| 273 v8SetReturnValueInt(info, impl->workerExposedAttribute()); | |
| 274 } | |
| 275 | |
| 276 static void workerExposedAttributeAttributeGetterCallback(v8::Local<v8::String>,
const v8::PropertyCallbackInfo<v8::Value>& info) | |
| 277 { | |
| 278 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter"); | |
| 279 TestInterfaceImplementationV8Internal::workerExposedAttributeAttributeGetter
(info); | |
| 280 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 281 } | |
| 282 | |
| 283 static void workerExposedAttributeAttributeSetter(v8::Local<v8::Value> v8Value,
const v8::PropertyCallbackInfo<void>& info) | |
| 284 { | |
| 285 v8::Handle<v8::Object> holder = info.Holder(); | |
| 286 ExceptionState exceptionState(ExceptionState::SetterContext, "workerExposedA
ttribute", "TestInterface", holder, info.GetIsolate()); | |
| 287 TestInterfaceImplementation* impl = V8TestInterface::toImpl(holder); | |
| 288 TONATIVE_VOID_EXCEPTIONSTATE(int, cppValue, toInt32(v8Value, exceptionState)
, exceptionState); | |
| 289 impl->setWorkerExposedAttribute(cppValue); | |
| 290 } | |
| 291 | |
| 292 static void workerExposedAttributeAttributeSetterCallback(v8::Local<v8::String>,
v8::Local<v8::Value> v8Value, const v8::PropertyCallbackInfo<void>& info) | |
| 293 { | |
| 294 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter"); | |
| 295 TestInterfaceImplementationV8Internal::workerExposedAttributeAttributeSetter
(v8Value, info); | |
| 296 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 297 } | |
| 298 | |
| 299 static void windowExposedAttributeAttributeGetter(const v8::PropertyCallbackInfo
<v8::Value>& info) | |
| 300 { | |
| 301 v8::Handle<v8::Object> holder = info.Holder(); | |
| 302 TestInterfaceImplementation* impl = V8TestInterface::toImpl(holder); | |
| 303 v8SetReturnValueInt(info, impl->windowExposedAttribute()); | |
| 304 } | |
| 305 | |
| 306 static void windowExposedAttributeAttributeGetterCallback(v8::Local<v8::String>,
const v8::PropertyCallbackInfo<v8::Value>& info) | |
| 307 { | |
| 308 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter"); | |
| 309 TestInterfaceImplementationV8Internal::windowExposedAttributeAttributeGetter
(info); | |
| 310 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 311 } | |
| 312 | |
| 313 static void windowExposedAttributeAttributeSetter(v8::Local<v8::Value> v8Value,
const v8::PropertyCallbackInfo<void>& info) | |
| 314 { | |
| 315 v8::Handle<v8::Object> holder = info.Holder(); | |
| 316 ExceptionState exceptionState(ExceptionState::SetterContext, "windowExposedA
ttribute", "TestInterface", holder, info.GetIsolate()); | |
| 317 TestInterfaceImplementation* impl = V8TestInterface::toImpl(holder); | |
| 318 TONATIVE_VOID_EXCEPTIONSTATE(int, cppValue, toInt32(v8Value, exceptionState)
, exceptionState); | |
| 319 impl->setWindowExposedAttribute(cppValue); | |
| 320 } | |
| 321 | |
| 322 static void windowExposedAttributeAttributeSetterCallback(v8::Local<v8::String>,
v8::Local<v8::Value> v8Value, const v8::PropertyCallbackInfo<void>& info) | |
| 323 { | |
| 324 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter"); | |
| 325 TestInterfaceImplementationV8Internal::windowExposedAttributeAttributeSetter
(v8Value, info); | |
| 326 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 327 } | |
| 328 | |
| 329 static void implementsStaticReadOnlyLongAttributeAttributeGetter(const v8::Prope
rtyCallbackInfo<v8::Value>& info) | |
| 330 { | |
| 331 v8SetReturnValueInt(info, TestInterfaceImplementation::implementsStaticReadO
nlyLongAttribute()); | |
| 332 } | |
| 333 | |
| 334 static void implementsStaticReadOnlyLongAttributeAttributeGetterCallback(v8::Loc
al<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info) | |
| 335 { | |
| 336 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter"); | |
| 337 TestInterfaceImplementationV8Internal::implementsStaticReadOnlyLongAttribute
AttributeGetter(info); | |
| 338 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 339 } | |
| 340 | |
| 341 static void implementsStaticStringAttributeAttributeGetter(const v8::PropertyCal
lbackInfo<v8::Value>& info) | |
| 342 { | |
| 343 v8SetReturnValueString(info, TestInterfaceImplementation::implementsStaticSt
ringAttribute(), info.GetIsolate()); | |
| 344 } | |
| 345 | |
| 346 static void implementsStaticStringAttributeAttributeGetterCallback(v8::Local<v8:
:String>, const v8::PropertyCallbackInfo<v8::Value>& info) | |
| 347 { | |
| 348 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter"); | |
| 349 TestInterfaceImplementationV8Internal::implementsStaticStringAttributeAttrib
uteGetter(info); | |
| 350 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 351 } | |
| 352 | |
| 353 static void implementsStaticStringAttributeAttributeSetter(v8::Local<v8::Value>
v8Value, const v8::PropertyCallbackInfo<void>& info) | |
| 354 { | |
| 355 TOSTRING_VOID(V8StringResource<>, cppValue, v8Value); | |
| 356 TestInterfaceImplementation::setImplementsStaticStringAttribute(cppValue); | |
| 357 } | |
| 358 | |
| 359 static void implementsStaticStringAttributeAttributeSetterCallback(v8::Local<v8:
:String>, v8::Local<v8::Value> v8Value, const v8::PropertyCallbackInfo<void>& in
fo) | |
| 360 { | |
| 361 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter"); | |
| 362 TestInterfaceImplementationV8Internal::implementsStaticStringAttributeAttrib
uteSetter(v8Value, info); | |
| 363 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 364 } | |
| 365 | |
| 366 static void implementsReadonlyStringAttributeAttributeGetter(const v8::PropertyC
allbackInfo<v8::Value>& info) | |
| 367 { | |
| 368 v8::Handle<v8::Object> holder = info.Holder(); | |
| 369 TestInterfaceImplementation* impl = V8TestInterface::toImpl(holder); | |
| 370 v8SetReturnValueString(info, impl->implementsReadonlyStringAttribute(), info
.GetIsolate()); | |
| 371 } | |
| 372 | |
| 373 static void implementsReadonlyStringAttributeAttributeGetterCallback(v8::Local<v
8::String>, const v8::PropertyCallbackInfo<v8::Value>& info) | |
| 374 { | |
| 375 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter"); | |
| 376 TestInterfaceImplementationV8Internal::implementsReadonlyStringAttributeAttr
ibuteGetter(info); | |
| 377 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 378 } | |
| 379 | |
| 380 static void implementsStringAttributeAttributeGetter(const v8::PropertyCallbackI
nfo<v8::Value>& info) | |
| 381 { | |
| 382 v8::Handle<v8::Object> holder = info.Holder(); | |
| 383 TestInterfaceImplementation* impl = V8TestInterface::toImpl(holder); | |
| 384 v8SetReturnValueString(info, impl->implementsStringAttribute(), info.GetIsol
ate()); | |
| 385 } | |
| 386 | |
| 387 static void implementsStringAttributeAttributeGetterCallback(v8::Local<v8::Strin
g>, const v8::PropertyCallbackInfo<v8::Value>& info) | |
| 388 { | |
| 389 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter"); | |
| 390 TestInterfaceImplementationV8Internal::implementsStringAttributeAttributeGet
ter(info); | |
| 391 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 392 } | |
| 393 | |
| 394 static void implementsStringAttributeAttributeSetter(v8::Local<v8::Value> v8Valu
e, const v8::PropertyCallbackInfo<void>& info) | |
| 395 { | |
| 396 v8::Handle<v8::Object> holder = info.Holder(); | |
| 397 TestInterfaceImplementation* impl = V8TestInterface::toImpl(holder); | |
| 398 TOSTRING_VOID(V8StringResource<>, cppValue, v8Value); | |
| 399 impl->setImplementsStringAttribute(cppValue); | |
| 400 } | |
| 401 | |
| 402 static void implementsStringAttributeAttributeSetterCallback(v8::Local<v8::Strin
g>, v8::Local<v8::Value> v8Value, const v8::PropertyCallbackInfo<void>& info) | |
| 403 { | |
| 404 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter"); | |
| 405 TestInterfaceImplementationV8Internal::implementsStringAttributeAttributeSet
ter(v8Value, info); | |
| 406 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 407 } | |
| 408 | |
| 409 static void implementsNodeAttributeAttributeGetter(const v8::PropertyCallbackInf
o<v8::Value>& info) | |
| 410 { | |
| 411 v8::Handle<v8::Object> holder = info.Holder(); | |
| 412 TestInterfaceImplementation* impl = V8TestInterface::toImpl(holder); | |
| 413 v8SetReturnValueFast(info, WTF::getPtr(impl->implementsNodeAttribute()), imp
l); | |
| 414 } | |
| 415 | |
| 416 static void implementsNodeAttributeAttributeGetterCallback(v8::Local<v8::String>
, const v8::PropertyCallbackInfo<v8::Value>& info) | |
| 417 { | |
| 418 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter"); | |
| 419 TestInterfaceImplementationV8Internal::implementsNodeAttributeAttributeGette
r(info); | |
| 420 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 421 } | |
| 422 | |
| 423 static void implementsNodeAttributeAttributeSetter(v8::Local<v8::Value> v8Value,
const v8::PropertyCallbackInfo<void>& info) | |
| 424 { | |
| 425 v8::Handle<v8::Object> holder = info.Holder(); | |
| 426 ExceptionState exceptionState(ExceptionState::SetterContext, "implementsNode
Attribute", "TestInterface", holder, info.GetIsolate()); | |
| 427 if (!V8Node::hasInstance(v8Value, info.GetIsolate())) { | |
| 428 exceptionState.throwTypeError("The provided value is not of type 'Node'.
"); | |
| 429 exceptionState.throwIfNeeded(); | |
| 430 return; | |
| 431 } | |
| 432 TestInterfaceImplementation* impl = V8TestInterface::toImpl(holder); | |
| 433 TONATIVE_VOID(Node*, cppValue, V8Node::toImplWithTypeCheck(info.GetIsolate()
, v8Value)); | |
| 434 impl->setImplementsNodeAttribute(WTF::getPtr(cppValue)); | |
| 435 } | |
| 436 | |
| 437 static void implementsNodeAttributeAttributeSetterCallback(v8::Local<v8::String>
, v8::Local<v8::Value> v8Value, const v8::PropertyCallbackInfo<void>& info) | |
| 438 { | |
| 439 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter"); | |
| 440 TestInterfaceImplementationV8Internal::implementsNodeAttributeAttributeSette
r(v8Value, info); | |
| 441 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 442 } | |
| 443 | |
| 444 static void implementsEventHandlerAttributeAttributeGetter(const v8::PropertyCal
lbackInfo<v8::Value>& info) | |
| 445 { | |
| 446 v8::Handle<v8::Object> holder = info.Holder(); | |
| 447 TestInterfaceImplementation* impl = V8TestInterface::toImpl(holder); | |
| 448 EventListener* cppValue(impl->implementsEventHandlerAttribute()); | |
| 449 v8SetReturnValue(info, cppValue ? v8::Handle<v8::Value>(V8AbstractEventListe
ner::cast(cppValue)->getListenerObject(impl->executionContext())) : v8::Handle<v
8::Value>(v8::Null(info.GetIsolate()))); | |
| 450 } | |
| 451 | |
| 452 static void implementsEventHandlerAttributeAttributeGetterCallback(v8::Local<v8:
:String>, const v8::PropertyCallbackInfo<v8::Value>& info) | |
| 453 { | |
| 454 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter"); | |
| 455 TestInterfaceImplementationV8Internal::implementsEventHandlerAttributeAttrib
uteGetter(info); | |
| 456 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 457 } | |
| 458 | |
| 459 static void implementsEventHandlerAttributeAttributeSetter(v8::Local<v8::Value>
v8Value, const v8::PropertyCallbackInfo<void>& info) | |
| 460 { | |
| 461 v8::Handle<v8::Object> holder = info.Holder(); | |
| 462 TestInterfaceImplementation* impl = V8TestInterface::toImpl(holder); | |
| 463 moveEventListenerToNewWrapper(holder, impl->implementsEventHandlerAttribute(
), v8Value, V8TestInterface::eventListenerCacheIndex, info.GetIsolate()); | |
| 464 impl->setImplementsEventHandlerAttribute(V8EventListenerList::getEventListen
er(ScriptState::current(info.GetIsolate()), v8Value, true, ListenerFindOrCreate)
); | |
| 465 } | |
| 466 | |
| 467 static void implementsEventHandlerAttributeAttributeSetterCallback(v8::Local<v8:
:String>, v8::Local<v8::Value> v8Value, const v8::PropertyCallbackInfo<void>& in
fo) | |
| 468 { | |
| 469 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter"); | |
| 470 TestInterfaceImplementationV8Internal::implementsEventHandlerAttributeAttrib
uteSetter(v8Value, info); | |
| 471 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 472 } | |
| 473 | |
| 474 static void implementsRuntimeEnabledNodeAttributeAttributeGetter(const v8::Prope
rtyCallbackInfo<v8::Value>& info) | |
| 475 { | |
| 476 v8::Handle<v8::Object> holder = info.Holder(); | |
| 477 TestInterfaceImplementation* impl = V8TestInterface::toImpl(holder); | |
| 478 v8SetReturnValueFast(info, WTF::getPtr(impl->implementsRuntimeEnabledNodeAtt
ribute()), impl); | |
| 479 } | |
| 480 | |
| 481 static void implementsRuntimeEnabledNodeAttributeAttributeGetterCallback(v8::Loc
al<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info) | |
| 482 { | |
| 483 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter"); | |
| 484 TestInterfaceImplementationV8Internal::implementsRuntimeEnabledNodeAttribute
AttributeGetter(info); | |
| 485 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 486 } | |
| 487 | |
| 488 static void implementsRuntimeEnabledNodeAttributeAttributeSetter(v8::Local<v8::V
alue> v8Value, const v8::PropertyCallbackInfo<void>& info) | |
| 489 { | |
| 490 v8::Handle<v8::Object> holder = info.Holder(); | |
| 491 ExceptionState exceptionState(ExceptionState::SetterContext, "implementsRunt
imeEnabledNodeAttribute", "TestInterface", holder, info.GetIsolate()); | |
| 492 if (!V8Node::hasInstance(v8Value, info.GetIsolate())) { | |
| 493 exceptionState.throwTypeError("The provided value is not of type 'Node'.
"); | |
| 494 exceptionState.throwIfNeeded(); | |
| 495 return; | |
| 496 } | |
| 497 TestInterfaceImplementation* impl = V8TestInterface::toImpl(holder); | |
| 498 TONATIVE_VOID(Node*, cppValue, V8Node::toImplWithTypeCheck(info.GetIsolate()
, v8Value)); | |
| 499 impl->setImplementsRuntimeEnabledNodeAttribute(WTF::getPtr(cppValue)); | |
| 500 } | |
| 501 | |
| 502 static void implementsRuntimeEnabledNodeAttributeAttributeSetterCallback(v8::Loc
al<v8::String>, v8::Local<v8::Value> v8Value, const v8::PropertyCallbackInfo<voi
d>& info) | |
| 503 { | |
| 504 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter"); | |
| 505 TestInterfaceImplementationV8Internal::implementsRuntimeEnabledNodeAttribute
AttributeSetter(v8Value, info); | |
| 506 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 507 } | |
| 508 | |
| 509 static void implementsPerContextEnabledNodeAttributeAttributeGetter(const v8::Pr
opertyCallbackInfo<v8::Value>& info) | |
| 510 { | |
| 511 v8::Handle<v8::Object> holder = info.Holder(); | |
| 512 TestInterfaceImplementation* impl = V8TestInterface::toImpl(holder); | |
| 513 v8SetReturnValueFast(info, WTF::getPtr(impl->implementsPerContextEnabledNode
Attribute()), impl); | |
| 514 } | |
| 515 | |
| 516 static void implementsPerContextEnabledNodeAttributeAttributeGetterCallback(v8::
Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info) | |
| 517 { | |
| 518 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter"); | |
| 519 TestInterfaceImplementationV8Internal::implementsPerContextEnabledNodeAttrib
uteAttributeGetter(info); | |
| 520 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 521 } | |
| 522 | |
| 523 static void implementsPerContextEnabledNodeAttributeAttributeSetter(v8::Local<v8
::Value> v8Value, const v8::PropertyCallbackInfo<void>& info) | |
| 524 { | |
| 525 v8::Handle<v8::Object> holder = info.Holder(); | |
| 526 ExceptionState exceptionState(ExceptionState::SetterContext, "implementsPerC
ontextEnabledNodeAttribute", "TestInterface", holder, info.GetIsolate()); | |
| 527 if (!V8Node::hasInstance(v8Value, info.GetIsolate())) { | |
| 528 exceptionState.throwTypeError("The provided value is not of type 'Node'.
"); | |
| 529 exceptionState.throwIfNeeded(); | |
| 530 return; | |
| 531 } | |
| 532 TestInterfaceImplementation* impl = V8TestInterface::toImpl(holder); | |
| 533 TONATIVE_VOID(Node*, cppValue, V8Node::toImplWithTypeCheck(info.GetIsolate()
, v8Value)); | |
| 534 impl->setImplementsPerContextEnabledNodeAttribute(WTF::getPtr(cppValue)); | |
| 535 } | |
| 536 | |
| 537 static void implementsPerContextEnabledNodeAttributeAttributeSetterCallback(v8::
Local<v8::String>, v8::Local<v8::Value> v8Value, const v8::PropertyCallbackInfo<
void>& info) | |
| 538 { | |
| 539 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter"); | |
| 540 TestInterfaceImplementationV8Internal::implementsPerContextEnabledNodeAttrib
uteAttributeSetter(v8Value, info); | |
| 541 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 542 } | |
| 543 | |
| 544 static void implements2StaticStringAttributeAttributeGetter(const v8::PropertyCa
llbackInfo<v8::Value>& info) | |
| 545 { | |
| 546 v8SetReturnValueString(info, TestImplements2::implements2StaticStringAttribu
te(), info.GetIsolate()); | |
| 547 } | |
| 548 | |
| 549 static void implements2StaticStringAttributeAttributeGetterCallback(v8::Local<v8
::String>, const v8::PropertyCallbackInfo<v8::Value>& info) | |
| 550 { | |
| 551 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter"); | |
| 552 TestInterfaceImplementationV8Internal::implements2StaticStringAttributeAttri
buteGetter(info); | |
| 553 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 554 } | |
| 555 | |
| 556 static void implements2StaticStringAttributeAttributeSetter(v8::Local<v8::Value>
v8Value, const v8::PropertyCallbackInfo<void>& info) | |
| 557 { | |
| 558 TOSTRING_VOID(V8StringResource<>, cppValue, v8Value); | |
| 559 TestImplements2::setImplements2StaticStringAttribute(cppValue); | |
| 560 } | |
| 561 | |
| 562 static void implements2StaticStringAttributeAttributeSetterCallback(v8::Local<v8
::String>, v8::Local<v8::Value> v8Value, const v8::PropertyCallbackInfo<void>& i
nfo) | |
| 563 { | |
| 564 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter"); | |
| 565 TestInterfaceImplementationV8Internal::implements2StaticStringAttributeAttri
buteSetter(v8Value, info); | |
| 566 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 567 } | |
| 568 | |
| 569 static void implements2StringAttributeAttributeGetter(const v8::PropertyCallback
Info<v8::Value>& info) | |
| 570 { | |
| 571 v8::Handle<v8::Object> holder = info.Holder(); | |
| 572 TestInterfaceImplementation* impl = V8TestInterface::toImpl(holder); | |
| 573 v8SetReturnValueString(info, TestImplements2::implements2StringAttribute(*im
pl), info.GetIsolate()); | |
| 574 } | |
| 575 | |
| 576 static void implements2StringAttributeAttributeGetterCallback(v8::Local<v8::Stri
ng>, const v8::PropertyCallbackInfo<v8::Value>& info) | |
| 577 { | |
| 578 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter"); | |
| 579 TestInterfaceImplementationV8Internal::implements2StringAttributeAttributeGe
tter(info); | |
| 580 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 581 } | |
| 582 | |
| 583 static void implements2StringAttributeAttributeSetter(v8::Local<v8::Value> v8Val
ue, const v8::PropertyCallbackInfo<void>& info) | |
| 584 { | |
| 585 v8::Handle<v8::Object> holder = info.Holder(); | |
| 586 TestInterfaceImplementation* impl = V8TestInterface::toImpl(holder); | |
| 587 TOSTRING_VOID(V8StringResource<>, cppValue, v8Value); | |
| 588 TestImplements2::setImplements2StringAttribute(*impl, cppValue); | |
| 589 } | |
| 590 | |
| 591 static void implements2StringAttributeAttributeSetterCallback(v8::Local<v8::Stri
ng>, v8::Local<v8::Value> v8Value, const v8::PropertyCallbackInfo<void>& info) | |
| 592 { | |
| 593 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter"); | |
| 594 TestInterfaceImplementationV8Internal::implements2StringAttributeAttributeSe
tter(v8Value, info); | |
| 595 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 596 } | |
| 597 | |
| 598 static void implements3StringAttributeAttributeGetter(const v8::PropertyCallback
Info<v8::Value>& info) | |
| 599 { | |
| 600 v8::Handle<v8::Object> holder = info.Holder(); | |
| 601 TestInterfaceImplementation* impl = V8TestInterface::toImpl(holder); | |
| 602 v8SetReturnValueString(info, TestImplements3Implementation::implements3Strin
gAttribute(*impl), info.GetIsolate()); | |
| 603 } | |
| 604 | |
| 605 static void implements3StringAttributeAttributeGetterCallback(v8::Local<v8::Stri
ng>, const v8::PropertyCallbackInfo<v8::Value>& info) | |
| 606 { | |
| 607 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter"); | |
| 608 TestInterfaceImplementationV8Internal::implements3StringAttributeAttributeGe
tter(info); | |
| 609 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 610 } | |
| 611 | |
| 612 static void implements3StringAttributeAttributeSetter(v8::Local<v8::Value> v8Val
ue, const v8::PropertyCallbackInfo<void>& info) | |
| 613 { | |
| 614 v8::Handle<v8::Object> holder = info.Holder(); | |
| 615 TestInterfaceImplementation* impl = V8TestInterface::toImpl(holder); | |
| 616 TOSTRING_VOID(V8StringResource<>, cppValue, v8Value); | |
| 617 TestImplements3Implementation::setImplements3StringAttribute(*impl, cppValue
); | |
| 618 } | |
| 619 | |
| 620 static void implements3StringAttributeAttributeSetterCallback(v8::Local<v8::Stri
ng>, v8::Local<v8::Value> v8Value, const v8::PropertyCallbackInfo<void>& info) | |
| 621 { | |
| 622 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter"); | |
| 623 TestInterfaceImplementationV8Internal::implements3StringAttributeAttributeSe
tter(v8Value, info); | |
| 624 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 625 } | |
| 626 | |
| 627 static void implements3StaticStringAttributeAttributeGetter(const v8::PropertyCa
llbackInfo<v8::Value>& info) | |
| 628 { | |
| 629 v8SetReturnValueString(info, TestImplements3Implementation::implements3Stati
cStringAttribute(), info.GetIsolate()); | |
| 630 } | |
| 631 | |
| 632 static void implements3StaticStringAttributeAttributeGetterCallback(v8::Local<v8
::String>, const v8::PropertyCallbackInfo<v8::Value>& info) | |
| 633 { | |
| 634 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter"); | |
| 635 TestInterfaceImplementationV8Internal::implements3StaticStringAttributeAttri
buteGetter(info); | |
| 636 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 637 } | |
| 638 | |
| 639 static void implements3StaticStringAttributeAttributeSetter(v8::Local<v8::Value>
v8Value, const v8::PropertyCallbackInfo<void>& info) | |
| 640 { | |
| 641 TOSTRING_VOID(V8StringResource<>, cppValue, v8Value); | |
| 642 TestImplements3Implementation::setImplements3StaticStringAttribute(cppValue)
; | |
| 643 } | |
| 644 | |
| 645 static void implements3StaticStringAttributeAttributeSetterCallback(v8::Local<v8
::String>, v8::Local<v8::Value> v8Value, const v8::PropertyCallbackInfo<void>& i
nfo) | |
| 646 { | |
| 647 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter"); | |
| 648 TestInterfaceImplementationV8Internal::implements3StaticStringAttributeAttri
buteSetter(v8Value, info); | |
| 649 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 650 } | |
| 651 | |
| 652 #if ENABLE(PARTIAL_CONDITION) | |
| 653 static void partialLongAttributeAttributeGetter(const v8::PropertyCallbackInfo<v
8::Value>& info) | |
| 654 { | |
| 655 v8::Handle<v8::Object> holder = info.Holder(); | |
| 656 TestInterfaceImplementation* impl = V8TestInterface::toImpl(holder); | |
| 657 v8SetReturnValueInt(info, TestPartialInterface::partialLongAttribute(*impl))
; | |
| 658 } | |
| 659 #endif // ENABLE(PARTIAL_CONDITION) | |
| 660 | |
| 661 #if ENABLE(PARTIAL_CONDITION) | |
| 662 static void partialLongAttributeAttributeGetterCallback(v8::Local<v8::String>, c
onst v8::PropertyCallbackInfo<v8::Value>& info) | |
| 663 { | |
| 664 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter"); | |
| 665 TestInterfaceImplementationV8Internal::partialLongAttributeAttributeGetter(i
nfo); | |
| 666 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 667 } | |
| 668 #endif // ENABLE(PARTIAL_CONDITION) | |
| 669 | |
| 670 #if ENABLE(PARTIAL_CONDITION) | |
| 671 static void partialLongAttributeAttributeSetter(v8::Local<v8::Value> v8Value, co
nst v8::PropertyCallbackInfo<void>& info) | |
| 672 { | |
| 673 v8::Handle<v8::Object> holder = info.Holder(); | |
| 674 ExceptionState exceptionState(ExceptionState::SetterContext, "partialLongAtt
ribute", "TestInterface", holder, info.GetIsolate()); | |
| 675 TestInterfaceImplementation* impl = V8TestInterface::toImpl(holder); | |
| 676 TONATIVE_VOID_EXCEPTIONSTATE(int, cppValue, toInt32(v8Value, exceptionState)
, exceptionState); | |
| 677 TestPartialInterface::setPartialLongAttribute(*impl, cppValue); | |
| 678 } | |
| 679 #endif // ENABLE(PARTIAL_CONDITION) | |
| 680 | |
| 681 #if ENABLE(PARTIAL_CONDITION) | |
| 682 static void partialLongAttributeAttributeSetterCallback(v8::Local<v8::String>, v
8::Local<v8::Value> v8Value, const v8::PropertyCallbackInfo<void>& info) | |
| 683 { | |
| 684 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter"); | |
| 685 TestInterfaceImplementationV8Internal::partialLongAttributeAttributeSetter(v
8Value, info); | |
| 686 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 687 } | |
| 688 #endif // ENABLE(PARTIAL_CONDITION) | |
| 689 | |
| 690 #if ENABLE(PARTIAL_CONDITION) | |
| 691 static void partialStaticLongAttributeAttributeGetter(const v8::PropertyCallback
Info<v8::Value>& info) | |
| 692 { | |
| 693 v8SetReturnValueInt(info, TestPartialInterface::partialStaticLongAttribute()
); | |
| 694 } | |
| 695 #endif // ENABLE(PARTIAL_CONDITION) | |
| 696 | |
| 697 #if ENABLE(PARTIAL_CONDITION) | |
| 698 static void partialStaticLongAttributeAttributeGetterCallback(v8::Local<v8::Stri
ng>, const v8::PropertyCallbackInfo<v8::Value>& info) | |
| 699 { | |
| 700 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter"); | |
| 701 TestInterfaceImplementationV8Internal::partialStaticLongAttributeAttributeGe
tter(info); | |
| 702 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 703 } | |
| 704 #endif // ENABLE(PARTIAL_CONDITION) | |
| 705 | |
| 706 #if ENABLE(PARTIAL_CONDITION) | |
| 707 static void partialStaticLongAttributeAttributeSetter(v8::Local<v8::Value> v8Val
ue, const v8::PropertyCallbackInfo<void>& info) | |
| 708 { | |
| 709 ExceptionState exceptionState(ExceptionState::SetterContext, "partialStaticL
ongAttribute", "TestInterface", holder, info.GetIsolate()); | |
| 710 TONATIVE_VOID_EXCEPTIONSTATE(int, cppValue, toInt32(v8Value, exceptionState)
, exceptionState); | |
| 711 TestPartialInterface::setPartialStaticLongAttribute(cppValue); | |
| 712 } | |
| 713 #endif // ENABLE(PARTIAL_CONDITION) | |
| 714 | |
| 715 #if ENABLE(PARTIAL_CONDITION) | |
| 716 static void partialStaticLongAttributeAttributeSetterCallback(v8::Local<v8::Stri
ng>, v8::Local<v8::Value> v8Value, const v8::PropertyCallbackInfo<void>& info) | |
| 717 { | |
| 718 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter"); | |
| 719 TestInterfaceImplementationV8Internal::partialStaticLongAttributeAttributeSe
tter(v8Value, info); | |
| 720 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 721 } | |
| 722 #endif // ENABLE(PARTIAL_CONDITION) | |
| 723 | |
| 724 #if ENABLE(PARTIAL_CONDITION) | |
| 725 static void partialCallWithExecutionContextLongAttributeAttributeGetter(const v8
::PropertyCallbackInfo<v8::Value>& info) | |
| 726 { | |
| 727 v8::Handle<v8::Object> holder = info.Holder(); | |
| 728 TestInterfaceImplementation* impl = V8TestInterface::toImpl(holder); | |
| 729 ExecutionContext* executionContext = currentExecutionContext(info.GetIsolate
()); | |
| 730 v8SetReturnValueInt(info, TestPartialInterface::partialCallWithExecutionCont
extLongAttribute(executionContext, *impl)); | |
| 731 } | |
| 732 #endif // ENABLE(PARTIAL_CONDITION) | |
| 733 | |
| 734 #if ENABLE(PARTIAL_CONDITION) | |
| 735 static void partialCallWithExecutionContextLongAttributeAttributeGetterCallback(
v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info) | |
| 736 { | |
| 737 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter"); | |
| 738 TestInterfaceImplementationV8Internal::partialCallWithExecutionContextLongAt
tributeAttributeGetter(info); | |
| 739 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 740 } | |
| 741 #endif // ENABLE(PARTIAL_CONDITION) | |
| 742 | |
| 743 #if ENABLE(PARTIAL_CONDITION) | |
| 744 static void partialCallWithExecutionContextLongAttributeAttributeSetter(v8::Loca
l<v8::Value> v8Value, const v8::PropertyCallbackInfo<void>& info) | |
| 745 { | |
| 746 v8::Handle<v8::Object> holder = info.Holder(); | |
| 747 ExceptionState exceptionState(ExceptionState::SetterContext, "partialCallWit
hExecutionContextLongAttribute", "TestInterface", holder, info.GetIsolate()); | |
| 748 TestInterfaceImplementation* impl = V8TestInterface::toImpl(holder); | |
| 749 TONATIVE_VOID_EXCEPTIONSTATE(int, cppValue, toInt32(v8Value, exceptionState)
, exceptionState); | |
| 750 ExecutionContext* executionContext = currentExecutionContext(info.GetIsolate
()); | |
| 751 TestPartialInterface::setPartialCallWithExecutionContextLongAttribute(execut
ionContext, *impl, cppValue); | |
| 752 } | |
| 753 #endif // ENABLE(PARTIAL_CONDITION) | |
| 754 | |
| 755 #if ENABLE(PARTIAL_CONDITION) | |
| 756 static void partialCallWithExecutionContextLongAttributeAttributeSetterCallback(
v8::Local<v8::String>, v8::Local<v8::Value> v8Value, const v8::PropertyCallbackI
nfo<void>& info) | |
| 757 { | |
| 758 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter"); | |
| 759 TestInterfaceImplementationV8Internal::partialCallWithExecutionContextLongAt
tributeAttributeSetter(v8Value, info); | |
| 760 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 761 } | |
| 762 #endif // ENABLE(PARTIAL_CONDITION) | |
| 763 | |
| 764 #if ENABLE(PARTIAL_CONDITION) | |
| 765 static void partialPartialEnumTypeAttributeAttributeGetter(const v8::PropertyCal
lbackInfo<v8::Value>& info) | |
| 766 { | |
| 767 v8::Handle<v8::Object> holder = info.Holder(); | |
| 768 TestInterfaceImplementation* impl = V8TestInterface::toImpl(holder); | |
| 769 v8SetReturnValueString(info, TestPartialInterface::partialPartialEnumTypeAtt
ribute(*impl), info.GetIsolate()); | |
| 770 } | |
| 771 #endif // ENABLE(PARTIAL_CONDITION) | |
| 772 | |
| 773 #if ENABLE(PARTIAL_CONDITION) | |
| 774 static void partialPartialEnumTypeAttributeAttributeGetterCallback(v8::Local<v8:
:String>, const v8::PropertyCallbackInfo<v8::Value>& info) | |
| 775 { | |
| 776 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter"); | |
| 777 TestInterfaceImplementationV8Internal::partialPartialEnumTypeAttributeAttrib
uteGetter(info); | |
| 778 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 779 } | |
| 780 #endif // ENABLE(PARTIAL_CONDITION) | |
| 781 | |
| 782 #if ENABLE(PARTIAL_CONDITION) | |
| 783 static void partialPartialEnumTypeAttributeAttributeSetter(v8::Local<v8::Value>
v8Value, const v8::PropertyCallbackInfo<void>& info) | |
| 784 { | |
| 785 v8::Handle<v8::Object> holder = info.Holder(); | |
| 786 TestInterfaceImplementation* impl = V8TestInterface::toImpl(holder); | |
| 787 TOSTRING_VOID(V8StringResource<>, cppValue, v8Value); | |
| 788 String string = cppValue; | |
| 789 if (!(string == "foo" || string == "bar")) | |
| 790 return; | |
| 791 TestPartialInterface::setPartialPartialEnumTypeAttribute(*impl, cppValue); | |
| 792 } | |
| 793 #endif // ENABLE(PARTIAL_CONDITION) | |
| 794 | |
| 795 #if ENABLE(PARTIAL_CONDITION) | |
| 796 static void partialPartialEnumTypeAttributeAttributeSetterCallback(v8::Local<v8:
:String>, v8::Local<v8::Value> v8Value, const v8::PropertyCallbackInfo<void>& in
fo) | |
| 797 { | |
| 798 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter"); | |
| 799 TestInterfaceImplementationV8Internal::partialPartialEnumTypeAttributeAttrib
uteSetter(v8Value, info); | |
| 800 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 801 } | |
| 802 #endif // ENABLE(PARTIAL_CONDITION) | |
| 803 | |
| 804 #if ENABLE(PARTIAL_CONDITION) | |
| 805 static void stringAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Va
lue>& info) | |
| 806 { | |
| 807 v8::Handle<v8::Object> holder = info.Holder(); | |
| 808 TestInterfaceImplementation* impl = V8TestInterface::toImpl(holder); | |
| 809 String result; | |
| 810 if (!V8TestInterface::PrivateScript::stringAttributeAttributeGetter(toFrameI
fNotDetached(info.GetIsolate()->GetCurrentContext()), impl, &result)) | |
| 811 return; | |
| 812 v8SetReturnValueString(info, result, info.GetIsolate()); | |
| 813 } | |
| 814 #endif // ENABLE(PARTIAL_CONDITION) | |
| 815 | |
| 816 #if ENABLE(PARTIAL_CONDITION) | |
| 817 static void stringAttributeAttributeGetterCallback(v8::Local<v8::String>, const
v8::PropertyCallbackInfo<v8::Value>& info) | |
| 818 { | |
| 819 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter"); | |
| 820 TestInterfaceImplementationV8Internal::stringAttributeAttributeGetter(info); | |
| 821 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 822 } | |
| 823 #endif // ENABLE(PARTIAL_CONDITION) | |
| 824 | |
| 825 #if ENABLE(PARTIAL_CONDITION) | |
| 826 static void stringAttributeAttributeSetter(v8::Local<v8::Value> v8Value, const v
8::PropertyCallbackInfo<void>& info) | |
| 827 { | |
| 828 v8::Handle<v8::Object> holder = info.Holder(); | |
| 829 TestInterfaceImplementation* impl = V8TestInterface::toImpl(holder); | |
| 830 TOSTRING_VOID(V8StringResource<>, cppValue, v8Value); | |
| 831 V8TestInterface::PrivateScript::stringAttributeAttributeSetter(toFrameIfNotD
etached(info.GetIsolate()->GetCurrentContext()), impl, cppValue); | |
| 832 } | |
| 833 #endif // ENABLE(PARTIAL_CONDITION) | |
| 834 | |
| 835 #if ENABLE(PARTIAL_CONDITION) | |
| 836 static void stringAttributeAttributeSetterCallback(v8::Local<v8::String>, v8::Lo
cal<v8::Value> v8Value, const v8::PropertyCallbackInfo<void>& info) | |
| 837 { | |
| 838 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter"); | |
| 839 TestInterfaceImplementationV8Internal::stringAttributeAttributeSetter(v8Valu
e, info); | |
| 840 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 841 } | |
| 842 #endif // ENABLE(PARTIAL_CONDITION) | |
| 843 | |
| 844 static void partial2LongAttributeAttributeGetter(const v8::PropertyCallbackInfo<
v8::Value>& info) | |
| 845 { | |
| 846 v8::Handle<v8::Object> holder = info.Holder(); | |
| 847 TestInterfaceImplementation* impl = V8TestInterface::toImpl(holder); | |
| 848 v8SetReturnValueInt(info, TestPartialInterfaceImplementation::partial2LongAt
tribute(*impl)); | |
| 849 } | |
| 850 | |
| 851 static void partial2LongAttributeAttributeGetterCallback(v8::Local<v8::String>,
const v8::PropertyCallbackInfo<v8::Value>& info) | |
| 852 { | |
| 853 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter"); | |
| 854 TestInterfaceImplementationV8Internal::partial2LongAttributeAttributeGetter(
info); | |
| 855 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 856 } | |
| 857 | |
| 858 static void partial2LongAttributeAttributeSetter(v8::Local<v8::Value> v8Value, c
onst v8::PropertyCallbackInfo<void>& info) | |
| 859 { | |
| 860 v8::Handle<v8::Object> holder = info.Holder(); | |
| 861 ExceptionState exceptionState(ExceptionState::SetterContext, "partial2LongAt
tribute", "TestInterface", holder, info.GetIsolate()); | |
| 862 TestInterfaceImplementation* impl = V8TestInterface::toImpl(holder); | |
| 863 TONATIVE_VOID_EXCEPTIONSTATE(int, cppValue, toInt32(v8Value, exceptionState)
, exceptionState); | |
| 864 TestPartialInterfaceImplementation::setPartial2LongAttribute(*impl, cppValue
); | |
| 865 } | |
| 866 | |
| 867 static void partial2LongAttributeAttributeSetterCallback(v8::Local<v8::String>,
v8::Local<v8::Value> v8Value, const v8::PropertyCallbackInfo<void>& info) | |
| 868 { | |
| 869 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter"); | |
| 870 TestInterfaceImplementationV8Internal::partial2LongAttributeAttributeSetter(
v8Value, info); | |
| 871 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 872 } | |
| 873 | |
| 874 static void partial2StaticLongAttributeAttributeGetter(const v8::PropertyCallbac
kInfo<v8::Value>& info) | |
| 875 { | |
| 876 v8SetReturnValueInt(info, TestPartialInterfaceImplementation::partial2Static
LongAttribute()); | |
| 877 } | |
| 878 | |
| 879 static void partial2StaticLongAttributeAttributeGetterCallback(v8::Local<v8::Str
ing>, const v8::PropertyCallbackInfo<v8::Value>& info) | |
| 880 { | |
| 881 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter"); | |
| 882 TestInterfaceImplementationV8Internal::partial2StaticLongAttributeAttributeG
etter(info); | |
| 883 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 884 } | |
| 885 | |
| 886 static void partial2StaticLongAttributeAttributeSetter(v8::Local<v8::Value> v8Va
lue, const v8::PropertyCallbackInfo<void>& info) | |
| 887 { | |
| 888 ExceptionState exceptionState(ExceptionState::SetterContext, "partial2Static
LongAttribute", "TestInterface", holder, info.GetIsolate()); | |
| 889 TONATIVE_VOID_EXCEPTIONSTATE(int, cppValue, toInt32(v8Value, exceptionState)
, exceptionState); | |
| 890 TestPartialInterfaceImplementation::setPartial2StaticLongAttribute(cppValue)
; | |
| 891 } | |
| 892 | |
| 893 static void partial2StaticLongAttributeAttributeSetterCallback(v8::Local<v8::Str
ing>, v8::Local<v8::Value> v8Value, const v8::PropertyCallbackInfo<void>& info) | |
| 894 { | |
| 895 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter"); | |
| 896 TestInterfaceImplementationV8Internal::partial2StaticLongAttributeAttributeS
etter(v8Value, info); | |
| 897 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 898 } | |
| 899 | |
| 900 static void partial3LongAttributeAttributeGetter(const v8::PropertyCallbackInfo<
v8::Value>& info) | |
| 901 { | |
| 902 v8::Handle<v8::Object> holder = info.Holder(); | |
| 903 TestInterfaceImplementation* impl = V8TestInterface::toImpl(holder); | |
| 904 v8SetReturnValueInt(info, TestPartialInterfaceImplementation3::partial3LongA
ttribute(*impl)); | |
| 905 } | |
| 906 | |
| 907 static void partial3LongAttributeAttributeGetterCallback(v8::Local<v8::String>,
const v8::PropertyCallbackInfo<v8::Value>& info) | |
| 908 { | |
| 909 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter"); | |
| 910 TestInterfaceImplementationV8Internal::partial3LongAttributeAttributeGetter(
info); | |
| 911 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 912 } | |
| 913 | |
| 914 static void partial3LongAttributeAttributeSetter(v8::Local<v8::Value> v8Value, c
onst v8::PropertyCallbackInfo<void>& info) | |
| 915 { | |
| 916 v8::Handle<v8::Object> holder = info.Holder(); | |
| 917 ExceptionState exceptionState(ExceptionState::SetterContext, "partial3LongAt
tribute", "TestInterface", holder, info.GetIsolate()); | |
| 918 TestInterfaceImplementation* impl = V8TestInterface::toImpl(holder); | |
| 919 TONATIVE_VOID_EXCEPTIONSTATE(int, cppValue, toInt32(v8Value, exceptionState)
, exceptionState); | |
| 920 TestPartialInterfaceImplementation3::setPartial3LongAttribute(*impl, cppValu
e); | |
| 921 } | |
| 922 | |
| 923 static void partial3LongAttributeAttributeSetterCallback(v8::Local<v8::String>,
v8::Local<v8::Value> v8Value, const v8::PropertyCallbackInfo<void>& info) | |
| 924 { | |
| 925 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter"); | |
| 926 TestInterfaceImplementationV8Internal::partial3LongAttributeAttributeSetter(
v8Value, info); | |
| 927 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 928 } | |
| 929 | |
| 930 static void partial3StaticLongAttributeAttributeGetter(const v8::PropertyCallbac
kInfo<v8::Value>& info) | |
| 931 { | |
| 932 v8SetReturnValueInt(info, TestPartialInterfaceImplementation3::partial3Stati
cLongAttribute()); | |
| 933 } | |
| 934 | |
| 935 static void partial3StaticLongAttributeAttributeGetterCallback(v8::Local<v8::Str
ing>, const v8::PropertyCallbackInfo<v8::Value>& info) | |
| 936 { | |
| 937 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMGetter"); | |
| 938 TestInterfaceImplementationV8Internal::partial3StaticLongAttributeAttributeG
etter(info); | |
| 939 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 940 } | |
| 941 | |
| 942 static void partial3StaticLongAttributeAttributeSetter(v8::Local<v8::Value> v8Va
lue, const v8::PropertyCallbackInfo<void>& info) | |
| 943 { | |
| 944 ExceptionState exceptionState(ExceptionState::SetterContext, "partial3Static
LongAttribute", "TestInterface", holder, info.GetIsolate()); | |
| 945 TONATIVE_VOID_EXCEPTIONSTATE(int, cppValue, toInt32(v8Value, exceptionState)
, exceptionState); | |
| 946 TestPartialInterfaceImplementation3::setPartial3StaticLongAttribute(cppValue
); | |
| 947 } | |
| 948 | |
| 949 static void partial3StaticLongAttributeAttributeSetterCallback(v8::Local<v8::Str
ing>, v8::Local<v8::Value> v8Value, const v8::PropertyCallbackInfo<void>& info) | |
| 950 { | |
| 951 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMSetter"); | |
| 952 TestInterfaceImplementationV8Internal::partial3StaticLongAttributeAttributeS
etter(v8Value, info); | |
| 953 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 954 } | |
| 955 | |
| 956 static void TestInterfaceImplementationConstructorGetter(v8::Local<v8::String>,
const v8::PropertyCallbackInfo<v8::Value>& info) | |
| 957 { | |
| 958 v8::Handle<v8::Value> data = info.Data(); | |
| 959 ASSERT(data->IsExternal()); | |
| 960 V8PerContextData* perContextData = V8PerContextData::from(info.Holder()->Cre
ationContext()); | |
| 961 if (!perContextData) | |
| 962 return; | |
| 963 v8SetReturnValue(info, perContextData->constructorForType(WrapperTypeInfo::u
nwrap(data))); | |
| 964 } | |
| 965 | |
| 966 static void TestInterfaceImplementationForceSetAttributeOnThis(v8::Local<v8::Str
ing> name, v8::Local<v8::Value> v8Value, const v8::PropertyCallbackInfo<void>& i
nfo) | |
| 967 { | |
| 968 if (info.This()->IsObject()) | |
| 969 v8::Handle<v8::Object>::Cast(info.This())->ForceSet(name, v8Value); | |
| 970 } | |
| 971 | |
| 972 static void TestInterfaceImplementationForceSetAttributeOnThisCallback(v8::Local
<v8::String> name, v8::Local<v8::Value> v8Value, const v8::PropertyCallbackInfo<
void>& info) | |
| 973 { | |
| 974 TestInterfaceImplementationV8Internal::TestInterfaceImplementationForceSetAt
tributeOnThis(name, v8Value, info); | |
| 975 } | |
| 976 | |
| 977 static void voidMethodTestInterfaceEmptyArgMethod(const v8::FunctionCallbackInfo
<v8::Value>& info) | |
| 978 { | |
| 979 if (UNLIKELY(info.Length() < 1)) { | |
| 980 V8ThrowException::throwException(createMinimumArityTypeErrorForMethod("v
oidMethodTestInterfaceEmptyArg", "TestInterface", 1, info.Length(), info.GetIsol
ate()), info.GetIsolate()); | |
| 981 return; | |
| 982 } | |
| 983 TestInterfaceImplementation* impl = V8TestInterface::toImpl(info.Holder()); | |
| 984 TestInterfaceEmpty* testInterfaceEmptyArg; | |
| 985 { | |
| 986 v8::TryCatch block; | |
| 987 V8RethrowTryCatchScope rethrow(block); | |
| 988 if (info.Length() > 0 && !V8TestInterfaceEmpty::hasInstance(info[0], inf
o.GetIsolate())) { | |
| 989 V8ThrowException::throwTypeError(ExceptionMessages::failedToExecute(
"voidMethodTestInterfaceEmptyArg", "TestInterface", "parameter 1 is not of type
'TestInterfaceEmpty'."), info.GetIsolate()); | |
| 990 return; | |
| 991 } | |
| 992 TONATIVE_VOID_INTERNAL(testInterfaceEmptyArg, V8TestInterfaceEmpty::toIm
plWithTypeCheck(info.GetIsolate(), info[0])); | |
| 993 } | |
| 994 impl->voidMethodTestInterfaceEmptyArg(testInterfaceEmptyArg); | |
| 995 } | |
| 996 | |
| 997 static void voidMethodTestInterfaceEmptyArgMethodCallback(const v8::FunctionCall
backInfo<v8::Value>& info) | |
| 998 { | |
| 999 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMMethod"); | |
| 1000 TestInterfaceImplementationV8Internal::voidMethodTestInterfaceEmptyArgMethod
(info); | |
| 1001 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 1002 } | |
| 1003 | |
| 1004 static void voidMethodDoubleArgFloatArgMethod(const v8::FunctionCallbackInfo<v8:
:Value>& info) | |
| 1005 { | |
| 1006 if (UNLIKELY(info.Length() < 2)) { | |
| 1007 V8ThrowException::throwException(createMinimumArityTypeErrorForMethod("v
oidMethodDoubleArgFloatArg", "TestInterface", 2, info.Length(), info.GetIsolate(
)), info.GetIsolate()); | |
| 1008 return; | |
| 1009 } | |
| 1010 TestInterfaceImplementation* impl = V8TestInterface::toImpl(info.Holder()); | |
| 1011 double doubleArg; | |
| 1012 float floatArg; | |
| 1013 { | |
| 1014 v8::TryCatch block; | |
| 1015 V8RethrowTryCatchScope rethrow(block); | |
| 1016 TONATIVE_VOID_INTERNAL(doubleArg, static_cast<double>(info[0]->NumberVal
ue())); | |
| 1017 if (!std::isfinite(doubleArg)) { | |
| 1018 V8ThrowException::throwTypeError(ExceptionMessages::failedToExecute(
"voidMethodDoubleArgFloatArg", "TestInterface", "double parameter 1 is non-finit
e."), info.GetIsolate()); | |
| 1019 return; | |
| 1020 } | |
| 1021 TONATIVE_VOID_INTERNAL(floatArg, static_cast<float>(info[1]->NumberValue
())); | |
| 1022 if (!std::isfinite(floatArg)) { | |
| 1023 V8ThrowException::throwTypeError(ExceptionMessages::failedToExecute(
"voidMethodDoubleArgFloatArg", "TestInterface", "float parameter 2 is non-finite
."), info.GetIsolate()); | |
| 1024 return; | |
| 1025 } | |
| 1026 } | |
| 1027 impl->voidMethodDoubleArgFloatArg(doubleArg, floatArg); | |
| 1028 } | |
| 1029 | |
| 1030 static void voidMethodDoubleArgFloatArgMethodCallback(const v8::FunctionCallback
Info<v8::Value>& info) | |
| 1031 { | |
| 1032 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMMethod"); | |
| 1033 TestInterfaceImplementationV8Internal::voidMethodDoubleArgFloatArgMethod(inf
o); | |
| 1034 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 1035 } | |
| 1036 | |
| 1037 static void voidMethodUnrestrictedDoubleArgUnrestrictedFloatArgMethod(const v8::
FunctionCallbackInfo<v8::Value>& info) | |
| 1038 { | |
| 1039 if (UNLIKELY(info.Length() < 2)) { | |
| 1040 V8ThrowException::throwException(createMinimumArityTypeErrorForMethod("v
oidMethodUnrestrictedDoubleArgUnrestrictedFloatArg", "TestInterface", 2, info.Le
ngth(), info.GetIsolate()), info.GetIsolate()); | |
| 1041 return; | |
| 1042 } | |
| 1043 TestInterfaceImplementation* impl = V8TestInterface::toImpl(info.Holder()); | |
| 1044 double unrestrictedDoubleArg; | |
| 1045 float unrestrictedFloatArg; | |
| 1046 { | |
| 1047 v8::TryCatch block; | |
| 1048 V8RethrowTryCatchScope rethrow(block); | |
| 1049 TONATIVE_VOID_INTERNAL(unrestrictedDoubleArg, static_cast<double>(info[0
]->NumberValue())); | |
| 1050 TONATIVE_VOID_INTERNAL(unrestrictedFloatArg, static_cast<float>(info[1]-
>NumberValue())); | |
| 1051 } | |
| 1052 impl->voidMethodUnrestrictedDoubleArgUnrestrictedFloatArg(unrestrictedDouble
Arg, unrestrictedFloatArg); | |
| 1053 } | |
| 1054 | |
| 1055 static void voidMethodUnrestrictedDoubleArgUnrestrictedFloatArgMethodCallback(co
nst v8::FunctionCallbackInfo<v8::Value>& info) | |
| 1056 { | |
| 1057 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMMethod"); | |
| 1058 TestInterfaceImplementationV8Internal::voidMethodUnrestrictedDoubleArgUnrest
rictedFloatArgMethod(info); | |
| 1059 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 1060 } | |
| 1061 | |
| 1062 static void voidMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info) | |
| 1063 { | |
| 1064 TestInterfaceImplementation* impl = V8TestInterface::toImpl(info.Holder()); | |
| 1065 impl->voidMethod(); | |
| 1066 } | |
| 1067 | |
| 1068 static void voidMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>&
info) | |
| 1069 { | |
| 1070 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMMethod"); | |
| 1071 TestInterfaceImplementationV8Internal::voidMethodMethod(info); | |
| 1072 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 1073 } | |
| 1074 | |
| 1075 static void voidMethodMethodForMainWorld(const v8::FunctionCallbackInfo<v8::Valu
e>& info) | |
| 1076 { | |
| 1077 TestInterfaceImplementation* impl = V8TestInterface::toImpl(info.Holder()); | |
| 1078 impl->voidMethod(); | |
| 1079 } | |
| 1080 | |
| 1081 static void voidMethodMethodCallbackForMainWorld(const v8::FunctionCallbackInfo<
v8::Value>& info) | |
| 1082 { | |
| 1083 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMMethod"); | |
| 1084 TestInterfaceImplementationV8Internal::voidMethodMethodForMainWorld(info); | |
| 1085 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 1086 } | |
| 1087 | |
| 1088 static void alwaysExposedMethodMethod(const v8::FunctionCallbackInfo<v8::Value>&
info) | |
| 1089 { | |
| 1090 TestInterfaceImplementation* impl = V8TestInterface::toImpl(info.Holder()); | |
| 1091 impl->alwaysExposedMethod(); | |
| 1092 } | |
| 1093 | |
| 1094 static void alwaysExposedMethodMethodCallback(const v8::FunctionCallbackInfo<v8:
:Value>& info) | |
| 1095 { | |
| 1096 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMMethod"); | |
| 1097 TestInterfaceImplementationV8Internal::alwaysExposedMethodMethod(info); | |
| 1098 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 1099 } | |
| 1100 | |
| 1101 static void workerExposedMethodMethod(const v8::FunctionCallbackInfo<v8::Value>&
info) | |
| 1102 { | |
| 1103 TestInterfaceImplementation* impl = V8TestInterface::toImpl(info.Holder()); | |
| 1104 impl->workerExposedMethod(); | |
| 1105 } | |
| 1106 | |
| 1107 static void workerExposedMethodMethodCallback(const v8::FunctionCallbackInfo<v8:
:Value>& info) | |
| 1108 { | |
| 1109 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMMethod"); | |
| 1110 TestInterfaceImplementationV8Internal::workerExposedMethodMethod(info); | |
| 1111 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 1112 } | |
| 1113 | |
| 1114 static void windowExposedMethodMethod(const v8::FunctionCallbackInfo<v8::Value>&
info) | |
| 1115 { | |
| 1116 TestInterfaceImplementation* impl = V8TestInterface::toImpl(info.Holder()); | |
| 1117 impl->windowExposedMethod(); | |
| 1118 } | |
| 1119 | |
| 1120 static void windowExposedMethodMethodCallback(const v8::FunctionCallbackInfo<v8:
:Value>& info) | |
| 1121 { | |
| 1122 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMMethod"); | |
| 1123 TestInterfaceImplementationV8Internal::windowExposedMethodMethod(info); | |
| 1124 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 1125 } | |
| 1126 | |
| 1127 static void alwaysExposedStaticMethodMethod(const v8::FunctionCallbackInfo<v8::V
alue>& info) | |
| 1128 { | |
| 1129 TestInterfaceImplementation::alwaysExposedStaticMethod(); | |
| 1130 } | |
| 1131 | |
| 1132 static void alwaysExposedStaticMethodMethodCallback(const v8::FunctionCallbackIn
fo<v8::Value>& info) | |
| 1133 { | |
| 1134 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMMethod"); | |
| 1135 TestInterfaceImplementationV8Internal::alwaysExposedStaticMethodMethod(info)
; | |
| 1136 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 1137 } | |
| 1138 | |
| 1139 static void workerExposedStaticMethodMethod(const v8::FunctionCallbackInfo<v8::V
alue>& info) | |
| 1140 { | |
| 1141 TestInterfaceImplementation::workerExposedStaticMethod(); | |
| 1142 } | |
| 1143 | |
| 1144 static void workerExposedStaticMethodMethodCallback(const v8::FunctionCallbackIn
fo<v8::Value>& info) | |
| 1145 { | |
| 1146 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMMethod"); | |
| 1147 TestInterfaceImplementationV8Internal::workerExposedStaticMethodMethod(info)
; | |
| 1148 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 1149 } | |
| 1150 | |
| 1151 static void windowExposedStaticMethodMethod(const v8::FunctionCallbackInfo<v8::V
alue>& info) | |
| 1152 { | |
| 1153 TestInterfaceImplementation::windowExposedStaticMethod(); | |
| 1154 } | |
| 1155 | |
| 1156 static void windowExposedStaticMethodMethodCallback(const v8::FunctionCallbackIn
fo<v8::Value>& info) | |
| 1157 { | |
| 1158 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMMethod"); | |
| 1159 TestInterfaceImplementationV8Internal::windowExposedStaticMethodMethod(info)
; | |
| 1160 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 1161 } | |
| 1162 | |
| 1163 static void windowAndServiceWorkerExposedMethodMethod(const v8::FunctionCallback
Info<v8::Value>& info) | |
| 1164 { | |
| 1165 TestInterfaceImplementation* impl = V8TestInterface::toImpl(info.Holder()); | |
| 1166 impl->windowAndServiceWorkerExposedMethod(); | |
| 1167 } | |
| 1168 | |
| 1169 static void windowAndServiceWorkerExposedMethodMethodCallback(const v8::Function
CallbackInfo<v8::Value>& info) | |
| 1170 { | |
| 1171 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMMethod"); | |
| 1172 TestInterfaceImplementationV8Internal::windowAndServiceWorkerExposedMethodMe
thod(info); | |
| 1173 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 1174 } | |
| 1175 | |
| 1176 static void voidMethodPartailOverloadMethod(const v8::FunctionCallbackInfo<v8::V
alue>& info) | |
| 1177 { | |
| 1178 TestInterfaceImplementation* impl = V8TestInterface::toImpl(info.Holder()); | |
| 1179 impl->voidMethodPartailOverload(); | |
| 1180 } | |
| 1181 | |
| 1182 static void voidMethodPartailOverloadMethodCallback(const v8::FunctionCallbackIn
fo<v8::Value>& info) | |
| 1183 { | |
| 1184 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMMethod"); | |
| 1185 TestInterfaceImplementationV8Internal::voidMethodPartailOverloadMethod(info)
; | |
| 1186 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 1187 } | |
| 1188 | |
| 1189 static void voidMethodPartailOverloadMethod(const v8::FunctionCallbackInfo<v8::V
alue>& info) | |
| 1190 { | |
| 1191 TestInterfaceImplementation::voidMethodPartailOverload(); | |
| 1192 } | |
| 1193 | |
| 1194 static void voidMethodPartailOverloadMethodCallback(const v8::FunctionCallbackIn
fo<v8::Value>& info) | |
| 1195 { | |
| 1196 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMMethod"); | |
| 1197 TestInterfaceImplementationV8Internal::voidMethodPartailOverloadMethod(info)
; | |
| 1198 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 1199 } | |
| 1200 | |
| 1201 static void implementsVoidMethodMethod(const v8::FunctionCallbackInfo<v8::Value>
& info) | |
| 1202 { | |
| 1203 TestInterfaceImplementation* impl = V8TestInterface::toImpl(info.Holder()); | |
| 1204 impl->implementsVoidMethod(); | |
| 1205 } | |
| 1206 | |
| 1207 static void implementsVoidMethodMethodCallback(const v8::FunctionCallbackInfo<v8
::Value>& info) | |
| 1208 { | |
| 1209 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMMethod"); | |
| 1210 TestInterfaceImplementationV8Internal::implementsVoidMethodMethod(info); | |
| 1211 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 1212 } | |
| 1213 | |
| 1214 static void implementsComplexMethodMethod(const v8::FunctionCallbackInfo<v8::Val
ue>& info) | |
| 1215 { | |
| 1216 ExceptionState exceptionState(ExceptionState::ExecutionContext, "implementsC
omplexMethod", "TestInterface", info.Holder(), info.GetIsolate()); | |
| 1217 if (UNLIKELY(info.Length() < 2)) { | |
| 1218 setMinimumArityTypeError(exceptionState, 2, info.Length()); | |
| 1219 exceptionState.throwIfNeeded(); | |
| 1220 return; | |
| 1221 } | |
| 1222 TestInterfaceImplementation* impl = V8TestInterface::toImpl(info.Holder()); | |
| 1223 V8StringResource<> strArg; | |
| 1224 TestInterfaceEmpty* testInterfaceEmptyArg; | |
| 1225 { | |
| 1226 v8::TryCatch block; | |
| 1227 V8RethrowTryCatchScope rethrow(block); | |
| 1228 TOSTRING_VOID_INTERNAL(strArg, info[0]); | |
| 1229 if (info.Length() > 1 && !V8TestInterfaceEmpty::hasInstance(info[1], inf
o.GetIsolate())) { | |
| 1230 exceptionState.throwTypeError("parameter 2 is not of type 'TestInter
faceEmpty'."); | |
| 1231 exceptionState.throwIfNeeded(); | |
| 1232 return; | |
| 1233 } | |
| 1234 TONATIVE_VOID_INTERNAL(testInterfaceEmptyArg, V8TestInterfaceEmpty::toIm
plWithTypeCheck(info.GetIsolate(), info[1])); | |
| 1235 } | |
| 1236 ExecutionContext* executionContext = currentExecutionContext(info.GetIsolate
()); | |
| 1237 RefPtr<TestInterfaceEmpty> result = impl->implementsComplexMethod(executionC
ontext, strArg, testInterfaceEmptyArg, exceptionState); | |
| 1238 if (exceptionState.hadException()) { | |
| 1239 exceptionState.throwIfNeeded(); | |
| 1240 return; | |
| 1241 } | |
| 1242 v8SetReturnValue(info, result.release()); | |
| 1243 } | |
| 1244 | |
| 1245 static void implementsComplexMethodMethodCallback(const v8::FunctionCallbackInfo
<v8::Value>& info) | |
| 1246 { | |
| 1247 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMMethod"); | |
| 1248 TestInterfaceImplementationV8Internal::implementsComplexMethodMethod(info); | |
| 1249 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 1250 } | |
| 1251 | |
| 1252 static void implementsCustomVoidMethodMethodCallback(const v8::FunctionCallbackI
nfo<v8::Value>& info) | |
| 1253 { | |
| 1254 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMMethod"); | |
| 1255 V8TestInterface::implementsCustomVoidMethodMethodCustom(info); | |
| 1256 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 1257 } | |
| 1258 | |
| 1259 static void implementsStaticVoidMethodMethod(const v8::FunctionCallbackInfo<v8::
Value>& info) | |
| 1260 { | |
| 1261 TestInterfaceImplementation::implementsStaticVoidMethod(); | |
| 1262 } | |
| 1263 | |
| 1264 static void implementsStaticVoidMethodMethodCallback(const v8::FunctionCallbackI
nfo<v8::Value>& info) | |
| 1265 { | |
| 1266 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMMethod"); | |
| 1267 TestInterfaceImplementationV8Internal::implementsStaticVoidMethodMethod(info
); | |
| 1268 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 1269 } | |
| 1270 | |
| 1271 static void implements2VoidMethodMethod(const v8::FunctionCallbackInfo<v8::Value
>& info) | |
| 1272 { | |
| 1273 TestInterfaceImplementation* impl = V8TestInterface::toImpl(info.Holder()); | |
| 1274 TestImplements2::implements2VoidMethod(*impl); | |
| 1275 } | |
| 1276 | |
| 1277 static void implements2VoidMethodMethodCallback(const v8::FunctionCallbackInfo<v
8::Value>& info) | |
| 1278 { | |
| 1279 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMMethod"); | |
| 1280 TestInterfaceImplementationV8Internal::implements2VoidMethodMethod(info); | |
| 1281 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 1282 } | |
| 1283 | |
| 1284 static void implements3VoidMethodMethod(const v8::FunctionCallbackInfo<v8::Value
>& info) | |
| 1285 { | |
| 1286 TestInterfaceImplementation* impl = V8TestInterface::toImpl(info.Holder()); | |
| 1287 TestImplements3Implementation::implements3VoidMethod(*impl); | |
| 1288 } | |
| 1289 | |
| 1290 static void implements3VoidMethodMethodCallback(const v8::FunctionCallbackInfo<v
8::Value>& info) | |
| 1291 { | |
| 1292 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMMethod"); | |
| 1293 TestInterfaceImplementationV8Internal::implements3VoidMethodMethod(info); | |
| 1294 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 1295 } | |
| 1296 | |
| 1297 static void implements3StaticVoidMethodMethod(const v8::FunctionCallbackInfo<v8:
:Value>& info) | |
| 1298 { | |
| 1299 TestImplements3Implementation::implements3StaticVoidMethod(); | |
| 1300 } | |
| 1301 | |
| 1302 static void implements3StaticVoidMethodMethodCallback(const v8::FunctionCallback
Info<v8::Value>& info) | |
| 1303 { | |
| 1304 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMMethod"); | |
| 1305 TestInterfaceImplementationV8Internal::implements3StaticVoidMethodMethod(inf
o); | |
| 1306 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 1307 } | |
| 1308 | |
| 1309 #if ENABLE(PARTIAL_CONDITION) | |
| 1310 static void partialVoidMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& i
nfo) | |
| 1311 { | |
| 1312 TestInterfaceImplementation* impl = V8TestInterface::toImpl(info.Holder()); | |
| 1313 TestPartialInterface::partialVoidMethod(*impl); | |
| 1314 } | |
| 1315 #endif // ENABLE(PARTIAL_CONDITION) | |
| 1316 | |
| 1317 #if ENABLE(PARTIAL_CONDITION) | |
| 1318 static void partialVoidMethodMethodCallback(const v8::FunctionCallbackInfo<v8::V
alue>& info) | |
| 1319 { | |
| 1320 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMMethod"); | |
| 1321 TestInterfaceImplementationV8Internal::partialVoidMethodMethod(info); | |
| 1322 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 1323 } | |
| 1324 #endif // ENABLE(PARTIAL_CONDITION) | |
| 1325 | |
| 1326 #if ENABLE(PARTIAL_CONDITION) | |
| 1327 static void partialStaticVoidMethodMethod(const v8::FunctionCallbackInfo<v8::Val
ue>& info) | |
| 1328 { | |
| 1329 TestPartialInterface::partialStaticVoidMethod(); | |
| 1330 } | |
| 1331 #endif // ENABLE(PARTIAL_CONDITION) | |
| 1332 | |
| 1333 #if ENABLE(PARTIAL_CONDITION) | |
| 1334 static void partialStaticVoidMethodMethodCallback(const v8::FunctionCallbackInfo
<v8::Value>& info) | |
| 1335 { | |
| 1336 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMMethod"); | |
| 1337 TestInterfaceImplementationV8Internal::partialStaticVoidMethodMethod(info); | |
| 1338 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 1339 } | |
| 1340 #endif // ENABLE(PARTIAL_CONDITION) | |
| 1341 | |
| 1342 #if ENABLE(PARTIAL_CONDITION) | |
| 1343 static void partialVoidMethodLongArgMethod(const v8::FunctionCallbackInfo<v8::Va
lue>& info) | |
| 1344 { | |
| 1345 ExceptionState exceptionState(ExceptionState::ExecutionContext, "partialVoid
MethodLongArg", "TestInterface", info.Holder(), info.GetIsolate()); | |
| 1346 if (UNLIKELY(info.Length() < 1)) { | |
| 1347 setMinimumArityTypeError(exceptionState, 1, info.Length()); | |
| 1348 exceptionState.throwIfNeeded(); | |
| 1349 return; | |
| 1350 } | |
| 1351 TestInterfaceImplementation* impl = V8TestInterface::toImpl(info.Holder()); | |
| 1352 int longArg; | |
| 1353 { | |
| 1354 v8::TryCatch block; | |
| 1355 V8RethrowTryCatchScope rethrow(block); | |
| 1356 TONATIVE_VOID_EXCEPTIONSTATE_INTERNAL(longArg, toInt32(info[0], exceptio
nState), exceptionState); | |
| 1357 } | |
| 1358 TestPartialInterface::partialVoidMethodLongArg(*impl, longArg); | |
| 1359 } | |
| 1360 #endif // ENABLE(PARTIAL_CONDITION) | |
| 1361 | |
| 1362 #if ENABLE(PARTIAL_CONDITION) | |
| 1363 static void partialVoidMethodLongArgMethodCallback(const v8::FunctionCallbackInf
o<v8::Value>& info) | |
| 1364 { | |
| 1365 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMMethod"); | |
| 1366 TestInterfaceImplementationV8Internal::partialVoidMethodLongArgMethod(info); | |
| 1367 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 1368 } | |
| 1369 #endif // ENABLE(PARTIAL_CONDITION) | |
| 1370 | |
| 1371 #if ENABLE(PARTIAL_CONDITION) | |
| 1372 static void partialCallWithExecutionContextRaisesExceptionVoidMethodMethod(const
v8::FunctionCallbackInfo<v8::Value>& info) | |
| 1373 { | |
| 1374 ExceptionState exceptionState(ExceptionState::ExecutionContext, "partialCall
WithExecutionContextRaisesExceptionVoidMethod", "TestInterface", info.Holder(),
info.GetIsolate()); | |
| 1375 TestInterfaceImplementation* impl = V8TestInterface::toImpl(info.Holder()); | |
| 1376 ExecutionContext* executionContext = currentExecutionContext(info.GetIsolate
()); | |
| 1377 TestPartialInterface::partialCallWithExecutionContextRaisesExceptionVoidMeth
od(executionContext, *impl, exceptionState); | |
| 1378 if (exceptionState.hadException()) { | |
| 1379 exceptionState.throwIfNeeded(); | |
| 1380 return; | |
| 1381 } | |
| 1382 } | |
| 1383 #endif // ENABLE(PARTIAL_CONDITION) | |
| 1384 | |
| 1385 #if ENABLE(PARTIAL_CONDITION) | |
| 1386 static void partialCallWithExecutionContextRaisesExceptionVoidMethodMethodCallba
ck(const v8::FunctionCallbackInfo<v8::Value>& info) | |
| 1387 { | |
| 1388 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMMethod"); | |
| 1389 TestInterfaceImplementationV8Internal::partialCallWithExecutionContextRaises
ExceptionVoidMethodMethod(info); | |
| 1390 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 1391 } | |
| 1392 #endif // ENABLE(PARTIAL_CONDITION) | |
| 1393 | |
| 1394 #if ENABLE(PARTIAL_CONDITION) | |
| 1395 static void partialVoidMethodPartialCallbackTypeArgMethod(const v8::FunctionCall
backInfo<v8::Value>& info) | |
| 1396 { | |
| 1397 if (UNLIKELY(info.Length() < 1)) { | |
| 1398 V8ThrowException::throwException(createMinimumArityTypeErrorForMethod("p
artialVoidMethodPartialCallbackTypeArg", "TestInterface", 1, info.Length(), info
.GetIsolate()), info.GetIsolate()); | |
| 1399 return; | |
| 1400 } | |
| 1401 TestInterfaceImplementation* impl = V8TestInterface::toImpl(info.Holder()); | |
| 1402 ScriptValue partialCallbackTypeArg; | |
| 1403 { | |
| 1404 v8::TryCatch block; | |
| 1405 V8RethrowTryCatchScope rethrow(block); | |
| 1406 TONATIVE_VOID_INTERNAL(partialCallbackTypeArg, ScriptValue(ScriptState::
current(info.GetIsolate()), info[0])); | |
| 1407 } | |
| 1408 TestPartialInterface::partialVoidMethodPartialCallbackTypeArg(*impl, partial
CallbackTypeArg); | |
| 1409 } | |
| 1410 #endif // ENABLE(PARTIAL_CONDITION) | |
| 1411 | |
| 1412 #if ENABLE(PARTIAL_CONDITION) | |
| 1413 static void partialVoidMethodPartialCallbackTypeArgMethodCallback(const v8::Func
tionCallbackInfo<v8::Value>& info) | |
| 1414 { | |
| 1415 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMMethod"); | |
| 1416 TestInterfaceImplementationV8Internal::partialVoidMethodPartialCallbackTypeA
rgMethod(info); | |
| 1417 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 1418 } | |
| 1419 #endif // ENABLE(PARTIAL_CONDITION) | |
| 1420 | |
| 1421 #if ENABLE(PARTIAL_CONDITION) | |
| 1422 static void shortMethodWithShortArgumentImplementedInPrivateScriptMethod(const v
8::FunctionCallbackInfo<v8::Value>& info) | |
| 1423 { | |
| 1424 ExceptionState exceptionState(ExceptionState::ExecutionContext, "shortMethod
WithShortArgumentImplementedInPrivateScript", "TestInterface", info.Holder(), in
fo.GetIsolate()); | |
| 1425 if (UNLIKELY(info.Length() < 1)) { | |
| 1426 setMinimumArityTypeError(exceptionState, 1, info.Length()); | |
| 1427 exceptionState.throwIfNeeded(); | |
| 1428 return; | |
| 1429 } | |
| 1430 TestInterfaceImplementation* impl = V8TestInterface::toImpl(info.Holder()); | |
| 1431 int value; | |
| 1432 { | |
| 1433 v8::TryCatch block; | |
| 1434 V8RethrowTryCatchScope rethrow(block); | |
| 1435 TONATIVE_VOID_EXCEPTIONSTATE_INTERNAL(value, toInt16(info[0], exceptionS
tate), exceptionState); | |
| 1436 } | |
| 1437 int result = 0; | |
| 1438 if (!V8TestInterface::PrivateScript::shortMethodWithShortArgumentImplemented
InPrivateScriptMethod(toFrameIfNotDetached(info.GetIsolate()->GetCurrentContext(
)), impl, value, &result)) | |
| 1439 return; | |
| 1440 v8SetReturnValueInt(info, result); | |
| 1441 } | |
| 1442 #endif // ENABLE(PARTIAL_CONDITION) | |
| 1443 | |
| 1444 #if ENABLE(PARTIAL_CONDITION) | |
| 1445 static void shortMethodWithShortArgumentImplementedInPrivateScriptMethodCallback
(const v8::FunctionCallbackInfo<v8::Value>& info) | |
| 1446 { | |
| 1447 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMMethod"); | |
| 1448 TestInterfaceImplementationV8Internal::shortMethodWithShortArgumentImplement
edInPrivateScriptMethod(info); | |
| 1449 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 1450 } | |
| 1451 #endif // ENABLE(PARTIAL_CONDITION) | |
| 1452 | |
| 1453 static void partial2VoidMethod1Method(const v8::FunctionCallbackInfo<v8::Value>&
info) | |
| 1454 { | |
| 1455 TestInterfaceImplementation* impl = V8TestInterface::toImpl(info.Holder()); | |
| 1456 TestPartialInterfaceImplementation::partial2VoidMethod(*impl); | |
| 1457 } | |
| 1458 | |
| 1459 static void partial2StaticVoidMethod1Method(const v8::FunctionCallbackInfo<v8::V
alue>& info) | |
| 1460 { | |
| 1461 TestPartialInterfaceImplementation::partial2StaticVoidMethod(); | |
| 1462 } | |
| 1463 | |
| 1464 static void voidMethodPartialOverloadMethod(const v8::FunctionCallbackInfo<v8::V
alue>& info) | |
| 1465 { | |
| 1466 if (UNLIKELY(info.Length() < 1)) { | |
| 1467 V8ThrowException::throwException(createMinimumArityTypeErrorForMethod("v
oidMethodPartialOverload", "TestInterface", 1, info.Length(), info.GetIsolate())
, info.GetIsolate()); | |
| 1468 return; | |
| 1469 } | |
| 1470 TestInterfaceImplementation* impl = V8TestInterface::toImpl(info.Holder()); | |
| 1471 V8StringResource<> value; | |
| 1472 { | |
| 1473 TOSTRING_VOID_INTERNAL(value, info[0]); | |
| 1474 } | |
| 1475 TestPartialInterfaceImplementation3::voidMethodPartialOverload(*impl, value)
; | |
| 1476 } | |
| 1477 | |
| 1478 static void voidMethodPartialOverloadMethodCallback(const v8::FunctionCallbackIn
fo<v8::Value>& info) | |
| 1479 { | |
| 1480 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMMethod"); | |
| 1481 TestInterfaceImplementationV8Internal::voidMethodPartialOverloadMethod(info)
; | |
| 1482 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 1483 } | |
| 1484 | |
| 1485 static void voidMethodPartialOverloadMethod(const v8::FunctionCallbackInfo<v8::V
alue>& info) | |
| 1486 { | |
| 1487 if (UNLIKELY(info.Length() < 1)) { | |
| 1488 V8ThrowException::throwException(createMinimumArityTypeErrorForMethod("v
oidMethodPartialOverload", "TestInterface", 1, info.Length(), info.GetIsolate())
, info.GetIsolate()); | |
| 1489 return; | |
| 1490 } | |
| 1491 V8StringResource<> value; | |
| 1492 { | |
| 1493 TOSTRING_VOID_INTERNAL(value, info[0]); | |
| 1494 } | |
| 1495 TestPartialInterfaceImplementation3::voidMethodPartialOverload(value); | |
| 1496 } | |
| 1497 | |
| 1498 static void voidMethodPartialOverloadMethodCallback(const v8::FunctionCallbackIn
fo<v8::Value>& info) | |
| 1499 { | |
| 1500 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMMethod"); | |
| 1501 TestInterfaceImplementationV8Internal::voidMethodPartialOverloadMethod(info)
; | |
| 1502 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 1503 } | |
| 1504 | |
| 1505 static void partial2VoidMethod2Method(const v8::FunctionCallbackInfo<v8::Value>&
info) | |
| 1506 { | |
| 1507 TestInterfaceImplementation* impl = V8TestInterface::toImpl(info.Holder()); | |
| 1508 V8StringResource<> value; | |
| 1509 { | |
| 1510 TOSTRING_VOID_INTERNAL(value, info[0]); | |
| 1511 } | |
| 1512 TestPartialInterfaceImplementation3::partial2VoidMethod(*impl, value); | |
| 1513 } | |
| 1514 | |
| 1515 static void partial2VoidMethodMethod(const v8::FunctionCallbackInfo<v8::Value>&
info) | |
| 1516 { | |
| 1517 ExceptionState exceptionState(ExceptionState::ExecutionContext, "partial2Voi
dMethod", "TestInterface", info.Holder(), info.GetIsolate()); | |
| 1518 switch (std::min(1, info.Length())) { | |
| 1519 case 0: | |
| 1520 if (true) { | |
| 1521 partial2VoidMethod1Method(info); | |
| 1522 return; | |
| 1523 } | |
| 1524 break; | |
| 1525 case 1: | |
| 1526 if (true) { | |
| 1527 partial2VoidMethod2Method(info); | |
| 1528 return; | |
| 1529 } | |
| 1530 break; | |
| 1531 default: | |
| 1532 exceptionState.throwTypeError(ExceptionMessages::notEnoughArguments(0, i
nfo.Length())); | |
| 1533 exceptionState.throwIfNeeded(); | |
| 1534 return; | |
| 1535 } | |
| 1536 exceptionState.throwTypeError("No function was found that matched the signat
ure provided."); | |
| 1537 exceptionState.throwIfNeeded(); | |
| 1538 } | |
| 1539 | |
| 1540 static void partial2VoidMethodMethodCallback(const v8::FunctionCallbackInfo<v8::
Value>& info) | |
| 1541 { | |
| 1542 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMMethod"); | |
| 1543 TestInterfaceImplementationV8Internal::partial2VoidMethodMethod(info); | |
| 1544 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 1545 } | |
| 1546 | |
| 1547 static void partial2StaticVoidMethod2Method(const v8::FunctionCallbackInfo<v8::V
alue>& info) | |
| 1548 { | |
| 1549 V8StringResource<> value; | |
| 1550 { | |
| 1551 TOSTRING_VOID_INTERNAL(value, info[0]); | |
| 1552 } | |
| 1553 TestPartialInterfaceImplementation3::partial2StaticVoidMethod(value); | |
| 1554 } | |
| 1555 | |
| 1556 static void partial2StaticVoidMethodMethod(const v8::FunctionCallbackInfo<v8::Va
lue>& info) | |
| 1557 { | |
| 1558 ExceptionState exceptionState(ExceptionState::ExecutionContext, "partial2Sta
ticVoidMethod", "TestInterface", info.Holder(), info.GetIsolate()); | |
| 1559 switch (std::min(1, info.Length())) { | |
| 1560 case 0: | |
| 1561 if (true) { | |
| 1562 partial2StaticVoidMethod1Method(info); | |
| 1563 return; | |
| 1564 } | |
| 1565 break; | |
| 1566 case 1: | |
| 1567 if (true) { | |
| 1568 partial2StaticVoidMethod2Method(info); | |
| 1569 return; | |
| 1570 } | |
| 1571 break; | |
| 1572 default: | |
| 1573 exceptionState.throwTypeError(ExceptionMessages::notEnoughArguments(0, i
nfo.Length())); | |
| 1574 exceptionState.throwIfNeeded(); | |
| 1575 return; | |
| 1576 } | |
| 1577 exceptionState.throwTypeError("No function was found that matched the signat
ure provided."); | |
| 1578 exceptionState.throwIfNeeded(); | |
| 1579 } | |
| 1580 | |
| 1581 static void partial2StaticVoidMethodMethodCallback(const v8::FunctionCallbackInf
o<v8::Value>& info) | |
| 1582 { | |
| 1583 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMMethod"); | |
| 1584 TestInterfaceImplementationV8Internal::partial2StaticVoidMethodMethod(info); | |
| 1585 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 1586 } | |
| 1587 | |
| 1588 static void toStringMethod(const v8::FunctionCallbackInfo<v8::Value>& info) | |
| 1589 { | |
| 1590 TestInterfaceImplementation* impl = V8TestInterface::toImpl(info.Holder()); | |
| 1591 v8SetReturnValueString(info, impl->toString(), info.GetIsolate()); | |
| 1592 } | |
| 1593 | |
| 1594 static void toStringMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& in
fo) | |
| 1595 { | |
| 1596 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMMethod"); | |
| 1597 TestInterfaceImplementationV8Internal::toStringMethod(info); | |
| 1598 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 1599 } | |
| 1600 | |
| 1601 static void iteratorMethod(const v8::FunctionCallbackInfo<v8::Value>& info) | |
| 1602 { | |
| 1603 ExceptionState exceptionState(ExceptionState::ExecutionContext, "iterator",
"TestInterface", info.Holder(), info.GetIsolate()); | |
| 1604 TestInterfaceImplementation* impl = V8TestInterface::toImpl(info.Holder()); | |
| 1605 ScriptState* scriptState = ScriptState::current(info.GetIsolate()); | |
| 1606 RawPtr<Iterator> result = impl->iterator(scriptState, exceptionState); | |
| 1607 if (exceptionState.hadException()) { | |
| 1608 exceptionState.throwIfNeeded(); | |
| 1609 return; | |
| 1610 } | |
| 1611 v8SetReturnValue(info, result.release()); | |
| 1612 } | |
| 1613 | |
| 1614 static void iteratorMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& in
fo) | |
| 1615 { | |
| 1616 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMMethod"); | |
| 1617 TestInterfaceImplementationV8Internal::iteratorMethod(info); | |
| 1618 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 1619 } | |
| 1620 | |
| 1621 static void indexedPropertyGetter(uint32_t index, const v8::PropertyCallbackInfo
<v8::Value>& info) | |
| 1622 { | |
| 1623 TestInterfaceImplementation* impl = V8TestInterface::toImpl(info.Holder()); | |
| 1624 String result = impl->anonymousIndexedGetter(index); | |
| 1625 if (result.isNull()) | |
| 1626 return; | |
| 1627 v8SetReturnValueString(info, result, info.GetIsolate()); | |
| 1628 } | |
| 1629 | |
| 1630 static void indexedPropertyGetterCallback(uint32_t index, const v8::PropertyCall
backInfo<v8::Value>& info) | |
| 1631 { | |
| 1632 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMIndexedProperty"); | |
| 1633 TestInterfaceImplementationV8Internal::indexedPropertyGetter(index, info); | |
| 1634 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 1635 } | |
| 1636 | |
| 1637 static void indexedPropertySetter(uint32_t index, v8::Local<v8::Value> v8Value,
const v8::PropertyCallbackInfo<v8::Value>& info) | |
| 1638 { | |
| 1639 TestInterfaceImplementation* impl = V8TestInterface::toImpl(info.Holder()); | |
| 1640 TOSTRING_VOID(V8StringResource<>, propertyValue, v8Value); | |
| 1641 bool result = impl->anonymousIndexedSetter(index, propertyValue); | |
| 1642 if (!result) | |
| 1643 return; | |
| 1644 v8SetReturnValue(info, v8Value); | |
| 1645 } | |
| 1646 | |
| 1647 static void indexedPropertySetterCallback(uint32_t index, v8::Local<v8::Value> v
8Value, const v8::PropertyCallbackInfo<v8::Value>& info) | |
| 1648 { | |
| 1649 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMIndexedProperty"); | |
| 1650 TestInterfaceImplementationV8Internal::indexedPropertySetter(index, v8Value,
info); | |
| 1651 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 1652 } | |
| 1653 | |
| 1654 static void indexedPropertyDeleter(uint32_t index, const v8::PropertyCallbackInf
o<v8::Boolean>& info) | |
| 1655 { | |
| 1656 TestInterfaceImplementation* impl = V8TestInterface::toImpl(info.Holder()); | |
| 1657 DeleteResult result = impl->anonymousIndexedDeleter(index); | |
| 1658 if (result != DeleteUnknownProperty) | |
| 1659 return v8SetReturnValueBool(info, result == DeleteSuccess); | |
| 1660 } | |
| 1661 | |
| 1662 static void indexedPropertyDeleterCallback(uint32_t index, const v8::PropertyCal
lbackInfo<v8::Boolean>& info) | |
| 1663 { | |
| 1664 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMIndexedProperty"); | |
| 1665 TestInterfaceImplementationV8Internal::indexedPropertyDeleter(index, info); | |
| 1666 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 1667 } | |
| 1668 | |
| 1669 static void namedPropertyGetter(v8::Local<v8::String> name, const v8::PropertyCa
llbackInfo<v8::Value>& info) | |
| 1670 { | |
| 1671 if (info.Holder()->HasRealNamedProperty(name)) | |
| 1672 return; | |
| 1673 if (!info.Holder()->GetRealNamedPropertyInPrototypeChain(name).IsEmpty()) | |
| 1674 return; | |
| 1675 | |
| 1676 TestInterfaceImplementation* impl = V8TestInterface::toImpl(info.Holder()); | |
| 1677 AtomicString propertyName = toCoreAtomicString(name); | |
| 1678 String result = impl->anonymousNamedGetter(propertyName); | |
| 1679 if (result.isNull()) | |
| 1680 return; | |
| 1681 v8SetReturnValueString(info, result, info.GetIsolate()); | |
| 1682 } | |
| 1683 | |
| 1684 static void namedPropertyGetterCallback(v8::Local<v8::String> name, const v8::Pr
opertyCallbackInfo<v8::Value>& info) | |
| 1685 { | |
| 1686 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMNamedProperty"); | |
| 1687 TestInterfaceImplementationV8Internal::namedPropertyGetter(name, info); | |
| 1688 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 1689 } | |
| 1690 | |
| 1691 static void namedPropertySetter(v8::Local<v8::String> name, v8::Local<v8::Value>
v8Value, const v8::PropertyCallbackInfo<v8::Value>& info) | |
| 1692 { | |
| 1693 if (info.Holder()->HasRealNamedProperty(name)) | |
| 1694 return; | |
| 1695 if (!info.Holder()->GetRealNamedPropertyInPrototypeChain(name).IsEmpty()) | |
| 1696 return; | |
| 1697 | |
| 1698 TestInterfaceImplementation* impl = V8TestInterface::toImpl(info.Holder()); | |
| 1699 TOSTRING_VOID(V8StringResource<>, propertyName, name); | |
| 1700 TOSTRING_VOID(V8StringResource<>, propertyValue, v8Value); | |
| 1701 bool result = impl->anonymousNamedSetter(propertyName, propertyValue); | |
| 1702 if (!result) | |
| 1703 return; | |
| 1704 v8SetReturnValue(info, v8Value); | |
| 1705 } | |
| 1706 | |
| 1707 static void namedPropertySetterCallback(v8::Local<v8::String> name, v8::Local<v8
::Value> v8Value, const v8::PropertyCallbackInfo<v8::Value>& info) | |
| 1708 { | |
| 1709 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMNamedProperty"); | |
| 1710 TestInterfaceImplementationV8Internal::namedPropertySetter(name, v8Value, in
fo); | |
| 1711 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 1712 } | |
| 1713 | |
| 1714 static void namedPropertyQuery(v8::Local<v8::String> name, const v8::PropertyCal
lbackInfo<v8::Integer>& info) | |
| 1715 { | |
| 1716 TestInterfaceImplementation* impl = V8TestInterface::toImpl(info.Holder()); | |
| 1717 AtomicString propertyName = toCoreAtomicString(name); | |
| 1718 v8::String::Utf8Value namedProperty(name); | |
| 1719 ExceptionState exceptionState(ExceptionState::GetterContext, *namedProperty,
"TestInterface", info.Holder(), info.GetIsolate()); | |
| 1720 bool result = impl->namedPropertyQuery(propertyName, exceptionState); | |
| 1721 if (exceptionState.throwIfNeeded()) | |
| 1722 return; | |
| 1723 if (!result) | |
| 1724 return; | |
| 1725 v8SetReturnValueInt(info, v8::None); | |
| 1726 } | |
| 1727 | |
| 1728 static void namedPropertyQueryCallback(v8::Local<v8::String> name, const v8::Pro
pertyCallbackInfo<v8::Integer>& info) | |
| 1729 { | |
| 1730 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMNamedProperty"); | |
| 1731 TestInterfaceImplementationV8Internal::namedPropertyQuery(name, info); | |
| 1732 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 1733 } | |
| 1734 | |
| 1735 static void namedPropertyDeleter(v8::Local<v8::String> name, const v8::PropertyC
allbackInfo<v8::Boolean>& info) | |
| 1736 { | |
| 1737 TestInterfaceImplementation* impl = V8TestInterface::toImpl(info.Holder()); | |
| 1738 AtomicString propertyName = toCoreAtomicString(name); | |
| 1739 DeleteResult result = impl->anonymousNamedDeleter(propertyName); | |
| 1740 if (result != DeleteUnknownProperty) | |
| 1741 return v8SetReturnValueBool(info, result == DeleteSuccess); | |
| 1742 } | |
| 1743 | |
| 1744 static void namedPropertyDeleterCallback(v8::Local<v8::String> name, const v8::P
ropertyCallbackInfo<v8::Boolean>& info) | |
| 1745 { | |
| 1746 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMNamedProperty"); | |
| 1747 TestInterfaceImplementationV8Internal::namedPropertyDeleter(name, info); | |
| 1748 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 1749 } | |
| 1750 | |
| 1751 static void namedPropertyEnumerator(const v8::PropertyCallbackInfo<v8::Array>& i
nfo) | |
| 1752 { | |
| 1753 TestInterfaceImplementation* impl = V8TestInterface::toImpl(info.Holder()); | |
| 1754 Vector<String> names; | |
| 1755 ExceptionState exceptionState(ExceptionState::EnumerationContext, "TestInter
face", info.Holder(), info.GetIsolate()); | |
| 1756 impl->namedPropertyEnumerator(names, exceptionState); | |
| 1757 if (exceptionState.throwIfNeeded()) | |
| 1758 return; | |
| 1759 v8::Handle<v8::Array> v8names = v8::Array::New(info.GetIsolate(), names.size
()); | |
| 1760 for (size_t i = 0; i < names.size(); ++i) | |
| 1761 v8names->Set(v8::Integer::New(info.GetIsolate(), i), v8String(info.GetIs
olate(), names[i])); | |
| 1762 v8SetReturnValue(info, v8names); | |
| 1763 } | |
| 1764 | |
| 1765 static void namedPropertyEnumeratorCallback(const v8::PropertyCallbackInfo<v8::A
rray>& info) | |
| 1766 { | |
| 1767 TRACE_EVENT_SET_SAMPLING_STATE("blink", "DOMNamedProperty"); | |
| 1768 TestInterfaceImplementationV8Internal::namedPropertyEnumerator(info); | |
| 1769 TRACE_EVENT_SET_SAMPLING_STATE("v8", "V8Execution"); | |
| 1770 } | |
| 1771 | |
| 1772 } // namespace TestInterfaceImplementationV8Internal | |
| 1773 | |
| 1774 void V8TestInterface::visitDOMWrapper(ScriptWrappableBase* internalPointer, cons
t v8::Persistent<v8::Object>& wrapper, v8::Isolate* isolate) | |
| 1775 { | |
| 1776 TestInterfaceImplementation* impl = internalPointer->toImpl<TestInterfaceImp
lementation>(); | |
| 1777 v8::Local<v8::Object> creationContext = v8::Local<v8::Object>::New(isolate,
wrapper); | |
| 1778 V8WrapperInstantiationScope scope(creationContext, isolate); | |
| 1779 TestInterfaceImplementation* referencedName = impl->referencedName(); | |
| 1780 if (referencedName) { | |
| 1781 if (!DOMDataStore::containsWrapper<V8TestInterface>(referencedName, isol
ate)) | |
| 1782 wrap(referencedName, creationContext, isolate); | |
| 1783 DOMDataStore::setWrapperReference<V8TestInterface>(wrapper, referencedNa
me, isolate); | |
| 1784 } | |
| 1785 setObjectGroup(internalPointer, wrapper, isolate); | |
| 1786 } | |
| 1787 | |
| 1788 static const V8DOMConfiguration::AttributeConfiguration V8TestInterfaceAttribute
s[] = { | |
| 1789 {"testInterfaceAttribute", TestInterfaceImplementationV8Internal::testInterf
aceAttributeAttributeGetterCallback, TestInterfaceImplementationV8Internal::test
InterfaceAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessContro
l>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), V8DOMConfiguratio
n::ExposedToAllScripts, V8DOMConfiguration::OnInstance}, | |
| 1790 {"testInterfaceConstructorAttribute", TestInterfaceImplementationV8Internal:
:TestInterfaceImplementationConstructorGetter, TestInterfaceImplementationV8Inte
rnal::TestInterfaceImplementationForceSetAttributeOnThisCallback, 0, 0, const_ca
st<WrapperTypeInfo*>(&V8TestInterface::wrapperTypeInfo), static_cast<v8::AccessC
ontrol>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::DontEnum), V8DOMCon
figuration::ExposedToAllScripts, V8DOMConfiguration::OnInstance}, | |
| 1791 {"doubleAttribute", TestInterfaceImplementationV8Internal::doubleAttributeAt
tributeGetterCallback, TestInterfaceImplementationV8Internal::doubleAttributeAtt
ributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), stat
ic_cast<v8::PropertyAttribute>(v8::None), V8DOMConfiguration::ExposedToAllScript
s, V8DOMConfiguration::OnInstance}, | |
| 1792 {"floatAttribute", TestInterfaceImplementationV8Internal::floatAttributeAttr
ibuteGetterCallback, TestInterfaceImplementationV8Internal::floatAttributeAttrib
uteSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_
cast<v8::PropertyAttribute>(v8::None), V8DOMConfiguration::ExposedToAllScripts,
V8DOMConfiguration::OnInstance}, | |
| 1793 {"unrestrictedDoubleAttribute", TestInterfaceImplementationV8Internal::unres
trictedDoubleAttributeAttributeGetterCallback, TestInterfaceImplementationV8Inte
rnal::unrestrictedDoubleAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v
8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), V8
DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnInstance}, | |
| 1794 {"unrestrictedFloatAttribute", TestInterfaceImplementationV8Internal::unrest
rictedFloatAttributeAttributeGetterCallback, TestInterfaceImplementationV8Intern
al::unrestrictedFloatAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::
AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), V8DOM
Configuration::ExposedToAllScripts, V8DOMConfiguration::OnInstance}, | |
| 1795 {"alwaysExposedAttribute", TestInterfaceImplementationV8Internal::alwaysExpo
sedAttributeAttributeGetterCallback, TestInterfaceImplementationV8Internal::alwa
ysExposedAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessContro
l>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), V8DOMConfiguratio
n::ExposedToAllScripts, V8DOMConfiguration::OnInstance}, | |
| 1796 {"implementsReadonlyStringAttribute", TestInterfaceImplementationV8Internal:
:implementsReadonlyStringAttributeAttributeGetterCallback, 0, 0, 0, 0, static_ca
st<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None)
, V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnInstance}, | |
| 1797 {"implementsStringAttribute", TestInterfaceImplementationV8Internal::impleme
ntsStringAttributeAttributeGetterCallback, TestInterfaceImplementationV8Internal
::implementsStringAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::Acc
essControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), V8DOMCon
figuration::ExposedToAllScripts, V8DOMConfiguration::OnInstance}, | |
| 1798 {"implementsNodeAttribute", TestInterfaceImplementationV8Internal::implement
sNodeAttributeAttributeGetterCallback, TestInterfaceImplementationV8Internal::im
plementsNodeAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessCon
trol>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), V8DOMConfigura
tion::ExposedToAllScripts, V8DOMConfiguration::OnInstance}, | |
| 1799 {"implementsEventHandlerAttribute", TestInterfaceImplementationV8Internal::i
mplementsEventHandlerAttributeAttributeGetterCallback, TestInterfaceImplementati
onV8Internal::implementsEventHandlerAttributeAttributeSetterCallback, 0, 0, 0, s
tatic_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v
8::None), V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnInstanc
e}, | |
| 1800 {"implements3StringAttribute", TestInterfaceImplementationV8Internal::implem
ents3StringAttributeAttributeGetterCallback, TestInterfaceImplementationV8Intern
al::implements3StringAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::
AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), V8DOM
Configuration::ExposedToAllScripts, V8DOMConfiguration::OnInstance}, | |
| 1801 }; | |
| 1802 | |
| 1803 static const V8DOMConfiguration::MethodConfiguration V8TestInterfaceMethods[] =
{ | |
| 1804 {"voidMethodTestInterfaceEmptyArg", TestInterfaceImplementationV8Internal::v
oidMethodTestInterfaceEmptyArgMethodCallback, 0, 1, V8DOMConfiguration::ExposedT
oAllScripts}, | |
| 1805 {"voidMethodDoubleArgFloatArg", TestInterfaceImplementationV8Internal::voidM
ethodDoubleArgFloatArgMethodCallback, 0, 2, V8DOMConfiguration::ExposedToAllScri
pts}, | |
| 1806 {"voidMethodUnrestrictedDoubleArgUnrestrictedFloatArg", TestInterfaceImpleme
ntationV8Internal::voidMethodUnrestrictedDoubleArgUnrestrictedFloatArgMethodCall
back, 0, 2, V8DOMConfiguration::ExposedToAllScripts}, | |
| 1807 {"voidMethod", TestInterfaceImplementationV8Internal::voidMethodMethodCallba
ck, TestInterfaceImplementationV8Internal::voidMethodMethodCallbackForMainWorld,
0, V8DOMConfiguration::ExposedToAllScripts}, | |
| 1808 {"alwaysExposedMethod", TestInterfaceImplementationV8Internal::alwaysExposed
MethodMethodCallback, 0, 0, V8DOMConfiguration::ExposedToAllScripts}, | |
| 1809 {"voidMethodPartailOverload", TestInterfaceImplementationV8Internal::voidMet
hodPartailOverloadMethodCallback, 0, 0, V8DOMConfiguration::ExposedToAllScripts}
, | |
| 1810 {"implementsVoidMethod", TestInterfaceImplementationV8Internal::implementsVo
idMethodMethodCallback, 0, 0, V8DOMConfiguration::ExposedToAllScripts}, | |
| 1811 {"implementsComplexMethod", TestInterfaceImplementationV8Internal::implement
sComplexMethodMethodCallback, 0, 2, V8DOMConfiguration::ExposedToAllScripts}, | |
| 1812 {"implementsCustomVoidMethod", TestInterfaceImplementationV8Internal::implem
entsCustomVoidMethodMethodCallback, 0, 0, V8DOMConfiguration::ExposedToAllScript
s}, | |
| 1813 {"implements3VoidMethod", TestInterfaceImplementationV8Internal::implements3
VoidMethodMethodCallback, 0, 0, V8DOMConfiguration::ExposedToAllScripts}, | |
| 1814 {"partial2VoidMethod", TestInterfaceImplementationV8Internal::partial2VoidMe
thodMethodCallback, 0, 0, V8DOMConfiguration::ExposedToAllScripts}, | |
| 1815 }; | |
| 1816 | |
| 1817 static void installV8TestInterfaceTemplate(v8::Handle<v8::FunctionTemplate> func
tionTemplate, v8::Isolate* isolate) | |
| 1818 { | |
| 1819 functionTemplate->ReadOnlyPrototype(); | |
| 1820 | |
| 1821 v8::Local<v8::Signature> defaultSignature; | |
| 1822 if (!RuntimeEnabledFeatures::featureNameEnabled()) | |
| 1823 defaultSignature = V8DOMConfiguration::installDOMClassTemplate(functionT
emplate, "", V8TestInterfaceEmpty::domTemplate(isolate), V8TestInterface::intern
alFieldCount, 0, 0, 0, 0, 0, 0, isolate); | |
| 1824 else | |
| 1825 defaultSignature = V8DOMConfiguration::installDOMClassTemplate(functionT
emplate, "TestInterface", V8TestInterfaceEmpty::domTemplate(isolate), V8TestInte
rface::internalFieldCount, | |
| 1826 V8TestInterfaceAttributes, WTF_ARRAY_LENGTH(V8TestInterfaceAttribute
s), | |
| 1827 0, 0, | |
| 1828 V8TestInterfaceMethods, WTF_ARRAY_LENGTH(V8TestInterfaceMethods), | |
| 1829 isolate); | |
| 1830 v8::Local<v8::ObjectTemplate> instanceTemplate ALLOW_UNUSED = functionTempla
te->InstanceTemplate(); | |
| 1831 v8::Local<v8::ObjectTemplate> prototypeTemplate ALLOW_UNUSED = functionTempl
ate->PrototypeTemplate(); | |
| 1832 if (RuntimeEnabledFeatures::implementsFeatureNameEnabled()) { | |
| 1833 static const V8DOMConfiguration::AttributeConfiguration attributeConfigu
ration =\ | |
| 1834 {"implementsRuntimeEnabledNodeAttribute", TestInterfaceImplementationV8I
nternal::implementsRuntimeEnabledNodeAttributeAttributeGetterCallback, TestInter
faceImplementationV8Internal::implementsRuntimeEnabledNodeAttributeAttributeSett
erCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8
::PropertyAttribute>(v8::None), V8DOMConfiguration::ExposedToAllScripts, V8DOMCo
nfiguration::OnInstance}; | |
| 1835 V8DOMConfiguration::installAttribute(instanceTemplate, prototypeTemplate
, attributeConfiguration, isolate); | |
| 1836 } | |
| 1837 if (RuntimeEnabledFeatures::implements2FeatureNameEnabled()) { | |
| 1838 static const V8DOMConfiguration::AttributeConfiguration attributeConfigu
ration =\ | |
| 1839 {"implements2StringAttribute", TestInterfaceImplementationV8Internal::im
plements2StringAttributeAttributeGetterCallback, TestInterfaceImplementationV8In
ternal::implements2StringAttributeAttributeSetterCallback, 0, 0, 0, static_cast<
v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), V
8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnInstance}; | |
| 1840 V8DOMConfiguration::installAttribute(instanceTemplate, prototypeTemplate
, attributeConfiguration, isolate); | |
| 1841 } | |
| 1842 #if ENABLE(PARTIAL_CONDITION) | |
| 1843 if (RuntimeEnabledFeatures::partialFeatureNameEnabled()) { | |
| 1844 static const V8DOMConfiguration::AttributeConfiguration attributeConfigu
ration =\ | |
| 1845 {"partialLongAttribute", TestInterfaceImplementationV8Internal::partialL
ongAttributeAttributeGetterCallback, TestInterfaceImplementationV8Internal::part
ialLongAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>
(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), V8DOMConfiguration:
:ExposedToAllScripts, V8DOMConfiguration::OnInstance}; | |
| 1846 V8DOMConfiguration::installAttribute(instanceTemplate, prototypeTemplate
, attributeConfiguration, isolate); | |
| 1847 } | |
| 1848 #endif // ENABLE(PARTIAL_CONDITION) | |
| 1849 #if ENABLE(PARTIAL_CONDITION) | |
| 1850 if (RuntimeEnabledFeatures::partialFeatureNameEnabled()) { | |
| 1851 static const V8DOMConfiguration::AttributeConfiguration attributeConfigu
ration =\ | |
| 1852 {"partialCallWithExecutionContextLongAttribute", TestInterfaceImplementa
tionV8Internal::partialCallWithExecutionContextLongAttributeAttributeGetterCallb
ack, TestInterfaceImplementationV8Internal::partialCallWithExecutionContextLongA
ttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEF
AULT), static_cast<v8::PropertyAttribute>(v8::None), V8DOMConfiguration::Exposed
ToAllScripts, V8DOMConfiguration::OnInstance}; | |
| 1853 V8DOMConfiguration::installAttribute(instanceTemplate, prototypeTemplate
, attributeConfiguration, isolate); | |
| 1854 } | |
| 1855 #endif // ENABLE(PARTIAL_CONDITION) | |
| 1856 #if ENABLE(PARTIAL_CONDITION) | |
| 1857 if (RuntimeEnabledFeatures::partialFeatureNameEnabled()) { | |
| 1858 static const V8DOMConfiguration::AttributeConfiguration attributeConfigu
ration =\ | |
| 1859 {"partialPartialEnumTypeAttribute", TestInterfaceImplementationV8Interna
l::partialPartialEnumTypeAttributeAttributeGetterCallback, TestInterfaceImplemen
tationV8Internal::partialPartialEnumTypeAttributeAttributeSetterCallback, 0, 0,
0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribut
e>(v8::None), V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnIns
tance}; | |
| 1860 V8DOMConfiguration::installAttribute(instanceTemplate, prototypeTemplate
, attributeConfiguration, isolate); | |
| 1861 } | |
| 1862 #endif // ENABLE(PARTIAL_CONDITION) | |
| 1863 #if ENABLE(PARTIAL_CONDITION) | |
| 1864 if (RuntimeEnabledFeatures::partialFeatureNameEnabled()) { | |
| 1865 static const V8DOMConfiguration::AttributeConfiguration attributeConfigu
ration =\ | |
| 1866 {"stringAttribute", TestInterfaceImplementationV8Internal::stringAttribu
teAttributeGetterCallback, TestInterfaceImplementationV8Internal::stringAttribut
eAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT),
static_cast<v8::PropertyAttribute>(v8::None), V8DOMConfiguration::ExposedToAllSc
ripts, V8DOMConfiguration::OnInstance}; | |
| 1867 V8DOMConfiguration::installAttribute(instanceTemplate, prototypeTemplate
, attributeConfiguration, isolate); | |
| 1868 } | |
| 1869 #endif // ENABLE(PARTIAL_CONDITION) | |
| 1870 static const V8DOMConfiguration::ConstantConfiguration V8TestInterfaceConsta
nts[] = { | |
| 1871 {"UNSIGNED_LONG", 0, 0, 0, V8DOMConfiguration::ConstantTypeUnsignedLong}
, | |
| 1872 {"CONST_JAVASCRIPT", 1, 0, 0, V8DOMConfiguration::ConstantTypeShort}, | |
| 1873 {"IMPLEMENTS_CONSTANT_1", 1, 0, 0, V8DOMConfiguration::ConstantTypeUnsig
nedShort}, | |
| 1874 {"IMPLEMENTS_CONSTANT_2", 2, 0, 0, V8DOMConfiguration::ConstantTypeUnsig
nedShort}, | |
| 1875 {"PARTIAL2_UNSIGNED_SHORT", 0, 0, 0, V8DOMConfiguration::ConstantTypeUns
ignedShort}, | |
| 1876 {"PARTIAL3_UNSIGNED_SHORT", 0, 0, 0, V8DOMConfiguration::ConstantTypeUns
ignedShort}, | |
| 1877 }; | |
| 1878 V8DOMConfiguration::installConstants(functionTemplate, prototypeTemplate, V8
TestInterfaceConstants, WTF_ARRAY_LENGTH(V8TestInterfaceConstants), isolate); | |
| 1879 if (RuntimeEnabledFeatures::partialFeatureNameEnabled()) { | |
| 1880 static const V8DOMConfiguration::ConstantConfiguration constantConfigura
tion = {"PARTIAL_UNSIGNED_SHORT", 0, 0, 0, V8DOMConfiguration::ConstantTypeUnsig
nedShort}; | |
| 1881 V8DOMConfiguration::installConstants(functionTemplate, prototypeTemplate
, &constantConfiguration, 1, isolate); | |
| 1882 } | |
| 1883 functionTemplate->InstanceTemplate()->SetIndexedPropertyHandler(TestInterfac
eImplementationV8Internal::indexedPropertyGetterCallback, TestInterfaceImplement
ationV8Internal::indexedPropertySetterCallback, 0, TestInterfaceImplementationV8
Internal::indexedPropertyDeleterCallback, indexedPropertyEnumerator<TestInterfac
eImplementation>); | |
| 1884 functionTemplate->InstanceTemplate()->SetNamedPropertyHandler(TestInterfaceI
mplementationV8Internal::namedPropertyGetterCallback, TestInterfaceImplementatio
nV8Internal::namedPropertySetterCallback, TestInterfaceImplementationV8Internal:
:namedPropertyQueryCallback, TestInterfaceImplementationV8Internal::namedPropert
yDeleterCallback, TestInterfaceImplementationV8Internal::namedPropertyEnumerator
Callback); | |
| 1885 static const V8DOMConfiguration::SymbolKeyedMethodConfiguration symbolKeyedI
teratorConfiguration = { v8::Symbol::GetIterator, TestInterfaceImplementationV8I
nternal::iteratorMethodCallback, 0, V8DOMConfiguration::ExposedToAllScripts }; | |
| 1886 V8DOMConfiguration::installMethod(prototypeTemplate, defaultSignature, v8::D
ontDelete, symbolKeyedIteratorConfiguration, isolate); | |
| 1887 functionTemplate->InstanceTemplate()->SetCallAsFunctionHandler(V8TestInterfa
ce::legacyCallCustom); | |
| 1888 static const V8DOMConfiguration::MethodConfiguration alwaysExposedStaticMeth
odMethodConfiguration = { | |
| 1889 "alwaysExposedStaticMethod", TestInterfaceImplementationV8Internal::alwa
ysExposedStaticMethodMethodCallback, 0, 0, V8DOMConfiguration::ExposedToAllScrip
ts, | |
| 1890 }; | |
| 1891 V8DOMConfiguration::installMethod(functionTemplate, v8::Local<v8::Signature>
(), v8::None, alwaysExposedStaticMethodMethodConfiguration, isolate); | |
| 1892 static const V8DOMConfiguration::MethodConfiguration voidMethodPartailOverlo
adMethodConfiguration = { | |
| 1893 "voidMethodPartailOverload", TestInterfaceImplementationV8Internal::void
MethodPartailOverloadMethodCallback, 0, 0, V8DOMConfiguration::ExposedToAllScrip
ts, | |
| 1894 }; | |
| 1895 V8DOMConfiguration::installMethod(functionTemplate, v8::Local<v8::Signature>
(), v8::None, voidMethodPartailOverloadMethodConfiguration, isolate); | |
| 1896 static const V8DOMConfiguration::MethodConfiguration implementsStaticVoidMet
hodMethodConfiguration = { | |
| 1897 "implementsStaticVoidMethod", TestInterfaceImplementationV8Internal::imp
lementsStaticVoidMethodMethodCallback, 0, 0, V8DOMConfiguration::ExposedToAllScr
ipts, | |
| 1898 }; | |
| 1899 V8DOMConfiguration::installMethod(functionTemplate, v8::Local<v8::Signature>
(), v8::None, implementsStaticVoidMethodMethodConfiguration, isolate); | |
| 1900 if (RuntimeEnabledFeatures::implements2FeatureNameEnabled()) { | |
| 1901 static const V8DOMConfiguration::MethodConfiguration implements2VoidMeth
odMethodConfiguration = { | |
| 1902 "implements2VoidMethod", TestInterfaceImplementationV8Internal::impl
ements2VoidMethodMethodCallback, 0, 0, V8DOMConfiguration::ExposedToAllScripts, | |
| 1903 }; | |
| 1904 V8DOMConfiguration::installMethod(prototypeTemplate, defaultSignature, v
8::None, implements2VoidMethodMethodConfiguration, isolate); | |
| 1905 } | |
| 1906 static const V8DOMConfiguration::MethodConfiguration implements3StaticVoidMe
thodMethodConfiguration = { | |
| 1907 "implements3StaticVoidMethod", TestInterfaceImplementationV8Internal::im
plements3StaticVoidMethodMethodCallback, 0, 0, V8DOMConfiguration::ExposedToAllS
cripts, | |
| 1908 }; | |
| 1909 V8DOMConfiguration::installMethod(functionTemplate, v8::Local<v8::Signature>
(), v8::None, implements3StaticVoidMethodMethodConfiguration, isolate); | |
| 1910 #if ENABLE(PARTIAL_CONDITION) | |
| 1911 if (RuntimeEnabledFeatures::partialFeatureNameEnabled()) { | |
| 1912 static const V8DOMConfiguration::MethodConfiguration partialVoidMethodMe
thodConfiguration = { | |
| 1913 "partialVoidMethod", TestInterfaceImplementationV8Internal::partialV
oidMethodMethodCallback, 0, 0, V8DOMConfiguration::ExposedToAllScripts, | |
| 1914 }; | |
| 1915 V8DOMConfiguration::installMethod(prototypeTemplate, defaultSignature, v
8::None, partialVoidMethodMethodConfiguration, isolate); | |
| 1916 } | |
| 1917 #endif // ENABLE(PARTIAL_CONDITION) | |
| 1918 #if ENABLE(PARTIAL_CONDITION) | |
| 1919 if (RuntimeEnabledFeatures::partialFeatureNameEnabled()) { | |
| 1920 static const V8DOMConfiguration::MethodConfiguration partialStaticVoidMe
thodMethodConfiguration = { | |
| 1921 "partialStaticVoidMethod", TestInterfaceImplementationV8Internal::pa
rtialStaticVoidMethodMethodCallback, 0, 0, V8DOMConfiguration::ExposedToAllScrip
ts, | |
| 1922 }; | |
| 1923 V8DOMConfiguration::installMethod(functionTemplate, v8::Local<v8::Signat
ure>(), v8::None, partialStaticVoidMethodMethodConfiguration, isolate); | |
| 1924 } | |
| 1925 #endif // ENABLE(PARTIAL_CONDITION) | |
| 1926 #if ENABLE(PARTIAL_CONDITION) | |
| 1927 if (RuntimeEnabledFeatures::partialFeatureNameEnabled()) { | |
| 1928 static const V8DOMConfiguration::MethodConfiguration partialVoidMethodLo
ngArgMethodConfiguration = { | |
| 1929 "partialVoidMethodLongArg", TestInterfaceImplementationV8Internal::p
artialVoidMethodLongArgMethodCallback, 0, 1, V8DOMConfiguration::ExposedToAllScr
ipts, | |
| 1930 }; | |
| 1931 V8DOMConfiguration::installMethod(prototypeTemplate, defaultSignature, v
8::None, partialVoidMethodLongArgMethodConfiguration, isolate); | |
| 1932 } | |
| 1933 #endif // ENABLE(PARTIAL_CONDITION) | |
| 1934 #if ENABLE(PARTIAL_CONDITION) | |
| 1935 if (RuntimeEnabledFeatures::partialFeatureNameEnabled()) { | |
| 1936 static const V8DOMConfiguration::MethodConfiguration partialCallWithExec
utionContextRaisesExceptionVoidMethodMethodConfiguration = { | |
| 1937 "partialCallWithExecutionContextRaisesExceptionVoidMethod", TestInte
rfaceImplementationV8Internal::partialCallWithExecutionContextRaisesExceptionVoi
dMethodMethodCallback, 0, 0, V8DOMConfiguration::ExposedToAllScripts, | |
| 1938 }; | |
| 1939 V8DOMConfiguration::installMethod(prototypeTemplate, defaultSignature, v
8::None, partialCallWithExecutionContextRaisesExceptionVoidMethodMethodConfigura
tion, isolate); | |
| 1940 } | |
| 1941 #endif // ENABLE(PARTIAL_CONDITION) | |
| 1942 #if ENABLE(PARTIAL_CONDITION) | |
| 1943 if (RuntimeEnabledFeatures::partialFeatureNameEnabled()) { | |
| 1944 static const V8DOMConfiguration::MethodConfiguration partialVoidMethodPa
rtialCallbackTypeArgMethodConfiguration = { | |
| 1945 "partialVoidMethodPartialCallbackTypeArg", TestInterfaceImplementati
onV8Internal::partialVoidMethodPartialCallbackTypeArgMethodCallback, 0, 1, V8DOM
Configuration::ExposedToAllScripts, | |
| 1946 }; | |
| 1947 V8DOMConfiguration::installMethod(prototypeTemplate, defaultSignature, v
8::None, partialVoidMethodPartialCallbackTypeArgMethodConfiguration, isolate); | |
| 1948 } | |
| 1949 #endif // ENABLE(PARTIAL_CONDITION) | |
| 1950 #if ENABLE(PARTIAL_CONDITION) | |
| 1951 if (RuntimeEnabledFeatures::partialFeatureNameEnabled()) { | |
| 1952 static const V8DOMConfiguration::MethodConfiguration shortMethodWithShor
tArgumentImplementedInPrivateScriptMethodConfiguration = { | |
| 1953 "shortMethodWithShortArgumentImplementedInPrivateScript", TestInterf
aceImplementationV8Internal::shortMethodWithShortArgumentImplementedInPrivateScr
iptMethodCallback, 0, 1, V8DOMConfiguration::ExposedToAllScripts, | |
| 1954 }; | |
| 1955 V8DOMConfiguration::installMethod(prototypeTemplate, defaultSignature, v
8::None, shortMethodWithShortArgumentImplementedInPrivateScriptMethodConfigurati
on, isolate); | |
| 1956 } | |
| 1957 #endif // ENABLE(PARTIAL_CONDITION) | |
| 1958 static const V8DOMConfiguration::MethodConfiguration partial2StaticVoidMetho
dMethodConfiguration = { | |
| 1959 "partial2StaticVoidMethod", TestInterfaceImplementationV8Internal::parti
al2StaticVoidMethodMethodCallback, 0, 0, V8DOMConfiguration::ExposedToAllScripts
, | |
| 1960 }; | |
| 1961 V8DOMConfiguration::installMethod(functionTemplate, v8::Local<v8::Signature>
(), v8::None, partial2StaticVoidMethodMethodConfiguration, isolate); | |
| 1962 static const V8DOMConfiguration::MethodConfiguration toStringMethodConfigura
tion = { | |
| 1963 "toString", TestInterfaceImplementationV8Internal::toStringMethodCallbac
k, 0, 0, V8DOMConfiguration::ExposedToAllScripts, | |
| 1964 }; | |
| 1965 V8DOMConfiguration::installMethod(prototypeTemplate, defaultSignature, stati
c_cast<v8::PropertyAttribute>(v8::DontDelete | v8::DontEnum), toStringMethodConf
iguration, isolate); | |
| 1966 functionTemplate->SetNativeDataProperty(v8AtomicString(isolate, "staticStrin
gAttribute"), TestInterfaceImplementationV8Internal::staticStringAttributeAttrib
uteGetterCallback, TestInterfaceImplementationV8Internal::staticStringAttributeA
ttributeSetterCallback, v8::External::New(isolate, 0), static_cast<v8::PropertyA
ttribute>(v8::None), v8::Handle<v8::AccessorSignature>(), static_cast<v8::Access
Control>(v8::DEFAULT)); | |
| 1967 functionTemplate->SetNativeDataProperty(v8AtomicString(isolate, "implementsS
taticReadOnlyLongAttribute"), TestInterfaceImplementationV8Internal::implementsS
taticReadOnlyLongAttributeAttributeGetterCallback, 0, v8::External::New(isolate,
0), static_cast<v8::PropertyAttribute>(v8::None), v8::Handle<v8::AccessorSignat
ure>(), static_cast<v8::AccessControl>(v8::DEFAULT)); | |
| 1968 functionTemplate->SetNativeDataProperty(v8AtomicString(isolate, "implementsS
taticStringAttribute"), TestInterfaceImplementationV8Internal::implementsStaticS
tringAttributeAttributeGetterCallback, TestInterfaceImplementationV8Internal::im
plementsStaticStringAttributeAttributeSetterCallback, v8::External::New(isolate,
0), static_cast<v8::PropertyAttribute>(v8::None), v8::Handle<v8::AccessorSignat
ure>(), static_cast<v8::AccessControl>(v8::DEFAULT)); | |
| 1969 functionTemplate->SetNativeDataProperty(v8AtomicString(isolate, "implements2
StaticStringAttribute"), TestInterfaceImplementationV8Internal::implements2Stati
cStringAttributeAttributeGetterCallback, TestInterfaceImplementationV8Internal::
implements2StaticStringAttributeAttributeSetterCallback, v8::External::New(isola
te, 0), static_cast<v8::PropertyAttribute>(v8::None), v8::Handle<v8::AccessorSig
nature>(), static_cast<v8::AccessControl>(v8::DEFAULT)); | |
| 1970 functionTemplate->SetNativeDataProperty(v8AtomicString(isolate, "implements3
StaticStringAttribute"), TestInterfaceImplementationV8Internal::implements3Stati
cStringAttributeAttributeGetterCallback, TestInterfaceImplementationV8Internal::
implements3StaticStringAttributeAttributeSetterCallback, v8::External::New(isola
te, 0), static_cast<v8::PropertyAttribute>(v8::None), v8::Handle<v8::AccessorSig
nature>(), static_cast<v8::AccessControl>(v8::DEFAULT)); | |
| 1971 #if ENABLE(PARTIAL_CONDITION) | |
| 1972 functionTemplate->SetNativeDataProperty(v8AtomicString(isolate, "partialStat
icLongAttribute"), TestInterfaceImplementationV8Internal::partialStaticLongAttri
buteAttributeGetterCallback, TestInterfaceImplementationV8Internal::partialStati
cLongAttributeAttributeSetterCallback, v8::External::New(isolate, 0), static_cas
t<v8::PropertyAttribute>(v8::None), v8::Handle<v8::AccessorSignature>(), static_
cast<v8::AccessControl>(v8::DEFAULT)); | |
| 1973 #endif // ENABLE(PARTIAL_CONDITION) | |
| 1974 functionTemplate->SetNativeDataProperty(v8AtomicString(isolate, "partial2Sta
ticLongAttribute"), TestInterfaceImplementationV8Internal::partial2StaticLongAtt
ributeAttributeGetterCallback, TestInterfaceImplementationV8Internal::partial2St
aticLongAttributeAttributeSetterCallback, v8::External::New(isolate, 0), static_
cast<v8::PropertyAttribute>(v8::None), v8::Handle<v8::AccessorSignature>(), stat
ic_cast<v8::AccessControl>(v8::DEFAULT)); | |
| 1975 functionTemplate->SetNativeDataProperty(v8AtomicString(isolate, "partial3Sta
ticLongAttribute"), TestInterfaceImplementationV8Internal::partial3StaticLongAtt
ributeAttributeGetterCallback, TestInterfaceImplementationV8Internal::partial3St
aticLongAttributeAttributeSetterCallback, v8::External::New(isolate, 0), static_
cast<v8::PropertyAttribute>(v8::None), v8::Handle<v8::AccessorSignature>(), stat
ic_cast<v8::AccessControl>(v8::DEFAULT)); | |
| 1976 | |
| 1977 // Custom toString template | |
| 1978 functionTemplate->Set(v8AtomicString(isolate, "toString"), V8PerIsolateData:
:from(isolate)->toStringTemplate()); | |
| 1979 } | |
| 1980 | |
| 1981 v8::Handle<v8::FunctionTemplate> V8TestInterface::domTemplate(v8::Isolate* isola
te) | |
| 1982 { | |
| 1983 return V8DOMConfiguration::domClassTemplate(isolate, const_cast<WrapperTypeI
nfo*>(&wrapperTypeInfo), installV8TestInterfaceTemplate); | |
| 1984 } | |
| 1985 | |
| 1986 bool V8TestInterface::hasInstance(v8::Handle<v8::Value> v8Value, v8::Isolate* is
olate) | |
| 1987 { | |
| 1988 return V8PerIsolateData::from(isolate)->hasInstance(&wrapperTypeInfo, v8Valu
e); | |
| 1989 } | |
| 1990 | |
| 1991 v8::Handle<v8::Object> V8TestInterface::findInstanceInPrototypeChain(v8::Handle<
v8::Value> v8Value, v8::Isolate* isolate) | |
| 1992 { | |
| 1993 return V8PerIsolateData::from(isolate)->findInstanceInPrototypeChain(&wrappe
rTypeInfo, v8Value); | |
| 1994 } | |
| 1995 | |
| 1996 TestInterfaceImplementation* V8TestInterface::toImplWithTypeCheck(v8::Isolate* i
solate, v8::Handle<v8::Value> value) | |
| 1997 { | |
| 1998 return hasInstance(value, isolate) ? blink::toScriptWrappableBase(v8::Handle
<v8::Object>::Cast(value))->toImpl<TestInterfaceImplementation>() : 0; | |
| 1999 } | |
| 2000 | |
| 2001 void V8TestInterface::installConditionallyEnabledProperties(v8::Handle<v8::Objec
t> instanceObject, v8::Isolate* isolate) | |
| 2002 { | |
| 2003 v8::Local<v8::Object> prototypeObject = v8::Local<v8::Object>::Cast(instance
Object->GetPrototype()); | |
| 2004 ExecutionContext* context = toExecutionContext(prototypeObject->CreationCont
ext()); | |
| 2005 | |
| 2006 if (context && (context->isWorkerGlobalScope())) { | |
| 2007 static const V8DOMConfiguration::AttributeConfiguration attributeConfigu
ration =\ | |
| 2008 {"workerExposedAttribute", TestInterfaceImplementationV8Internal::worker
ExposedAttributeAttributeGetterCallback, TestInterfaceImplementationV8Internal::
workerExposedAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessCo
ntrol>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), V8DOMConfigur
ation::ExposedToAllScripts, V8DOMConfiguration::OnInstance}; | |
| 2009 V8DOMConfiguration::installAttribute(instanceObject, prototypeObject, at
tributeConfiguration, isolate); | |
| 2010 } | |
| 2011 if (context && (context->isDocument())) { | |
| 2012 static const V8DOMConfiguration::AttributeConfiguration attributeConfigu
ration =\ | |
| 2013 {"windowExposedAttribute", TestInterfaceImplementationV8Internal::window
ExposedAttributeAttributeGetterCallback, TestInterfaceImplementationV8Internal::
windowExposedAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessCo
ntrol>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), V8DOMConfigur
ation::ExposedToAllScripts, V8DOMConfiguration::OnInstance}; | |
| 2014 V8DOMConfiguration::installAttribute(instanceObject, prototypeObject, at
tributeConfiguration, isolate); | |
| 2015 } | |
| 2016 if (context && context->isDocument() && ContextFeatures::implementsContextNa
meEnabled(toDocument(context))) { | |
| 2017 static const V8DOMConfiguration::AttributeConfiguration attributeConfigu
ration =\ | |
| 2018 {"implementsPerContextEnabledNodeAttribute", TestInterfaceImplementation
V8Internal::implementsPerContextEnabledNodeAttributeAttributeGetterCallback, Tes
tInterfaceImplementationV8Internal::implementsPerContextEnabledNodeAttributeAttr
ibuteSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), stati
c_cast<v8::PropertyAttribute>(v8::None), V8DOMConfiguration::ExposedToAllScripts
, V8DOMConfiguration::OnInstance}; | |
| 2019 V8DOMConfiguration::installAttribute(instanceObject, prototypeObject, at
tributeConfiguration, isolate); | |
| 2020 } | |
| 2021 if (context && context->isDocument() && ContextFeatures::partialContextNameE
nabled(toDocument(context))) { | |
| 2022 static const V8DOMConfiguration::AttributeConfiguration attributeConfigu
ration =\ | |
| 2023 {"partial2LongAttribute", TestInterfaceImplementationV8Internal::partial
2LongAttributeAttributeGetterCallback, TestInterfaceImplementationV8Internal::pa
rtial2LongAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessContr
ol>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), V8DOMConfigurati
on::ExposedToAllScripts, V8DOMConfiguration::OnInstance}; | |
| 2024 V8DOMConfiguration::installAttribute(instanceObject, prototypeObject, at
tributeConfiguration, isolate); | |
| 2025 } | |
| 2026 if (context && context->isDocument() && ContextFeatures::partialContextNameE
nabled(toDocument(context))) { | |
| 2027 static const V8DOMConfiguration::AttributeConfiguration attributeConfigu
ration =\ | |
| 2028 {"partial2StaticLongAttribute", TestInterfaceImplementationV8Internal::p
artial2StaticLongAttributeAttributeGetterCallback, TestInterfaceImplementationV8
Internal::partial2StaticLongAttributeAttributeSetterCallback, 0, 0, 0, static_ca
st<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None)
, V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnInstance}; | |
| 2029 V8DOMConfiguration::installAttribute(instanceObject, prototypeObject, at
tributeConfiguration, isolate); | |
| 2030 } | |
| 2031 if (context && context->isDocument() && ContextFeatures::partialContextName3
Enabled(toDocument(context))) { | |
| 2032 static const V8DOMConfiguration::AttributeConfiguration attributeConfigu
ration =\ | |
| 2033 {"partial3LongAttribute", TestInterfaceImplementationV8Internal::partial
3LongAttributeAttributeGetterCallback, TestInterfaceImplementationV8Internal::pa
rtial3LongAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessContr
ol>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), V8DOMConfigurati
on::ExposedToAllScripts, V8DOMConfiguration::OnInstance}; | |
| 2034 V8DOMConfiguration::installAttribute(instanceObject, prototypeObject, at
tributeConfiguration, isolate); | |
| 2035 } | |
| 2036 if (context && context->isDocument() && ContextFeatures::partialContextName3
Enabled(toDocument(context))) { | |
| 2037 static const V8DOMConfiguration::AttributeConfiguration attributeConfigu
ration =\ | |
| 2038 {"partial3StaticLongAttribute", TestInterfaceImplementationV8Internal::p
artial3StaticLongAttributeAttributeGetterCallback, TestInterfaceImplementationV8
Internal::partial3StaticLongAttributeAttributeSetterCallback, 0, 0, 0, static_ca
st<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None)
, V8DOMConfiguration::ExposedToAllScripts, V8DOMConfiguration::OnInstance}; | |
| 2039 V8DOMConfiguration::installAttribute(instanceObject, prototypeObject, at
tributeConfiguration, isolate); | |
| 2040 } | |
| 2041 } | |
| 2042 | |
| 2043 void V8TestInterface::installConditionallyEnabledMethods(v8::Handle<v8::Object>
prototypeObject, v8::Isolate* isolate) | |
| 2044 { | |
| 2045 v8::Local<v8::Signature> defaultSignature = v8::Signature::New(isolate, domT
emplate(isolate)); | |
| 2046 ExecutionContext* context = toExecutionContext(prototypeObject->CreationCont
ext()); | |
| 2047 ASSERT(context); | |
| 2048 | |
| 2049 if (context && (context->isWorkerGlobalScope())) { | |
| 2050 prototypeObject->Set(v8AtomicString(isolate, "workerExposedMethod"), v8:
:FunctionTemplate::New(isolate, TestInterfaceImplementationV8Internal::workerExp
osedMethodMethodCallback, v8Undefined(), defaultSignature, 0)->GetFunction()); | |
| 2051 } | |
| 2052 if (context && (context->isDocument())) { | |
| 2053 prototypeObject->Set(v8AtomicString(isolate, "windowExposedMethod"), v8:
:FunctionTemplate::New(isolate, TestInterfaceImplementationV8Internal::windowExp
osedMethodMethodCallback, v8Undefined(), defaultSignature, 0)->GetFunction()); | |
| 2054 } | |
| 2055 if (context && (context->isWorkerGlobalScope())) { | |
| 2056 prototypeObject->Set(v8AtomicString(isolate, "workerExposedStaticMethod"
), v8::FunctionTemplate::New(isolate, TestInterfaceImplementationV8Internal::wor
kerExposedStaticMethodMethodCallback, v8Undefined(), defaultSignature, 0)->GetFu
nction()); | |
| 2057 } | |
| 2058 if (context && (context->isDocument())) { | |
| 2059 prototypeObject->Set(v8AtomicString(isolate, "windowExposedStaticMethod"
), v8::FunctionTemplate::New(isolate, TestInterfaceImplementationV8Internal::win
dowExposedStaticMethodMethodCallback, v8Undefined(), defaultSignature, 0)->GetFu
nction()); | |
| 2060 } | |
| 2061 if (context && (context->isDocument() || context->isServiceWorkerGlobalScope
())) { | |
| 2062 prototypeObject->Set(v8AtomicString(isolate, "windowAndServiceWorkerExpo
sedMethod"), v8::FunctionTemplate::New(isolate, TestInterfaceImplementationV8Int
ernal::windowAndServiceWorkerExposedMethodMethodCallback, v8Undefined(), default
Signature, 0)->GetFunction()); | |
| 2063 } | |
| 2064 if (context && context->isDocument() && ContextFeatures::partialContextName3
Enabled(toDocument(context))) { | |
| 2065 prototypeObject->Set(v8AtomicString(isolate, "voidMethodPartialOverload"
), v8::FunctionTemplate::New(isolate, TestInterfaceImplementationV8Internal::voi
dMethodPartialOverloadMethodCallback, v8Undefined(), defaultSignature, 1)->GetFu
nction()); | |
| 2066 } | |
| 2067 if (context && context->isDocument() && ContextFeatures::partialContextName3
Enabled(toDocument(context))) { | |
| 2068 prototypeObject->Set(v8AtomicString(isolate, "voidMethodPartialOverload"
), v8::FunctionTemplate::New(isolate, TestInterfaceImplementationV8Internal::voi
dMethodPartialOverloadMethodCallback, v8Undefined(), defaultSignature, 1)->GetFu
nction()); | |
| 2069 } | |
| 2070 } | |
| 2071 | |
| 2072 ActiveDOMObject* V8TestInterface::toActiveDOMObject(v8::Handle<v8::Object> wrapp
er) | |
| 2073 { | |
| 2074 return toImpl(wrapper); | |
| 2075 } | |
| 2076 | |
| 2077 | |
| 2078 void V8TestInterface::refObject(ScriptWrappableBase* internalPointer) | |
| 2079 { | |
| 2080 internalPointer->toImpl<TestInterfaceImplementation>()->ref(); | |
| 2081 } | |
| 2082 | |
| 2083 void V8TestInterface::derefObject(ScriptWrappableBase* internalPointer) | |
| 2084 { | |
| 2085 internalPointer->toImpl<TestInterfaceImplementation>()->deref(); | |
| 2086 } | |
| 2087 | |
| 2088 WrapperPersistentNode* V8TestInterface::createPersistentHandle(ScriptWrappableBa
se* internalPointer) | |
| 2089 { | |
| 2090 ASSERT_NOT_REACHED(); | |
| 2091 return 0; | |
| 2092 } | |
| 2093 | |
| 2094 template<> | |
| 2095 v8::Handle<v8::Value> toV8NoInline(TestInterfaceImplementation* impl, v8::Handle
<v8::Object> creationContext, v8::Isolate* isolate) | |
| 2096 { | |
| 2097 return toV8(impl, creationContext, isolate); | |
| 2098 } | |
| 2099 | |
| 2100 bool V8TestInterface::PrivateScript::shortMethodWithShortArgumentImplementedInPr
ivateScriptMethod(LocalFrame* frame, TestInterface* holderImpl, int value, int*
result) | |
| 2101 { | |
| 2102 if (!frame) | |
| 2103 return false; | |
| 2104 v8::HandleScope handleScope(toIsolate(frame)); | |
| 2105 ScriptForbiddenScope::AllowUserAgentScript script; | |
| 2106 v8::Handle<v8::Context> context = toV8Context(frame, DOMWrapperWorld::privat
eScriptIsolatedWorld()); | |
| 2107 if (context.IsEmpty()) | |
| 2108 return false; | |
| 2109 ScriptState* scriptState = ScriptState::from(context); | |
| 2110 if (!scriptState->executionContext()) | |
| 2111 return false; | |
| 2112 | |
| 2113 ScriptState::Scope scope(scriptState); | |
| 2114 v8::Handle<v8::Value> holder = toV8(holderImpl, scriptState->context()->Glob
al(), scriptState->isolate()); | |
| 2115 | |
| 2116 v8::Handle<v8::Value> valueHandle = v8::Integer::New(scriptState->isolate(),
value); | |
| 2117 v8::Handle<v8::Value> argv[] = { valueHandle }; | |
| 2118 ExceptionState exceptionState(ExceptionState::ExecutionContext, "shortMethod
WithShortArgumentImplementedInPrivateScript", "TestInterfaceImplementation", scr
iptState->context()->Global(), scriptState->isolate()); | |
| 2119 v8::TryCatch block; | |
| 2120 v8::Handle<v8::Value> v8Value = PrivateScriptRunner::runDOMMethod(scriptStat
e, "TestInterfaceImplementation", "shortMethodWithShortArgumentImplementedInPriv
ateScript", holder, 1, argv); | |
| 2121 if (block.HasCaught()) { | |
| 2122 PrivateScriptRunner::rethrowExceptionInPrivateScript(scriptState->isolat
e(), exceptionState, block); | |
| 2123 block.ReThrow(); | |
| 2124 return false; | |
| 2125 } | |
| 2126 TONATIVE_DEFAULT_EXCEPTIONSTATE(int, cppValue, toInt16(v8Value, exceptionSta
te), exceptionState, false); | |
| 2127 RELEASE_ASSERT(!exceptionState.hadException()); | |
| 2128 *result = cppValue; | |
| 2129 return true; | |
| 2130 } | |
| 2131 | |
| 2132 bool V8TestInterface::PrivateScript::stringAttributeAttributeGetter(LocalFrame*
frame, TestInterfaceImplementation* holderImpl, String* result) | |
| 2133 { | |
| 2134 if (!frame) | |
| 2135 return false; | |
| 2136 v8::HandleScope handleScope(toIsolate(frame)); | |
| 2137 ScriptForbiddenScope::AllowUserAgentScript script; | |
| 2138 v8::Handle<v8::Context> context = toV8Context(frame, DOMWrapperWorld::privat
eScriptIsolatedWorld()); | |
| 2139 if (context.IsEmpty()) | |
| 2140 return false; | |
| 2141 ScriptState* scriptState = ScriptState::from(context); | |
| 2142 if (!scriptState->executionContext()) | |
| 2143 return false; | |
| 2144 | |
| 2145 ScriptState::Scope scope(scriptState); | |
| 2146 v8::Handle<v8::Value> holder = toV8(holderImpl, scriptState->context()->Glob
al(), scriptState->isolate()); | |
| 2147 | |
| 2148 ExceptionState exceptionState(ExceptionState::GetterContext, "stringAttribut
e", "TestInterfaceImplementation", scriptState->context()->Global(), scriptState
->isolate()); | |
| 2149 v8::TryCatch block; | |
| 2150 v8::Handle<v8::Value> v8Value = PrivateScriptRunner::runDOMAttributeGetter(s
criptState, "TestInterfaceImplementation", "stringAttribute", holder); | |
| 2151 if (block.HasCaught()) { | |
| 2152 PrivateScriptRunner::rethrowExceptionInPrivateScript(scriptState->isolat
e(), exceptionState, block); | |
| 2153 block.ReThrow(); | |
| 2154 return false; | |
| 2155 } | |
| 2156 TOSTRING_DEFAULT(V8StringResource<>, cppValue, v8Value, false); | |
| 2157 RELEASE_ASSERT(!exceptionState.hadException()); | |
| 2158 *result = cppValue; | |
| 2159 return true; | |
| 2160 } | |
| 2161 | |
| 2162 bool V8TestInterface::PrivateScript::stringAttributeAttributeSetter(LocalFrame*
frame, TestInterfaceImplementation* holderImpl, String cppValue) | |
| 2163 { | |
| 2164 if (!frame) | |
| 2165 return false; | |
| 2166 v8::HandleScope handleScope(toIsolate(frame)); | |
| 2167 ScriptForbiddenScope::AllowUserAgentScript script; | |
| 2168 v8::Handle<v8::Context> context = toV8Context(frame, DOMWrapperWorld::privat
eScriptIsolatedWorld()); | |
| 2169 if (context.IsEmpty()) | |
| 2170 return false; | |
| 2171 ScriptState* scriptState = ScriptState::from(context); | |
| 2172 if (!scriptState->executionContext()) | |
| 2173 return false; | |
| 2174 | |
| 2175 ScriptState::Scope scope(scriptState); | |
| 2176 v8::Handle<v8::Value> holder = toV8(holderImpl, scriptState->context()->Glob
al(), scriptState->isolate()); | |
| 2177 | |
| 2178 ExceptionState exceptionState(ExceptionState::SetterContext, "stringAttribut
e", "TestInterfaceImplementation", scriptState->context()->Global(), scriptState
->isolate()); | |
| 2179 v8::TryCatch block; | |
| 2180 PrivateScriptRunner::runDOMAttributeSetter(scriptState, "TestInterfaceImplem
entation", "stringAttribute", holder, v8String(scriptState->isolate(), cppValue)
); | |
| 2181 if (block.HasCaught()) { | |
| 2182 PrivateScriptRunner::rethrowExceptionInPrivateScript(scriptState->isolat
e(), exceptionState, block); | |
| 2183 block.ReThrow(); | |
| 2184 return false; | |
| 2185 } | |
| 2186 return true; | |
| 2187 } | |
| 2188 | |
| 2189 } // namespace blink | |
| 2190 #endif // ENABLE(CONDITION) | |
| OLD | NEW |