summaryrefslogtreecommitdiff
path: root/deps/v8/test/mjsunit/math-deopt.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/test/mjsunit/math-deopt.js')
-rw-r--r--deps/v8/test/mjsunit/math-deopt.js70
1 files changed, 70 insertions, 0 deletions
diff --git a/deps/v8/test/mjsunit/math-deopt.js b/deps/v8/test/mjsunit/math-deopt.js
new file mode 100644
index 0000000000..b5fff7d149
--- /dev/null
+++ b/deps/v8/test/mjsunit/math-deopt.js
@@ -0,0 +1,70 @@
+// Copyright 2018 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 --no-always-opt
+
+(()=> {
+ function f(a) {
+ return Math.abs(a);
+ }
+ f(1);
+ f(1);
+ %OptimizeFunctionOnNextCall(f);
+ f("100");
+ %OptimizeFunctionOnNextCall(f);
+ f("100");
+ assertOptimized(f);
+})();
+
+(()=> {
+ function f(a) {
+ return Math.min(1,a);
+ }
+ f(1);
+ f(1);
+ %OptimizeFunctionOnNextCall(f);
+ f("100");
+ %OptimizeFunctionOnNextCall(f);
+ f("100");
+ assertOptimized(f);
+})();
+
+(()=> {
+ function f(a) {
+ return Math.pow(a,10);
+ }
+ f(1);
+ f(1);
+ %OptimizeFunctionOnNextCall(f);
+ f("100");
+ %OptimizeFunctionOnNextCall(f);
+ f("100");
+ assertOptimized(f);
+})();
+
+(()=> {
+ function f(a) {
+ return Math.clz32(a);
+ }
+ f(1);
+ f(1);
+ %OptimizeFunctionOnNextCall(f);
+ f("100");
+ %OptimizeFunctionOnNextCall(f);
+ f("100");
+ assertOptimized(f);
+})();
+
+(()=> {
+ function f(a) {
+ return Math.imul(a, 10);
+ }
+ f(1);
+ f(1);
+ %OptimizeFunctionOnNextCall(f);
+ f("100");
+ %OptimizeFunctionOnNextCall(f);
+ f("100");
+ assertOptimized(f);
+})();