constant-fold-control-instructions.js 873 Bytes
Newer Older
1 2 3 4
// Copyright 2014 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

5
// Flags: --allow-natives-syntax
6 7 8 9 10 11 12 13 14

function test() {
  assertEquals("string", typeof "");
  assertEquals("number", typeof 1.1);
  assertEquals("number", typeof 1);
  assertEquals("boolean", typeof true);
  assertEquals("function", typeof function() {});
  assertEquals("object", typeof null);
  assertEquals("object", typeof {});
15
  assertEquals("object", typeof /regex/);
16 17 18 19 20 21 22 23

  assertTrue(%_IsSmi(1));
  assertFalse(%_IsSmi(1.1));
  assertFalse(%_IsSmi({}));

  assertTrue(%_IsArray([1]));
  assertFalse(%_IsArray(function() {}));

24 25
  assertTrue(%_IsJSReceiver(new Date()));
  assertFalse(%_IsJSReceiver(1));
26 27
}

28
%PrepareFunctionForOptimization(test);
29 30 31 32
test();
test();
%OptimizeFunctionOnNextCall(test);
test();