LCOV - code coverage report
Current view: top level - src/builtins - builtins-call.cc (source / functions) Hit Total Coverage
Test: app.info Lines: 24 27 88.9 %
Date: 2017-04-26 Functions: 3 3 100.0 %

          Line data    Source code
       1             : // Copyright 2016 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             : #include "src/builtins/builtins-utils.h"
       6             : #include "src/builtins/builtins.h"
       7             : #include "src/handles-inl.h"
       8             : #include "src/isolate.h"
       9             : #include "src/objects-inl.h"
      10             : 
      11             : namespace v8 {
      12             : namespace internal {
      13             : 
      14       48020 : Handle<Code> Builtins::CallFunction(ConvertReceiverMode mode,
      15             :                                     TailCallMode tail_call_mode) {
      16       48020 :   switch (tail_call_mode) {
      17             :     case TailCallMode::kDisallow:
      18       47668 :       switch (mode) {
      19             :         case ConvertReceiverMode::kNullOrUndefined:
      20       16194 :           return CallFunction_ReceiverIsNullOrUndefined();
      21             :         case ConvertReceiverMode::kNotNullOrUndefined:
      22       31259 :           return CallFunction_ReceiverIsNotNullOrUndefined();
      23             :         case ConvertReceiverMode::kAny:
      24         215 :           return CallFunction_ReceiverIsAny();
      25             :       }
      26             :       break;
      27             :     case TailCallMode::kAllow:
      28         352 :       switch (mode) {
      29             :         case ConvertReceiverMode::kNullOrUndefined:
      30          65 :           return TailCallFunction_ReceiverIsNullOrUndefined();
      31             :         case ConvertReceiverMode::kNotNullOrUndefined:
      32         184 :           return TailCallFunction_ReceiverIsNotNullOrUndefined();
      33             :         case ConvertReceiverMode::kAny:
      34         103 :           return TailCallFunction_ReceiverIsAny();
      35             :       }
      36             :       break;
      37             :   }
      38           0 :   UNREACHABLE();
      39             :   return Handle<Code>::null();
      40             : }
      41             : 
      42      226749 : Handle<Code> Builtins::Call(ConvertReceiverMode mode,
      43             :                             TailCallMode tail_call_mode) {
      44      226749 :   switch (tail_call_mode) {
      45             :     case TailCallMode::kDisallow:
      46      226622 :       switch (mode) {
      47             :         case ConvertReceiverMode::kNullOrUndefined:
      48       42817 :           return Call_ReceiverIsNullOrUndefined();
      49             :         case ConvertReceiverMode::kNotNullOrUndefined:
      50      130918 :           return Call_ReceiverIsNotNullOrUndefined();
      51             :         case ConvertReceiverMode::kAny:
      52       52887 :           return Call_ReceiverIsAny();
      53             :       }
      54             :       break;
      55             :     case TailCallMode::kAllow:
      56         127 :       switch (mode) {
      57             :         case ConvertReceiverMode::kNullOrUndefined:
      58          47 :           return TailCall_ReceiverIsNullOrUndefined();
      59             :         case ConvertReceiverMode::kNotNullOrUndefined:
      60          20 :           return TailCall_ReceiverIsNotNullOrUndefined();
      61             :         case ConvertReceiverMode::kAny:
      62          60 :           return TailCall_ReceiverIsAny();
      63             :       }
      64             :       break;
      65             :   }
      66           0 :   UNREACHABLE();
      67             :   return Handle<Code>::null();
      68             : }
      69             : 
      70         258 : Handle<Code> Builtins::CallBoundFunction(TailCallMode tail_call_mode) {
      71         258 :   switch (tail_call_mode) {
      72             :     case TailCallMode::kDisallow:
      73         129 :       return CallBoundFunction();
      74             :     case TailCallMode::kAllow:
      75         129 :       return TailCallBoundFunction();
      76             :   }
      77           0 :   UNREACHABLE();
      78             :   return Handle<Code>::null();
      79             : }
      80             : 
      81             : }  // namespace internal
      82             : }  // namespace v8

Generated by: LCOV version 1.10