Index: test/mjsunit/constant-fold-control-instructions.js |
diff --git a/test/mjsunit/constant-fold-control-instructions.js b/test/mjsunit/constant-fold-control-instructions.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..d047684997a597676544f670a6f0f53dcb1dfc9a |
--- /dev/null |
+++ b/test/mjsunit/constant-fold-control-instructions.js |
@@ -0,0 +1,43 @@ |
+// Copyright 2014 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 --fold-constants |
+ |
+function test() { |
+ assertEquals("string", typeof ""); |
+ assertEquals("number", typeof 1.1); |
+ assertEquals("number", typeof 1); |
+ assertEquals("boolean", typeof true); |
+ assertEquals("function", typeof function() {}); |
+ assertEquals("object", typeof null); |
+ assertEquals("object", typeof {}); |
+ |
+ assertTrue(%_IsObject({})); |
+ assertTrue(%_IsObject(null)); |
+ assertTrue(%_IsObject(/regex/)); |
+ assertFalse(%_IsObject(0)); |
+ assertFalse(%_IsObject("")); |
+ |
+ assertTrue(%_IsSmi(1)); |
+ assertFalse(%_IsSmi(1.1)); |
+ assertFalse(%_IsSmi({})); |
+ |
+ assertTrue(%_IsRegExp(/regexp/)); |
+ assertFalse(%_IsRegExp({})); |
+ |
+ assertTrue(%_IsArray([1])); |
+ assertFalse(%_IsArray(function() {})); |
+ |
+ assertTrue(%_IsFunction(function() {})); |
+ assertFalse(%_IsFunction(null)); |
+ |
+ assertTrue(%_IsSpecObject(new Date())); |
+ assertFalse(%_IsSpecObject(1)); |
+} |
+ |
+ |
+test(); |
+test(); |
+%OptimizeFunctionOnNextCall(test); |
+test(); |