Chromium Code Reviews| OLD | NEW | 
|---|---|
| (Empty) | |
| 1 // Copyright 2015 the V8 project 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 new BenchmarkSuite( 'Try-Catch', [1000], [ | |
| 
 
Michael Starzinger
2015/06/03 11:06:21
nit: Dangling white-space before string.
 
Michael Hablich
2015/06/03 11:16:13
Done.
 
 | |
| 6 new Benchmark('OnSuccess', false, false, 0, | |
| 7 OnSuccess, OnSuccessSetup, | |
| 8 OnSuccessTearDown), | |
| 9 new Benchmark('OnException', false, false, 0, | |
| 10 OnException, OnExceptionSetup, | |
| 11 OnExceptionTearDown), | |
| 12 new Benchmark('OnSuccessFinallyOnly', false, false, 0, | |
| 13 OnSuccessFinallyOnly, OnSuccessFinallyOnlySetup, | |
| 14 OnSuccessFinallyOnlyTearDown), | |
| 15 new Benchmark('WithFinallyOnException', false, false, 0, | |
| 16 WithFinallyOnException, WithFinallyOnExceptionSetup, WithFinally OnExceptionTearDown) | |
| 17 ]); | |
| 18 | |
| 19 var a; | |
| 20 var b; | |
| 21 var c; | |
| 22 | |
| 23 // ---------------------------------------------------------------------------- | |
| 24 | |
| 25 function OnSuccessSetup() { | |
| 26 var a = 4; | |
| 27 var b = 6; | |
| 28 var c = 0; | |
| 29 } | |
| 30 | |
| 31 function OnSuccess() { | |
| 32 try { | |
| 33 c = a + b; | |
| 34 } | |
| 35 catch (e) { | |
| 36 } | |
| 37 } | |
| 38 | |
| 39 function OnSuccessTearDown() { | |
| 40 return c === 10; | |
| 41 } | |
| 42 | |
| 43 // ---------------------------------------------------------------------------- | |
| 44 | |
| 45 function OnExceptionSetup() { | |
| 46 var a = 4; | |
| 47 var b = 6; | |
| 48 var c = 0; | |
| 49 } | |
| 50 | |
| 51 function OnException() { | |
| 52 try { | |
| 53 throw 'Test exception'; | |
| 54 } | |
| 55 catch (e) { | |
| 56 c = a + b; | |
| 57 } | |
| 58 } | |
| 59 | |
| 60 function OnExceptionTearDown() { | |
| 61 return c === 10; | |
| 62 } | |
| 63 | |
| 64 // ---------------------------------------------------------------------------- | |
| 65 | |
| 66 function OnSuccessFinallyOnlySetup() { | |
| 67 var a = 4; | |
| 68 var b = 6; | |
| 69 var c = 0; | |
| 70 } | |
| 71 | |
| 72 function OnSuccessFinallyOnly() { | |
| 73 try { | |
| 74 c = a + b; | |
| 75 } | |
| 76 finally { | |
| 77 c++; | |
| 78 } | |
| 79 } | |
| 80 | |
| 81 function OnSuccessFinallyOnlyTearDown() { | |
| 82 return c === 11; | |
| 83 } | |
| 84 | |
| 85 // ---------------------------------------------------------------------------- | |
| 86 | |
| 87 function WithFinallyOnExceptionSetup() { | |
| 88 var a = 4; | |
| 89 var b = 6; | |
| 90 var c = 0; | |
| 91 } | |
| 92 | |
| 93 function WithFinallyOnException() { | |
| 94 try { | |
| 95 throw 'Test exception'; | |
| 96 } | |
| 97 catch (e) { | |
| 98 c = a + b; | |
| 99 } | |
| 100 finally { | |
| 101 c++; | |
| 102 } | |
| 103 } | |
| 104 | |
| 105 function WithFinallyOnExceptionTearDown() { | |
| 106 return c === 11; | |
| 107 } | |
| 108 // ---------------------------------------------------------------------------- | |
| OLD | NEW |