aboutsummaryrefslogtreecommitdiff
path: root/deps/v8/test/mjsunit/harmony/bigint/rematerialize-on-deopt.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/test/mjsunit/harmony/bigint/rematerialize-on-deopt.js')
-rw-r--r--deps/v8/test/mjsunit/harmony/bigint/rematerialize-on-deopt.js28
1 files changed, 28 insertions, 0 deletions
diff --git a/deps/v8/test/mjsunit/harmony/bigint/rematerialize-on-deopt.js b/deps/v8/test/mjsunit/harmony/bigint/rematerialize-on-deopt.js
new file mode 100644
index 0000000000..cee915ccaf
--- /dev/null
+++ b/deps/v8/test/mjsunit/harmony/bigint/rematerialize-on-deopt.js
@@ -0,0 +1,28 @@
+// 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.
+
+// Flags: --allow-natives-syntax --opt
+
+{
+ function test(a, b, c) {
+ let x = BigInt.asUintN(64, a + b);
+ console.log(x);
+ try {
+ return BigInt.asUintN(64, x + c);
+ } catch(_) {
+ return x;
+ }
+ }
+
+ %PrepareFunctionForOptimization(test);
+ test(3n, 4n, 5n);
+ test(6n, 7n, 8n);
+ test(9n, 2n, 1n);
+ %OptimizeFunctionOnNextCall(test);
+ test(1n, 2n, 3n);
+ test(3n, 2n, 1n);
+
+ assertEquals(6n, test(1n, 3n, 2n));
+ assertEquals(5n, test(2n, 3n, 2));
+}