Upstream version 11.40.277.0
[platform/framework/web/crosswalk.git] / src / v8 / test / mjsunit / constant-fold-control-instructions.js
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
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
44 test();
45 test();
46 %OptimizeFunctionOnNextCall(test);
47 test();