v8/test/mjsunit/compiler/deopt-simple-try-catch.js
Juliana Franco d5c1730a27 [Test] Deoptimization and exception.
Simple example with exception handling and deoptimization.

BUG=v8:6563

Change-Id: I0a82b72e10f12355b2eb351fde3c1be84455da66
Reviewed-on: https://chromium-review.googlesource.com/645854
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#47755}
2017-09-01 04:17:56 +00:00

29 lines
538 B
JavaScript

// Copyright 2017 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
// Flags: --allow-natives-syntax
// Small program to test deoptimization with exception handling.
function g() {
%DeoptimizeFunction(f);
throw 42;
}
%NeverOptimizeFunction(g);
function f() {
var a = 1;
try {
g();
} catch (e) {
return e + a;
}
}
assertEquals(f(), 43);
assertEquals(f(), 43);
%OptimizeFunctionOnNextCall(f);
assertEquals(f(), 43);