LCOV - code coverage report
Current view: top level - src - char-predicates-inl.h (source / functions) Hit Total Coverage
Test: app.info Lines: 7 7 100.0 %
Date: 2017-04-26 Functions: 0 0 -

          Line data    Source code
       1             : // Copyright 2011 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             : #ifndef V8_CHAR_PREDICATES_INL_H_
       6             : #define V8_CHAR_PREDICATES_INL_H_
       7             : 
       8             : #include "src/char-predicates.h"
       9             : 
      10             : namespace v8 {
      11             : namespace internal {
      12             : 
      13             : 
      14             : // If c is in 'A'-'Z' or 'a'-'z', return its lower-case.
      15             : // Else, return something outside of 'A'-'Z' and 'a'-'z'.
      16             : // Note: it ignores LOCALE.
      17             : inline int AsciiAlphaToLower(uc32 c) {
      18   433234192 :   return c | 0x20;
      19             : }
      20             : 
      21             : 
      22             : inline bool IsCarriageReturn(uc32 c) {
      23             :   return c == 0x000D;
      24             : }
      25             : 
      26             : 
      27             : inline bool IsLineFeed(uc32 c) {
      28             :   return c == 0x000A;
      29             : }
      30             : 
      31             : 
      32             : inline bool IsInRange(int value, int lower_limit, int higher_limit) {
      33             :   DCHECK(lower_limit <= higher_limit);
      34  2198720441 :   return static_cast<unsigned int>(value - lower_limit) <=
      35       11491 :       static_cast<unsigned int>(higher_limit - lower_limit);
      36             : }
      37             : 
      38             : inline bool IsAsciiIdentifier(uc32 c) {
      39   386609756 :   return IsAlphaNumeric(c) || c == '$' || c == '_';
      40             : }
      41             : 
      42             : inline bool IsAlphaNumeric(uc32 c) {
      43   523289970 :   return IsInRange(AsciiAlphaToLower(c), 'a', 'z') || IsDecimalDigit(c);
      44             : }
      45             : 
      46             : inline bool IsDecimalDigit(uc32 c) {
      47             :   // ECMA-262, 3rd, 7.8.3 (p 16)
      48             :   return IsInRange(c, '0', '9');
      49             : }
      50             : 
      51             : 
      52             : inline bool IsHexDigit(uc32 c) {
      53             :   // ECMA-262, 3rd, 7.6 (p 15)
      54     1515803 :   return IsDecimalDigit(c) || IsInRange(AsciiAlphaToLower(c), 'a', 'f');
      55             : }
      56             : 
      57             : 
      58             : inline bool IsOctalDigit(uc32 c) {
      59             :   // ECMA-262, 6th, 7.8.3
      60             :   return IsInRange(c, '0', '7');
      61             : }
      62             : 
      63             : 
      64             : inline bool IsBinaryDigit(uc32 c) {
      65             :   // ECMA-262, 6th, 7.8.3
      66         250 :   return c == '0' || c == '1';
      67             : }
      68             : 
      69             : 
      70             : inline bool IsRegExpWord(uc16 c) {
      71             :   return IsInRange(AsciiAlphaToLower(c), 'a', 'z')
      72             :       || IsDecimalDigit(c)
      73             :       || (c == '_');
      74             : }
      75             : 
      76             : 
      77             : inline bool IsRegExpNewline(uc16 c) {
      78             :   switch (c) {
      79             :     //   CR           LF           LS           PS
      80             :     case 0x000A: case 0x000D: case 0x2028: case 0x2029:
      81             :       return false;
      82             :     default:
      83             :       return true;
      84             :   }
      85             : }
      86             : 
      87             : 
      88             : }  // namespace internal
      89             : }  // namespace v8
      90             : 
      91             : #endif  // V8_CHAR_PREDICATES_INL_H_

Generated by: LCOV version 1.10