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