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