Home | History | Annotate | Download | only in mjsunit
      1 // Copyright 2014 the V8 project authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 // Flags: --allow-natives-syntax --fold-constants
      6 
      7 function test() {
      8   assertEquals("string", typeof "");
      9   assertEquals("number", typeof 1.1);
     10   assertEquals("number", typeof 1);
     11   assertEquals("boolean", typeof true);
     12   assertEquals("function", typeof function() {});
     13   assertEquals("object", typeof null);
     14   assertEquals("object", typeof {});
     15   assertEquals("object", typeof /regex/);
     16 
     17   assertTrue(%_IsSmi(1));
     18   assertFalse(%_IsSmi(1.1));
     19   assertFalse(%_IsSmi({}));
     20 
     21   assertTrue(%_IsRegExp(/regexp/));
     22   assertFalse(%_IsRegExp({}));
     23 
     24   assertTrue(%_IsArray([1]));
     25   assertFalse(%_IsArray(function() {}));
     26 
     27   assertTrue(%_IsFunction(function() {}));
     28   assertFalse(%_IsFunction(null));
     29 
     30   assertTrue(%_IsJSReceiver(new Date()));
     31   assertFalse(%_IsJSReceiver(1));
     32 
     33   assertTrue(%_IsMinusZero(-0.0));
     34   assertFalse(%_IsMinusZero(1));
     35   assertFalse(%_IsMinusZero(""));
     36 }
     37 
     38 
     39 test();
     40 test();
     41 %OptimizeFunctionOnNextCall(test);
     42 test();
     43