Page Menu
Home
Software Heritage
Search
Configure Global Search
Log In
Files
F9345110
es.array.unshift.js
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
1 KB
Subscribers
None
es.array.unshift.js
View Options
'use strict'
;
var
$
=
require
(
'../internals/export'
);
var
toObject
=
require
(
'../internals/to-object'
);
var
lengthOfArrayLike
=
require
(
'../internals/length-of-array-like'
);
var
setArrayLength
=
require
(
'../internals/array-set-length'
);
var
deletePropertyOrThrow
=
require
(
'../internals/delete-property-or-throw'
);
var
doesNotExceedSafeInteger
=
require
(
'../internals/does-not-exceed-safe-integer'
);
// IE8-
var
INCORRECT_RESULT
=
[].
unshift
(
0
)
!==
1
;
// V8 ~ Chrome < 71 and Safari <= 15.4, FF < 23 throws InternalError
var
SILENT_ON_NON_WRITABLE_LENGTH
=
!
function
()
{
try
{
// eslint-disable-next-line es/no-object-defineproperty -- safe
Object
.
defineProperty
([],
'length'
,
{
writable
:
false
}).
unshift
();
}
catch
(
error
)
{
return
error
instanceof
TypeError
;
}
}();
// `Array.prototype.unshift` method
// https://tc39.es/ecma262/#sec-array.prototype.unshift
$
({
target
:
'Array'
,
proto
:
true
,
arity
:
1
,
forced
:
INCORRECT_RESULT
||
SILENT_ON_NON_WRITABLE_LENGTH
},
{
// eslint-disable-next-line no-unused-vars -- required for `.length`
unshift
:
function
unshift
(
item
)
{
var
O
=
toObject
(
this
);
var
len
=
lengthOfArrayLike
(
O
);
var
argCount
=
arguments
.
length
;
if
(
argCount
)
{
doesNotExceedSafeInteger
(
len
+
argCount
);
var
k
=
len
;
while
(
k
--
)
{
var
to
=
k
+
argCount
;
if
(
k
in
O
)
O
[
to
]
=
O
[
k
];
else
deletePropertyOrThrow
(
O
,
to
);
}
for
(
var
j
=
0
;
j
<
argCount
;
j
++
)
{
O
[
j
]
=
arguments
[
j
];
}
}
return
setArrayLength
(
O
,
len
+
argCount
);
}
});
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, Jul 4, 3:06 PM (4 d, 19 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3362649
Attached To
rDWAPPS Web applications
Event Timeline
Log In to Comment