node/deps/v8/test/mjsunit/compiler/try-deopt.js
Ali Ijaz Sheikh 9fddd83cf9 deps: upgrade V8 to 4.5.103.24
Upgrade to the latest branch-head for V8 4.5. For the full commit log see
https://github.com/v8/v8-git-mirror/commits/4.5.103.24

PR-URL: https://github.com/nodejs/node/pull/2509
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-09-06 21:38:01 +10:00

56 lines
1.2 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.
// Flags: --allow-natives-syntax
function DeoptFromTry(x) {
try {
%DeoptimizeFunction(DeoptFromTry);
throw x;
} catch (e) {
return e + 1;
}
return x + 2;
}
%OptimizeFunctionOnNextCall(DeoptFromTry);
assertEquals(24, DeoptFromTry(23));
function DeoptFromCatch(x) {
try {
throw x;
} catch (e) {
%DeoptimizeFunction(DeoptFromCatch);
return e + 1;
}
return x + 2;
}
%OptimizeFunctionOnNextCall(DeoptFromCatch);
assertEquals(24, DeoptFromCatch(23));
function DeoptFromFinally_Return(x) {
try {
throw x;
} finally {
%DeoptimizeFunction(DeoptFromFinally_Return);
return x + 1;
}
return x + 2;
}
%OptimizeFunctionOnNextCall(DeoptFromFinally_Return);
assertEquals(24, DeoptFromFinally_Return(23));
function DeoptFromFinally_ReThrow(x) {
try {
throw x;
} finally {
%DeoptimizeFunction(DeoptFromFinally_ReThrow);
}
return x + 2;
}
%OptimizeFunctionOnNextCall(DeoptFromFinally_ReThrow);
assertThrows("DeoptFromFinally_ReThrow(new Error)", Error);