Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(107)

Side by Side Diff: Source/bindings/tests/results/V8TestTypedefs.cpp

Issue 113783002: [POSSIBLE PERFORMANCE IMPACT] Remove UNLIKELY from bindings required arguments check (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Remove FIXME Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « Source/bindings/tests/results/V8TestObjectPython.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 271 matching lines...) Expand 10 before | Expand all | Expand 10 after
282 282
283 static void funcMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info) 283 static void funcMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
284 { 284 {
285 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); 285 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
286 TestTypedefsV8Internal::funcMethod(info); 286 TestTypedefsV8Internal::funcMethod(info);
287 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); 287 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
288 } 288 }
289 289
290 static void setShadowMethod(const v8::FunctionCallbackInfo<v8::Value>& info) 290 static void setShadowMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
291 { 291 {
292 if (UNLIKELY(info.Length() < 3)) { 292 if (info.Length() < 3) {
293 throwTypeError(ExceptionMessages::failedToExecute("setShadow", "TestType defs", ExceptionMessages::notEnoughArguments(3, info.Length())), info.GetIsolate ()); 293 throwTypeError(ExceptionMessages::failedToExecute("setShadow", "TestType defs", ExceptionMessages::notEnoughArguments(3, info.Length())), info.GetIsolate ());
294 return; 294 return;
295 } 295 }
296 TestTypedefs* imp = V8TestTypedefs::toNative(info.Holder()); 296 TestTypedefs* imp = V8TestTypedefs::toNative(info.Holder());
297 V8TRYCATCH_VOID(float, width, static_cast<float>(info[0]->NumberValue())); 297 V8TRYCATCH_VOID(float, width, static_cast<float>(info[0]->NumberValue()));
298 V8TRYCATCH_VOID(float, height, static_cast<float>(info[1]->NumberValue())); 298 V8TRYCATCH_VOID(float, height, static_cast<float>(info[1]->NumberValue()));
299 V8TRYCATCH_VOID(float, blur, static_cast<float>(info[2]->NumberValue())); 299 V8TRYCATCH_VOID(float, blur, static_cast<float>(info[2]->NumberValue()));
300 if (UNLIKELY(info.Length() <= 3)) { 300 if (UNLIKELY(info.Length() <= 3)) {
301 imp->setShadow(width, height, blur); 301 imp->setShadow(width, height, blur);
302 return; 302 return;
303 } 303 }
304 V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, color, info[3]); 304 V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, color, info[3]);
305 if (UNLIKELY(info.Length() <= 4)) { 305 if (UNLIKELY(info.Length() <= 4)) {
306 imp->setShadow(width, height, blur, color); 306 imp->setShadow(width, height, blur, color);
307 return; 307 return;
308 } 308 }
309 V8TRYCATCH_VOID(float, alpha, static_cast<float>(info[4]->NumberValue())); 309 V8TRYCATCH_VOID(float, alpha, static_cast<float>(info[4]->NumberValue()));
310 imp->setShadow(width, height, blur, color, alpha); 310 imp->setShadow(width, height, blur, color, alpha);
311 } 311 }
312 312
313 static void setShadowMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& i nfo) 313 static void setShadowMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& i nfo)
314 { 314 {
315 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); 315 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
316 TestTypedefsV8Internal::setShadowMethod(info); 316 TestTypedefsV8Internal::setShadowMethod(info);
317 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); 317 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
318 } 318 }
319 319
320 static void methodWithSequenceArgMethod(const v8::FunctionCallbackInfo<v8::Value >& info) 320 static void methodWithSequenceArgMethod(const v8::FunctionCallbackInfo<v8::Value >& info)
321 { 321 {
322 if (UNLIKELY(info.Length() < 1)) { 322 if (info.Length() < 1) {
323 throwTypeError(ExceptionMessages::failedToExecute("methodWithSequenceArg ", "TestTypedefs", ExceptionMessages::notEnoughArguments(1, info.Length())), inf o.GetIsolate()); 323 throwTypeError(ExceptionMessages::failedToExecute("methodWithSequenceArg ", "TestTypedefs", ExceptionMessages::notEnoughArguments(1, info.Length())), inf o.GetIsolate());
324 return; 324 return;
325 } 325 }
326 TestTypedefs* imp = V8TestTypedefs::toNative(info.Holder()); 326 TestTypedefs* imp = V8TestTypedefs::toNative(info.Holder());
327 V8TRYCATCH_VOID(Vector<RefPtr<SerializedScriptValue> >, sequenceArg, (toRefP trNativeArray<SerializedScriptValue, V8SerializedScriptValue>(info[0], 1, info.G etIsolate()))); 327 V8TRYCATCH_VOID(Vector<RefPtr<SerializedScriptValue> >, sequenceArg, (toRefP trNativeArray<SerializedScriptValue, V8SerializedScriptValue>(info[0], 1, info.G etIsolate())));
328 v8SetReturnValue(info, static_cast<double>(imp->methodWithSequenceArg(sequen ceArg))); 328 v8SetReturnValue(info, static_cast<double>(imp->methodWithSequenceArg(sequen ceArg)));
329 } 329 }
330 330
331 static void methodWithSequenceArgMethodCallback(const v8::FunctionCallbackInfo<v 8::Value>& info) 331 static void methodWithSequenceArgMethodCallback(const v8::FunctionCallbackInfo<v 8::Value>& info)
332 { 332 {
333 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); 333 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
334 TestTypedefsV8Internal::methodWithSequenceArgMethod(info); 334 TestTypedefsV8Internal::methodWithSequenceArgMethod(info);
335 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); 335 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
336 } 336 }
337 337
338 static void nullableArrayArgMethod(const v8::FunctionCallbackInfo<v8::Value>& in fo) 338 static void nullableArrayArgMethod(const v8::FunctionCallbackInfo<v8::Value>& in fo)
339 { 339 {
340 if (UNLIKELY(info.Length() < 1)) { 340 if (info.Length() < 1) {
341 throwTypeError(ExceptionMessages::failedToExecute("nullableArrayArg", "T estTypedefs", ExceptionMessages::notEnoughArguments(1, info.Length())), info.Get Isolate()); 341 throwTypeError(ExceptionMessages::failedToExecute("nullableArrayArg", "T estTypedefs", ExceptionMessages::notEnoughArguments(1, info.Length())), info.Get Isolate());
342 return; 342 return;
343 } 343 }
344 TestTypedefs* imp = V8TestTypedefs::toNative(info.Holder()); 344 TestTypedefs* imp = V8TestTypedefs::toNative(info.Holder());
345 bool arrayArgIsNull = info[0]->IsNull(); 345 bool arrayArgIsNull = info[0]->IsNull();
346 V8TRYCATCH_VOID(Vector<String>, arrayArg, toNativeArray<String>(info[0], 1, info.GetIsolate())); 346 V8TRYCATCH_VOID(Vector<String>, arrayArg, toNativeArray<String>(info[0], 1, info.GetIsolate()));
347 imp->nullableArrayArg(arrayArgIsNull ? 0 : &arrayArg); 347 imp->nullableArrayArg(arrayArgIsNull ? 0 : &arrayArg);
348 } 348 }
349 349
350 static void nullableArrayArgMethodCallback(const v8::FunctionCallbackInfo<v8::Va lue>& info) 350 static void nullableArrayArgMethodCallback(const v8::FunctionCallbackInfo<v8::Va lue>& info)
(...skipping 12 matching lines...) Expand all
363 static void immutablePointFunctionMethodCallback(const v8::FunctionCallbackInfo< v8::Value>& info) 363 static void immutablePointFunctionMethodCallback(const v8::FunctionCallbackInfo< v8::Value>& info)
364 { 364 {
365 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); 365 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
366 TestTypedefsV8Internal::immutablePointFunctionMethod(info); 366 TestTypedefsV8Internal::immutablePointFunctionMethod(info);
367 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); 367 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
368 } 368 }
369 369
370 static void stringArrayFunctionMethod(const v8::FunctionCallbackInfo<v8::Value>& info) 370 static void stringArrayFunctionMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
371 { 371 {
372 ExceptionState exceptionState(ExceptionState::ExecutionContext, "stringArray Function", "TestTypedefs", info.Holder(), info.GetIsolate()); 372 ExceptionState exceptionState(ExceptionState::ExecutionContext, "stringArray Function", "TestTypedefs", info.Holder(), info.GetIsolate());
373 if (UNLIKELY(info.Length() < 1)) { 373 if (info.Length() < 1) {
374 exceptionState.throwTypeError(ExceptionMessages::notEnoughArguments(1, i nfo.Length())); 374 exceptionState.throwTypeError(ExceptionMessages::notEnoughArguments(1, i nfo.Length()));
375 exceptionState.throwIfNeeded(); 375 exceptionState.throwIfNeeded();
376 return; 376 return;
377 } 377 }
378 TestTypedefs* imp = V8TestTypedefs::toNative(info.Holder()); 378 TestTypedefs* imp = V8TestTypedefs::toNative(info.Holder());
379 V8TRYCATCH_VOID(Vector<String>, values, toNativeArray<String>(info[0], 1, in fo.GetIsolate())); 379 V8TRYCATCH_VOID(Vector<String>, values, toNativeArray<String>(info[0], 1, in fo.GetIsolate()));
380 Vector<String> result = imp->stringArrayFunction(values, exceptionState); 380 Vector<String> result = imp->stringArrayFunction(values, exceptionState);
381 if (exceptionState.throwIfNeeded()) 381 if (exceptionState.throwIfNeeded())
382 return; 382 return;
383 v8SetReturnValue(info, v8Array(result, info.GetIsolate())); 383 v8SetReturnValue(info, v8Array(result, info.GetIsolate()));
384 } 384 }
385 385
386 static void stringArrayFunctionMethodCallback(const v8::FunctionCallbackInfo<v8: :Value>& info) 386 static void stringArrayFunctionMethodCallback(const v8::FunctionCallbackInfo<v8: :Value>& info)
387 { 387 {
388 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); 388 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
389 TestTypedefsV8Internal::stringArrayFunctionMethod(info); 389 TestTypedefsV8Internal::stringArrayFunctionMethod(info);
390 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); 390 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
391 } 391 }
392 392
393 static void stringArrayFunction2Method(const v8::FunctionCallbackInfo<v8::Value> & info) 393 static void stringArrayFunction2Method(const v8::FunctionCallbackInfo<v8::Value> & info)
394 { 394 {
395 ExceptionState exceptionState(ExceptionState::ExecutionContext, "stringArray Function2", "TestTypedefs", info.Holder(), info.GetIsolate()); 395 ExceptionState exceptionState(ExceptionState::ExecutionContext, "stringArray Function2", "TestTypedefs", info.Holder(), info.GetIsolate());
396 if (UNLIKELY(info.Length() < 1)) { 396 if (info.Length() < 1) {
397 exceptionState.throwTypeError(ExceptionMessages::notEnoughArguments(1, i nfo.Length())); 397 exceptionState.throwTypeError(ExceptionMessages::notEnoughArguments(1, i nfo.Length()));
398 exceptionState.throwIfNeeded(); 398 exceptionState.throwIfNeeded();
399 return; 399 return;
400 } 400 }
401 TestTypedefs* imp = V8TestTypedefs::toNative(info.Holder()); 401 TestTypedefs* imp = V8TestTypedefs::toNative(info.Holder());
402 V8TRYCATCH_VOID(Vector<String>, values, toNativeArray<String>(info[0], 1, in fo.GetIsolate())); 402 V8TRYCATCH_VOID(Vector<String>, values, toNativeArray<String>(info[0], 1, in fo.GetIsolate()));
403 Vector<String> result = imp->stringArrayFunction2(values, exceptionState); 403 Vector<String> result = imp->stringArrayFunction2(values, exceptionState);
404 if (exceptionState.throwIfNeeded()) 404 if (exceptionState.throwIfNeeded())
405 return; 405 return;
406 v8SetReturnValue(info, v8Array(result, info.GetIsolate())); 406 v8SetReturnValue(info, v8Array(result, info.GetIsolate()));
(...skipping 17 matching lines...) Expand all
424 424
425 static void methodWithExceptionMethodCallback(const v8::FunctionCallbackInfo<v8: :Value>& info) 425 static void methodWithExceptionMethodCallback(const v8::FunctionCallbackInfo<v8: :Value>& info)
426 { 426 {
427 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); 427 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
428 TestTypedefsV8Internal::methodWithExceptionMethod(info); 428 TestTypedefsV8Internal::methodWithExceptionMethod(info);
429 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); 429 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
430 } 430 }
431 431
432 static void constructor(const v8::FunctionCallbackInfo<v8::Value>& info) 432 static void constructor(const v8::FunctionCallbackInfo<v8::Value>& info)
433 { 433 {
434 if (UNLIKELY(info.Length() < 2)) { 434 if (info.Length() < 2) {
435 throwTypeError(ExceptionMessages::failedToExecute("Constructor", "TestTy pedefs", ExceptionMessages::notEnoughArguments(2, info.Length())), info.GetIsola te()); 435 throwTypeError(ExceptionMessages::failedToExecute("Constructor", "TestTy pedefs", ExceptionMessages::notEnoughArguments(2, info.Length())), info.GetIsola te());
436 return; 436 return;
437 } 437 }
438 V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, hello, info[0]); 438 V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<>, hello, info[0]);
439 if (info.Length() <= 1 || !info[1]->IsFunction()) { 439 if (info.Length() <= 1 || !info[1]->IsFunction()) {
440 throwTypeError(ExceptionMessages::failedToExecute("Constructor", "TestTy pedefs", "The callback provided as parameter 2 is not a function."), info.GetIso late()); 440 throwTypeError(ExceptionMessages::failedToExecute("Constructor", "TestTy pedefs", "The callback provided as parameter 2 is not a function."), info.GetIso late());
441 return; 441 return;
442 } 442 }
443 OwnPtr<TestCallbackInterface> testCallbackInterface = V8TestCallbackInterfac e::create(v8::Handle<v8::Function>::Cast(info[1]), getExecutionContext()); 443 OwnPtr<TestCallbackInterface> testCallbackInterface = V8TestCallbackInterfac e::create(v8::Handle<v8::Function>::Cast(info[1]), getExecutionContext());
444 RefPtr<TestTypedefs> impl = TestTypedefs::create(hello, testCallbackInterfac e); 444 RefPtr<TestTypedefs> impl = TestTypedefs::create(hello, testCallbackInterfac e);
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
559 fromInternalPointer(object)->deref(); 559 fromInternalPointer(object)->deref();
560 } 560 }
561 561
562 template<> 562 template<>
563 v8::Handle<v8::Value> toV8NoInline(TestTypedefs* impl, v8::Handle<v8::Object> cr eationContext, v8::Isolate* isolate) 563 v8::Handle<v8::Value> toV8NoInline(TestTypedefs* impl, v8::Handle<v8::Object> cr eationContext, v8::Isolate* isolate)
564 { 564 {
565 return toV8(impl, creationContext, isolate); 565 return toV8(impl, creationContext, isolate);
566 } 566 }
567 567
568 } // namespace WebCore 568 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/bindings/tests/results/V8TestObjectPython.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698