Page Menu
Home
Software Heritage
Search
Configure Global Search
Log In
Files
F8394302
internal-state.js
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
2 KB
Subscribers
None
internal-state.js
View Options
var
NATIVE_WEAK_MAP
=
require
(
'../internals/weak-map-basic-detection'
);
var
global
=
require
(
'../internals/global'
);
var
isObject
=
require
(
'../internals/is-object'
);
var
createNonEnumerableProperty
=
require
(
'../internals/create-non-enumerable-property'
);
var
hasOwn
=
require
(
'../internals/has-own-property'
);
var
shared
=
require
(
'../internals/shared-store'
);
var
sharedKey
=
require
(
'../internals/shared-key'
);
var
hiddenKeys
=
require
(
'../internals/hidden-keys'
);
var
OBJECT_ALREADY_INITIALIZED
=
'Object already initialized'
;
var
TypeError
=
global
.
TypeError
;
var
WeakMap
=
global
.
WeakMap
;
var
set
,
get
,
has
;
var
enforce
=
function
(
it
)
{
return
has
(
it
)
?
get
(
it
)
:
set
(
it
,
{});
};
var
getterFor
=
function
(
TYPE
)
{
return
function
(
it
)
{
var
state
;
if
(
!
isObject
(
it
)
||
(
state
=
get
(
it
)).
type
!==
TYPE
)
{
throw
TypeError
(
'Incompatible receiver, '
+
TYPE
+
' required'
);
}
return
state
;
};
};
if
(
NATIVE_WEAK_MAP
||
shared
.
state
)
{
var
store
=
shared
.
state
||
(
shared
.
state
=
new
WeakMap
());
/* eslint-disable no-self-assign -- prototype methods protection */
store
.
get
=
store
.
get
;
store
.
has
=
store
.
has
;
store
.
set
=
store
.
set
;
/* eslint-enable no-self-assign -- prototype methods protection */
set
=
function
(
it
,
metadata
)
{
if
(
store
.
has
(
it
))
throw
TypeError
(
OBJECT_ALREADY_INITIALIZED
);
metadata
.
facade
=
it
;
store
.
set
(
it
,
metadata
);
return
metadata
;
};
get
=
function
(
it
)
{
return
store
.
get
(
it
)
||
{};
};
has
=
function
(
it
)
{
return
store
.
has
(
it
);
};
}
else
{
var
STATE
=
sharedKey
(
'state'
);
hiddenKeys
[
STATE
]
=
true
;
set
=
function
(
it
,
metadata
)
{
if
(
hasOwn
(
it
,
STATE
))
throw
TypeError
(
OBJECT_ALREADY_INITIALIZED
);
metadata
.
facade
=
it
;
createNonEnumerableProperty
(
it
,
STATE
,
metadata
);
return
metadata
;
};
get
=
function
(
it
)
{
return
hasOwn
(
it
,
STATE
)
?
it
[
STATE
]
:
{};
};
has
=
function
(
it
)
{
return
hasOwn
(
it
,
STATE
);
};
}
module
.
exports
=
{
set
:
set
,
get
:
get
,
has
:
has
,
enforce
:
enforce
,
getterFor
:
getterFor
};
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Wed, Jun 4, 7:23 PM (1 w, 1 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3306944
Attached To
rDWAPPS Web applications
Event Timeline
Log In to Comment