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 // ES6 section 19.3 Boolean Objects
14 
15 // ES6 #sec-boolean.prototype.tostring
TF_BUILTIN(BooleanPrototypeToString,CodeStubAssembler)16 TF_BUILTIN(BooleanPrototypeToString, CodeStubAssembler) {
17   Node* context = Parameter(Descriptor::kContext);
18   Node* receiver = Parameter(Descriptor::kReceiver);
19 
20   Node* value = ToThisValue(context, receiver, PrimitiveType::kBoolean,
21                             "Boolean.prototype.toString");
22   Node* result = LoadObjectField(value, Oddball::kToStringOffset);
23   Return(result);
24 }
25 
26 // ES6 #sec-boolean.prototype.valueof
TF_BUILTIN(BooleanPrototypeValueOf,CodeStubAssembler)27 TF_BUILTIN(BooleanPrototypeValueOf, CodeStubAssembler) {
28   Node* context = Parameter(Descriptor::kContext);
29   Node* receiver = Parameter(Descriptor::kReceiver);
30 
31   Node* result = ToThisValue(context, receiver, PrimitiveType::kBoolean,
32                              "Boolean.prototype.valueOf");
33   Return(result);
34 }
35 
36 }  // namespace internal
37 }  // namespace v8
38