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