LCOV - app.info - js/src/v8-dtoa/v8-dtoa.cc

LCOV - code coverage report
| Current view: | directory - js/src/v8-dtoa - v8-dtoa.cc (source / functions) |  | Found | Hit | Coverage |
| Test: | app.info | Lines: | 20 | 11 | 55.0 %
| Date: | 2012-04-07 | Functions: | 1 | 1 | 100.0 %

           1                 : // Copyright 2010 the V8 project authors. All rights reserved.
           2                 : // Redistribution and use in source and binary forms, with or without
           3                 : // modification, are permitted provided that the following conditions are
           4                 : // met:
           5                 : //
           6                 : //     * Redistributions of source code must retain the above copyright
           7                 : //       notice, this list of conditions and the following disclaimer.
           8                 : //     * Redistributions in binary form must reproduce the above
           9                 : //       copyright notice, this list of conditions and the following
          10                 : //       disclaimer in the documentation and/or other materials provided
          11                 : //       with the distribution.
          12                 : //     * Neither the name of Google Inc. nor the names of its
          13                 : //       contributors may be used to endorse or promote products derived
          14                 : //       from this software without specific prior written permission.
          15                 : //
          16                 : // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
          17                 : // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
          18                 : // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
          19                 : // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
          20                 : // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
          21                 : // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
          22                 : // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
          23                 : // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
          24                 : // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
          25                 : // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
          26                 : // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
          27                 :
          28                 : // MOZ: this file was called dtoa.cc, but that clashed in the build with
          29                 : // the file dtoa.c in SpiderMonkey, so this file was renamed v8-dtoa.cc.
          30                 :
          31                 : #include <math.h>
          32                 :
          33                 : #include "v8.h"
          34                 : #include "dtoa.h"
          35                 : #include "double.h"
          36                 : #include "fast-dtoa.h"
          37                 :
          38                 : namespace v8 {
          39                 : namespace internal {
          40                 :
          41          213007 : bool DoubleToAscii(double v, DtoaMode mode, int requested_digits,
          42                 :                    Vector<char> buffer, int* sign, int* length, int* point) {
          43          213007 :   ASSERT(!Double(v).IsSpecial());
          44          213007 :   ASSERT(mode == DTOA_SHORTEST || requested_digits >= 0);
          45                 :
          46          213007 :   if (Double(v).Sign() < 0) {
          47           44955 :     *sign = 1;
          48           44955 :     v = -v;
          49                 :   } else {
          50          168052 :     *sign = 0;
          51                 :   }
          52                 :
          53          213007 :   if (v == 0) {
          54               0 :     buffer[0] = '0';
          55               0 :     buffer[1] = '\0';
          56               0 :     *length = 1;
          57               0 :     *point = 1;
          58               0 :     return true;
          59                 :   }
          60                 :
          61          213007 :   if (mode == DTOA_PRECISION && requested_digits == 0) {
          62               0 :     buffer[0] = '\0';
          63               0 :     *length = 0;
          64               0 :     return true;
          65                 :   }
          66                 :
          67          213007 :   switch (mode) {
          68                 :     case DTOA_SHORTEST:
          69          213007 :       return FastDtoa(v, buffer, length, point);
          70                 :     case DTOA_FIXED:
          71                 :       // MOZ: should never happen.
          72                 :       //return FastFixedDtoa(v, requested_digits, buffer, length, point);
          73                 :     default:
          74                 :       break;
          75                 :   }
          76               0 :   return false;
          77                 : }
          78                 :
          79                 : } }  // namespace v8::internal

Generated by: LCOV version 1.7