LCOV - code coverage report
Current view: top level - src/runtime - runtime-operators.cc (source / functions) Hit Total Coverage
Test: app.info Lines: 5 112 4.5 %
Date: 2017-04-26 Functions: 1 40 2.5 %

          Line data    Source code
       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             : #include "src/arguments.h"
       6             : #include "src/isolate-inl.h"
       7             : #include "src/runtime/runtime-utils.h"
       8             : 
       9             : namespace v8 {
      10             : namespace internal {
      11             : 
      12           0 : RUNTIME_FUNCTION(Runtime_Multiply) {
      13           0 :   HandleScope scope(isolate);
      14             :   DCHECK_EQ(2, args.length());
      15           0 :   CONVERT_ARG_HANDLE_CHECKED(Object, lhs, 0);
      16           0 :   CONVERT_ARG_HANDLE_CHECKED(Object, rhs, 1);
      17           0 :   RETURN_RESULT_OR_FAILURE(isolate, Object::Multiply(isolate, lhs, rhs));
      18             : }
      19             : 
      20             : 
      21           0 : RUNTIME_FUNCTION(Runtime_Divide) {
      22           0 :   HandleScope scope(isolate);
      23             :   DCHECK_EQ(2, args.length());
      24           0 :   CONVERT_ARG_HANDLE_CHECKED(Object, lhs, 0);
      25           0 :   CONVERT_ARG_HANDLE_CHECKED(Object, rhs, 1);
      26           0 :   RETURN_RESULT_OR_FAILURE(isolate, Object::Divide(isolate, lhs, rhs));
      27             : }
      28             : 
      29             : 
      30           0 : RUNTIME_FUNCTION(Runtime_Modulus) {
      31           0 :   HandleScope scope(isolate);
      32             :   DCHECK_EQ(2, args.length());
      33           0 :   CONVERT_ARG_HANDLE_CHECKED(Object, lhs, 0);
      34           0 :   CONVERT_ARG_HANDLE_CHECKED(Object, rhs, 1);
      35           0 :   RETURN_RESULT_OR_FAILURE(isolate, Object::Modulus(isolate, lhs, rhs));
      36             : }
      37             : 
      38             : 
      39         112 : RUNTIME_FUNCTION(Runtime_Add) {
      40          56 :   HandleScope scope(isolate);
      41             :   DCHECK_EQ(2, args.length());
      42          56 :   CONVERT_ARG_HANDLE_CHECKED(Object, lhs, 0);
      43          56 :   CONVERT_ARG_HANDLE_CHECKED(Object, rhs, 1);
      44         168 :   RETURN_RESULT_OR_FAILURE(isolate, Object::Add(isolate, lhs, rhs));
      45             : }
      46             : 
      47             : 
      48           0 : RUNTIME_FUNCTION(Runtime_Subtract) {
      49           0 :   HandleScope scope(isolate);
      50             :   DCHECK_EQ(2, args.length());
      51           0 :   CONVERT_ARG_HANDLE_CHECKED(Object, lhs, 0);
      52           0 :   CONVERT_ARG_HANDLE_CHECKED(Object, rhs, 1);
      53           0 :   RETURN_RESULT_OR_FAILURE(isolate, Object::Subtract(isolate, lhs, rhs));
      54             : }
      55             : 
      56             : 
      57           0 : RUNTIME_FUNCTION(Runtime_ShiftLeft) {
      58           0 :   HandleScope scope(isolate);
      59             :   DCHECK_EQ(2, args.length());
      60           0 :   CONVERT_ARG_HANDLE_CHECKED(Object, lhs, 0);
      61           0 :   CONVERT_ARG_HANDLE_CHECKED(Object, rhs, 1);
      62           0 :   RETURN_RESULT_OR_FAILURE(isolate, Object::ShiftLeft(isolate, lhs, rhs));
      63             : }
      64             : 
      65             : 
      66           0 : RUNTIME_FUNCTION(Runtime_ShiftRight) {
      67           0 :   HandleScope scope(isolate);
      68             :   DCHECK_EQ(2, args.length());
      69           0 :   CONVERT_ARG_HANDLE_CHECKED(Object, lhs, 0);
      70           0 :   CONVERT_ARG_HANDLE_CHECKED(Object, rhs, 1);
      71           0 :   RETURN_RESULT_OR_FAILURE(isolate, Object::ShiftRight(isolate, lhs, rhs));
      72             : }
      73             : 
      74             : 
      75           0 : RUNTIME_FUNCTION(Runtime_ShiftRightLogical) {
      76           0 :   HandleScope scope(isolate);
      77             :   DCHECK_EQ(2, args.length());
      78           0 :   CONVERT_ARG_HANDLE_CHECKED(Object, lhs, 0);
      79           0 :   CONVERT_ARG_HANDLE_CHECKED(Object, rhs, 1);
      80           0 :   RETURN_RESULT_OR_FAILURE(isolate,
      81           0 :                            Object::ShiftRightLogical(isolate, lhs, rhs));
      82             : }
      83             : 
      84             : 
      85           0 : RUNTIME_FUNCTION(Runtime_BitwiseAnd) {
      86           0 :   HandleScope scope(isolate);
      87             :   DCHECK_EQ(2, args.length());
      88           0 :   CONVERT_ARG_HANDLE_CHECKED(Object, lhs, 0);
      89           0 :   CONVERT_ARG_HANDLE_CHECKED(Object, rhs, 1);
      90           0 :   RETURN_RESULT_OR_FAILURE(isolate, Object::BitwiseAnd(isolate, lhs, rhs));
      91             : }
      92             : 
      93             : 
      94           0 : RUNTIME_FUNCTION(Runtime_BitwiseOr) {
      95           0 :   HandleScope scope(isolate);
      96             :   DCHECK_EQ(2, args.length());
      97           0 :   CONVERT_ARG_HANDLE_CHECKED(Object, lhs, 0);
      98           0 :   CONVERT_ARG_HANDLE_CHECKED(Object, rhs, 1);
      99           0 :   RETURN_RESULT_OR_FAILURE(isolate, Object::BitwiseOr(isolate, lhs, rhs));
     100             : }
     101             : 
     102             : 
     103           0 : RUNTIME_FUNCTION(Runtime_BitwiseXor) {
     104           0 :   HandleScope scope(isolate);
     105             :   DCHECK_EQ(2, args.length());
     106           0 :   CONVERT_ARG_HANDLE_CHECKED(Object, lhs, 0);
     107           0 :   CONVERT_ARG_HANDLE_CHECKED(Object, rhs, 1);
     108           0 :   RETURN_RESULT_OR_FAILURE(isolate, Object::BitwiseXor(isolate, lhs, rhs));
     109             : }
     110             : 
     111           0 : RUNTIME_FUNCTION(Runtime_Equal) {
     112           0 :   HandleScope scope(isolate);
     113             :   DCHECK_EQ(2, args.length());
     114           0 :   CONVERT_ARG_HANDLE_CHECKED(Object, x, 0);
     115           0 :   CONVERT_ARG_HANDLE_CHECKED(Object, y, 1);
     116           0 :   Maybe<bool> result = Object::Equals(x, y);
     117           0 :   if (!result.IsJust()) return isolate->heap()->exception();
     118           0 :   return isolate->heap()->ToBoolean(result.FromJust());
     119             : }
     120             : 
     121           0 : RUNTIME_FUNCTION(Runtime_NotEqual) {
     122           0 :   HandleScope scope(isolate);
     123             :   DCHECK_EQ(2, args.length());
     124           0 :   CONVERT_ARG_HANDLE_CHECKED(Object, x, 0);
     125           0 :   CONVERT_ARG_HANDLE_CHECKED(Object, y, 1);
     126           0 :   Maybe<bool> result = Object::Equals(x, y);
     127           0 :   if (!result.IsJust()) return isolate->heap()->exception();
     128           0 :   return isolate->heap()->ToBoolean(!result.FromJust());
     129             : }
     130             : 
     131           0 : RUNTIME_FUNCTION(Runtime_StrictEqual) {
     132             :   SealHandleScope scope(isolate);
     133             :   DCHECK_EQ(2, args.length());
     134           0 :   CONVERT_ARG_CHECKED(Object, x, 0);
     135           0 :   CONVERT_ARG_CHECKED(Object, y, 1);
     136           0 :   return isolate->heap()->ToBoolean(x->StrictEquals(y));
     137             : }
     138             : 
     139           0 : RUNTIME_FUNCTION(Runtime_StrictNotEqual) {
     140             :   SealHandleScope scope(isolate);
     141             :   DCHECK_EQ(2, args.length());
     142           0 :   CONVERT_ARG_CHECKED(Object, x, 0);
     143           0 :   CONVERT_ARG_CHECKED(Object, y, 1);
     144           0 :   return isolate->heap()->ToBoolean(!x->StrictEquals(y));
     145             : }
     146             : 
     147           0 : RUNTIME_FUNCTION(Runtime_LessThan) {
     148           0 :   HandleScope scope(isolate);
     149             :   DCHECK_EQ(2, args.length());
     150           0 :   CONVERT_ARG_HANDLE_CHECKED(Object, x, 0);
     151           0 :   CONVERT_ARG_HANDLE_CHECKED(Object, y, 1);
     152           0 :   Maybe<bool> result = Object::LessThan(x, y);
     153           0 :   if (!result.IsJust()) return isolate->heap()->exception();
     154           0 :   return isolate->heap()->ToBoolean(result.FromJust());
     155             : }
     156             : 
     157           0 : RUNTIME_FUNCTION(Runtime_GreaterThan) {
     158           0 :   HandleScope scope(isolate);
     159             :   DCHECK_EQ(2, args.length());
     160           0 :   CONVERT_ARG_HANDLE_CHECKED(Object, x, 0);
     161           0 :   CONVERT_ARG_HANDLE_CHECKED(Object, y, 1);
     162           0 :   Maybe<bool> result = Object::GreaterThan(x, y);
     163           0 :   if (!result.IsJust()) return isolate->heap()->exception();
     164           0 :   return isolate->heap()->ToBoolean(result.FromJust());
     165             : }
     166             : 
     167           0 : RUNTIME_FUNCTION(Runtime_LessThanOrEqual) {
     168           0 :   HandleScope scope(isolate);
     169             :   DCHECK_EQ(2, args.length());
     170           0 :   CONVERT_ARG_HANDLE_CHECKED(Object, x, 0);
     171           0 :   CONVERT_ARG_HANDLE_CHECKED(Object, y, 1);
     172           0 :   Maybe<bool> result = Object::LessThanOrEqual(x, y);
     173           0 :   if (!result.IsJust()) return isolate->heap()->exception();
     174           0 :   return isolate->heap()->ToBoolean(result.FromJust());
     175             : }
     176             : 
     177           0 : RUNTIME_FUNCTION(Runtime_GreaterThanOrEqual) {
     178           0 :   HandleScope scope(isolate);
     179             :   DCHECK_EQ(2, args.length());
     180           0 :   CONVERT_ARG_HANDLE_CHECKED(Object, x, 0);
     181           0 :   CONVERT_ARG_HANDLE_CHECKED(Object, y, 1);
     182           0 :   Maybe<bool> result = Object::GreaterThanOrEqual(x, y);
     183           0 :   if (!result.IsJust()) return isolate->heap()->exception();
     184           0 :   return isolate->heap()->ToBoolean(result.FromJust());
     185             : }
     186             : 
     187           0 : RUNTIME_FUNCTION(Runtime_InstanceOf) {
     188           0 :   HandleScope shs(isolate);
     189             :   DCHECK_EQ(2, args.length());
     190           0 :   CONVERT_ARG_HANDLE_CHECKED(Object, object, 0);
     191           0 :   CONVERT_ARG_HANDLE_CHECKED(Object, callable, 1);
     192           0 :   RETURN_RESULT_OR_FAILURE(isolate,
     193           0 :                            Object::InstanceOf(isolate, object, callable));
     194             : }
     195             : 
     196             : }  // namespace internal
     197             : }  // namespace v8

Generated by: LCOV version 1.10