| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 227 static void implementsStaticStringAttributeAttributeSetterCallback(v8::Local<v8:
:String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& in
fo) | 227 static void implementsStaticStringAttributeAttributeSetterCallback(v8::Local<v8:
:String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& in
fo) |
| 228 { | 228 { |
| 229 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter"); | 229 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter"); |
| 230 TestInterfacePythonImplementationV8Internal::implementsStaticStringAttribute
AttributeSetter(jsValue, info); | 230 TestInterfacePythonImplementationV8Internal::implementsStaticStringAttribute
AttributeSetter(jsValue, info); |
| 231 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 231 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 232 } | 232 } |
| 233 | 233 |
| 234 static void implementsReadonlyStringAttributeAttributeGetter(const v8::PropertyC
allbackInfo<v8::Value>& info) | 234 static void implementsReadonlyStringAttributeAttributeGetter(const v8::PropertyC
allbackInfo<v8::Value>& info) |
| 235 { | 235 { |
| 236 TestInterfacePythonImplementation* imp = V8TestInterfacePython::toNative(inf
o.Holder()); | 236 TestInterfacePythonImplementation* imp = V8TestInterfacePython::toNative(inf
o.Holder()); |
| 237 v8SetReturnValueString(info, TestImplements::implementsReadonlyStringAttribu
te(imp), info.GetIsolate()); | 237 ASSERT(imp); |
| 238 v8SetReturnValueString(info, TestImplements::implementsReadonlyStringAttribu
te(*imp), info.GetIsolate()); |
| 238 } | 239 } |
| 239 | 240 |
| 240 static void implementsReadonlyStringAttributeAttributeGetterCallback(v8::Local<v
8::String>, const v8::PropertyCallbackInfo<v8::Value>& info) | 241 static void implementsReadonlyStringAttributeAttributeGetterCallback(v8::Local<v
8::String>, const v8::PropertyCallbackInfo<v8::Value>& info) |
| 241 { | 242 { |
| 242 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter"); | 243 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter"); |
| 243 TestInterfacePythonImplementationV8Internal::implementsReadonlyStringAttribu
teAttributeGetter(info); | 244 TestInterfacePythonImplementationV8Internal::implementsReadonlyStringAttribu
teAttributeGetter(info); |
| 244 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 245 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 245 } | 246 } |
| 246 | 247 |
| 247 static void implementsStringAttributeAttributeGetter(const v8::PropertyCallbackI
nfo<v8::Value>& info) | 248 static void implementsStringAttributeAttributeGetter(const v8::PropertyCallbackI
nfo<v8::Value>& info) |
| 248 { | 249 { |
| 249 TestInterfacePythonImplementation* imp = V8TestInterfacePython::toNative(inf
o.Holder()); | 250 TestInterfacePythonImplementation* imp = V8TestInterfacePython::toNative(inf
o.Holder()); |
| 250 v8SetReturnValueString(info, TestImplements::implementsStringAttribute(imp),
info.GetIsolate()); | 251 ASSERT(imp); |
| 252 v8SetReturnValueString(info, TestImplements::implementsStringAttribute(*imp)
, info.GetIsolate()); |
| 251 } | 253 } |
| 252 | 254 |
| 253 static void implementsStringAttributeAttributeGetterCallback(v8::Local<v8::Strin
g>, const v8::PropertyCallbackInfo<v8::Value>& info) | 255 static void implementsStringAttributeAttributeGetterCallback(v8::Local<v8::Strin
g>, const v8::PropertyCallbackInfo<v8::Value>& info) |
| 254 { | 256 { |
| 255 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter"); | 257 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter"); |
| 256 TestInterfacePythonImplementationV8Internal::implementsStringAttributeAttrib
uteGetter(info); | 258 TestInterfacePythonImplementationV8Internal::implementsStringAttributeAttrib
uteGetter(info); |
| 257 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 259 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 258 } | 260 } |
| 259 | 261 |
| 260 static void implementsStringAttributeAttributeSetter(v8::Local<v8::Value> jsValu
e, const v8::PropertyCallbackInfo<void>& info) | 262 static void implementsStringAttributeAttributeSetter(v8::Local<v8::Value> jsValu
e, const v8::PropertyCallbackInfo<void>& info) |
| 261 { | 263 { |
| 262 TestInterfacePythonImplementation* imp = V8TestInterfacePython::toNative(inf
o.Holder()); | 264 TestInterfacePythonImplementation* imp = V8TestInterfacePython::toNative(inf
o.Holder()); |
| 263 V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, cppValue, jsValue); | 265 V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, cppValue, jsValue); |
| 264 TestImplements::setImplementsStringAttribute(imp, cppValue); | 266 ASSERT(imp); |
| 267 TestImplements::setImplementsStringAttribute(*imp, cppValue); |
| 265 } | 268 } |
| 266 | 269 |
| 267 static void implementsStringAttributeAttributeSetterCallback(v8::Local<v8::Strin
g>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info) | 270 static void implementsStringAttributeAttributeSetterCallback(v8::Local<v8::Strin
g>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info) |
| 268 { | 271 { |
| 269 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter"); | 272 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter"); |
| 270 TestInterfacePythonImplementationV8Internal::implementsStringAttributeAttrib
uteSetter(jsValue, info); | 273 TestInterfacePythonImplementationV8Internal::implementsStringAttributeAttrib
uteSetter(jsValue, info); |
| 271 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 274 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 272 } | 275 } |
| 273 | 276 |
| 274 static void implementsNodeAttributeAttributeGetter(const v8::PropertyCallbackInf
o<v8::Value>& info) | 277 static void implementsNodeAttributeAttributeGetter(const v8::PropertyCallbackInf
o<v8::Value>& info) |
| 275 { | 278 { |
| 276 TestInterfacePythonImplementation* imp = V8TestInterfacePython::toNative(inf
o.Holder()); | 279 TestInterfacePythonImplementation* imp = V8TestInterfacePython::toNative(inf
o.Holder()); |
| 277 v8SetReturnValueFast(info, TestImplements::implementsNodeAttribute(imp), imp
); | 280 ASSERT(imp); |
| 281 v8SetReturnValueFast(info, TestImplements::implementsNodeAttribute(*imp), im
p); |
| 278 } | 282 } |
| 279 | 283 |
| 280 static void implementsNodeAttributeAttributeGetterCallback(v8::Local<v8::String>
, const v8::PropertyCallbackInfo<v8::Value>& info) | 284 static void implementsNodeAttributeAttributeGetterCallback(v8::Local<v8::String>
, const v8::PropertyCallbackInfo<v8::Value>& info) |
| 281 { | 285 { |
| 282 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter"); | 286 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter"); |
| 283 TestInterfacePythonImplementationV8Internal::implementsNodeAttributeAttribut
eGetter(info); | 287 TestInterfacePythonImplementationV8Internal::implementsNodeAttributeAttribut
eGetter(info); |
| 284 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 288 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 285 } | 289 } |
| 286 | 290 |
| 287 static void implementsNodeAttributeAttributeSetter(v8::Local<v8::Value> jsValue,
const v8::PropertyCallbackInfo<void>& info) | 291 static void implementsNodeAttributeAttributeSetter(v8::Local<v8::Value> jsValue,
const v8::PropertyCallbackInfo<void>& info) |
| 288 { | 292 { |
| 289 ExceptionState exceptionState(ExceptionState::SetterContext, "implementsNode
Attribute", "TestInterfacePython", info.Holder(), info.GetIsolate()); | 293 ExceptionState exceptionState(ExceptionState::SetterContext, "implementsNode
Attribute", "TestInterfacePython", info.Holder(), info.GetIsolate()); |
| 290 if (!isUndefinedOrNull(jsValue) && !V8Node::hasInstance(jsValue, info.GetIso
late())) { | 294 if (!isUndefinedOrNull(jsValue) && !V8Node::hasInstance(jsValue, info.GetIso
late())) { |
| 291 exceptionState.throwTypeError("The provided value is not of type 'Node'.
"); | 295 exceptionState.throwTypeError("The provided value is not of type 'Node'.
"); |
| 292 exceptionState.throwIfNeeded(); | 296 exceptionState.throwIfNeeded(); |
| 293 return; | 297 return; |
| 294 } | 298 } |
| 295 TestInterfacePythonImplementation* imp = V8TestInterfacePython::toNative(inf
o.Holder()); | 299 TestInterfacePythonImplementation* imp = V8TestInterfacePython::toNative(inf
o.Holder()); |
| 296 V8TRYCATCH_VOID(Node*, cppValue, V8Node::toNativeWithTypeCheck(info.GetIsola
te(), jsValue)); | 300 V8TRYCATCH_VOID(Node*, cppValue, V8Node::toNativeWithTypeCheck(info.GetIsola
te(), jsValue)); |
| 297 TestImplements::setImplementsNodeAttribute(imp, WTF::getPtr(cppValue)); | 301 ASSERT(imp); |
| 302 TestImplements::setImplementsNodeAttribute(*imp, WTF::getPtr(cppValue)); |
| 298 } | 303 } |
| 299 | 304 |
| 300 static void implementsNodeAttributeAttributeSetterCallback(v8::Local<v8::String>
, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info) | 305 static void implementsNodeAttributeAttributeSetterCallback(v8::Local<v8::String>
, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info) |
| 301 { | 306 { |
| 302 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter"); | 307 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter"); |
| 303 TestInterfacePythonImplementationV8Internal::implementsNodeAttributeAttribut
eSetter(jsValue, info); | 308 TestInterfacePythonImplementationV8Internal::implementsNodeAttributeAttribut
eSetter(jsValue, info); |
| 304 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 309 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 305 } | 310 } |
| 306 | 311 |
| 307 static void implementsEventHandlerAttributeAttributeGetter(const v8::PropertyCal
lbackInfo<v8::Value>& info) | 312 static void implementsEventHandlerAttributeAttributeGetter(const v8::PropertyCal
lbackInfo<v8::Value>& info) |
| 308 { | 313 { |
| 309 TestInterfacePythonImplementation* imp = V8TestInterfacePython::toNative(inf
o.Holder()); | 314 TestInterfacePythonImplementation* imp = V8TestInterfacePython::toNative(inf
o.Holder()); |
| 310 EventListener* jsValue = TestImplements::implementsEventHandlerAttribute(imp
); | 315 ASSERT(imp); |
| 316 ASSERT(imp); |
| 317 EventListener* jsValue = TestImplements::implementsEventHandlerAttribute(*im
p); |
| 311 v8SetReturnValue(info, jsValue ? v8::Handle<v8::Value>(V8AbstractEventListen
er::cast(jsValue)->getListenerObject(imp->executionContext())) : v8::Handle<v8::
Value>(v8::Null(info.GetIsolate()))); | 318 v8SetReturnValue(info, jsValue ? v8::Handle<v8::Value>(V8AbstractEventListen
er::cast(jsValue)->getListenerObject(imp->executionContext())) : v8::Handle<v8::
Value>(v8::Null(info.GetIsolate()))); |
| 312 } | 319 } |
| 313 | 320 |
| 314 static void implementsEventHandlerAttributeAttributeGetterCallback(v8::Local<v8:
:String>, const v8::PropertyCallbackInfo<v8::Value>& info) | 321 static void implementsEventHandlerAttributeAttributeGetterCallback(v8::Local<v8:
:String>, const v8::PropertyCallbackInfo<v8::Value>& info) |
| 315 { | 322 { |
| 316 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter"); | 323 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter"); |
| 317 TestInterfacePythonImplementationV8Internal::implementsEventHandlerAttribute
AttributeGetter(info); | 324 TestInterfacePythonImplementationV8Internal::implementsEventHandlerAttribute
AttributeGetter(info); |
| 318 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 325 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 319 } | 326 } |
| 320 | 327 |
| 321 static void implementsEventHandlerAttributeAttributeSetter(v8::Local<v8::Value>
jsValue, const v8::PropertyCallbackInfo<void>& info) | 328 static void implementsEventHandlerAttributeAttributeSetter(v8::Local<v8::Value>
jsValue, const v8::PropertyCallbackInfo<void>& info) |
| 322 { | 329 { |
| 323 TestInterfacePythonImplementation* imp = V8TestInterfacePython::toNative(inf
o.Holder()); | 330 TestInterfacePythonImplementation* imp = V8TestInterfacePython::toNative(inf
o.Holder()); |
| 324 moveEventListenerToNewWrapper(info.Holder(), TestImplements::implementsEvent
HandlerAttribute(imp), jsValue, V8TestInterfacePython::eventListenerCacheIndex,
info.GetIsolate()); | 331 ASSERT(imp); |
| 325 TestImplements::setImplementsEventHandlerAttribute(imp, V8EventListenerList:
:getEventListener(jsValue, true, ListenerFindOrCreate)); | 332 moveEventListenerToNewWrapper(info.Holder(), TestImplements::implementsEvent
HandlerAttribute(*imp), jsValue, V8TestInterfacePython::eventListenerCacheIndex,
info.GetIsolate()); |
| 333 ASSERT(imp); |
| 334 TestImplements::setImplementsEventHandlerAttribute(*imp, V8EventListenerList
::getEventListener(jsValue, true, ListenerFindOrCreate)); |
| 326 } | 335 } |
| 327 | 336 |
| 328 static void implementsEventHandlerAttributeAttributeSetterCallback(v8::Local<v8:
:String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& in
fo) | 337 static void implementsEventHandlerAttributeAttributeSetterCallback(v8::Local<v8:
:String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& in
fo) |
| 329 { | 338 { |
| 330 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter"); | 339 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter"); |
| 331 TestInterfacePythonImplementationV8Internal::implementsEventHandlerAttribute
AttributeSetter(jsValue, info); | 340 TestInterfacePythonImplementationV8Internal::implementsEventHandlerAttribute
AttributeSetter(jsValue, info); |
| 332 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 341 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 333 } | 342 } |
| 334 | 343 |
| 335 static void implementsRuntimeEnabledNodeAttributeAttributeGetter(const v8::Prope
rtyCallbackInfo<v8::Value>& info) | 344 static void implementsRuntimeEnabledNodeAttributeAttributeGetter(const v8::Prope
rtyCallbackInfo<v8::Value>& info) |
| 336 { | 345 { |
| 337 TestInterfacePythonImplementation* imp = V8TestInterfacePython::toNative(inf
o.Holder()); | 346 TestInterfacePythonImplementation* imp = V8TestInterfacePython::toNative(inf
o.Holder()); |
| 338 v8SetReturnValueFast(info, TestImplements::implementsRuntimeEnabledNodeAttri
bute(imp), imp); | 347 ASSERT(imp); |
| 348 v8SetReturnValueFast(info, TestImplements::implementsRuntimeEnabledNodeAttri
bute(*imp), imp); |
| 339 } | 349 } |
| 340 | 350 |
| 341 static void implementsRuntimeEnabledNodeAttributeAttributeGetterCallback(v8::Loc
al<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info) | 351 static void implementsRuntimeEnabledNodeAttributeAttributeGetterCallback(v8::Loc
al<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info) |
| 342 { | 352 { |
| 343 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter"); | 353 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter"); |
| 344 TestInterfacePythonImplementationV8Internal::implementsRuntimeEnabledNodeAtt
ributeAttributeGetter(info); | 354 TestInterfacePythonImplementationV8Internal::implementsRuntimeEnabledNodeAtt
ributeAttributeGetter(info); |
| 345 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 355 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 346 } | 356 } |
| 347 | 357 |
| 348 static void implementsRuntimeEnabledNodeAttributeAttributeSetter(v8::Local<v8::V
alue> jsValue, const v8::PropertyCallbackInfo<void>& info) | 358 static void implementsRuntimeEnabledNodeAttributeAttributeSetter(v8::Local<v8::V
alue> jsValue, const v8::PropertyCallbackInfo<void>& info) |
| 349 { | 359 { |
| 350 ExceptionState exceptionState(ExceptionState::SetterContext, "implementsRunt
imeEnabledNodeAttribute", "TestInterfacePython", info.Holder(), info.GetIsolate(
)); | 360 ExceptionState exceptionState(ExceptionState::SetterContext, "implementsRunt
imeEnabledNodeAttribute", "TestInterfacePython", info.Holder(), info.GetIsolate(
)); |
| 351 if (!isUndefinedOrNull(jsValue) && !V8Node::hasInstance(jsValue, info.GetIso
late())) { | 361 if (!isUndefinedOrNull(jsValue) && !V8Node::hasInstance(jsValue, info.GetIso
late())) { |
| 352 exceptionState.throwTypeError("The provided value is not of type 'Node'.
"); | 362 exceptionState.throwTypeError("The provided value is not of type 'Node'.
"); |
| 353 exceptionState.throwIfNeeded(); | 363 exceptionState.throwIfNeeded(); |
| 354 return; | 364 return; |
| 355 } | 365 } |
| 356 TestInterfacePythonImplementation* imp = V8TestInterfacePython::toNative(inf
o.Holder()); | 366 TestInterfacePythonImplementation* imp = V8TestInterfacePython::toNative(inf
o.Holder()); |
| 357 V8TRYCATCH_VOID(Node*, cppValue, V8Node::toNativeWithTypeCheck(info.GetIsola
te(), jsValue)); | 367 V8TRYCATCH_VOID(Node*, cppValue, V8Node::toNativeWithTypeCheck(info.GetIsola
te(), jsValue)); |
| 358 TestImplements::setImplementsRuntimeEnabledNodeAttribute(imp, WTF::getPtr(cp
pValue)); | 368 ASSERT(imp); |
| 369 TestImplements::setImplementsRuntimeEnabledNodeAttribute(*imp, WTF::getPtr(c
ppValue)); |
| 359 } | 370 } |
| 360 | 371 |
| 361 static void implementsRuntimeEnabledNodeAttributeAttributeSetterCallback(v8::Loc
al<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<voi
d>& info) | 372 static void implementsRuntimeEnabledNodeAttributeAttributeSetterCallback(v8::Loc
al<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<voi
d>& info) |
| 362 { | 373 { |
| 363 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter"); | 374 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter"); |
| 364 TestInterfacePythonImplementationV8Internal::implementsRuntimeEnabledNodeAtt
ributeAttributeSetter(jsValue, info); | 375 TestInterfacePythonImplementationV8Internal::implementsRuntimeEnabledNodeAtt
ributeAttributeSetter(jsValue, info); |
| 365 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 376 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 366 } | 377 } |
| 367 | 378 |
| 368 static void implementsPerContextEnabledNodeAttributeAttributeGetter(const v8::Pr
opertyCallbackInfo<v8::Value>& info) | 379 static void implementsPerContextEnabledNodeAttributeAttributeGetter(const v8::Pr
opertyCallbackInfo<v8::Value>& info) |
| 369 { | 380 { |
| 370 TestInterfacePythonImplementation* imp = V8TestInterfacePython::toNative(inf
o.Holder()); | 381 TestInterfacePythonImplementation* imp = V8TestInterfacePython::toNative(inf
o.Holder()); |
| 371 v8SetReturnValueFast(info, TestImplements::implementsPerContextEnabledNodeAt
tribute(imp), imp); | 382 ASSERT(imp); |
| 383 v8SetReturnValueFast(info, TestImplements::implementsPerContextEnabledNodeAt
tribute(*imp), imp); |
| 372 } | 384 } |
| 373 | 385 |
| 374 static void implementsPerContextEnabledNodeAttributeAttributeGetterCallback(v8::
Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info) | 386 static void implementsPerContextEnabledNodeAttributeAttributeGetterCallback(v8::
Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info) |
| 375 { | 387 { |
| 376 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter"); | 388 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter"); |
| 377 TestInterfacePythonImplementationV8Internal::implementsPerContextEnabledNode
AttributeAttributeGetter(info); | 389 TestInterfacePythonImplementationV8Internal::implementsPerContextEnabledNode
AttributeAttributeGetter(info); |
| 378 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 390 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 379 } | 391 } |
| 380 | 392 |
| 381 static void implementsPerContextEnabledNodeAttributeAttributeSetter(v8::Local<v8
::Value> jsValue, const v8::PropertyCallbackInfo<void>& info) | 393 static void implementsPerContextEnabledNodeAttributeAttributeSetter(v8::Local<v8
::Value> jsValue, const v8::PropertyCallbackInfo<void>& info) |
| 382 { | 394 { |
| 383 ExceptionState exceptionState(ExceptionState::SetterContext, "implementsPerC
ontextEnabledNodeAttribute", "TestInterfacePython", info.Holder(), info.GetIsola
te()); | 395 ExceptionState exceptionState(ExceptionState::SetterContext, "implementsPerC
ontextEnabledNodeAttribute", "TestInterfacePython", info.Holder(), info.GetIsola
te()); |
| 384 if (!isUndefinedOrNull(jsValue) && !V8Node::hasInstance(jsValue, info.GetIso
late())) { | 396 if (!isUndefinedOrNull(jsValue) && !V8Node::hasInstance(jsValue, info.GetIso
late())) { |
| 385 exceptionState.throwTypeError("The provided value is not of type 'Node'.
"); | 397 exceptionState.throwTypeError("The provided value is not of type 'Node'.
"); |
| 386 exceptionState.throwIfNeeded(); | 398 exceptionState.throwIfNeeded(); |
| 387 return; | 399 return; |
| 388 } | 400 } |
| 389 TestInterfacePythonImplementation* imp = V8TestInterfacePython::toNative(inf
o.Holder()); | 401 TestInterfacePythonImplementation* imp = V8TestInterfacePython::toNative(inf
o.Holder()); |
| 390 V8TRYCATCH_VOID(Node*, cppValue, V8Node::toNativeWithTypeCheck(info.GetIsola
te(), jsValue)); | 402 V8TRYCATCH_VOID(Node*, cppValue, V8Node::toNativeWithTypeCheck(info.GetIsola
te(), jsValue)); |
| 391 TestImplements::setImplementsPerContextEnabledNodeAttribute(imp, WTF::getPtr
(cppValue)); | 403 ASSERT(imp); |
| 404 TestImplements::setImplementsPerContextEnabledNodeAttribute(*imp, WTF::getPt
r(cppValue)); |
| 392 } | 405 } |
| 393 | 406 |
| 394 static void implementsPerContextEnabledNodeAttributeAttributeSetterCallback(v8::
Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<
void>& info) | 407 static void implementsPerContextEnabledNodeAttributeAttributeSetterCallback(v8::
Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<
void>& info) |
| 395 { | 408 { |
| 396 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter"); | 409 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter"); |
| 397 TestInterfacePythonImplementationV8Internal::implementsPerContextEnabledNode
AttributeAttributeSetter(jsValue, info); | 410 TestInterfacePythonImplementationV8Internal::implementsPerContextEnabledNode
AttributeAttributeSetter(jsValue, info); |
| 398 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 411 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 399 } | 412 } |
| 400 | 413 |
| 401 static void implements2StaticStringAttributeAttributeGetter(const v8::PropertyCa
llbackInfo<v8::Value>& info) | 414 static void implements2StaticStringAttributeAttributeGetter(const v8::PropertyCa
llbackInfo<v8::Value>& info) |
| (...skipping 17 matching lines...) Expand all Loading... |
| 419 static void implements2StaticStringAttributeAttributeSetterCallback(v8::Local<v8
::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& i
nfo) | 432 static void implements2StaticStringAttributeAttributeSetterCallback(v8::Local<v8
::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& i
nfo) |
| 420 { | 433 { |
| 421 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter"); | 434 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter"); |
| 422 TestInterfacePythonImplementationV8Internal::implements2StaticStringAttribut
eAttributeSetter(jsValue, info); | 435 TestInterfacePythonImplementationV8Internal::implements2StaticStringAttribut
eAttributeSetter(jsValue, info); |
| 423 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 436 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 424 } | 437 } |
| 425 | 438 |
| 426 static void implements2StringAttributeAttributeGetter(const v8::PropertyCallback
Info<v8::Value>& info) | 439 static void implements2StringAttributeAttributeGetter(const v8::PropertyCallback
Info<v8::Value>& info) |
| 427 { | 440 { |
| 428 TestInterfacePythonImplementation* imp = V8TestInterfacePython::toNative(inf
o.Holder()); | 441 TestInterfacePythonImplementation* imp = V8TestInterfacePython::toNative(inf
o.Holder()); |
| 429 v8SetReturnValueString(info, TestImplements2Implementation::implements2Strin
gAttribute(imp), info.GetIsolate()); | 442 ASSERT(imp); |
| 443 v8SetReturnValueString(info, TestImplements2Implementation::implements2Strin
gAttribute(*imp), info.GetIsolate()); |
| 430 } | 444 } |
| 431 | 445 |
| 432 static void implements2StringAttributeAttributeGetterCallback(v8::Local<v8::Stri
ng>, const v8::PropertyCallbackInfo<v8::Value>& info) | 446 static void implements2StringAttributeAttributeGetterCallback(v8::Local<v8::Stri
ng>, const v8::PropertyCallbackInfo<v8::Value>& info) |
| 433 { | 447 { |
| 434 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter"); | 448 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter"); |
| 435 TestInterfacePythonImplementationV8Internal::implements2StringAttributeAttri
buteGetter(info); | 449 TestInterfacePythonImplementationV8Internal::implements2StringAttributeAttri
buteGetter(info); |
| 436 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 450 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 437 } | 451 } |
| 438 | 452 |
| 439 static void implements2StringAttributeAttributeSetter(v8::Local<v8::Value> jsVal
ue, const v8::PropertyCallbackInfo<void>& info) | 453 static void implements2StringAttributeAttributeSetter(v8::Local<v8::Value> jsVal
ue, const v8::PropertyCallbackInfo<void>& info) |
| 440 { | 454 { |
| 441 TestInterfacePythonImplementation* imp = V8TestInterfacePython::toNative(inf
o.Holder()); | 455 TestInterfacePythonImplementation* imp = V8TestInterfacePython::toNative(inf
o.Holder()); |
| 442 V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, cppValue, jsValue); | 456 V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, cppValue, jsValue); |
| 443 TestImplements2Implementation::setImplements2StringAttribute(imp, cppValue); | 457 ASSERT(imp); |
| 458 TestImplements2Implementation::setImplements2StringAttribute(*imp, cppValue)
; |
| 444 } | 459 } |
| 445 | 460 |
| 446 static void implements2StringAttributeAttributeSetterCallback(v8::Local<v8::Stri
ng>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info) | 461 static void implements2StringAttributeAttributeSetterCallback(v8::Local<v8::Stri
ng>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info) |
| 447 { | 462 { |
| 448 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter"); | 463 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter"); |
| 449 TestInterfacePythonImplementationV8Internal::implements2StringAttributeAttri
buteSetter(jsValue, info); | 464 TestInterfacePythonImplementationV8Internal::implements2StringAttributeAttri
buteSetter(jsValue, info); |
| 450 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 465 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 451 } | 466 } |
| 452 | 467 |
| 453 #if ENABLE(PARTIAL_CONDITION) | 468 #if ENABLE(PARTIAL_CONDITION) |
| 454 static void partialLongAttributeAttributeGetter(const v8::PropertyCallbackInfo<v
8::Value>& info) | 469 static void partialLongAttributeAttributeGetter(const v8::PropertyCallbackInfo<v
8::Value>& info) |
| 455 { | 470 { |
| 456 TestInterfacePythonImplementation* imp = V8TestInterfacePython::toNative(inf
o.Holder()); | 471 TestInterfacePythonImplementation* imp = V8TestInterfacePython::toNative(inf
o.Holder()); |
| 457 v8SetReturnValueInt(info, TestPartialInterfacePython::partialLongAttribute(i
mp)); | 472 ASSERT(imp); |
| 473 v8SetReturnValueInt(info, TestPartialInterfacePython::partialLongAttribute(*
imp)); |
| 458 } | 474 } |
| 459 #endif // ENABLE(PARTIAL_CONDITION) | 475 #endif // ENABLE(PARTIAL_CONDITION) |
| 460 | 476 |
| 461 #if ENABLE(PARTIAL_CONDITION) | 477 #if ENABLE(PARTIAL_CONDITION) |
| 462 static void partialLongAttributeAttributeGetterCallback(v8::Local<v8::String>, c
onst v8::PropertyCallbackInfo<v8::Value>& info) | 478 static void partialLongAttributeAttributeGetterCallback(v8::Local<v8::String>, c
onst v8::PropertyCallbackInfo<v8::Value>& info) |
| 463 { | 479 { |
| 464 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter"); | 480 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter"); |
| 465 TestInterfacePythonImplementationV8Internal::partialLongAttributeAttributeGe
tter(info); | 481 TestInterfacePythonImplementationV8Internal::partialLongAttributeAttributeGe
tter(info); |
| 466 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 482 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 467 } | 483 } |
| 468 #endif // ENABLE(PARTIAL_CONDITION) | 484 #endif // ENABLE(PARTIAL_CONDITION) |
| 469 | 485 |
| 470 #if ENABLE(PARTIAL_CONDITION) | 486 #if ENABLE(PARTIAL_CONDITION) |
| 471 static void partialLongAttributeAttributeSetter(v8::Local<v8::Value> jsValue, co
nst v8::PropertyCallbackInfo<void>& info) | 487 static void partialLongAttributeAttributeSetter(v8::Local<v8::Value> jsValue, co
nst v8::PropertyCallbackInfo<void>& info) |
| 472 { | 488 { |
| 473 ExceptionState exceptionState(ExceptionState::SetterContext, "partialLongAtt
ribute", "TestInterfacePython", info.Holder(), info.GetIsolate()); | 489 ExceptionState exceptionState(ExceptionState::SetterContext, "partialLongAtt
ribute", "TestInterfacePython", info.Holder(), info.GetIsolate()); |
| 474 TestInterfacePythonImplementation* imp = V8TestInterfacePython::toNative(inf
o.Holder()); | 490 TestInterfacePythonImplementation* imp = V8TestInterfacePython::toNative(inf
o.Holder()); |
| 475 V8TRYCATCH_EXCEPTION_VOID(int, cppValue, toInt32(jsValue, exceptionState), e
xceptionState); | 491 V8TRYCATCH_EXCEPTION_VOID(int, cppValue, toInt32(jsValue, exceptionState), e
xceptionState); |
| 476 TestPartialInterfacePython::setPartialLongAttribute(imp, cppValue); | 492 ASSERT(imp); |
| 493 TestPartialInterfacePython::setPartialLongAttribute(*imp, cppValue); |
| 477 } | 494 } |
| 478 #endif // ENABLE(PARTIAL_CONDITION) | 495 #endif // ENABLE(PARTIAL_CONDITION) |
| 479 | 496 |
| 480 #if ENABLE(PARTIAL_CONDITION) | 497 #if ENABLE(PARTIAL_CONDITION) |
| 481 static void partialLongAttributeAttributeSetterCallback(v8::Local<v8::String>, v
8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info) | 498 static void partialLongAttributeAttributeSetterCallback(v8::Local<v8::String>, v
8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info) |
| 482 { | 499 { |
| 483 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter"); | 500 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter"); |
| 484 TestInterfacePythonImplementationV8Internal::partialLongAttributeAttributeSe
tter(jsValue, info); | 501 TestInterfacePythonImplementationV8Internal::partialLongAttributeAttributeSe
tter(jsValue, info); |
| 485 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 502 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 486 } | 503 } |
| (...skipping 30 matching lines...) Expand all Loading... |
| 517 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter"); | 534 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter"); |
| 518 TestInterfacePythonImplementationV8Internal::partialStaticLongAttributeAttri
buteSetter(jsValue, info); | 535 TestInterfacePythonImplementationV8Internal::partialStaticLongAttributeAttri
buteSetter(jsValue, info); |
| 519 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 536 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 520 } | 537 } |
| 521 #endif // ENABLE(PARTIAL_CONDITION) | 538 #endif // ENABLE(PARTIAL_CONDITION) |
| 522 | 539 |
| 523 #if ENABLE(PARTIAL_CONDITION) | 540 #if ENABLE(PARTIAL_CONDITION) |
| 524 static void partialCallWithExecutionContextLongAttributeAttributeGetter(const v8
::PropertyCallbackInfo<v8::Value>& info) | 541 static void partialCallWithExecutionContextLongAttributeAttributeGetter(const v8
::PropertyCallbackInfo<v8::Value>& info) |
| 525 { | 542 { |
| 526 TestInterfacePythonImplementation* imp = V8TestInterfacePython::toNative(inf
o.Holder()); | 543 TestInterfacePythonImplementation* imp = V8TestInterfacePython::toNative(inf
o.Holder()); |
| 544 ASSERT(imp); |
| 527 ExecutionContext* scriptContext = currentExecutionContext(info.GetIsolate())
; | 545 ExecutionContext* scriptContext = currentExecutionContext(info.GetIsolate())
; |
| 528 v8SetReturnValueInt(info, TestPartialInterfacePython::partialCallWithExecuti
onContextLongAttribute(scriptContext, imp)); | 546 v8SetReturnValueInt(info, TestPartialInterfacePython::partialCallWithExecuti
onContextLongAttribute(scriptContext, *imp)); |
| 529 } | 547 } |
| 530 #endif // ENABLE(PARTIAL_CONDITION) | 548 #endif // ENABLE(PARTIAL_CONDITION) |
| 531 | 549 |
| 532 #if ENABLE(PARTIAL_CONDITION) | 550 #if ENABLE(PARTIAL_CONDITION) |
| 533 static void partialCallWithExecutionContextLongAttributeAttributeGetterCallback(
v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info) | 551 static void partialCallWithExecutionContextLongAttributeAttributeGetterCallback(
v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info) |
| 534 { | 552 { |
| 535 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter"); | 553 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter"); |
| 536 TestInterfacePythonImplementationV8Internal::partialCallWithExecutionContext
LongAttributeAttributeGetter(info); | 554 TestInterfacePythonImplementationV8Internal::partialCallWithExecutionContext
LongAttributeAttributeGetter(info); |
| 537 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 555 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 538 } | 556 } |
| 539 #endif // ENABLE(PARTIAL_CONDITION) | 557 #endif // ENABLE(PARTIAL_CONDITION) |
| 540 | 558 |
| 541 #if ENABLE(PARTIAL_CONDITION) | 559 #if ENABLE(PARTIAL_CONDITION) |
| 542 static void partialCallWithExecutionContextLongAttributeAttributeSetter(v8::Loca
l<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info) | 560 static void partialCallWithExecutionContextLongAttributeAttributeSetter(v8::Loca
l<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info) |
| 543 { | 561 { |
| 544 ExceptionState exceptionState(ExceptionState::SetterContext, "partialCallWit
hExecutionContextLongAttribute", "TestInterfacePython", info.Holder(), info.GetI
solate()); | 562 ExceptionState exceptionState(ExceptionState::SetterContext, "partialCallWit
hExecutionContextLongAttribute", "TestInterfacePython", info.Holder(), info.GetI
solate()); |
| 545 TestInterfacePythonImplementation* imp = V8TestInterfacePython::toNative(inf
o.Holder()); | 563 TestInterfacePythonImplementation* imp = V8TestInterfacePython::toNative(inf
o.Holder()); |
| 546 V8TRYCATCH_EXCEPTION_VOID(int, cppValue, toInt32(jsValue, exceptionState), e
xceptionState); | 564 V8TRYCATCH_EXCEPTION_VOID(int, cppValue, toInt32(jsValue, exceptionState), e
xceptionState); |
| 565 ASSERT(imp); |
| 547 ExecutionContext* scriptContext = currentExecutionContext(info.GetIsolate())
; | 566 ExecutionContext* scriptContext = currentExecutionContext(info.GetIsolate())
; |
| 548 TestPartialInterfacePython::setPartialCallWithExecutionContextLongAttribute(
scriptContext, imp, cppValue); | 567 TestPartialInterfacePython::setPartialCallWithExecutionContextLongAttribute(
scriptContext, *imp, cppValue); |
| 549 } | 568 } |
| 550 #endif // ENABLE(PARTIAL_CONDITION) | 569 #endif // ENABLE(PARTIAL_CONDITION) |
| 551 | 570 |
| 552 #if ENABLE(PARTIAL_CONDITION) | 571 #if ENABLE(PARTIAL_CONDITION) |
| 553 static void partialCallWithExecutionContextLongAttributeAttributeSetterCallback(
v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackI
nfo<void>& info) | 572 static void partialCallWithExecutionContextLongAttributeAttributeSetterCallback(
v8::Local<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackI
nfo<void>& info) |
| 554 { | 573 { |
| 555 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter"); | 574 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter"); |
| 556 TestInterfacePythonImplementationV8Internal::partialCallWithExecutionContext
LongAttributeAttributeSetter(jsValue, info); | 575 TestInterfacePythonImplementationV8Internal::partialCallWithExecutionContext
LongAttributeAttributeSetter(jsValue, info); |
| 557 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 576 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 558 } | 577 } |
| 559 #endif // ENABLE(PARTIAL_CONDITION) | 578 #endif // ENABLE(PARTIAL_CONDITION) |
| 560 | 579 |
| 561 static void partial2LongAttributeAttributeGetter(const v8::PropertyCallbackInfo<
v8::Value>& info) | 580 static void partial2LongAttributeAttributeGetter(const v8::PropertyCallbackInfo<
v8::Value>& info) |
| 562 { | 581 { |
| 563 TestInterfacePythonImplementation* imp = V8TestInterfacePython::toNative(inf
o.Holder()); | 582 TestInterfacePythonImplementation* imp = V8TestInterfacePython::toNative(inf
o.Holder()); |
| 564 v8SetReturnValueInt(info, TestPartialInterfacePythonImplementation::partial2
LongAttribute(imp)); | 583 ASSERT(imp); |
| 584 v8SetReturnValueInt(info, TestPartialInterfacePythonImplementation::partial2
LongAttribute(*imp)); |
| 565 } | 585 } |
| 566 | 586 |
| 567 static void partial2LongAttributeAttributeGetterCallback(v8::Local<v8::String>,
const v8::PropertyCallbackInfo<v8::Value>& info) | 587 static void partial2LongAttributeAttributeGetterCallback(v8::Local<v8::String>,
const v8::PropertyCallbackInfo<v8::Value>& info) |
| 568 { | 588 { |
| 569 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter"); | 589 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter"); |
| 570 TestInterfacePythonImplementationV8Internal::partial2LongAttributeAttributeG
etter(info); | 590 TestInterfacePythonImplementationV8Internal::partial2LongAttributeAttributeG
etter(info); |
| 571 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 591 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 572 } | 592 } |
| 573 | 593 |
| 574 static void partial2LongAttributeAttributeSetter(v8::Local<v8::Value> jsValue, c
onst v8::PropertyCallbackInfo<void>& info) | 594 static void partial2LongAttributeAttributeSetter(v8::Local<v8::Value> jsValue, c
onst v8::PropertyCallbackInfo<void>& info) |
| 575 { | 595 { |
| 576 ExceptionState exceptionState(ExceptionState::SetterContext, "partial2LongAt
tribute", "TestInterfacePython", info.Holder(), info.GetIsolate()); | 596 ExceptionState exceptionState(ExceptionState::SetterContext, "partial2LongAt
tribute", "TestInterfacePython", info.Holder(), info.GetIsolate()); |
| 577 TestInterfacePythonImplementation* imp = V8TestInterfacePython::toNative(inf
o.Holder()); | 597 TestInterfacePythonImplementation* imp = V8TestInterfacePython::toNative(inf
o.Holder()); |
| 578 V8TRYCATCH_EXCEPTION_VOID(int, cppValue, toInt32(jsValue, exceptionState), e
xceptionState); | 598 V8TRYCATCH_EXCEPTION_VOID(int, cppValue, toInt32(jsValue, exceptionState), e
xceptionState); |
| 579 TestPartialInterfacePythonImplementation::setPartial2LongAttribute(imp, cppV
alue); | 599 ASSERT(imp); |
| 600 TestPartialInterfacePythonImplementation::setPartial2LongAttribute(*imp, cpp
Value); |
| 580 } | 601 } |
| 581 | 602 |
| 582 static void partial2LongAttributeAttributeSetterCallback(v8::Local<v8::String>,
v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info) | 603 static void partial2LongAttributeAttributeSetterCallback(v8::Local<v8::String>,
v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info) |
| 583 { | 604 { |
| 584 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter"); | 605 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter"); |
| 585 TestInterfacePythonImplementationV8Internal::partial2LongAttributeAttributeS
etter(jsValue, info); | 606 TestInterfacePythonImplementationV8Internal::partial2LongAttributeAttributeS
etter(jsValue, info); |
| 586 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 607 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 587 } | 608 } |
| 588 | 609 |
| 589 static void partial2StaticLongAttributeAttributeGetter(const v8::PropertyCallbac
kInfo<v8::Value>& info) | 610 static void partial2StaticLongAttributeAttributeGetter(const v8::PropertyCallbac
kInfo<v8::Value>& info) |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 676 static void voidMethodMethodCallbackForMainWorld(const v8::FunctionCallbackInfo<
v8::Value>& info) | 697 static void voidMethodMethodCallbackForMainWorld(const v8::FunctionCallbackInfo<
v8::Value>& info) |
| 677 { | 698 { |
| 678 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); | 699 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); |
| 679 TestInterfacePythonImplementationV8Internal::voidMethodMethodForMainWorld(in
fo); | 700 TestInterfacePythonImplementationV8Internal::voidMethodMethodForMainWorld(in
fo); |
| 680 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 701 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 681 } | 702 } |
| 682 | 703 |
| 683 static void implementsVoidMethodMethod(const v8::FunctionCallbackInfo<v8::Value>
& info) | 704 static void implementsVoidMethodMethod(const v8::FunctionCallbackInfo<v8::Value>
& info) |
| 684 { | 705 { |
| 685 TestInterfacePythonImplementation* imp = V8TestInterfacePython::toNative(inf
o.Holder()); | 706 TestInterfacePythonImplementation* imp = V8TestInterfacePython::toNative(inf
o.Holder()); |
| 686 TestImplements::implementsVoidMethod(imp); | 707 ASSERT(imp); |
| 708 TestImplements::implementsVoidMethod(*imp); |
| 687 } | 709 } |
| 688 | 710 |
| 689 static void implementsVoidMethodMethodCallback(const v8::FunctionCallbackInfo<v8
::Value>& info) | 711 static void implementsVoidMethodMethodCallback(const v8::FunctionCallbackInfo<v8
::Value>& info) |
| 690 { | 712 { |
| 691 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); | 713 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); |
| 692 TestInterfacePythonImplementationV8Internal::implementsVoidMethodMethod(info
); | 714 TestInterfacePythonImplementationV8Internal::implementsVoidMethodMethod(info
); |
| 693 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 715 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 694 } | 716 } |
| 695 | 717 |
| 696 static void implementsComplexMethodMethod(const v8::FunctionCallbackInfo<v8::Val
ue>& info) | 718 static void implementsComplexMethodMethod(const v8::FunctionCallbackInfo<v8::Val
ue>& info) |
| 697 { | 719 { |
| 698 ExceptionState exceptionState(ExceptionState::ExecutionContext, "implementsC
omplexMethod", "TestInterfacePython", info.Holder(), info.GetIsolate()); | 720 ExceptionState exceptionState(ExceptionState::ExecutionContext, "implementsC
omplexMethod", "TestInterfacePython", info.Holder(), info.GetIsolate()); |
| 699 if (UNLIKELY(info.Length() < 2)) { | 721 if (UNLIKELY(info.Length() < 2)) { |
| 700 exceptionState.throwTypeError(ExceptionMessages::notEnoughArguments(2, i
nfo.Length())); | 722 exceptionState.throwTypeError(ExceptionMessages::notEnoughArguments(2, i
nfo.Length())); |
| 701 exceptionState.throwIfNeeded(); | 723 exceptionState.throwIfNeeded(); |
| 702 return; | 724 return; |
| 703 } | 725 } |
| 704 TestInterfacePythonImplementation* imp = V8TestInterfacePython::toNative(inf
o.Holder()); | 726 TestInterfacePythonImplementation* imp = V8TestInterfacePython::toNative(inf
o.Holder()); |
| 705 V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, strArg, info[0]); | 727 V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, strArg, info[0]); |
| 706 if (info.Length() > 1 && !V8TestInterfaceEmpty::hasInstance(info[1], info.Ge
tIsolate())) { | 728 if (info.Length() > 1 && !V8TestInterfaceEmpty::hasInstance(info[1], info.Ge
tIsolate())) { |
| 707 exceptionState.throwTypeError("parameter 2 is not of type 'TestInterface
Empty'."); | 729 exceptionState.throwTypeError("parameter 2 is not of type 'TestInterface
Empty'."); |
| 708 exceptionState.throwIfNeeded(); | 730 exceptionState.throwIfNeeded(); |
| 709 return; | 731 return; |
| 710 } | 732 } |
| 711 V8TRYCATCH_VOID(TestInterfaceEmpty*, testInterfaceEmptyArg, V8TestInterfaceE
mpty::toNativeWithTypeCheck(info.GetIsolate(), info[1])); | 733 V8TRYCATCH_VOID(TestInterfaceEmpty*, testInterfaceEmptyArg, V8TestInterfaceE
mpty::toNativeWithTypeCheck(info.GetIsolate(), info[1])); |
| 734 ASSERT(imp); |
| 712 ExecutionContext* scriptContext = currentExecutionContext(info.GetIsolate())
; | 735 ExecutionContext* scriptContext = currentExecutionContext(info.GetIsolate())
; |
| 713 RefPtr<TestInterfaceEmpty> result = TestImplements::implementsComplexMethod(
scriptContext, imp, strArg, testInterfaceEmptyArg, exceptionState); | 736 RefPtr<TestInterfaceEmpty> result = TestImplements::implementsComplexMethod(
scriptContext, *imp, strArg, testInterfaceEmptyArg, exceptionState); |
| 714 if (exceptionState.throwIfNeeded()) | 737 if (exceptionState.throwIfNeeded()) |
| 715 return; | 738 return; |
| 716 v8SetReturnValue(info, result.release()); | 739 v8SetReturnValue(info, result.release()); |
| 717 } | 740 } |
| 718 | 741 |
| 719 static void implementsComplexMethodMethodCallback(const v8::FunctionCallbackInfo
<v8::Value>& info) | 742 static void implementsComplexMethodMethodCallback(const v8::FunctionCallbackInfo
<v8::Value>& info) |
| 720 { | 743 { |
| 721 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); | 744 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); |
| 722 TestInterfacePythonImplementationV8Internal::implementsComplexMethodMethod(i
nfo); | 745 TestInterfacePythonImplementationV8Internal::implementsComplexMethodMethod(i
nfo); |
| 723 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 746 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| (...skipping 14 matching lines...) Expand all Loading... |
| 738 static void implementsStaticVoidMethodMethodCallback(const v8::FunctionCallbackI
nfo<v8::Value>& info) | 761 static void implementsStaticVoidMethodMethodCallback(const v8::FunctionCallbackI
nfo<v8::Value>& info) |
| 739 { | 762 { |
| 740 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); | 763 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); |
| 741 TestInterfacePythonImplementationV8Internal::implementsStaticVoidMethodMetho
d(info); | 764 TestInterfacePythonImplementationV8Internal::implementsStaticVoidMethodMetho
d(info); |
| 742 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 765 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 743 } | 766 } |
| 744 | 767 |
| 745 static void implements2VoidMethodMethod(const v8::FunctionCallbackInfo<v8::Value
>& info) | 768 static void implements2VoidMethodMethod(const v8::FunctionCallbackInfo<v8::Value
>& info) |
| 746 { | 769 { |
| 747 TestInterfacePythonImplementation* imp = V8TestInterfacePython::toNative(inf
o.Holder()); | 770 TestInterfacePythonImplementation* imp = V8TestInterfacePython::toNative(inf
o.Holder()); |
| 748 TestImplements2Implementation::implements2VoidMethod(imp); | 771 ASSERT(imp); |
| 772 TestImplements2Implementation::implements2VoidMethod(*imp); |
| 749 } | 773 } |
| 750 | 774 |
| 751 static void implements2VoidMethodMethodCallback(const v8::FunctionCallbackInfo<v
8::Value>& info) | 775 static void implements2VoidMethodMethodCallback(const v8::FunctionCallbackInfo<v
8::Value>& info) |
| 752 { | 776 { |
| 753 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); | 777 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); |
| 754 TestInterfacePythonImplementationV8Internal::implements2VoidMethodMethod(inf
o); | 778 TestInterfacePythonImplementationV8Internal::implements2VoidMethodMethod(inf
o); |
| 755 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 779 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 756 } | 780 } |
| 757 | 781 |
| 758 #if ENABLE(PARTIAL_CONDITION) | 782 #if ENABLE(PARTIAL_CONDITION) |
| 759 static void partialVoidMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& i
nfo) | 783 static void partialVoidMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& i
nfo) |
| 760 { | 784 { |
| 761 TestInterfacePythonImplementation* imp = V8TestInterfacePython::toNative(inf
o.Holder()); | 785 TestInterfacePythonImplementation* imp = V8TestInterfacePython::toNative(inf
o.Holder()); |
| 762 TestPartialInterfacePython::partialVoidMethod(imp); | 786 ASSERT(imp); |
| 787 TestPartialInterfacePython::partialVoidMethod(*imp); |
| 763 } | 788 } |
| 764 #endif // ENABLE(PARTIAL_CONDITION) | 789 #endif // ENABLE(PARTIAL_CONDITION) |
| 765 | 790 |
| 766 #if ENABLE(PARTIAL_CONDITION) | 791 #if ENABLE(PARTIAL_CONDITION) |
| 767 static void partialVoidMethodMethodCallback(const v8::FunctionCallbackInfo<v8::V
alue>& info) | 792 static void partialVoidMethodMethodCallback(const v8::FunctionCallbackInfo<v8::V
alue>& info) |
| 768 { | 793 { |
| 769 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); | 794 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); |
| 770 TestInterfacePythonImplementationV8Internal::partialVoidMethodMethod(info); | 795 TestInterfacePythonImplementationV8Internal::partialVoidMethodMethod(info); |
| 771 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 796 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 772 } | 797 } |
| (...skipping 19 matching lines...) Expand all Loading... |
| 792 static void partialVoidMethodLongArgMethod(const v8::FunctionCallbackInfo<v8::Va
lue>& info) | 817 static void partialVoidMethodLongArgMethod(const v8::FunctionCallbackInfo<v8::Va
lue>& info) |
| 793 { | 818 { |
| 794 ExceptionState exceptionState(ExceptionState::ExecutionContext, "partialVoid
MethodLongArg", "TestInterfacePython", info.Holder(), info.GetIsolate()); | 819 ExceptionState exceptionState(ExceptionState::ExecutionContext, "partialVoid
MethodLongArg", "TestInterfacePython", info.Holder(), info.GetIsolate()); |
| 795 if (UNLIKELY(info.Length() < 1)) { | 820 if (UNLIKELY(info.Length() < 1)) { |
| 796 exceptionState.throwTypeError(ExceptionMessages::notEnoughArguments(1, i
nfo.Length())); | 821 exceptionState.throwTypeError(ExceptionMessages::notEnoughArguments(1, i
nfo.Length())); |
| 797 exceptionState.throwIfNeeded(); | 822 exceptionState.throwIfNeeded(); |
| 798 return; | 823 return; |
| 799 } | 824 } |
| 800 TestInterfacePythonImplementation* imp = V8TestInterfacePython::toNative(inf
o.Holder()); | 825 TestInterfacePythonImplementation* imp = V8TestInterfacePython::toNative(inf
o.Holder()); |
| 801 V8TRYCATCH_EXCEPTION_VOID(int, longArg, toInt32(info[0], exceptionState), ex
ceptionState); | 826 V8TRYCATCH_EXCEPTION_VOID(int, longArg, toInt32(info[0], exceptionState), ex
ceptionState); |
| 802 TestPartialInterfacePython::partialVoidMethodLongArg(imp, longArg); | 827 ASSERT(imp); |
| 828 TestPartialInterfacePython::partialVoidMethodLongArg(*imp, longArg); |
| 803 } | 829 } |
| 804 #endif // ENABLE(PARTIAL_CONDITION) | 830 #endif // ENABLE(PARTIAL_CONDITION) |
| 805 | 831 |
| 806 #if ENABLE(PARTIAL_CONDITION) | 832 #if ENABLE(PARTIAL_CONDITION) |
| 807 static void partialVoidMethodLongArgMethodCallback(const v8::FunctionCallbackInf
o<v8::Value>& info) | 833 static void partialVoidMethodLongArgMethodCallback(const v8::FunctionCallbackInf
o<v8::Value>& info) |
| 808 { | 834 { |
| 809 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); | 835 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); |
| 810 TestInterfacePythonImplementationV8Internal::partialVoidMethodLongArgMethod(
info); | 836 TestInterfacePythonImplementationV8Internal::partialVoidMethodLongArgMethod(
info); |
| 811 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 837 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 812 } | 838 } |
| 813 #endif // ENABLE(PARTIAL_CONDITION) | 839 #endif // ENABLE(PARTIAL_CONDITION) |
| 814 | 840 |
| 815 #if ENABLE(PARTIAL_CONDITION) | 841 #if ENABLE(PARTIAL_CONDITION) |
| 816 static void partialCallWithExecutionContextRaisesExceptionVoidMethodMethod(const
v8::FunctionCallbackInfo<v8::Value>& info) | 842 static void partialCallWithExecutionContextRaisesExceptionVoidMethodMethod(const
v8::FunctionCallbackInfo<v8::Value>& info) |
| 817 { | 843 { |
| 818 ExceptionState exceptionState(ExceptionState::ExecutionContext, "partialCall
WithExecutionContextRaisesExceptionVoidMethod", "TestInterfacePython", info.Hold
er(), info.GetIsolate()); | 844 ExceptionState exceptionState(ExceptionState::ExecutionContext, "partialCall
WithExecutionContextRaisesExceptionVoidMethod", "TestInterfacePython", info.Hold
er(), info.GetIsolate()); |
| 819 TestInterfacePythonImplementation* imp = V8TestInterfacePython::toNative(inf
o.Holder()); | 845 TestInterfacePythonImplementation* imp = V8TestInterfacePython::toNative(inf
o.Holder()); |
| 846 ASSERT(imp); |
| 820 ExecutionContext* scriptContext = currentExecutionContext(info.GetIsolate())
; | 847 ExecutionContext* scriptContext = currentExecutionContext(info.GetIsolate())
; |
| 821 TestPartialInterfacePython::partialCallWithExecutionContextRaisesExceptionVo
idMethod(scriptContext, imp, exceptionState); | 848 TestPartialInterfacePython::partialCallWithExecutionContextRaisesExceptionVo
idMethod(scriptContext, *imp, exceptionState); |
| 822 if (exceptionState.throwIfNeeded()) | 849 if (exceptionState.throwIfNeeded()) |
| 823 return; | 850 return; |
| 824 } | 851 } |
| 825 #endif // ENABLE(PARTIAL_CONDITION) | 852 #endif // ENABLE(PARTIAL_CONDITION) |
| 826 | 853 |
| 827 #if ENABLE(PARTIAL_CONDITION) | 854 #if ENABLE(PARTIAL_CONDITION) |
| 828 static void partialCallWithExecutionContextRaisesExceptionVoidMethodMethodCallba
ck(const v8::FunctionCallbackInfo<v8::Value>& info) | 855 static void partialCallWithExecutionContextRaisesExceptionVoidMethodMethodCallba
ck(const v8::FunctionCallbackInfo<v8::Value>& info) |
| 829 { | 856 { |
| 830 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); | 857 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); |
| 831 TestInterfacePythonImplementationV8Internal::partialCallWithExecutionContext
RaisesExceptionVoidMethodMethod(info); | 858 TestInterfacePythonImplementationV8Internal::partialCallWithExecutionContext
RaisesExceptionVoidMethodMethod(info); |
| 832 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 859 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 833 } | 860 } |
| 834 #endif // ENABLE(PARTIAL_CONDITION) | 861 #endif // ENABLE(PARTIAL_CONDITION) |
| 835 | 862 |
| 836 static void partial2VoidMethodMethod(const v8::FunctionCallbackInfo<v8::Value>&
info) | 863 static void partial2VoidMethodMethod(const v8::FunctionCallbackInfo<v8::Value>&
info) |
| 837 { | 864 { |
| 838 TestInterfacePythonImplementation* imp = V8TestInterfacePython::toNative(inf
o.Holder()); | 865 TestInterfacePythonImplementation* imp = V8TestInterfacePython::toNative(inf
o.Holder()); |
| 839 TestPartialInterfacePythonImplementation::partial2VoidMethod(imp); | 866 ASSERT(imp); |
| 867 TestPartialInterfacePythonImplementation::partial2VoidMethod(*imp); |
| 840 } | 868 } |
| 841 | 869 |
| 842 static void partial2VoidMethodMethodCallback(const v8::FunctionCallbackInfo<v8::
Value>& info) | 870 static void partial2VoidMethodMethodCallback(const v8::FunctionCallbackInfo<v8::
Value>& info) |
| 843 { | 871 { |
| 844 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); | 872 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); |
| 845 TestInterfacePythonImplementationV8Internal::partial2VoidMethodMethod(info); | 873 TestInterfacePythonImplementationV8Internal::partial2VoidMethodMethod(info); |
| 846 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); | 874 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); |
| 847 } | 875 } |
| 848 | 876 |
| 849 static void partial2StaticVoidMethodMethod(const v8::FunctionCallbackInfo<v8::Va
lue>& info) | 877 static void partial2StaticVoidMethodMethod(const v8::FunctionCallbackInfo<v8::Va
lue>& info) |
| (...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1030 } | 1058 } |
| 1031 | 1059 |
| 1032 template<> | 1060 template<> |
| 1033 v8::Handle<v8::Value> toV8NoInline(TestInterfacePythonImplementation* impl, v8::
Handle<v8::Object> creationContext, v8::Isolate* isolate) | 1061 v8::Handle<v8::Value> toV8NoInline(TestInterfacePythonImplementation* impl, v8::
Handle<v8::Object> creationContext, v8::Isolate* isolate) |
| 1034 { | 1062 { |
| 1035 return toV8(impl, creationContext, isolate); | 1063 return toV8(impl, creationContext, isolate); |
| 1036 } | 1064 } |
| 1037 | 1065 |
| 1038 } // namespace WebCore | 1066 } // namespace WebCore |
| 1039 #endif // ENABLE(CONDITION) | 1067 #endif // ENABLE(CONDITION) |
| OLD | NEW |