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
7function 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
16  assertTrue(%_IsObject({}));
17  assertTrue(%_IsObject(null));
18  assertTrue(%_IsObject(/regex/));
19  assertFalse(%_IsObject(0));
20  assertFalse(%_IsObject(""));
21
22  assertTrue(%_IsSmi(1));
23  assertFalse(%_IsSmi(1.1));
24  assertFalse(%_IsSmi({}));
25
26  assertTrue(%_IsRegExp(/regexp/));
27  assertFalse(%_IsRegExp({}));
28
29  assertTrue(%_IsArray([1]));
30  assertFalse(%_IsArray(function() {}));
31
32  assertTrue(%_IsFunction(function() {}));
33  assertFalse(%_IsFunction(null));
34
35  assertTrue(%_IsSpecObject(new Date()));
36  assertFalse(%_IsSpecObject(1));
37
38  assertTrue(%_IsMinusZero(-0.0));
39  assertFalse(%_IsMinusZero(1));
40  assertFalse(%_IsMinusZero(""));
41}
42
43
44test();
45test();
46%OptimizeFunctionOnNextCall(test);
47test();
48