109 lines
2.1 KiB
JavaScript
109 lines
2.1 KiB
JavaScript
|
// 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], [
|
||
|
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;
|
||
|
}
|
||
|
// ----------------------------------------------------------------------------
|