Upgrade V8 to version 4.9.385.28
https://chromium.googlesource.com/v8/v8/+/4.9.385.28
Change-Id: I4b2e74289d4bf3667f2f3dc8aa2e541f63e26eb4
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 0000000..0a4a0c0
--- /dev/null
+++ b/test/js-perf-test/Exceptions/try-catch.js
@@ -0,0 +1,110 @@
+// 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() {
+ a = 4;
+ b = 6;
+ c = 0;
+}
+
+function OnSuccess() {
+ try {
+ c = a + b;
+ }
+ catch (e) {
+ c++;
+ }
+}
+
+function OnSuccessTearDown() {
+ return c === 10;
+}
+
+// ----------------------------------------------------------------------------
+
+function OnExceptionSetup() {
+ a = 4;
+ b = 6;
+ c = 0;
+}
+
+function OnException() {
+ try {
+ throw 'Test exception';
+ }
+ catch (e) {
+ c = a + b;
+ }
+}
+
+function OnExceptionTearDown() {
+ return c === 10;
+}
+
+// ----------------------------------------------------------------------------
+
+function OnSuccessFinallyOnlySetup() {
+ a = 4;
+ b = 6;
+ c = 0;
+}
+
+function OnSuccessFinallyOnly() {
+ try {
+ c = a + b;
+ }
+ finally {
+ c++;
+ }
+}
+
+function OnSuccessFinallyOnlyTearDown() {
+ return c === 11;
+}
+
+// ----------------------------------------------------------------------------
+
+function WithFinallyOnExceptionSetup() {
+ a = 4;
+ b = 6;
+ c = 0;
+}
+
+function WithFinallyOnException() {
+ try {
+ throw 'Test exception';
+ }
+ catch (e) {
+ c = a + b;
+ }
+ finally {
+ c++;
+ }
+}
+
+function WithFinallyOnExceptionTearDown() {
+ return c === 11;
+}
+// ----------------------------------------------------------------------------