summaryrefslogtreecommitdiff
path: root/deps/v8/test/mjsunit/default-nospec.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/test/mjsunit/default-nospec.js')
-rw-r--r--deps/v8/test/mjsunit/default-nospec.js84
1 files changed, 84 insertions, 0 deletions
diff --git a/deps/v8/test/mjsunit/default-nospec.js b/deps/v8/test/mjsunit/default-nospec.js
new file mode 100644
index 0000000000..0e3b6c1f55
--- /dev/null
+++ b/deps/v8/test/mjsunit/default-nospec.js
@@ -0,0 +1,84 @@
+// 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, b, c) {
+ return String.prototype.indexOf.call(a, b, c);
+ }
+ f("abc", "de", 1);
+ f("abc", "de", 1);
+ %OptimizeFunctionOnNextCall(f);
+ f("abc", "de", {});
+ %OptimizeFunctionOnNextCall(f);
+ f("abc", "de", {});
+ assertOptimized(f);
+})();
+
+(()=> {
+ function f(a, b, c) {
+ return String.prototype.indexOf.apply(a, [b, c]);
+ }
+ f("abc", "de", 1);
+ f("abc", "de", 1);
+ %OptimizeFunctionOnNextCall(f);
+ f("abc", {}, 1);
+ %OptimizeFunctionOnNextCall(f);
+ f("abc", {}, 1);
+ assertOptimized(f);
+})();
+
+(()=> {
+ function f(a, b, c) {
+ return Reflect.apply(String.prototype.indexOf, a, [b, c]);
+ }
+ f("abc", "de", 1);
+ f("abc", "de", 1);
+ %OptimizeFunctionOnNextCall(f);
+ f({}, "de", 1);
+ %OptimizeFunctionOnNextCall(f);
+ f({}, "de", 1);
+ assertOptimized(f);
+})();
+
+(()=> {
+ function f(a, b) {
+ return String.fromCharCode.call(a, b);
+ }
+ f("abc", 1);
+ f("abc", 1);
+ %OptimizeFunctionOnNextCall(f);
+ f("abc", {});
+ %OptimizeFunctionOnNextCall(f);
+ f({}, {});
+ assertOptimized(f);
+})();
+
+(()=> {
+ function f(a, b) {
+ return String.fromCharCode.apply(undefined, [b, {}]);
+ }
+ f("abc", 1);
+ f("abc", 1);
+ %OptimizeFunctionOnNextCall(f);
+ f("abc", {});
+ %OptimizeFunctionOnNextCall(f);
+ f("abc", {});
+ assertOptimized(f);
+})();
+
+
+(()=> {
+ function f(a, b) {
+ return Reflect.apply(String.fromCharCode, a, [b, {}]);
+ }
+ f("abc", 1);
+ f("abc", 1);
+ %OptimizeFunctionOnNextCall(f);
+ f("abc", {});
+ %OptimizeFunctionOnNextCall(f);
+ f("abc", {});
+ assertOptimized(f);
+})();