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