LCOV - code coverage report
Current view: top level - src/builtins - builtins-symbol-gen.cc (source / functions) Hit Total Coverage
Test: app.info Lines: 31 31 100.0 %
Date: 2019-03-21 Functions: 22 22 100.0 %

          Line data    Source code
       1             : // Copyright 2017 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-gen.h"
       6             : #include "src/builtins/builtins.h"
       7             : #include "src/code-stub-assembler.h"
       8             : 
       9             : namespace v8 {
      10             : namespace internal {
      11             : 
      12             : // -----------------------------------------------------------------------------
      13             : // ES #sec-symbol-objects
      14             : // ES #sec-symbol.prototype.description
      15         336 : TF_BUILTIN(SymbolPrototypeDescriptionGetter, CodeStubAssembler) {
      16          56 :   Node* context = Parameter(Descriptor::kContext);
      17          56 :   Node* receiver = Parameter(Descriptor::kReceiver);
      18             : 
      19          56 :   Node* value = ToThisValue(context, receiver, PrimitiveType::kSymbol,
      20          56 :                             "Symbol.prototype.description");
      21          56 :   Node* result = LoadObjectField(value, Symbol::kNameOffset);
      22          56 :   Return(result);
      23          56 : }
      24             : 
      25             : // ES6 #sec-symbol.prototype-@@toprimitive
      26         336 : TF_BUILTIN(SymbolPrototypeToPrimitive, CodeStubAssembler) {
      27          56 :   Node* context = Parameter(Descriptor::kContext);
      28          56 :   Node* receiver = Parameter(Descriptor::kReceiver);
      29             : 
      30          56 :   Node* result = ToThisValue(context, receiver, PrimitiveType::kSymbol,
      31          56 :                              "Symbol.prototype [ @@toPrimitive ]");
      32          56 :   Return(result);
      33          56 : }
      34             : 
      35             : // ES6 #sec-symbol.prototype.tostring
      36         336 : TF_BUILTIN(SymbolPrototypeToString, CodeStubAssembler) {
      37          56 :   Node* context = Parameter(Descriptor::kContext);
      38          56 :   Node* receiver = Parameter(Descriptor::kReceiver);
      39             : 
      40          56 :   Node* value = ToThisValue(context, receiver, PrimitiveType::kSymbol,
      41          56 :                             "Symbol.prototype.toString");
      42          56 :   Node* result = CallRuntime(Runtime::kSymbolDescriptiveString, context, value);
      43          56 :   Return(result);
      44          56 : }
      45             : 
      46             : // ES6 #sec-symbol.prototype.valueof
      47         336 : TF_BUILTIN(SymbolPrototypeValueOf, CodeStubAssembler) {
      48          56 :   Node* context = Parameter(Descriptor::kContext);
      49          56 :   Node* receiver = Parameter(Descriptor::kReceiver);
      50             : 
      51          56 :   Node* result = ToThisValue(context, receiver, PrimitiveType::kSymbol,
      52          56 :                              "Symbol.prototype.valueOf");
      53          56 :   Return(result);
      54          56 : }
      55             : 
      56             : }  // namespace internal
      57       87414 : }  // namespace v8

Generated by: LCOV version 1.10