Chromium Code Reviews| Index: test/js-perf-test/Exceptions/try-catch.js |
| diff --git a/test/js-perf-test/Exceptions/try-catch.js b/test/js-perf-test/Exceptions/try-catch.js |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..6a94192c2ccf6e664d4a3e8a21911b8a1984d02e |
| --- /dev/null |
| +++ b/test/js-perf-test/Exceptions/try-catch.js |
| @@ -0,0 +1,108 @@ |
| +// Copyright 2015 the V8 project authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +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.
|
| + new Benchmark('OnSuccess', false, false, 0, |
| + OnSuccess, OnSuccessSetup, |
| + OnSuccessTearDown), |
| + new Benchmark('OnException', false, false, 0, |
| + OnException, OnExceptionSetup, |
| + OnExceptionTearDown), |
| + new Benchmark('OnSuccessFinallyOnly', false, false, 0, |
| + OnSuccessFinallyOnly, OnSuccessFinallyOnlySetup, |
| + OnSuccessFinallyOnlyTearDown), |
| + new Benchmark('WithFinallyOnException', false, false, 0, |
| + WithFinallyOnException, WithFinallyOnExceptionSetup, WithFinallyOnExceptionTearDown) |
| +]); |
| + |
| +var a; |
| +var b; |
| +var c; |
| + |
| +// ---------------------------------------------------------------------------- |
| + |
| +function OnSuccessSetup() { |
| + var a = 4; |
| + var b = 6; |
| + var c = 0; |
| +} |
| + |
| +function OnSuccess() { |
| + try { |
| + c = a + b; |
| + } |
| + catch (e) { |
| + } |
| +} |
| + |
| +function OnSuccessTearDown() { |
| + return c === 10; |
| +} |
| + |
| +// ---------------------------------------------------------------------------- |
| + |
| +function OnExceptionSetup() { |
| + var a = 4; |
| + var b = 6; |
| + var c = 0; |
| +} |
| + |
| +function OnException() { |
| + try { |
| + throw 'Test exception'; |
| + } |
| + catch (e) { |
| + c = a + b; |
| + } |
| +} |
| + |
| +function OnExceptionTearDown() { |
| + return c === 10; |
| +} |
| + |
| +// ---------------------------------------------------------------------------- |
| + |
| +function OnSuccessFinallyOnlySetup() { |
| + var a = 4; |
| + var b = 6; |
| + var c = 0; |
| +} |
| + |
| +function OnSuccessFinallyOnly() { |
| + try { |
| + c = a + b; |
| + } |
| + finally { |
| + c++; |
| + } |
| +} |
| + |
| +function OnSuccessFinallyOnlyTearDown() { |
| + return c === 11; |
| +} |
| + |
| +// ---------------------------------------------------------------------------- |
| + |
| +function WithFinallyOnExceptionSetup() { |
| + var a = 4; |
| + var b = 6; |
| + var c = 0; |
| +} |
| + |
| +function WithFinallyOnException() { |
| + try { |
| + throw 'Test exception'; |
| + } |
| + catch (e) { |
| + c = a + b; |
| + } |
| + finally { |
| + c++; |
| + } |
| +} |
| + |
| +function WithFinallyOnExceptionTearDown() { |
| + return c === 11; |
| +} |
| +// ---------------------------------------------------------------------------- |