Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F103747662
to-primitive.js
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Tue, Mar 4, 11:37
Size
1001 B
Mime Type
text/x-Algol68
Expires
Thu, Mar 6, 11:37 (2 d)
Engine
blob
Format
Raw Data
Handle
24654829
Attached To
rOACCT Open Access Compliance Check Tool (OACCT)
to-primitive.js
View Options
var
call
=
require
(
'../internals/function-call'
);
var
isObject
=
require
(
'../internals/is-object'
);
var
isSymbol
=
require
(
'../internals/is-symbol'
);
var
getMethod
=
require
(
'../internals/get-method'
);
var
ordinaryToPrimitive
=
require
(
'../internals/ordinary-to-primitive'
);
var
wellKnownSymbol
=
require
(
'../internals/well-known-symbol'
);
var
$TypeError
=
TypeError
;
var
TO_PRIMITIVE
=
wellKnownSymbol
(
'toPrimitive'
);
// `ToPrimitive` abstract operation
// https://tc39.es/ecma262/#sec-toprimitive
module
.
exports
=
function
(
input
,
pref
)
{
if
(
!
isObject
(
input
)
||
isSymbol
(
input
))
return
input
;
var
exoticToPrim
=
getMethod
(
input
,
TO_PRIMITIVE
);
var
result
;
if
(
exoticToPrim
)
{
if
(
pref
===
undefined
)
pref
=
'default'
;
result
=
call
(
exoticToPrim
,
input
,
pref
);
if
(
!
isObject
(
result
)
||
isSymbol
(
result
))
return
result
;
throw
$TypeError
(
"Can't convert object to primitive value"
);
}
if
(
pref
===
undefined
)
pref
=
'number'
;
return
ordinaryToPrimitive
(
input
,
pref
);
};
Event Timeline
Log In to Comment