| // Copyright 2019 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. |
| |
| (function() { |
| |
| function Simple() { |
| new Error("Simple Error"); |
| } |
| |
| class CustomError extends Error {}; |
| function Custom() { |
| new CustomError("Custom Error"); |
| } |
| |
| function Inline() { |
| function Inner() { |
| new Error("Error from inlined function!"); |
| } |
| function Middle() { Inner(); } |
| function Outer() { Middle(); } |
| |
| %PrepareFunctionForOptimization(Outer); |
| Outer(); |
| Outer(); |
| %OptimizeFunctionOnNextCall(Outer); |
| Outer(); |
| } |
| |
| const kInitialRecursionValue = 10; |
| function Recursive() { |
| function StepOne(val) { |
| if (val <= 0) return new Error("Error in StepOne!"); |
| StepTwo(val - 3); |
| StepTwo(val - 4); |
| } |
| function StepTwo(val) { |
| if (val <= 0) return new Error("Error in StepTwo!"); |
| StepOne(val - 1); |
| StepOne(val - 2); |
| } |
| |
| StepOne(kInitialRecursionValue); |
| } |
| |
| createSuite('Simple-Capture-Error', 1000, Simple, () => {}); |
| createSuite('Custom-Capture-Error', 1000, Custom, () => {}); |
| |
| createSuite('Inline-Capture-Error', 1000, Inline, () => {}); |
| createSuite('Recursive-Capture-Error', 1000, Recursive, () => {}); |
| |
| })(); |