FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
WebKit/Source/JavaScriptCore/runtime/BooleanPrototype.cpp at main · WebKit/WebKit · GitHub
Uh oh!
There was an error while loading.
Please reload this page
.
WebKit
/
WebKit
Public
Notifications
You must be signed in to change notification settings
Fork
2.1k
Star
10.1k
Code
Pull requests
2.6k
Actions
Wiki
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Wiki
Security and quality
Insights
Expand file tree
Breadcrumbs
WebKit
/
Source
/
JavaScriptCore
/
runtime
/
BooleanPrototype.cpp
Copy path
More file actions
More file actions
Latest commit
History
History
History
104 lines (81 loc) · 3.39 KB
Breadcrumbs
WebKit
/
Source
/
JavaScriptCore
/
runtime
/
BooleanPrototype.cpp
Copy path
File metadata and controls
104 lines (81 loc) · 3.39 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
/*
* Copyright (C) 1999-2000 Harri Porten (porten@kde.org)
* Copyright (C) 2003-2020 Apple Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*
*/
#
include
"
config.h
"
#
include
"
BooleanPrototype.h
"
#
include
"
IntegrityInlines.h
"
#
include
"
JSCInlines.h
"
namespace
JSC
{
static
JSC_DECLARE_HOST_FUNCTION
(booleanProtoFuncToString);
static
JSC_DECLARE_HOST_FUNCTION
(booleanProtoFuncValueOf);
}
#
include
"
BooleanPrototype.lut.h
"
namespace
JSC
{
const
ClassInfo BooleanPrototype::s_info = {
"
Boolean
"
_s, &BooleanObject::s_info, &booleanPrototypeTable,
nullptr
,
CREATE_METHOD_TABLE
(BooleanPrototype) };
/*
Source for BooleanPrototype.lut.h
@begin booleanPrototypeTable
toString booleanProtoFuncToString DontEnum|Function 0
valueOf booleanProtoFuncValueOf DontEnum|Function 0
@end
*/
STATIC_ASSERT_IS_TRIVIALLY_DESTRUCTIBLE
(BooleanPrototype);
BooleanPrototype::BooleanPrototype
(
VM
& vm, Structure* structure)
: BooleanObject(vm, structure)
{
}
void
BooleanPrototype::finishCreation
(
VM
& vm, JSGlobalObject*)
{
Base::finishCreation
(vm);
setInternalValue
(vm,
jsBoolean
(
false
));
ASSERT
(
inherits
(
info
()));
structure
()->
setMayBePrototype
(
true
);
}
//
------------------------------ Functions ---------------------------
JSC_DEFINE_HOST_FUNCTION
(booleanProtoFuncToString, (JSGlobalObject* globalObject, CallFrame* callFrame))
{
VM
& vm = globalObject->
vm
();
auto
scope =
DECLARE_THROW_SCOPE
(vm);
JSValue thisValue = callFrame->
thisValue
();
if
(thisValue ==
jsBoolean
(
false
))
return
JSValue::encode
(vm.
smallStrings
.
falseString
());
if
(thisValue ==
jsBoolean
(
true
))
return
JSValue::encode
(vm.
smallStrings
.
trueString
());
auto
* thisObject = dynamicDowncast<BooleanObject>(thisValue);
if
(!thisObject)
[[unlikely]]
return
throwVMTypeError
(globalObject, scope);
Integrity::auditStructureID
(thisObject->
structureID
());
if
(thisObject->
internalValue
() ==
jsBoolean
(
false
))
return
JSValue::encode
(vm.
smallStrings
.
falseString
());
ASSERT
(thisObject->
internalValue
() ==
jsBoolean
(
true
));
return
JSValue::encode
(vm.
smallStrings
.
trueString
());
}
JSC_DEFINE_HOST_FUNCTION
(booleanProtoFuncValueOf, (JSGlobalObject* globalObject, CallFrame* callFrame))
{
VM
& vm = globalObject->
vm
();
auto
scope =
DECLARE_THROW_SCOPE
(vm);
JSValue thisValue = callFrame->
thisValue
();
if
(thisValue.
isBoolean
())
return
JSValue::encode
(thisValue);
auto
* thisObject = dynamicDowncast<BooleanObject>(thisValue);
if
(!thisObject)
[[unlikely]]
return
throwVMTypeError
(globalObject, scope);
Integrity::auditStructureID
(thisObject->
structureID
());
return
JSValue::encode
(thisObject->
internalValue
());
}
}
//
namespace JSC
Back
|
FazBrowse Home
|
New Git URL